added 4 changesets to branch 'refs/remotes/HaikuPM-github/package-management' old head: e85334022eac93e41fc48b61784336b25ea2bbc3 new head: 98c6dfa41e20c57edf426197a8d9aab6223a59fd overview: https://github.com/haiku/HaikuPM/compare/e853340...98c6dfa ---------------------------------------------------------------------------- bf5b4b2: package_repo list: add missing cases It probably would be better to share code with package's list, since it is very similar. 001e906: LibsolvSolver: missing include 43d96d8: haiku package-info: fix some provides/requires 98c6dfa: Switch build system from optional package to repositories * Build libsolv and the dependency solver part of the package kit for the build platform. * Add build tool get_package_dependencies. Given a list of package files and a list of repository files it determines the additional packages that need to be retrieved from the repositories and prints their URLs. * Add rules to work with external repositories in the build system (build/jam/RepositoryRules): - PackageRepository declares an external repository with all its packages. The URL of the repository file isn't specified. It is computed from a given base URL and the SHA256 hash of the list of package files. - GeneratedRepositoryPackageList generates a file containing the file names of all packages in a repository. - IsPackageAvailable returns whether a package is available in any repository. - PackageURL returns the URL for a package. * Declare the HaikuPorts repository for x86_gcc2 (build/jam/repositories/HaikuPorts/x86_gcc2). * Add rule AddHaikuImagePackages to add a package to the image and rule IsHaikuImagePackageAdded to determine whether a package has been added. * OptionalPackages: Remove all entries that just downloaded and installed an external package. AddHaikuImagePackages can be used instead and is used in the remaining entries. Also move the remaining optional package dependency declarations from OptionalPackageDependencies here. * ExtractBuildFeatureArchives: Instead of the URL parameter a package name must be specified now. This allows to simplify BuildFeatures significantly, since there's no dealing with URLs anymore. "if" out the entries that aren't supported yet. * build_haiku_image: For the packages installed in system and common resolve their dependencies and download and install them as well. [ Ingo Weinhold <ingo_weinhold@xxxxxx> ] ---------------------------------------------------------------------------- 32 files changed, 1239 insertions(+), 2375 deletions(-) Jamfile | 20 +- Jamrules | 14 + build/jam/BuildFeatures | 271 +-- build/jam/BuildSetup | 4 + build/jam/HaikuImage | 52 +- build/jam/ImageRules | 38 + build/jam/MiscRules | 2 +- build/jam/OptionalPackageDependencies | 52 - build/jam/OptionalPackages | 2288 ++---------------- build/jam/ReleaseBuildProfiles | 57 +- build/jam/RepositoryRules | 113 + build/jam/repositories/HaikuPorts/x86_gcc2 | 167 ++ build/scripts/build_haiku_image | 59 +- headers/build/os/package/solver/Solver.h | 1 + headers/build/os/package/solver/SolverPackage.h | 1 + .../os/package/solver/SolverPackageSpecifier.h | 1 + .../package/solver/SolverPackageSpecifierList.h | 1 + headers/build/os/package/solver/SolverProblem.h | 1 + .../os/package/solver/SolverProblemSolution.h | 1 + .../build/os/package/solver/SolverRepository.h | 1 + headers/build/os/package/solver/SolverResult.h | 1 + src/bin/package_repo/command_list.cpp | 67 + src/build/Jamfile | 1 + src/build/libpackage/Jamfile | 13 + src/build/libpackage/solver/Jamfile | 29 + src/build/libsolv/Jamfile | 107 + src/data/package_infos/x86_gcc2/haiku | 8 +- src/kits/package/solver/LibsolvSolver.cpp | 37 +- src/kits/package/solver/Solver.cpp | 27 +- src/tools/Jamfile | 1 + src/tools/get_package_dependencies/Jamfile | 19 + .../get_package_dependencies.cpp | 160 ++ ############################################################################ Commit: bf5b4b25c89566b65fb92634fd3be32e1755bfcd Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Fri Jul 5 07:58:37 2013 UTC package_repo list: add missing cases It probably would be better to share code with package's list, since it is very similar. ---------------------------------------------------------------------------- diff --git a/src/bin/package_repo/command_list.cpp b/src/bin/package_repo/command_list.cpp index 5bf2c71..3b95f3e 100644 --- a/src/bin/package_repo/command_list.cpp +++ b/src/bin/package_repo/command_list.cpp @@ -69,6 +69,11 @@ struct RepositoryContentListHandler : BRepositoryContentHandler { printf("\tpackager: %s\n", value.string); break; + case B_PACKAGE_INFO_BASE_PACKAGE: + if (fVerbose) + printf("\tbase package: %s\n", value.string); + break; + case B_PACKAGE_INFO_FLAGS: if (value.unsignedInt == 0 || !fVerbose) break; @@ -183,6 +188,68 @@ struct RepositoryContentListHandler : BRepositoryContentHandler { printf("\tchecksum: %s\n", value.string); break; + case B_PACKAGE_INFO_GLOBAL_WRITABLE_FILES: + if (!fVerbose) + break; + printf("\tglobal writable file: %s", + value.globalWritableFileInfo.path); + if (value.globalWritableFileInfo.isDirectory) + printf( " directory"); + if (value.globalWritableFileInfo.updateType + < B_WRITABLE_FILE_UPDATE_TYPE_ENUM_COUNT) { + printf(" %s\n", + BPackageInfo::kWritableFileUpdateTypes[ + value.globalWritableFileInfo.updateType]); + } else + printf("\n"); + break; + + case B_PACKAGE_INFO_USER_SETTINGS_FILES: + if (!fVerbose) + break; + printf("\tuser settings file: %s", + value.userSettingsFileInfo.path); + if (value.globalWritableFileInfo.isDirectory) { + printf( " directory\n"); + } else if (value.userSettingsFileInfo.templatePath != NULL) { + printf(" template %s\n", + value.userSettingsFileInfo.templatePath); + } else + printf("\n"); + break; + + case B_PACKAGE_INFO_USERS: + if (!fVerbose) + break; + printf("\tuser: %s\n", value.user.name); + if (value.user.realName != NULL) + printf("\t\treal name: %s\n", value.user.realName); + if (value.user.home != NULL) + printf("\t\thome: %s\n", value.user.home); + if (value.user.shell != NULL) + printf("\t\tshell: %s\n", value.user.shell); + for (size_t i = 0; i < value.user.groupCount; i++) + printf("\t\tgroup: %s\n", value.user.groups[i]); + break; + + case B_PACKAGE_INFO_GROUPS: + if (!fVerbose) + break; + printf("\tgroup: %s\n", value.string); + break; + + case B_PACKAGE_INFO_POST_INSTALL_SCRIPTS: + if (!fVerbose) + break; + printf("\tpost install script: %s\n", value.string); + break; + + case B_PACKAGE_INFO_INSTALL_PATH: + if (!fVerbose) + break; + printf("\tinstall path: %s\n", value.string); + break; + default: printf( "*** Invalid package attribute section: unexpected " ############################################################################ Commit: 001e9064e047cf92879745e62ef50727af7417d7 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Fri Jul 5 07:59:34 2013 UTC LibsolvSolver: missing include ---------------------------------------------------------------------------- diff --git a/src/kits/package/solver/LibsolvSolver.cpp b/src/kits/package/solver/LibsolvSolver.cpp index 6b12780..7febfbb 100644 --- a/src/kits/package/solver/LibsolvSolver.cpp +++ b/src/kits/package/solver/LibsolvSolver.cpp @@ -10,6 +10,7 @@ #include "LibsolvSolver.h" #include <errno.h> +#include <sys/utsname.h> #include <new> ############################################################################ Commit: 43d96d8f7a57abfa1af976bdecbe0ef29693a6d1 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Fri Jul 5 08:09:38 2013 UTC haiku package-info: fix some provides/requires ---------------------------------------------------------------------------- diff --git a/src/data/package_infos/x86_gcc2/haiku b/src/data/package_infos/x86_gcc2/haiku index 64f1825..fb3ddd3 100644 --- a/src/data/package_infos/x86_gcc2/haiku +++ b/src/data/package_infos/x86_gcc2/haiku @@ -182,12 +182,14 @@ provides { cmd:zipsplit cmd:zmore cmd:znew - lib:libfreetype = 2.4.4 compat >= 2 - lib:libjpeg = 8.0 - lib:libpng = 1.4.4 compat >= 1 lib:libtiff = 3.9.4 compat >= 3 } requires { + lib:libfreetype + lib:libjpeg + lib:libpng + lib:libsolv + lib:libsolvext lib:libz } ############################################################################ Commit: 98c6dfa41e20c57edf426197a8d9aab6223a59fd Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Fri Jul 5 08:51:42 2013 UTC Switch build system from optional package to repositories * Build libsolv and the dependency solver part of the package kit for the build platform. * Add build tool get_package_dependencies. Given a list of package files and a list of repository files it determines the additional packages that need to be retrieved from the repositories and prints their URLs. * Add rules to work with external repositories in the build system (build/jam/RepositoryRules): - PackageRepository declares an external repository with all its packages. The URL of the repository file isn't specified. It is computed from a given base URL and the SHA256 hash of the list of package files. - GeneratedRepositoryPackageList generates a file containing the file names of all packages in a repository. - IsPackageAvailable returns whether a package is available in any repository. - PackageURL returns the URL for a package. * Declare the HaikuPorts repository for x86_gcc2 (build/jam/repositories/HaikuPorts/x86_gcc2). * Add rule AddHaikuImagePackages to add a package to the image and rule IsHaikuImagePackageAdded to determine whether a package has been added. * OptionalPackages: Remove all entries that just downloaded and installed an external package. AddHaikuImagePackages can be used instead and is used in the remaining entries. Also move the remaining optional package dependency declarations from OptionalPackageDependencies here. * ExtractBuildFeatureArchives: Instead of the URL parameter a package name must be specified now. This allows to simplify BuildFeatures significantly, since there's no dealing with URLs anymore. "if" out the entries that aren't supported yet. * build_haiku_image: For the packages installed in system and common resolve their dependencies and download and install them as well. ---------------------------------------------------------------------------- diff --git a/Jamfile b/Jamfile index 79880d0..dcfbf5f 100644 --- a/Jamfile +++ b/Jamfile @@ -3,28 +3,22 @@ SubDir HAIKU_TOP ; NotFile doc_files ; Depends files : doc_files ; -# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES. -if $(HAIKU_ADD_OPTIONAL_PACKAGES) { - AddOptionalHaikuImagePackages - [ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ; -} - # Prepare the optional build features before parsing the Jamfile tree. include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; # Include packages that are required by all images. -AddOptionalHaikuImagePackages MandatoryPackages ; +AddHaikuImagePackages + bzip2 ctags ffmpeg freetype glu grep icu jpeg libpng libsolv mesa sed tar + zlib + : + system + ; # If enabled, make sure that OpenSSL is added to the image. if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { - AddOptionalHaikuImagePackages OpenSSL ; + AddHaikuImagePackages openssl ; } -AddOptionalHaikuImagePackages ICU ; - -# Evaluate optional package dependencies -include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ; - # Optionally we allow not to include the "src" subdirectory. if $(HAIKU_DONT_INCLUDE_SRC) { # Don't include "src", but at least include the stuff needed for the diff --git a/Jamrules b/Jamrules index 711d802..5c47a6a 100644 --- a/Jamrules +++ b/Jamrules @@ -51,9 +51,23 @@ include [ FDirName $(HAIKU_BUILD_RULES_DIR) MainBuildRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) MiscRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) OverriddenJamRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) PackageRules ] ; +include [ FDirName $(HAIKU_BUILD_RULES_DIR) RepositoryRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) TestsRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildSetup ] ; +# Include the repositories for this architecture. +local repositoriesDirectory + = [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories ] ; +local repository ; +for repository in HaikuPorts { + local repositoryDirectory + = [ FDirName $(repositoriesDirectory) $(repository) ] ; + local file = [ Glob $(repositoryDirectory) : $(HAIKU_PACKAGING_ARCH) ] ; + if $(file) { + include $(file) ; + } +} + # Declare no-op user-overridable build rules. rule UserBuildConfigRulePostBuildTargets { } rule UserBuildConfigRulePreImage { } diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 0201dd4..b2a15f3 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -18,34 +18,17 @@ local hpkgBaseURL = http://haiku-files.org/files/hpkg ; # SSL -# Automatically enable the SSL feature, when the optional OpenSSL optional -# package is enabled. -if [ IsOptionalHaikuImagePackageAdded OpenSSL ] { +# Automatically enable the SSL feature, when the OpenSSL package is enabled. +if [ IsHaikuImagePackageAdded openssl ] { HAIKU_BUILD_FEATURE_SSL = 1 ; } if $(HAIKU_BUILD_FEATURE_SSL) { - if $(TARGET_ARCH) in x86 x86_64 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - if $(TARGET_ARCH) = x86_64 { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86_64-2012-12-18.zip ; - } else { - HAIKU_OPENSSL_PACKAGE - = openssl-1.0.0j-r1a4-x86-gcc4-2012-08-29.zip ; - } - } else { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-2-x86_gcc2.hpkg ; - HAIKU_OPENSSL_DEVEL_PACKAGE = openssl_devel-1.0.0j-2-x86_gcc2.hpkg ; - } - - HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ; - HAIKU_OPENSSL_DEVEL_URL - = $(hpkgBaseURL)/$(HAIKU_OPENSSL_DEVEL_PACKAGE) ; - + if [ IsPackageAvailable openssl_devel ] { ExtractBuildFeatureArchives openssl : - file: base $(HAIKU_OPENSSL_URL) + file: base openssl runtime: lib - file: devel $(HAIKU_OPENSSL_DEVEL_URL) + file: devel openssl_devel depends: base libraries: develop/lib/libcrypto.so develop/lib/libssl.so headers: develop/headers @@ -61,31 +44,11 @@ if $(HAIKU_BUILD_FEATURE_SSL) { # ICU # Note ICU isn't actually optional, but is still an external package -if $(TARGET_ARCH) in arm ppc x86 x86_64 { - if $(TARGET_ARCH) = ppc { - HAIKU_ICU_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ; - HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1-ppc-2011-12-19.zip ; - } else if $(TARGET_ARCH) = arm { - HAIKU_ICU_PACKAGE = icu-4.8.1.1-arm-2012-11-21.zip ; - HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-arm-2012-11-21.zip ; - } else if $(TARGET_ARCH) = x86_64 { - HAIKU_ICU_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ; - HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86_64-2012-07-30.zip ; - } else if $(HAIKU_GCC_VERSION[1]) = 2 { - HAIKU_ICU_PACKAGE = icu-4.8.1.1-3-x86_gcc2.hpkg ; - HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-3-x86_gcc2.hpkg ; - } else { - HAIKU_ICU_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ; - HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86-gcc4-2011-12-20.zip ; - } - - HAIKU_ICU_URL = $(hpkgBaseURL)/$(HAIKU_ICU_PACKAGE) ; - HAIKU_ICU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ; - +if [ IsPackageAvailable icu_devel ] { ExtractBuildFeatureArchives icu : - file: base $(HAIKU_ICU_URL) + file: base icu runtime: lib - file: devel $(HAIKU_ICU_DEVEL_URL) + file: devel icu_devel depends: base libraries: develop/lib/libicudata.so @@ -106,9 +69,12 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { # CLucene -# Automatically install the CLucene feature, when the optional CLucene optional -# package is enabled. -if [ IsOptionalHaikuImagePackageAdded CLucene ] { +# TODO: Update to packages! +if ! 1 { + +# Automatically install the CLucene feature, when the CLucene package is +# enabled. +if [ IsHaikuImagePackageAdded clucene ] { HAIKU_BUILD_FEATURE_CLUCENE = 1 ; } @@ -148,6 +114,11 @@ if $(HAIKU_BUILD_FEATURE_CLUCENE) { } } +} # ! 1 + + +# TODO: Update to packages! +if ! 1 { # LLVM if $(TARGET_ARCH) = x86 { @@ -260,24 +231,15 @@ if $(TARGET_ARCH) = x86 { Echo "LLVM not yet available on $(TARGET_ARCH)" ; } +} # ! 1 -# GLU (GL Utilities) -if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - # TODO:... - HAIKU_GLU_PACKAGE = glu-9.0-x86-gcc4-2012-11-13.zip ; - } else { - HAIKU_GLU_PACKAGE = glu-9.0.0-1-x86_gcc2.hpkg ; - HAIKU_GLU_DEVEL_PACKAGE = glu_devel-9.0.0-1-x86_gcc2.hpkg ; - } - - HAIKU_GLU_URL = $(hpkgBaseURL)/$(HAIKU_GLU_PACKAGE) ; - HAIKU_GLU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE) ; +# GLU (GL Utilities) +if [ IsPackageAvailable glu_devel ] { ExtractBuildFeatureArchives glu : - file: base $(HAIKU_GLU_URL) + file: base glu runtime: lib - file: devel $(HAIKU_GLU_DEVEL_URL) + file: devel glu_devel depends: base library: develop/lib/libGLU.so headers: develop/headers @@ -290,21 +252,9 @@ if $(TARGET_ARCH) = x86 { # Mesa -if $(TARGET_ARCH) = x86 { - local zipFile ; - if $(HAIKU_GCC_VERSION[1]) >= 4 { - # TODO:... - HAIKU_MESA_PACKAGE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ; - } else { - HAIKU_MESA_PACKAGE = mesa-7.8.2-3-x86_gcc2.hpkg ; - HAIKU_MESA_DEVEL_PACKAGE = mesa_devel-7.8.2-3-x86_gcc2.hpkg ; - } - - HAIKU_MESA_URL = $(hpkgBaseURL)/$(HAIKU_MESA_PACKAGE) ; - HAIKU_MESA_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_MESA_DEVEL_PACKAGE) ; - +if [ IsPackageAvailable mesa_devel ] { ExtractBuildFeatureArchives mesa : [ FFilterByBuildFeatures - file: devel $(HAIKU_MESA_DEVEL_URL) + file: devel mesa_devel mesaLibrary: develop/lib/libmesa.a glapiLibrary: develop/lib/libglapi.a headers: develop/headers @@ -332,31 +282,7 @@ if $(TARGET_ARCH) = x86 { # FFmpeg -local ffmpegBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - # TODO:... - HAIKU_FFMPEG_PACKAGE = ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_SPEEX_PACKAGE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBTHEORA_PACKAGE = libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBVORBIS_PACKAGE = libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBOGG_PACKAGE = libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBVPX_PACKAGE = libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ; - } else { - HAIKU_FFMPEG_PACKAGE = ffmpeg-0.10.2-2-x86_gcc2.hpkg ; - HAIKU_FFMPEG_DEVEL_PACKAGE = ffmpeg_devel-0.10.2-2-x86_gcc2.hpkg ; - HAIKU_SPEEX_PACKAGE = speex-1.2~rc1-1-x86_gcc2.hpkg ; - HAIKU_SPEEX_DEVEL_PACKAGE = speex_devel-1.2~rc1-1-x86_gcc2.hpkg ; - HAIKU_LIBTHEORA_PACKAGE = libtheora-1.1.1-1-x86_gcc2.hpkg ; - HAIKU_LIBTHEORA_DEVEL_PACKAGE = libtheora_devel-1.1.1-1-x86_gcc2.hpkg ; - HAIKU_LIBVORBIS_PACKAGE = libvorbis-1.3.2-1-x86_gcc2.hpkg ; - HAIKU_LIBVORBIS_DEVEL_PACKAGE = libvorbis_devel-1.3.2-1-x86_gcc2.hpkg ; - HAIKU_LIBOGG_PACKAGE = libogg-1.3.0-1-x86_gcc2.hpkg ; - HAIKU_LIBOGG_DEVEL_PACKAGE = libogg_devel-1.3.0-1-x86_gcc2.hpkg ; - HAIKU_LIBVPX_PACKAGE = libvpx-1.0.0-1-x86_gcc2.hpkg ; - HAIKU_LIBVPX_DEVEL_PACKAGE = libvpx_devel-1.0.0-1-x86_gcc2.hpkg ; - } - +if [ IsPackageAvailable ffmpeg_devel ] { local ffmpegLibs = libavformat.so libavcodec.so libavdevice.so libavfilter.so libswscale.so libavutil.so ; local speexLibs = libspeex.so ; @@ -367,14 +293,10 @@ if $(TARGET_ARCH) = x86 { local feature ; for feature in ffmpeg speex libtheora libvorbis libogg libvpx { - HAIKU_$(feature:U)_URL = $(hpkgBaseURL)/$(HAIKU_$(feature:U)_PACKAGE) ; - HAIKU_$(feature:U)_DEVEL_URL - = $(hpkgBaseURL)/$(HAIKU_$(feature:U)_DEVEL_PACKAGE) ; - ExtractBuildFeatureArchives $(feature) : - file: base $(HAIKU_$(feature:U)_URL) + file: base $(feature) runtime: lib - file: devel $(HAIKU_$(feature:U)_DEVEL_URL) + file: devel $(feature)_devel depends: base libraries: develop/lib/$($(feature)Libs) headers: develop/headers @@ -388,28 +310,11 @@ if $(TARGET_ARCH) = x86 { # Freetype -local freetypeBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) in arm ppc x86 x86_64 { - if $(TARGET_ARCH) = arm { - HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-arm-2012-11-21.zip ; - } else if $(TARGET_ARCH) = ppc { - HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ; - } else if $(TARGET_ARCH) = x86_64 { - HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-x86_64-2012-08-04.zip ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ; - } else { - HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-2-x86_gcc2.hpkg ; - HAIKU_FREETYPE_DEVEL_PACKAGE = freetype_devel-2.4.9-2-x86_gcc2.hpkg ; - } - - HAIKU_FREETYPE_URL = $(hpkgBaseURL)/$(HAIKU_FREETYPE_PACKAGE) ; - HAIKU_FREETYPE_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_FREETYPE_DEVEL_PACKAGE) ; - +if [ IsPackageAvailable freetype_devel ] { ExtractBuildFeatureArchives freetype : - file: base $(HAIKU_FREETYPE_URL) + file: base freetype runtime: lib - file: devel $(HAIKU_FREETYPE_DEVEL_URL) + file: devel freetype_devel depends: base library: develop/lib/libfreetype.so headers: develop/headers develop/headers/freetype2 @@ -423,9 +328,12 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { # TagLib +# TODO: Update to packages! +if ! 1 { + # Automatically install the TagLib feature, when the optional TagLib optional # package is enabled. -if [ IsOptionalHaikuImagePackageAdded TagLib ] { +if [ IsHaikuImagePackageAdded taglib ] { HAIKU_BUILD_FEATURE_TAGLIB = 1 ; } @@ -465,8 +373,14 @@ if $(HAIKU_BUILD_FEATURE_TAGLIB) { } } +} # ! 1 + # WebKit + +# TODO: Update to packages! +if ! 1 { + # Automatically install the WebKit feature, when the optional WebPositive # optional package is enabled. if [ IsOptionalHaikuImagePackageAdded WebPositive ] { @@ -513,29 +427,15 @@ if $(HAIKU_BUILD_FEATURE_WEBKIT) { } } -# libpng -local libpngBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) in arm ppc x86 x86_64 { - if $(TARGET_ARCH) = arm { - HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-arm-2012-11-21.zip ; - } else if $(TARGET_ARCH) = ppc { - HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ; - } else if $(TARGET_ARCH) = x86_64 { - HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86_64-2012-11-18.zip ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ; - } else { - HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-2-x86_gcc2.hpkg ; - HAIKU_LIBPNG_DEVEL_PACKAGE = libpng_devel-1.5.12-2-x86_gcc2.hpkg ; - } +} # ! 1 - HAIKU_LIBPNG_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_PACKAGE) ; - HAIKU_LIBPNG_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_DEVEL_PACKAGE) ; +# libpng +if [ IsPackageAvailable libpng_devel ] { ExtractBuildFeatureArchives libpng : - file: base $(HAIKU_LIBPNG_URL) + file: base libpng runtime: lib - file: devel $(HAIKU_LIBPNG_DEVEL_URL) + file: devel libpng_devel depends: base library: develop/lib/libpng.so headers: develop/headers @@ -546,29 +446,13 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { Echo "libpng support not available on $(TARGET_ARCH)" ; } -# jpeg -local jpegBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) in arm ppc x86 x86_64 { - if $(TARGET_ARCH) = arm { - HAIKU_JPEG_PACKAGE = jpeg-8d-arm-2012-11-21.zip ; - } else if $(TARGET_ARCH) = ppc { - HAIKU_JPEG_PACKAGE = jpeg-8d-ppc-gcc4-2012-08-27.zip ; - } else if $(TARGET_ARCH) = x86_64 { - HAIKU_JPEG_PACKAGE = jpeg-8d-x86_64-2012-11-18.zip ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_JPEG_PACKAGE = jpeg-8d-x86-gcc4-2012-08-23.zip ; - } else { - HAIKU_JPEG_PACKAGE = jpeg-9-2-x86_gcc2.hpkg ; - HAIKU_JPEG_DEVEL_PACKAGE = jpeg_devel-9-2-x86_gcc2.hpkg ; - } - - HAIKU_JPEG_URL = $(hpkgBaseURL)/$(HAIKU_JPEG_PACKAGE) ; - HAIKU_JPEG_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_JPEG_DEVEL_PACKAGE) ; +# jpeg +if [ IsPackageAvailable jpeg_devel ] { ExtractBuildFeatureArchives jpeg : - file: base $(HAIKU_JPEG_URL) + file: base jpeg runtime: lib - file: devel $(HAIKU_JPEG_DEVEL_URL) + file: devel jpeg_devel depends: base library: develop/lib/libjpeg.so headers: develop/headers @@ -581,33 +465,15 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { # zlib -if $(TARGET_ARCH) in arm ppc x86 x86_64 { - if $(TARGET_ARCH) = arm { - HAIKU_ZLIB_PACKAGE = zlib-1.2.7-arm-2012-11-21.zip ; - } else if $(TARGET_ARCH) = ppc { - HAIKU_ZLIB_PACKAGE = zlib-1.2.7-ppc-gcc4-2012-10-30.zip ; - } else if $(TARGET_ARCH) = x86_64 { - HAIKU_ZLIB_PACKAGE = zlib-1.2.7-x86_64-2012-11-18.zip ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_ZLIB_PACKAGE = zlib-1.2.7-x86-gcc4-2012-10-30.zip ; - } else { - HAIKU_ZLIB_PACKAGE = zlib-1.2.8-2-x86_gcc2.hpkg ; - HAIKU_ZLIB_DEVEL_PACKAGE = zlib_devel-1.2.8-2-x86_gcc2.hpkg ; - } - HAIKU_ZLIB_SOURCE_PACKAGE = zlib_source-1.2.8-2-source.hpkg ; - - HAIKU_ZLIB_URL = $(hpkgBaseURL)/$(HAIKU_ZLIB_PACKAGE) ; - HAIKU_ZLIB_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_ZLIB_DEVEL_PACKAGE) ; - HAIKU_ZLIB_SOURCE_URL = $(hpkgBaseURL)/$(HAIKU_ZLIB_SOURCE_PACKAGE) ; - +if [ IsPackageAvailable zlib_devel ] { ExtractBuildFeatureArchives zlib : - file: base $(HAIKU_ZLIB_URL) + file: base zlib runtime: lib - file: devel $(HAIKU_ZLIB_DEVEL_URL) + file: devel zlib_devel depends: base library: develop/lib/libz.so headers: develop/headers - file: source $(HAIKU_ZLIB_SOURCE_URL) + file: source zlib_source sources: develop/sources/zlib-1.2.8-2/source ; @@ -617,33 +483,22 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { } -# LibSolv - -if $(TARGET_ARCH) != x86 { - Echo "Libsolv not available for $(TARGET_ARCH)." ; -} else if $(HAIKU_GCC_VERSION[1]) = 2 { - HAIKU_LIBSOLV_PACKAGE - = libsolv-0.3.0_haiku_2013_06_16-1-x86_gcc2.hpkg ; - HAIKU_LIBSOLV_DEVEL_PACKAGE - = libsolv_devel-0.3.0_haiku_2013_06_16-1-x86_gcc2.hpkg ; -} else { - Echo "Libsolv not available for gcc4." ; -} - -if $(HAIKU_LIBSOLV_PACKAGE) { - HAIKU_LIBSOLV_URL = $(hpkgBaseURL)/$(HAIKU_LIBSOLV_PACKAGE) ; - HAIKU_LIBSOLV_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_LIBSOLV_DEVEL_PACKAGE) ; - +# libsolv +if [ IsPackageAvailable libsolv_devel ] { ExtractBuildFeatureArchives libsolv : - file: base $(HAIKU_LIBSOLV_URL) + file: base libsolv runtime: lib - file: devel $(HAIKU_LIBSOLV_DEVEL_URL) + file: devel libsolv_devel depends: base libraries: develop/lib/libsolv.so develop/lib/libsolvext.so headers: develop/headers + file: source libsolv_source + sources: develop/sources/libsolv-0.3.0_haiku_2013_06_16-1/source ; EnableBuildFeatures libsolv ; +} else { + Echo "libsolv package not available for $(TARGET_ARCH)" ; } diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index a12fdde..4770510 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -1120,6 +1120,10 @@ if $(HOST_PLATFORM_IS_64_BIT) { HOST_DEFINES += HAIKU_HOST_PLATFORM_64_BIT ; } +# define Haiku packaging architecture macro for host build +HOST_DEFINES += HAIKU_PACKAGING_ARCH=\\\"$(HAIKU_PACKAGING_ARCH)\\\" ; + + #pragma mark - # In case we build for a BeOS compatible platform, but not for Haiku, we diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 4a53e69..df1fc22 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -393,6 +393,7 @@ Always $(script) ; AddVariableToScript $(script) : sourceDir : $(HAIKU_TOP) ; AddVariableToScript $(script) : outputDir : $(HAIKU_OUTPUT_DIR) ; AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ; +AddVariableToScript $(script) : downloadDir : $(HAIKU_DOWNLOAD_DIR) ; AddVariableToScript $(script) : installDir : $(HAIKU_INSTALL_DIR) ; #AddVariableToScript $(script) : isImage : 1 ; AddVariableToScript $(script) : imageSize : $(HAIKU_IMAGE_SIZE) ; @@ -410,6 +411,8 @@ AddTargetVariableToScript $(script) : <build>makebootable ; AddTargetVariableToScript $(script) : <build>package ; AddTargetVariableToScript $(script) : <build>rc ; AddTargetVariableToScript $(script) : <build>resattr ; +AddTargetVariableToScript $(script) : <build>get_package_dependencies + : getPackageDependencies ; AddTargetVariableToScript $(script) : <build>unzip ; AddTargetVariableToScript $(script) : <build>vmdkimage ; AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ; @@ -423,16 +426,57 @@ if $(optionalPackageDescriptions) { : optionalPackageDescriptions ; } -# add a variable "packages" with the packages copied/updated +# Add a variable to indicate whether packages dependencies shall be resolved. We +# always want to do that in non-update mode, but also in update mode when all +# packages are updated. +local resolvePackageDependencies ; +if ! [ IsUpdateHaikuImageOnly ] || $(HAIKU_UPDATE_ALL_PACKAGES) { + resolvePackageDependencies = 1 ; +} +AddVariableToScript $(script) : resolvePackageDependencies + : $(resolvePackageDependencies) ; + +# Add variables "systemPackages" and "commonPackages" with the packages +# copied/updated. local container = $(HAIKU_IMAGE_CONTAINER_NAME) ; -local packages = [ on $(container) return $(HAIKU_PACKAGES_IN_IMAGE) ] ; +local allPackages = [ on $(container) return $(HAIKU_PACKAGES_IN_IMAGE) ] ; if [ on $(container) return $(HAIKU_CONTAINER_UPDATE_ONLY) ] && ! [ IncludeAllTargetsInContainer $(container) ] { - packages = [ FilterContainerUpdateTargets $(packages) + allPackages = [ FilterContainerUpdateTargets $(allPackages) : HAIKU_INCLUDE_IN_IMAGE ] ; } -AddTargetVariableToScript $(script) : $(packages) : packages ; +local systemPackages ; +local commonPackages ; +local package ; +for package in $(allPackages) { + if [ on $(package) return $(HAIKU_PACKAGE_INSTALLATION_LOCATION) ] + = system { + systemPackages += $(package) ; + } else { + commonPackages += $(package) ; + } +} + +AddTargetVariableToScript $(script) : $(systemPackages) : systemPackages ; +AddTargetVariableToScript $(script) : $(commonPackages) : commonPackages ; + +# Generate the repository package lists and add variables for the repositories. +local repository ; +for repository in $(HAIKU_REPOSITORIES) { + local packageListFile = $(repository:G=repository-package-list) ; + MakeLocate $(packageListFile) + : [ FDirName $(TARGET_OBJECT_BASE_DIR) $(HAIKU_PACKAGING_ARCH) ] ; + Always $(packageListFile) ; + GeneratedRepositoryPackageList $(packageListFile) : $(repository) ; + + AddTargetVariableToScript $(script) : $(packageListFile) + : repositoryPackageList_$(repository:G=) ; + AddVariableToScript $(script) : repositoryUrl_$(repository:G=) + : [ on $(repository) return $(HAIKU_REPOSITORY_URL) ] ; +} + +AddVariableToScript $(script) : repositories : $(HAIKU_REPOSITORIES:G=) ; # create the other scripts HAIKU_IMAGE_MAKE_DIRS_SCRIPT = <HaikuImage>haiku.image-make-dirs ; diff --git a/build/jam/ImageRules b/build/jam/ImageRules index e73b731..2faabf4 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -947,6 +947,7 @@ rule AddPackageFilesToHaikuImage location : packages HAIKU_PACKAGES_IN_IMAGE on $(HAIKU_IMAGE_CONTAINER_NAME) = [ on $(HAIKU_IMAGE_CONTAINER_NAME) return $(HAIKU_PACKAGES_IN_IMAGE) ] $(packages) ; + HAIKU_PACKAGE_INSTALLATION_LOCATION on $(packages) = $(location) ; AddFilesToHaikuImage $(location) packages : $(packages) ; } @@ -997,6 +998,43 @@ rule OptionalPackageDependencies package : dependencies } } + +rule AddHaikuImagePackages packages : installationLocation +{ + # AddHaikuImagePackages <packages> [ : <installationLocation> ] ; + # Adds the given package <packages>s to the image. <installationLocation> + # is either "system" or "common" (the default) and specifies where the + # packages shall be installed. + + local package ; + for package in $(packages) { + if ! [ on $(package) return $(HAIKU_PACKAGE_ADDED) ] { + if ! [ IsPackageAvailable $(package) ] { + Echo "AddHaikuImagePackages: package" $(package) + "not available!" ; + continue ; + } + + HAIKU_PACKAGE_ADDED on $(package) = 1 ; + HAIKU_ADDED_PACKAGES += $(package) ; + + InstallOptionalHaikuImagePackage [ PackageURL $(package) ] + : $(installationLocation) ; + } + } +} + + +rule IsHaikuImagePackageAdded package +{ + if [ on $(package) return $(HAIKU_PACKAGE_ADDED) ] { + return 1 ; + } + + return ; +} + + rule InstallSourceArchive file : url { if $(HAIKU_INCLUDE_SOURCES) = 1 { diff --git a/build/jam/MiscRules b/build/jam/MiscRules index 10108ad..dc2a185 100644 --- a/build/jam/MiscRules +++ b/build/jam/MiscRules @@ -695,7 +695,7 @@ rule ExtractBuildFeatureArchives feature : list } local package = $(list[2]) ; - local url = $(list[3]) ; + local url = [ PackageURL $(list[3]) ] ; local fileName = $(url:BS) ; list = $(list[4-]) ; diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies deleted file mode 100644 index 74873df..0000000 --- a/build/jam/OptionalPackageDependencies +++ /dev/null @@ -1,52 +0,0 @@ - -# package dependencies - -OptionalPackageDependencies APR-util : APR Expat ; -OptionalPackageDependencies AllegroLibs : XiphLibs ; -OptionalPackageDependencies ArmyKnife : TagLib ; -OptionalPackageDependencies Beam : LibIconv LibLayout OpenSSL PCRE ; -OptionalPackageDependencies BeHappy : BeBook NetSurf ; -OptionalPackageDependencies BurnItNow : CDRecord ; -OptionalPackageDependencies Caya : Expat ; -OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; -OptionalPackageDependencies Curl : OpenSSL ; -OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; -OptionalPackageDependencies Development : - DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Jpeg Libpng-devel Perl - Zlib-devel - ; -OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; -OptionalPackageDependencies GetText : GetTextLibintl ; -OptionalPackageDependencies GetTextLibintl : LibIconv ; -OptionalPackageDependencies Git : Expat Curl LibIconv Man OpenSSL Perl Python ; -OptionalPackageDependencies ICU-devel : DevelopmentBase ; -OptionalPackageDependencies LibEdit : NCurses ; -OptionalPackageDependencies LibLayout : DevelopmentBase ; -OptionalPackageDependencies LibSolv : Expat ; -OptionalPackageDependencies LibXML2 : XZ-Utils ; -OptionalPackageDependencies Man : Groff ; -OptionalPackageDependencies Tar : LibIconv ; -OptionalPackageDependencies Python : Bzip OpenSSL SQLite Readline ; -OptionalPackageDependencies Mercurial : Python ; -OptionalPackageDependencies Nano : NCurses ; -OptionalPackageDependencies Neon : LibXML2 ; -OptionalPackageDependencies NetFS : UserlandFS ; -OptionalPackageDependencies NetSurf : OpenSSL Curl LibXML2 LibIconv Libmng ; -OptionalPackageDependencies OpenSSH : LibEdit OpenSSL ; -OptionalPackageDependencies OpenSSL : CARootCertificates ; -OptionalPackageDependencies Paladin : CCache Fastdep PCRE ; -OptionalPackageDependencies Pe : PCRE ; -OptionalPackageDependencies Readline : NCurses ; -OptionalPackageDependencies SDLLibs : XiphLibs libmad libmikmod Libmng libmodplug physfs ; -OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 OpenSSL SQLite ; -OptionalPackageDependencies Transmission : LibEvent Curl OpenSSL LibIconv ; -OptionalPackageDependencies Vim : GetTextLibintl LibIconv ; -OptionalPackageDependencies WebPositive : Curl LibXML2 SQLite WebKit WebPositiveBookmarks ; -OptionalPackageDependencies wpa_supplicant : OpenSSL ; -OptionalPackageDependencies XZ-Utils : Tar ; -OptionalPackageDependencies Zlib-devel : Zlib ; - -OptionalPackageDependencies MandatoryPackages : - Bzip Ctags FFMpeg FreeType GLU Grep ICU Jpeg Libpng LibSolv Mesa Sed Tar - Zlib - ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index d829184..895cc2a 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -1,279 +1,58 @@ # This file defines the optional packages that can be added to the Haiku image. # It is directly included from HaikuImage -- all variables defined there can -# be used - +# be used. # Available Optional Packages: -# ABI-compliance-checker - tool for checking ABI compatibility between libs -# APR - support libraries used for example by Subversion -# APR-util - Apache portable runtime utility library -# ArmyKnife - tool for editing audio file metadata and attributes -# Bazaar - the distributed version control system -# BeAE - open source Audio Editor -# Beam - powerful native e-mail client -# BeBook - the classic BeOS API documentation -# BeHappy - special documentation (i.e. BeBook) browser # BeOSCompatibility - creates links within the system to support old apps -# BePDF - native PDF reader -# BeZillaBrowser - fork of Mozilla's 1.8 branch. # Bluetooth - experimental Haiku components for Bluetooth -# BurnItNow - CD burning app -# Bzip - file archiving utility -# CARootCertificates - bundle with trusted CA root certificates -# Caya - a multiprotocol im client -# CCache - fast compiler cache -# CDRecord - the command line CD writing tools -# Clang - the LLVM C and C++ compiler (llvm, libs, headers) -# Clockwerk - native audio/video compositing -# CLucene - indexed file search -# CMake - cross platform make -# Colors! - color picker application -# Ctags - exuberant ctags (source files indexing) -# Curl - a client that groks URLs -# CVS - the version control system -# DemoPackage_Audio - a collection of audio files suitable for demonstrations -# DemoPackage_Data - a collection of data files suitable for demonstrations -# DemoPackage_Image - a collection of image files suitable for demonstrations -# DemoPackage_Video - a collection of video files suitable for demonstrations # Development - more complete dev environment (including autotools) # DevelopmentBase - basic development environment (gcc, headers, libs,...) # DevelopmentJava - JamVM, a Java Virtual machine, GNU Classpath, ECJ # DevelopmentMin - development headers, libs, tools, from sources only # DevelopmentPowerPC - Cross compiling environment for PowerPC -# Doxygen - Generate documentation from source code -# Droid - Font family from Google's Android project -# Expat - XML parsing libraries -# Fastdep - fast dependency generator for C/C++ files # FFMpeg - audio/video library # FFMpeg-devel - FFMpeg development files -# FreeType - A Free, High-Quality, and Portable Font Engine -# FreeType-devel - FreeType development files -# friss - RSS/ATOM/... feeds reader -# GetText - a framework to help produce multi-lingual messages. -# GetTextLibintl - GetText's libintl # Git - the distributed version control system -# GLU - OpenGL Utilities -# GLU-devel - GLU development files -# GPerf - the perfect hash function generator. -# Grep - program to search for strings inside a file -# Groff - text formatter used for man pages -# HGrep - header grep tool -# ICU-devel - the headers and lib-links for ICU (for development) -# Jpeg - JPEG image compression library and tools -# Jpeg-devel - the Jpeg development files -# KeymapSwitcher - Easy to use keymap switcher -# LGrep - Library Grep tool -# LibEdit - A BSD licensed replacement for GNU readline -# LibEvent - An event notification library -# LibIconv - text encoding conversion library -# LibLayout - GCC2 package needed by some BeOS apps to compile -# Libmng - mng support library -# Libpng - Portable Network Graphics library -# Libpng-devel - Libpng development files -# LibSolv - package dependency solver library -# LibXML2 - the XML support library -# LibXSLT - xslt library and utility -# Links - the web browser -# Lua - the scripting language -# Man - standard commands to read man pages -# Mercurial - the distributed version control system -# Nano - the command line text editor -# Nanumfont - Korean monospace font -# NCurses - the new curses library -# Neon - support libraries used for example by SVN # NetFS - the native networked file system components -# NetSurf - the web browser -# OCaml - the Objective Caml language -# OpenSound - additional audio driver package -# OpenSSH - the secure shell -# OpenSSL - secure sockets library -# P7zip - file archiving utility -# Paladin - a Haiku IDE -# PCRE - the (Perl-compatible) regex engine -# Pe - the powerful native Programmer's Editor -# Perl - the scripting language -# Python - the scripting language -# Puri - chess game -# Readline - the GNU Readline library -# Rsync - remote directory synchronization -# Ruby - the programming language -# Sed - the ultimate stream editor -# SQLite - the database implementation -# Subversion - the version control system -# System-sounds - a collection of system sounds -# TagLib - id3 tag library -# Tar - archiving utility -# TimGMSoundFont - a good quality General MIDI Sound Font -# Transmission - a fast, easy, and free BitTorrent Client -# UnRAR - utility to list, test and extract RAR archives # UserlandFS - aids native file system development (like FUSE) -# Vim - Vi IMproved. Highly configurable text editor -# Vision - powerful native IRC client # WebPositive - native, WebKit-based web browser # WebPositiveBookmarks - bookmarks for WebPositive # Welcome - introductory documentation to Haiku # WifiFirmwareScriptData - data files needed by install-wifi-firmwares.sh -# WonderBrush - native graphics application -# wpa_supplicant - a WPA Supplicant with support for WPA and WPA2 -# WQY-MicroHei - Chinese font -# XZ-Utils - file archiving utility -# Yasm - the assembler utility -# Zlib - the zlib library -# Zlib-devel - the zlib library development files - -local baseURL = http://haiku-files.org/files/optional-packages ; -local hpkgBaseURL = http://haiku-files.org/files/hpkg ; -local baseSourceURL = http://haiku-files.org/files/sources ; - -# ABI-compliance-checker -if [ IsOptionalHaikuImagePackageAdded ABI-compliance-checker ] { - if $(HAIKU_GCC_VERSION[1]) < 4 { - Echo "No optional package ABI-compliance-checker for gcc2" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip ; - } -} - - -# APR -if [ IsOptionalHaikuImagePackageAdded APR ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/apr-1.4.6-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/apr-1.4.6-7-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/apr-1.4.6-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package APR available for $(TARGET_ARCH)" ; - } -} - - -# APR-util -if [ IsOptionalHaikuImagePackageAdded APR-util ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/apr-util-1.4.1-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/apr_util-1.4.1-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/apr-util-1.4.1-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package APR-util available for $(TARGET_ARCH)" ; - } -} - - -# ArmyKnife -if [ IsOptionalHaikuImagePackageAdded ArmyKnife ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package ArmyKnife available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - Echo "No optional package ArmyKnife for gcc4" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/armyknife-63-r1a4-x86-gcc2-2012-08-30.zip ; - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/common/apps/ArmyKnife/ArmyKnife ; - } -} - - -# Bazaar -if [ IsOptionalHaikuImagePackageAdded Bazaar ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Bazaar available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/bzr-2.6b1-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/bzr-2.5.1-r1a4-x86-gcc2-2012-08-27.zip ; - } -} -# BeAE -if [ IsOptionalHaikuImagePackageAdded BeAE ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package BeAE available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/beae-22-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/beae-22-r1a4-x86-gcc2-2012-08-27.zip ; - } - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/common/apps/BeAE/BeAE ; - } -} +# dependencies between optional packages +OptionalPackageDependencies Development : DevelopmentBase ; +OptionalPackageDependencies DevelopmentBase : DevelopmentMin ; +OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; +OptionalPackageDependencies NetFS : UserlandFS ; +OptionalPackageDependencies WebPositive : WebPositiveBookmarks ; -# Beam -if [ IsOptionalHaikuImagePackageAdded Beam ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Beam available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/beam-1.2alpha-r1a4-x86-gcc4-2012-09-12.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/beam-1.2alpha-r1a4-x86-gcc2-2012-08-29.zip ; - } - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/common/apps/Beam/Beam ; - } -} +local baseURL = http://haiku-files.org/files/optional-packages ; +local hpkgBaseURL = http://haiku-files.org/files/hpkg ; +local baseSourceURL = http://haiku-files.org/files/sources ; # BeBook if [ IsOptionalHaikuImagePackageAdded BeBook ] { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/be_book-2008_10_26-1-any.hpkg - : system ; + AddHaikuImagePackages be_book ; AddSymlinkToHaikuImage home Desktop : /boot/system/documentation/BeBook/index.html : BeBook ; } -# BeHappy -if [ IsOptionalHaikuImagePackageAdded BeHappy ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package BeHappy available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - Echo "No optional package BeHappy available for gcc4" ; - } else { - Echo "No optional package BeHappy available for gcc2" ; - } -} - - # BeOSCompatibility if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] { if $(TARGET_ARCH) != x86 { - Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ; + Echo "No optional package BeOSCompatibility available for" + "$(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { Echo "No optional package BeOSCompatibility available for gcc4" ; } else { - Echo "Warning: Adding BeOS compatibility symlinks. This will go away. Please fix your apps!" ; + Echo "Warning: Adding BeOS compatibility symlinks. This will go away." + "Please fix your apps!" ; AddSymlinkToHaikuImage beos : ../system/apps ; AddSymlinkToHaikuImage beos : ../system/bin ; AddSymlinkToHaikuImage beos @@ -288,479 +67,69 @@ if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] { } -# BePDF -if [ IsOptionalHaikuImagePackageAdded BePDF ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package BePDF available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/bepdf-1.1.1b4-x86-gcc4-2012-08-11.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/bepdf-1.1.1~beta5_2013_04_28-1-x86_gcc2.hpkg ; - } - } -} - - -# BeZillaBrowser -if [ IsOptionalHaikuImagePackageAdded BeZillaBrowser ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package BeZillaBrowser available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/BeZillaBrowser-2.0.0.22pre-x86-gcc4-2012-09-21.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/bezillabrowser-2.0.0.22pre_2010_05_02-1-x86_gcc2.hpkg ; - } - } -} - - # Bluetooth stack if [ IsOptionalHaikuImagePackageAdded Bluetooth ] { - local bluetoothDrivers = h2generic ; - AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ; - AddFilesToHaikuImage system servers : bluetooth_server ; - AddFilesToHaikuImage system lib : libbluetooth.so ; - AddFilesToHaikuImage - system add-ons kernel network protocols : l2cap ; - AddFilesToHaikuImage system add-ons kernel bluetooth - : btCoreData hci ; - AddFilesToHaikuImage system preferences : Bluetooth ; - AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ; - AddSymlinkToHaikuImage home config settings deskbar menu Preferences - : /boot/system/preferences/Bluetooth ; - if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] - && $(HAIKU_GCC_VERSION[1]) in 2 4 { - local arch = $(TARGET_ARCH) ; - local abi = gcc$(HAIKU_GCC_VERSION[1]) ; - AddSymlinkToHaikuImage system develop lib - : /system/lib libbluetooth.so ; - } -} - - -# BurnItNow -if [ IsOptionalHaikuImagePackageAdded BurnItNow ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package BurnItNow available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/burnitnow-39-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/burnitnow-39-r1a4-x86-gcc2-2012-08-27.zip ; - } - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/common/apps/BurnItNow/BurnItNow ; - } -} - - -# Bzip -if [ IsOptionalHaikuImagePackageAdded Bzip ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/bzip2-1.0.6-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/bzip2-1.0.6-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/bzip2-1.0.6-x86_64-2012-08-16.zip - : : cdPackage ; - } else { - Echo "No optional package Bzip available for $(TARGET_ARCH)" ; - } -} - - -# CARootCertificates -if [ IsOptionalHaikuImagePackageAdded CARootCertificates ] { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/cert-2012-07-04.zip - : common data ssl ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/ca_root_certificates-2012_12_29-1-any.hpkg ; - } -} - - -# Caya -if [ IsOptionalHaikuImagePackageAdded Caya ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Caya available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/caya-279-r1a4-x86-gcc4-2012-10-02.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/caya-gpl-protocols-36-r1a4-x86-gcc4-2012-10-01.zip - : : cdPackage ; - AddSymlinkToHaikuImage home config be Applications - : /boot/common/apps/Caya/Caya ; - } else { - Echo "No optional package Caya available for $(TARGET_ARCH)-gcc2" ; - } - } -} - -# CCache -if [ IsOptionalHaikuImagePackageAdded CCache ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/ccache-3.0.1-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/ccache-3.0.1-r1a4-x86-gcc2-2012-08-27.zip ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/ccache-3.0.1-x86_64-2012-12-08.zip ; - } else { - Echo "No optional package CCache available for $(TARGET_ARCH)" ; - } -} - - -# CDRecord -if [ IsOptionalHaikuImagePackageAdded CDRecord ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/cdrtools-3.01a07-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/cdrtools-3.01~a07-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/cdrtools-3.01a07-x86_64-2012-12-17.zip ; - } else { - Echo "No optional package CDRecord available for $(TARGET_ARCH)" ; - } -} - - -# Clang -if [ IsOptionalHaikuImagePackageAdded Clang ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Clang available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) < 4 { - Echo "No optional package Clang available for GCC2" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/clang-3.0-x86-gcc4-2012-03-09.zip ; - } -} - - -# Clockwerk -if [ IsOptionalHaikuImagePackageAdded Clockwerk ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Clockwerk available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/Clockwerk-0.0.2-x86-gcc4-2012-02-25.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/Clockwerk-0.0.2-x86-gcc2-2012-03-04.zip ; - } - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/common/apps/Clockwerk/Clockwerk ; - } -} - - -# CLucene -if [ IsOptionalHaikuImagePackageAdded CLucene ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package CLucene available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) < 4 { - Echo "No optional package CLucene available for GCC2" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip - : : cdPackage ; - } -} - - -# CMake -if [ IsOptionalHaikuImagePackageAdded CMake ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package CMake available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/cmake-2.8.5-r1a4-x86-gcc4-2012-08-28.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/cmake-2.8.5-5-x86_gcc2.hpkg ; - } - } -} - - -# Colors! -if [ IsOptionalHaikuImagePackageAdded Colors! ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Colors! available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/Colors\!-2.1-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/Colors\!-2.1-r1a4-x86-gcc2-2012-08-30.zip ; - } - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/common/apps/Colors\!/Colors\! ; - } -} - - -# Ctags -if [ IsOptionalHaikuImagePackageAdded Ctags ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/ctags-5.8-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/ctags-5.8-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/ctags-5.8-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package Ctags available for $(TARGET_ARCH)" ; - } -} - - -# Curl -if [ IsOptionalHaikuImagePackageAdded Curl ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/curl-7.26.0-r1a4-x86-gcc4-2012-08-29.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/curl-7.26.0-4-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/curl-7.28.1-x86_64-2012-12-18.zip ; - } else { - Echo "No optional package Curl available for $(TARGET_ARCH)" ; - } -} - - -# CVS -if [ IsOptionalHaikuImagePackageAdded CVS ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/cvs-1.12.13.1-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/cvs-1.12.13.1-5-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/cvs-1.12.13.1-x86_64-2012-12-18.zip - : : cdPackage ; - } else { - Echo "No optional package CVS available for $(TARGET_ARCH)" ; - } -} - - -# DemoPackage_Audio -if [ IsOptionalHaikuImagePackageAdded DemoPackage_Audio ] { - InstallOptionalHaikuImagePackage - $(baseURL)/DemoPackage_Audio-0.1-2012-02-19.zip ; -} - - -# DemoPackage_Data -if [ IsOptionalHaikuImagePackageAdded DemoPackage_Data ] { - InstallOptionalHaikuImagePackage - $(baseURL)/DemoPackage_Data-0.1-2012-02-19.zip ; -} - - -# DemoPackage_Image -if [ IsOptionalHaikuImagePackageAdded DemoPackage_Image ] { - InstallOptionalHaikuImagePackage - $(baseURL)/DemoPackage_Image-0.2-2012-09-22.zip ; -} - - -# DemoPackage_Video -if [ IsOptionalHaikuImagePackageAdded DemoPackage_Video ] { - InstallOptionalHaikuImagePackage - $(baseURL)/DemoPackage_Video-0.1-2012-02-19.zip ; +# TODO: Make this an actual package! +# local bluetoothDrivers = h2generic ; +# AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ; +# AddFilesToHaikuImage system servers : bluetooth_server ; +# AddFilesToHaikuImage system lib : libbluetooth.so ; +# AddFilesToHaikuImage +# system add-ons kernel network protocols : l2cap ; +# AddFilesToHaikuImage system add-ons kernel bluetooth +# : btCoreData hci ; +# AddFilesToHaikuImage system preferences : Bluetooth ; +# AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ; +# AddSymlinkToHaikuImage home config settings deskbar menu Preferences +# : /boot/system/preferences/Bluetooth ; +# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] +# && $(HAIKU_GCC_VERSION[1]) in 2 4 { +# local arch = $(TARGET_ARCH) ; +# local abi = gcc$(HAIKU_GCC_VERSION[1]) ; +# AddSymlinkToHaikuImage system develop lib +# : /system/lib libbluetooth.so ; +# } } # Development if [ IsOptionalHaikuImagePackageAdded Development ] { - if $(TARGET_ARCH) = x86 { - # autotools - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/autoconf-2.69-x86-gcc4-2013-02-16.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/automake-1.13.1-x86-gcc4-2013-02-16.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/libtool-2.4-r1a4-x86-gcc4-2012-08-28.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/texinfo-4.13a-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/autoconf-2.69-4-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/automake-1.13.1-4-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/libtool-2.4-8-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/texinfo-4.13a-7-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/system/apps/Debugger : Debugger ; - InstallOptionalHaikuImagePackage - $(baseURL)/autoconf-2.69-x86_64-2013-02-16.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/automake-1.13.1-x86_64-2013-02-16.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/libtool-2.4.2-x86_64-2012-08-17.zip - : : cdPackage ; - InstallOptionalHaikuImagePackage - $(baseURL)/texinfo-4.13a-x86_64-2012-08-17.zip - : : cdPackage ; - } + # auto tools and perl + AddHaikuImagePackages autoconf automake libtool perl texinfo ; + + # devel packages for mandatory packages + AddHaikuImagePackages ffmpeg_devel freetype_devel glu_devel jpeg_devel + libpng_devel zlib_devel ; } # DevelopmentBase if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] { - if $(TARGET_ARCH) = x86 { - # gcc and binutils - if $(HAIKU_GCC_VERSION[1]) = 2 { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/binutils-2.17_130421-2-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/gcc-2.95.3_130425-2-x86_gcc2.hpkg ; - } - - if $(HAIKU_GCC_VERSION[1]) = 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/gcc-4.6.3-r1a4-x86-gcc4-2012-11-01.zip ; - } + # gcc and binutils + AddHaikuImagePackages binutils gcc ; - # other commonly used tools - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/bison-2.4.3-r1a4-x86-gcc4-2012-08-28.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/m4-1.4.16-r1a4-x86-gcc4-2012-08-28.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/flex-2.5.35-r1a4-x86-gcc4-2012-08-28.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/jam-2.5-r1a4-x86-gcc4-2012-08-28.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/mkdepend-1.7-r1a4-x86-gcc4-2012-08-28.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/make-3.82-r1a4-x86-gcc4-2012-08-28.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/bison-2.4.3-5-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/m4-1.4.16-5-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/flex-2.5.35-6-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/jam-2.5_2012_10_12-1-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/mkdepend-1.7-3-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/make-3.82-5-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - # gcc and binutils - InstallOptionalHaikuImagePackage - $(baseURL)/gcc-4.6.2-x86_64-2012-08-16.zip ; - - InstallOptionalHaikuImagePackage - $(baseURL)/bison-2.5-x86_64-2012-08-12.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/m4-1.4.16-x86_64-2012-08-12.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/flex-2.5.35-x86_64-2012-08-18.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/jam-2.5-x86_64-2012-08-12.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/mkdepend-1.7-x86_64-2012-08-14.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/make-3.82-x86_64-2012-08-11.zip ; - } + # other commonly used tools + AddHaikuImagePackages bison cdrtools flex jam m4 make mkdepend yasm ; } # DevelopmentJava if [ IsOptionalHaikuImagePackageAdded DevelopmentJava ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package DevelopmentJava available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) < 4 { - Echo "No optional package DevelopmentJava available for gcc2" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/gnu-classpath-0.98-r1a3-x86-gcc4-2011-06-08.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip ; - AddSymlinkToHaikuImage common bin - : /boot/common/bin/jamvm : java ; - InstallOptionalHaikuImagePackage - $(baseURL)/ecj-3.6.2-haiku-2011-06-08.zip ; - } +# TODO: Build actual packages! +# InstallOptionalHaikuImagePackage +# $(baseURL)/gnu-classpath-0.98-r1a3-x86-gcc4-2011-06-08.zip ; +# InstallOptionalHaikuImagePackage +# $(baseURL)/jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip ; +# AddSymlinkToHaikuImage common bin +# : /boot/common/bin/jamvm : java ; +# InstallOptionalHaikuImagePackage +# $(baseURL)/ecj-3.6.2-haiku-2011-06-08.zip ; } # DevelopmentMin if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) { - if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) { - Exit "Optional package DevelopmentMin: Unsupported GCC version:" - $(HAIKU_GCC_VERSION[1]) ; - } - AddPackageFilesToHaikuImage system : haiku_devel.hpkg ; AddPackageFilesToHaikuImage common : makefile_engine.hpkg ; } @@ -768,1291 +137,157 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] # DevelopmentPowerPC if [ IsOptionalHaikuImagePackageAdded DevelopmentPowerPC ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package DevelopmentPowerPC available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) < 4 { - Echo "No optional package DevelopmentPowerPC available for gcc2" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/gcc-ppc-4.6.2-x86-gcc4-2012-03-17.zip ; - InstallOptionalHaikuImagePackage - $(baseURL)/haiku-devlibs-ppc-gcc4-2012-03-18.zip ; - } -} - - -# DMIDecode -if [ IsOptionalHaikuImagePackageAdded DMIDecode ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package DMIDecode available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/dmidecode-2.11-r1a4-x86-gcc4-2012-09-04.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/dmidecode-2.11-r1a4-x86-gcc2-2012-09-03.zip ; - } -} - - -# Doxygen -if [ IsOptionalHaikuImagePackageAdded Doxygen ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Doxygen available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/doxygen-1.6.3-r1a4-x86-gcc4-2012-09-04.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/doxygen-1.6.3-3-x86_gcc2.hpkg ; - } - } -} - - -# Droid -if [ IsOptionalHaikuImagePackageAdded Droid ] { - InstallOptionalHaikuImagePackage - $(baseURL)/droid-113-r1a4-x86-gcc2-2012-08-27.zip ; -} - - -# Expat -if [ IsOptionalHaikuImagePackageAdded Expat ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/expat-2.0.1-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/expat-2.0.1-6-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/expat-2.0.1-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package Expat available for $(TARGET_ARCH)" ; - } -} - - -# Fastdep -if [ IsOptionalHaikuImagePackageAdded Fastdep ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/fastdep-0.16-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/fastdep-0.16-r1a4-x86-gcc2-2012-08-28.zip ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/fastdep-0.16-x86_64-2012-12-08.zip ; - } else { - Echo "No optional package Fastdep available for $(TARGET_ARCH)" ; - } +# TODO: Build actual packages! +# InstallOptionalHaikuImagePackage +# $(baseURL)/gcc-ppc-4.6.2-x86-gcc4-2012-03-17.zip ; +# InstallOptionalHaikuImagePackage +# $(baseURL)/haiku-devlibs-ppc-gcc4-2012-03-18.zip ; } # FFMpeg if [ IsOptionalHaikuImagePackageAdded FFMpeg ] { - if $(TARGET_ARCH) = x86 { - local feature ; - for feature in ffmpeg speex libtheora libvorbis libogg libvpx { - InstallOptionalHaikuImagePackage $(HAIKU_$(feature:U)_URL) - : system ; - } - } else { - Echo "No optional package FFMpeg available for $(TARGET_ARCH)" ; - } + local packages = ffmpeg speex libtheora libvorbis libogg libvpx ; + AddHaikuImagePackages $(packages) ; } # FFMpeg-devel if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] { - if $(TARGET_ARCH) = x86 { - local feature ; - for feature in ffmpeg speex libtheora libvorbis libogg libvpx { - InstallOptionalHaikuImagePackage $(HAIKU_$(feature:U)_DEVEL_URL) - : system ; - } - } else { - Echo "No optional package FFMpeg-devel available for $(TARGET_ARCH)" ; - } -} - - -# FreeType -if [ IsOptionalHaikuImagePackageAdded FreeType ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage $(HAIKU_FREETYPE_URL) : system ; - } else { - Echo "No optional package FreeType available for $(TARGET_ARCH)" ; - } -} - - -# FreeType-devel -if [ IsOptionalHaikuImagePackageAdded FreeType-devel ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage $(HAIKU_FREETYPE_DEVEL_URL) : system ; - } else { - Echo "No optional package FreeType-devel available for $(TARGET_ARCH)" ; - } + local packages = ffmpeg speex libtheora libvorbis libogg libvpx ; + AddHaikuImagePackages $(packages)_devel ; } -# friss -if [ IsOptionalHaikuImagePackageAdded friss ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package friss available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/friss-33-r1a4-x86-gcc4-2012-11-06.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/friss-33-r1a4-x86-gcc2-2012-11-06.zip ; - } -# AddSymlinkToHaikuImage home config settings deskbar menu Desktop\ applets -# : /boot/common/apps/FRiSS/FRiSS ; - } +# Git +if [ IsOptionalHaikuImagePackageAdded Git ] { + AddHaikuImagePackages git git_arch git_cvs git_daemon git_email git_svn ; } -# GetText -if [ IsOptionalHaikuImagePackageAdded GetText ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/gettext-0.18.1.1-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/gettext-0.18.1.1-4-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/gettext-0.18.1.1-x86_64-2012-08-17.zip - : : cdPackage ; - } else { - Echo "No optional package GetText available for $(TARGET_ARCH)" ; - } +# NetFS network file system +if [ IsOptionalHaikuImagePackageAdded NetFS ] { +# TODO: Make this an actual package! +# # userlandfs module +# AddFilesToHaikuImage home config add-ons userlandfs +# : netfs ; +# +# # servers +# AddFilesToHaikuImage system servers : netfs_server ; +# AddFilesToHaikuImage system servers +# : authentication_server ; +# +# # tools +# AddFilesToHaikuImage system bin : netfs_config ; +# AddFilesToHaikuImage system bin : netfs_server_prefs ; +# +# #example settings for netfs_server +# local netfsServerSettingsFiles = <driver-settings>netfs-server ; +# SEARCH on $(netfsServerSettingsFiles) +# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ; +# AddFilesToHaikuImage home config settings kernel drivers +# : $(netfsServerSettingsFiles) ; +# +# #userlandfs settings are needed for netfs_config to work (ioctls) +# local userlandfsServerSettingsFiles = <driver-settings>userlandfs ; +# SEARCH on $(userlandfsServerSettingsFiles) +# = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ; +# AddFilesToHaikuImage home config settings kernel drivers +# : $(userlandfsServerSettingsFiles) ; } -# GetTextLibintl -if [ IsOptionalHaikuImagePackageAdded GetTextLibintl ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { -# InstallOptionalHaikuImagePackage -# $(baseURL)/gettext-0.18.1.1-r1a4-x86-gcc4-2012-08-30.zip -# : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/gettext_libintl-0.18.1.1-4-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { -# InstallOptionalHaikuImagePackage -# $(baseURL)/gettext-0.18.1.1-x86_64-2012-08-17.zip -# : : cdPackage ; - } else { - Echo "No optional package GetText available for $(TARGET_ARCH)" ; - } +# UserlandFS +if [ IsOptionalHaikuImagePackageAdded UserlandFS ] { +# TODO: Make this an actual package! +# local arch = $(TARGET_ARCH) ; +# local abi = gcc$(HAIKU_GCC_VERSION[1]) ; +# +# # kernel module +# AddFilesToHaikuImage system add-ons kernel file_systems +# : userlandfs ; +# +# # server +# AddFilesToHaikuImage system servers : userlandfs_server ; +# +# # libs +# local userlandfsLibs = +# libuserlandfs_beos_kernel.so +# libuserlandfs_haiku_kernel.so +# libuserlandfs_fuse.so +# ; +# AddFilesToHaikuImage system lib : $(userlandfsLibs) ; +# +# # development goodies +# if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] { +# if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) { +# Exit "Optional package UserlandFS: Unsupported GCC version:" +# $(HAIKU_GCC_VERSION[1]) ; +# } +# +# # library symlinks +# local lib ; +# for lib in $(userlandfsLibs) { +# AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib +# : /system/lib/$(lib:BS) ; +# } +# +# # FUSE headers +# local fuseHeaders = +# fuse_common_compat.h +# fuse_common.h +# fuse_compat.h +# fuse.h +# fuse_lowlevel_compat.h +# fuse_lowlevel.h +# fuse_opt.h +# ; +# fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ; +# SEARCH on $(fuseHeaders) +# = [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ; +# AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ; +# } } -# Git -if [ IsOptionalHaikuImagePackageAdded Git ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/git-1.7.10.2-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/git-1.7.10.2-2-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/git_arch-1.7.10.2-2-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/git_cvs-1.7.10.2-2-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/git_daemon-1.7.10.2-2-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/git_email-1.7.10.2-2-x86_gcc2.hpkg ; - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/git_svn-1.7.10.2-2-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/git-1.8.0-x86_64-2012-12-29.zip - : : cdPackage ; - } else { - Echo "No optional package Git available for $(TARGET_ARCH)" ; - } +# WebPositive +if [ IsOptionalHaikuImagePackageAdded WebPositive ] { +# TODO: Make this an actual package! +# if $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != x86_64 { +# Echo "No optional package WebPositive available for $(TARGET_ARCH)" ; +# } else if $(HAIKU_GCC_VERSION[1]) < 4 { +# Echo "No optional package WebPositive available for gcc2" ; +# } else if $(HAIKU_GCC_VERSION[1]) >= 4 { +# # TODO: Either we build a separate package for WebPositive or we +# # incorporate it in haiku.hpkg. +# AddFilesToHaikuHybridImage apps : WebPositive ; +# AddSymlinkToHaikuHybridImage +# home config settings deskbar menu Applications +# : /boot/common/apps/WebPositive ; +# } +# +# AddHaikuImagePackages curl libxml2 sqlite webkit ; + # TODO: Should be properly declared requires in the webpositive package. } -# GLU -if [ IsOptionalHaikuImagePackageAdded GLU ] { - if $(TARGET_ARCH) = x86 { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/$(HAIKU_GLU_URL) - : system ; - } else { - Echo "No optional package GLU available for $(TARGET_ARCH)" ; - } +# WebPositiveBookmarks +if [ IsOptionalHaikuImagePackageAdded WebPositiveBookmarks ] { + InstallOptionalHaikuImagePackage + $(baseURL)/WebPositiveBookmarks-2012-02-18.zip + : home config settings WebPositive ; } -# GLU-devel -if [ IsOptionalHaikuImagePackageAdded GLU-devel ] { - if $(TARGET_ARCH) = x86 { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE) - : system ; - } else { - Echo "No optional package GLU-devel available for $(TARGET_ARCH)" ; - } -} - +# Welcome +if [ IsOptionalHaikuImagePackageAdded Welcome ] { + AddPackageFilesToHaikuImage system : haiku_userguide.hpkg ; + AddPackageFilesToHaikuImage system : haiku_welcome.hpkg ; -# GPerf -if [ IsOptionalHaikuImagePackageAdded GPerf ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/gperf-3.0.4-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/gperf-3.0.4-r1a4-x86-gcc2-2012-08-28.zip - : : cdPackage ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/gperf-3.0.4-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package GPerf available for $(TARGET_ARCH)" ; - } -} - - -# Grep -if [ IsOptionalHaikuImagePackageAdded Grep ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/grep-2.14-x86-gcc4-2012-12-28.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/grep-2.14-4-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/grep-2.14-x86_64-2012-12-28.zip - : : cdPackage ; - } else { - Echo "No optional package Grep available for $(TARGET_ARCH)" ; - } -} - -# Groff -if [ IsOptionalHaikuImagePackageAdded Groff ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/groff-1.20.1-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/groff-1.20.1-2-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/groff-1.20.1-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package Groff available for $(TARGET_ARCH)" ; - } -} - -# HGgrep -if [ IsOptionalHaikuImagePackageAdded HGrep ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package HGrep available for $(TARGET_ARCH)" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/hgrep-1.0.1-x86-gcc2-2012-07-23.zip ; - } -} - - -# ICU -if [ IsOptionalHaikuImagePackageAdded ICU ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/$(HAIKU_ICU_URL) - : system ; - } else { - Echo "No optional package ICU available for $(TARGET_ARCH)" ; - } -} - - -# ICU-devel -if [ IsOptionalHaikuImagePackageAdded ICU-devel ] { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) - : system ; -} - - -# Jpeg -if [ IsOptionalHaikuImagePackageAdded Jpeg ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage $(HAIKU_JPEG_URL) : system ; - } else { - Echo "No optional package Jpeg available for $(TARGET_ARCH)" ; - } -} - - -# Jpeg-devel -if [ IsOptionalHaikuImagePackageAdded Jpeg-devel ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage $(HAIKU_JPEG_DEVEL_URL) : system ; - } else { - Echo "No optional package Jpeg-devel available for $(TARGET_ARCH)" ; - } -} - - -# KeymapSwitcher -if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/KeymapSwitcher-1.2.7-x86-gcc4-2013-01-08.zip - : : !stripDebugSymbols ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/keymapswitcher-1.2.7.10-1-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/KeymapSwitcher-1.2.7-x86_64-2013-01-08.zip - : : cdPackage ; - AddSymlinkToHaikuImage home config settings deskbar menu Preferences - : /boot/common/bin/KeymapSwitcher ; - } else { - Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ; - } -} - - -# LGrep -if [ IsOptionalHaikuImagePackageAdded LGrep ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package LGrep available for $(TARGET_ARCH)" ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/lgrep-1.0-x86-gcc2-2012-07-23.zip ; - } -} - - -# LibEdit -if [ IsOptionalHaikuImagePackageAdded LibEdit ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package LibEdit available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - Echo "No optional package LibEdit available for gcc 4" ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/libedit-2012_06_01_3.0-1-x86_gcc2.hpkg ; - } - } -} - - -# LibEvent -if [ IsOptionalHaikuImagePackageAdded LibEvent ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/libevent-2.0.10-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/libevent-2.0.10-r1a4-x86-gcc2-2012-08-28.zip - : : cdPackage ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/libevent-2.0.10-x86_64-2012-12-08.zip - : : cdPackage ; - } else { - Echo "No optional package LibEvent available for $(TARGET_ARCH)" ; - } -} - - -# LibIconv -if [ IsOptionalHaikuImagePackageAdded LibIconv ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/libiconv-1.13.1-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/libiconv-1.13.1-5-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/libiconv-1.13.1-x86_64-2012-12-18.zip ; - } else { - Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; - } -} - - -# LibLayout library -if [ IsOptionalHaikuImagePackageAdded LibLayout ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package LibLayout available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - : $(baseURL)/liblayout-1.4.1-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip ; - } -} - - -# Libmng library -if [ IsOptionalHaikuImagePackageAdded Libmng ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Libmng available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/lib/libmng-1.0.10-r1a4-x86-gcc4-2012-09-02.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/lib/libmng-1.0.10-r1a4-x86-gcc2-2012-08-28.zip ; - } -} - - -# Libpng -if [ IsOptionalHaikuImagePackageAdded Libpng ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage $(HAIKU_LIBPNG_URL) : system ; - } else { - Echo "No optional package Libpng available for $(TARGET_ARCH)" ; - } -} - - -# Libpng-devel -if [ IsOptionalHaikuImagePackageAdded Libpng-devel ] { - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - InstallOptionalHaikuImagePackage $(HAIKU_LIBPNG_DEVEL_URL) : system ; - } else { - Echo "No optional package Libpng-devel available for $(TARGET_ARCH)" ; - } -} - - -# LibSolv -if [ IsOptionalHaikuImagePackageAdded LibSolv ] { - if ! $(HAIKU_LIBSOLV_URL) { - Echo "No optional package LibSolv available for $(TARGET_ARCH)" ; - } else { - InstallOptionalHaikuImagePackage - $(HAIKU_LIBSOLV_URL) - : system ; - } -} - - -# LibXML2 -if [ IsOptionalHaikuImagePackageAdded LibXML2 ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/libxml2-2.8.0-r1a4-x86-gcc4-2012-08-28.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/libxml2-2.8.0-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/libxml2-2.8.0-x86_64-2012-12-08.zip ; - } else { - Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; - } -} - - -# LibXSLT -if [ IsOptionalHaikuImagePackageAdded LibXSLT ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package LibXSLT available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/libxslt-1.1.26-r1a4-x86-gcc4-2012-08-29.zip ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/libxslt-1.1.26-r1a4-x86-gcc2-2012-08-28.zip - : : cdPackage ; - } -} - - -# Links web browser -if [ IsOptionalHaikuImagePackageAdded Links ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Links available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/links-2.3pre2-r1a4-x86-gcc4-2012-09-09.zip ; - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/home/config/bin/links ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/links-2.3pre2-r1a4-x86-gcc2-2012-08-30.zip ; - AddSymlinkToHaikuImage home config settings deskbar menu Applications - : /boot/home/config/bin/links ; - } -} - - -# Lua -if [ IsOptionalHaikuImagePackageAdded Lua ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Lua available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/lua-5.1.4-3-r1a4-x86-gcc4-2012-09-01.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(baseURL)/lua-5.1.4-3-r1a4-x86-gcc2-2012-09-01.zip - : : cdPackage ; - } - } -} - - -# Man -if [ IsOptionalHaikuImagePackageAdded Man ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package Man available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/man-1.6g-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/man-1.6g-2-x86_gcc2.hpkg ; - } -} - - -# MandatoryPackages -if [ IsOptionalHaikuImagePackageAdded MandatoryPackages ] { - # Pseudo package for grouping packages, which are added to all images. -} - - -# Mercurial -if [ IsOptionalHaikuImagePackageAdded Mercurial ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/mercurial-2.2.2-r1a4-x86-gcc4-2012-08-30.zip - : : cdPackage ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/mercurial-2.2.2-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/mercurial-2.4-x86_64-2012-12-18.zip - : : cdPackage ; - } else { - Echo "No optional package Mercurial available for $(TARGET_ARCH)" ; - } -} - - -# Mesa -if [ IsOptionalHaikuImagePackageAdded Mesa ] { - if $(TARGET_ARCH) = x86 { - InstallOptionalHaikuImagePackage $(HAIKU_MESA_URL) : system ; - } else { - Echo "No optional package Mesa available for $(TARGET_ARCH)" ; - } -} - - -# Nano -if [ IsOptionalHaikuImagePackageAdded Nano ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/nano-2.2.6-r1a4-x86-gcc4-2012-08-30.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/nano-2.2.6-3-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/nano-2.3.1-x86_64-2012-08-17.zip ; - } else { - Echo "No optional package Nano available for $(TARGET_ARCH)" ; - } -} - - -# Nanumfont -if [ IsOptionalHaikuImagePackageAdded Nanumfont ] { - InstallOptionalHaikuImagePackage - $(baseURL)/nanumfont-2.0-r1a4-x86-gcc2-2012-09-12.zip ; -} - - -# NCurses -if [ IsOptionalHaikuImagePackageAdded NCurses ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package NCurses available for $(TARGET_ARCH)" ; - } else { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - Echo "No optional package NCurses available for gcc 4" ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/ncurses-5.9-7-x86_gcc2.hpkg ; - } - } -} - - -# Neon -if [ IsOptionalHaikuImagePackageAdded Neon ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - $(baseURL)/neon-0.29.6-r1a4-x86-gcc4-2012-08-29.zip ; - } else { - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/neon-0.29.6-6-x86_gcc2.hpkg ; - } - } else if $(TARGET_ARCH) = x86_64 { - InstallOptionalHaikuImagePackage - $(baseURL)/neon-0.29.6-x86_64-2012-12-18.zip ; - } else { - Echo "No optional package Neon available for $(TARGET_ARCH)" ; - } -} - - -# NetFS network file system -if [ IsOptionalHaikuImagePackageAdded NetFS ] { - # userlandfs module - AddFilesToHaikuImage home config add-ons userlandfs - : netfs ; - - # servers - AddFilesToHaikuImage system servers : netfs_server ; - AddFilesToHaikuImage system servers - : authentication_server ; - - # tools - AddFilesToHaikuImage system bin : netfs_config ; - AddFilesToHaikuImage system bin : netfs_server_prefs ; - - #example settings for netfs_server - local netfsServerSettingsFiles = <driver-settings>netfs-server ; - SEARCH on $(netfsServerSettingsFiles) - = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ; - AddFilesToHaikuImage home config settings kernel drivers - : $(netfsServerSettingsFiles) ; - - #userlandfs settings are needed for netfs_config to work (ioctls) - local userlandfsServerSettingsFiles = <driver-settings>userlandfs ; - SEARCH on $(userlandfsServerSettingsFiles) - = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ; - AddFilesToHaikuImage home config settings kernel drivers - : $(userlandfsServerSettingsFiles) ; -} - [ *** diff truncated: 1774 lines dropped *** ]