diff --git a/Jamfile b/Jamfile index d2a09f47ed..de9e087b2b 100644 --- a/Jamfile +++ b/Jamfile @@ -19,7 +19,7 @@ for architectureObject in [ MultiArchSubDirSetup ] { # Include required packages: # primary architecture -AddHaikuImagePackages [ FFilterByBuildFeatures +AddHaikuImageSystemPackages [ FFilterByBuildFeatures bash bc coreutils curl freetype icu libsolv zlib zstd regular_image @{ @@ -44,7 +44,7 @@ AddHaikuImageSourcePackages [ FFilterByBuildFeatures }@ ] ; if $(HAIKU_PACKAGING_ARCHS[1]) != x86_gcc2 { - AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs ] ; + AddHaikuImageSystemPackages [ FFilterByBuildFeatures gcc_syslibs ] ; } if $(HAIKU_PACKAGING_ARCHS[2]) { @@ -53,7 +53,7 @@ if $(HAIKU_PACKAGING_ARCHS[2]) { for architectureObject in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { on $(architectureObject) { - AddHaikuImagePackages [ FFilterByBuildFeatures + AddHaikuImageSystemPackages [ FFilterByBuildFeatures curl freetype icu libsolv zlib regular_image @{ @@ -61,7 +61,7 @@ if $(HAIKU_PACKAGING_ARCHS[2]) { }@ ] ; if $(TARGET_PACKAGING_ARCH) != x86_gcc2 { - AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs + AddHaikuImageSystemPackages [ FFilterByBuildFeatures gcc_syslibs mesa_swpipe ] ; } } @@ -70,11 +70,11 @@ if $(HAIKU_PACKAGING_ARCHS[2]) { # If enabled, make sure that OpenSSL is added to the image. if [ FIsBuildFeatureEnabled openssl ] { - AddHaikuImagePackages openssl ; + AddHaikuImageSystemPackages openssl ; } # add additionally requested packages -AddHaikuImagePackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ; +AddHaikuImageSystemPackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ; # Optionally we allow not to include the "src" subdirectory. if $(HAIKU_DONT_INCLUDE_SRC) { diff --git a/build/jam/DefaultBuildProfiles b/build/jam/DefaultBuildProfiles index 4f322beffd..dc5088d2f0 100644 --- a/build/jam/DefaultBuildProfiles +++ b/build/jam/DefaultBuildProfiles @@ -79,7 +79,7 @@ rule DefineDefaultBuildProfiles HAIKU_IMAGE_SIZE ?= 690 ; } - AddHaikuImagePackages + AddHaikuImageSystemPackages bepdf keymapswitcher llvm @@ -112,7 +112,7 @@ rule DefineDefaultBuildProfiles local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { - AddHaikuImagePackages openssl wonderbrush@gcc2 ; + AddHaikuImageSystemPackages openssl wonderbrush@gcc2 ; } } @@ -126,11 +126,6 @@ rule DefineDefaultBuildProfiles } } - case "alpha-*" : { - Echo The alpha-* build profiles have been renamed to release-* ; - Exit ; - } - case "nightly-*" : { Echo Building Haiku Nightly ; HAIKU_ROOT_USER_NAME ?= user ; @@ -143,7 +138,7 @@ rule DefineDefaultBuildProfiles HAIKU_IMAGE_SIZE ?= 600 ; HAIKU_NIGHTLY_BUILD = 1 ; - AddHaikuImagePackages + AddHaikuImageSystemPackages man nano noto @@ -182,7 +177,7 @@ rule DefineDefaultBuildProfiles HAIKU_IMAGE_SIZE ?= 450 ; } - AddHaikuImagePackages + AddHaikuImageSystemPackages openssl ; } @@ -192,53 +187,58 @@ rule DefineDefaultBuildProfiles HAIKU_IMAGE_HOST_NAME ?= shredder ; HAIKU_IMAGE_SIZE ?= 20000 ; - AddHaikuImagePackages + AddHaikuImageSystemPackages binutils bison - curl_devel expat flex - freetype_devel gawk gcc grep haikuporter less libedit - libedit_devel m4 make ncurses6 - ncurses6_devel noto python sed texinfo - zlib_devel ; + AddHaikuImageDisabledPackages + curl_devel + freetype_devel + libedit_devel + ncurses6_devel + zlib_devel + ; + # secondary architecture packages local architectureObject ; for architectureObject in [ MultiArchSubDirSetup $(TARGET_PACKAGING_ARCHS[2-]) ] { on $(architectureObject) { - AddHaikuImagePackages + AddHaikuImageSystemPackages binutils curl - curl_devel expat freetype - freetype_devel gcc icu libsolv libedit - libedit_devel ncurses6 - ncurses6_devel zlib - zlib_devel ; + AddHaikuImageDisabledPackages + curl_devel + freetype_devel + libedit_devel + ncurses6_devel + zlib_devel + ; } } diff --git a/build/jam/ImageRules b/build/jam/ImageRules index be9dfa2f0f..5c11609dc9 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -1039,13 +1039,12 @@ rule AddPackageFilesToHaikuImage location : packages : flags 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) ; if nameFromMetaInfo in $(flags) { - AddFilesToHaikuImage $(location) packages : $(packages) + AddFilesToHaikuImage $(location) : $(packages) : packageFileName : computeName ; } else { - AddFilesToHaikuImage $(location) packages : $(packages) ; + AddFilesToHaikuImage $(location) : $(packages) ; } } @@ -1097,10 +1096,10 @@ rule OptionalPackageDependencies package : dependencies } -rule AddHaikuImagePackages packages +rule AddHaikuImagePackages packages : directory { - # AddHaikuImagePackages ; - # Adds the given packages to the image. + # AddHaikuImagePackages : ; + # Adds the given packages to the image in the given directory. packages = [ FFilterByBuildFeatures $(packages) ] ; @@ -1124,7 +1123,7 @@ rule AddHaikuImagePackages packages HAIKU_INCLUDE_IN_IMAGE on $(file) = 1 ; } - AddPackageFilesToHaikuImage system : $(file) ; + AddPackageFilesToHaikuImage $(directory) : $(file) ; } } } @@ -1135,10 +1134,28 @@ rule AddHaikuImageSourcePackages packages # Adds the given source packages for to the image. if $(HAIKU_INCLUDE_SOURCES) = 1 { - AddHaikuImagePackages $(packages)_source ; + AddHaikuImagePackages $(packages)_source : _sources_ ; } } +rule AddHaikuImageSystemPackages packages +{ + # AddHaikuImageSystemPackages ; + # Adds the given packages for to the image, in the system + # directory, so they will be activated on first boot. + + AddHaikuImagePackages $(packages) : system packages ; +} + +rule AddHaikuImageDisabledPackages packages +{ + # AddHaikuImageDisabledPackages ; + # Adds the given packages for to the image, in the _packages_ + # directory, so they can be later enabled in Installer. + + AddHaikuImagePackages $(packages) : _packages_ ; +} + rule IsHaikuImagePackageAdded package { local resolvedPackage = [ IsPackageAvailable $(package) ] ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 1853e0c49b..2022cc5a97 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -21,7 +21,7 @@ OptionalPackageDependencies NetFS : UserlandFS ; # Haiku sources if $(HAIKU_INCLUDE_SOURCES) = 1 { - AddPackageFilesToHaikuImage system + AddPackageFilesToHaikuImage _sources_ : haiku_source.hpkg : @@ -32,7 +32,7 @@ if $(HAIKU_INCLUDE_SOURCES) = 1 { # BeBook if [ IsOptionalHaikuImagePackageAdded BeBook ] { - AddHaikuImagePackages be_book ; + AddHaikuImageSystemPackages be_book ; AddSymlinkToHaikuImage home Desktop : /boot/system/documentation/BeBook/index.html : BeBook ; @@ -66,18 +66,18 @@ if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] { # Development if [ IsOptionalHaikuImagePackageAdded Development ] { # autotools and perl - AddHaikuImagePackages autoconf automake perl texinfo ; + AddHaikuImageDisabledPackages autoconf automake perl texinfo ; AddHaikuImageSourcePackages autoconf automake texinfo ; # some other build tools - AddHaikuImagePackages pkgconfig scons ; + AddHaikuImageDisabledPackages pkgconfig scons ; AddHaikuImageSourcePackages pkgconfig ; # devel packages for some of the base set local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { - AddHaikuImagePackages curl_devel glu_devel jpeg_devel + AddHaikuImageDisabledPackages curl_devel glu_devel jpeg_devel libpng16_devel zlib_devel ; } } @@ -90,13 +90,13 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] { local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { - AddHaikuImagePackages binutils gcc ; + AddHaikuImageDisabledPackages binutils gcc ; AddHaikuImageSourcePackages binutils gcc ; } } # other commonly used tools - AddHaikuImagePackages bison cdrtools flex jam m4 make mkdepend nasm patch ; + AddHaikuImageDisabledPackages bison cdrtools flex jam m4 make mkdepend nasm patch ; AddHaikuImageSourcePackages bison cdrtools m4 make patch ; } @@ -104,7 +104,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] { # DevelopmentMin if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) { - AddPackageFilesToHaikuImage system + AddPackageFilesToHaikuImage _packages_ : haiku_devel.hpkg haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg @@ -113,7 +113,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] ; if $(HAIKU_IS_BOOTSTRAP) != 1 { - AddPackageFilesToHaikuImage system + AddPackageFilesToHaikuImage _packages_ : makefile_engine.hpkg : @@ -125,7 +125,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] # Git if [ IsOptionalHaikuImagePackageAdded Git ] { - AddHaikuImagePackages git git_daemon ; + AddHaikuImageSystemPackages git git_daemon ; AddHaikuImageSourcePackages git ; } @@ -136,7 +136,7 @@ if [ IsOptionalHaikuImagePackageAdded WebPositive ] { for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { if [ FIsBuildFeatureEnabled webpositive ] { - AddPackageFilesToHaikuImage system : webpositive.hpkg + AddPackageFilesToHaikuImage system packages : webpositive.hpkg : nameFromMetaInfo ; break ; } @@ -147,42 +147,26 @@ if [ IsOptionalHaikuImagePackageAdded WebPositive ] { # Welcome if [ IsOptionalHaikuImagePackageAdded Welcome ] { - AddPackageFilesToHaikuImage system : haiku_userguide_ca.hpkg + AddPackageFilesToHaikuImage system packages : + haiku_userguide_ca.hpkg + haiku_userguide_de.hpkg + haiku_userguide_en.hpkg + haiku_userguide_es.hpkg + haiku_userguide_fi.hpkg + haiku_userguide_fr.hpkg + haiku_userguide_hu.hpkg + haiku_userguide_it.hpkg + haiku_userguide_jp.hpkg + haiku_userguide_pl.hpkg + haiku_userguide_pt_BR.hpkg + haiku_userguide_pt_PT.hpkg + haiku_userguide_ru.hpkg + haiku_userguide_sk.hpkg + haiku_userguide_sv_SE.hpkg + haiku_userguide_uk.hpkg + haiku_userguide_zh_CN.hpkg + haiku_welcome.hpkg : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_de.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_en.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_es.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_fi.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_fr.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_hu.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_it.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_jp.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_pl.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_pt_BR.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_pt_PT.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_ru.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_sk.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_sv_SE.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_uk.hpkg - : nameFromMetaInfo ; - AddPackageFilesToHaikuImage system : haiku_userguide_zh_CN.hpkg - : nameFromMetaInfo ; - - AddPackageFilesToHaikuImage system : haiku_welcome.hpkg : nameFromMetaInfo ; AddSymlinkToHaikuImage home Desktop : /boot/system/bin/quicktour : Quick\ Tour ; diff --git a/build/jam/UserBuildConfig.ReadMe b/build/jam/UserBuildConfig.ReadMe index de9a80932c..c0c1320f26 100644 --- a/build/jam/UserBuildConfig.ReadMe +++ b/build/jam/UserBuildConfig.ReadMe @@ -142,7 +142,7 @@ ExtractArchiveToHaikuImage develop tools # Add the optional package WonderBrush to the image. The package is downloaded # via wget (i.e. wget must be installed). -AddHaikuImagePackages WonderBrush ; +AddHaikuImageSystemPackages WonderBrush ; # Add the optional package WebPositive to the image but don't add its # dependent SQLite optional package to the image. WebPositive still needs @@ -212,7 +212,7 @@ switch $(HAIKU_BUILD_PROFILE) { case "disk" : { AddOptionalHaikuImagePackages BeBook BeHappy Bluetooth Development OpenSSH OpenSSL Welcome ; - AddHaikuImagePackages bepdf cvs p7zip pe subversion vision wonderbrush ; + AddHaikuImageSystemPackages bepdf cvs p7zip pe subversion vision wonderbrush ; } case "qemu" : { @@ -223,7 +223,7 @@ switch $(HAIKU_BUILD_PROFILE) { HAIKU_IMAGE_SIZE = 400 ; HAIKU_DONT_CLEAR_IMAGE = 1 ; AddOptionalHaikuImagePackages Development ; - AddHaikuImagePackages pe ; + AddHaikuImageSystemPackages pe ; } case "anyboot" : { @@ -234,7 +234,7 @@ switch $(HAIKU_BUILD_PROFILE) { HAIKU_IMAGE_SIZE = 1024 ; HAIKU_DONT_CLEAR_IMAGE = 1 ; AddOptionalHaikuImagePackages Development ; - AddHaikuImagePackages pe ; + AddHaikuImageSystemPackages pe ; CopyDirectoryToHaikuImage home Desktop : $(HAIKU_TOP)/../crash-tests ; } } diff --git a/build/jam/images/HaikuCD b/build/jam/images/HaikuCD index 3057181e99..a09dcc1d16 100644 --- a/build/jam/images/HaikuCD +++ b/build/jam/images/HaikuCD @@ -1,5 +1,5 @@ # Execute pre-image user config rules. -UserBuildConfigRulePreImage ; +UserBuildConfigRulePreImage ; # Set cd file name and directory defaults and locate the cd file. HAIKU_CD_NAME ?= $(HAIKU_DEFAULT_CD_NAME) ; diff --git a/build/jam/images/HaikuImage b/build/jam/images/HaikuImage index a37f91105d..6e93dc8a8d 100644 --- a/build/jam/images/HaikuImage +++ b/build/jam/images/HaikuImage @@ -14,7 +14,7 @@ if $(HAIKU_BUILD_TYPE) = bootstrap { # build the haiku system packages and add them include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuPackages ] ; -AddPackageFilesToHaikuImage system : +AddPackageFilesToHaikuImage system packages : haiku_loader.hpkg haiku.hpkg haiku_$(TARGET_PACKAGING_ARCHS[2-]).hpkg