Move source and development packages out of /system/packages on release images

Activating all these packages on live boot (especially live DVD where we
also have the write overlay eating up RAM) significantly increases
memory requirements for running Haiku, to the point that Installer may
fail to run. Move them outside the packages/ directory so they are not
activated.

Installer already skips the _sources_ directory when installing, and
lists the contents of _packages_ with checkbox to decide what to include
in the install (they are put in system/packages on the target disk).

Fixes #15621.

Change-Id: Ibfac14c43dbe708316a0d82ca1c9d49b5cba2aef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2157
Reviewed-by: Sergei Reznikov <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Adrien Destugues
2020-03-14 18:31:23 +00:00
committed by waddlesplash
parent 86950f4e76
commit 0ab9c3c538
6 changed files with 87 additions and 86 deletions
+6 -6
View File
@@ -19,7 +19,7 @@ for architectureObject in [ MultiArchSubDirSetup ] {
# Include required packages: # Include required packages:
# primary architecture # primary architecture
AddHaikuImagePackages [ FFilterByBuildFeatures AddHaikuImageSystemPackages [ FFilterByBuildFeatures
bash bc coreutils curl freetype icu libsolv zlib zstd bash bc coreutils curl freetype icu libsolv zlib zstd
regular_image @{ regular_image @{
@@ -44,7 +44,7 @@ AddHaikuImageSourcePackages [ FFilterByBuildFeatures
}@ }@
] ; ] ;
if $(HAIKU_PACKAGING_ARCHS[1]) != x86_gcc2 { if $(HAIKU_PACKAGING_ARCHS[1]) != x86_gcc2 {
AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs ] ; AddHaikuImageSystemPackages [ FFilterByBuildFeatures gcc_syslibs ] ;
} }
if $(HAIKU_PACKAGING_ARCHS[2]) { if $(HAIKU_PACKAGING_ARCHS[2]) {
@@ -53,7 +53,7 @@ if $(HAIKU_PACKAGING_ARCHS[2]) {
for architectureObject for architectureObject
in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] {
on $(architectureObject) { on $(architectureObject) {
AddHaikuImagePackages [ FFilterByBuildFeatures AddHaikuImageSystemPackages [ FFilterByBuildFeatures
curl freetype icu libsolv zlib curl freetype icu libsolv zlib
regular_image @{ regular_image @{
@@ -61,7 +61,7 @@ if $(HAIKU_PACKAGING_ARCHS[2]) {
}@ }@
] ; ] ;
if $(TARGET_PACKAGING_ARCH) != x86_gcc2 { if $(TARGET_PACKAGING_ARCH) != x86_gcc2 {
AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs AddHaikuImageSystemPackages [ FFilterByBuildFeatures gcc_syslibs
mesa_swpipe ] ; mesa_swpipe ] ;
} }
} }
@@ -70,11 +70,11 @@ if $(HAIKU_PACKAGING_ARCHS[2]) {
# If enabled, make sure that OpenSSL is added to the image. # If enabled, make sure that OpenSSL is added to the image.
if [ FIsBuildFeatureEnabled openssl ] { if [ FIsBuildFeatureEnabled openssl ] {
AddHaikuImagePackages openssl ; AddHaikuImageSystemPackages openssl ;
} }
# add additionally requested packages # add additionally requested packages
AddHaikuImagePackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ; AddHaikuImageSystemPackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ;
# Optionally we allow not to include the "src" subdirectory. # Optionally we allow not to include the "src" subdirectory.
if $(HAIKU_DONT_INCLUDE_SRC) { if $(HAIKU_DONT_INCLUDE_SRC) {
+21 -21
View File
@@ -79,7 +79,7 @@ rule DefineDefaultBuildProfiles
HAIKU_IMAGE_SIZE ?= 690 ; HAIKU_IMAGE_SIZE ?= 690 ;
} }
AddHaikuImagePackages AddHaikuImageSystemPackages
bepdf bepdf
keymapswitcher keymapswitcher
llvm llvm
@@ -112,7 +112,7 @@ rule DefineDefaultBuildProfiles
local architectureObject ; local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] { for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) { 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-*" : { case "nightly-*" : {
Echo Building Haiku Nightly ; Echo Building Haiku Nightly ;
HAIKU_ROOT_USER_NAME ?= user ; HAIKU_ROOT_USER_NAME ?= user ;
@@ -143,7 +138,7 @@ rule DefineDefaultBuildProfiles
HAIKU_IMAGE_SIZE ?= 600 ; HAIKU_IMAGE_SIZE ?= 600 ;
HAIKU_NIGHTLY_BUILD = 1 ; HAIKU_NIGHTLY_BUILD = 1 ;
AddHaikuImagePackages AddHaikuImageSystemPackages
man man
nano nano
noto noto
@@ -182,7 +177,7 @@ rule DefineDefaultBuildProfiles
HAIKU_IMAGE_SIZE ?= 450 ; HAIKU_IMAGE_SIZE ?= 450 ;
} }
AddHaikuImagePackages AddHaikuImageSystemPackages
openssl openssl
; ;
} }
@@ -192,53 +187,58 @@ rule DefineDefaultBuildProfiles
HAIKU_IMAGE_HOST_NAME ?= shredder ; HAIKU_IMAGE_HOST_NAME ?= shredder ;
HAIKU_IMAGE_SIZE ?= 20000 ; HAIKU_IMAGE_SIZE ?= 20000 ;
AddHaikuImagePackages AddHaikuImageSystemPackages
binutils binutils
bison bison
curl_devel
expat expat
flex flex
freetype_devel
gawk gawk
gcc gcc
grep grep
haikuporter haikuporter
less less
libedit libedit
libedit_devel
m4 m4
make make
ncurses6 ncurses6
ncurses6_devel
noto noto
python python
sed sed
texinfo texinfo
zlib_devel
; ;
AddHaikuImageDisabledPackages
curl_devel
freetype_devel
libedit_devel
ncurses6_devel
zlib_devel
;
# secondary architecture packages # secondary architecture packages
local architectureObject ; local architectureObject ;
for architectureObject for architectureObject
in [ MultiArchSubDirSetup $(TARGET_PACKAGING_ARCHS[2-]) ] { in [ MultiArchSubDirSetup $(TARGET_PACKAGING_ARCHS[2-]) ] {
on $(architectureObject) { on $(architectureObject) {
AddHaikuImagePackages AddHaikuImageSystemPackages
binutils binutils
curl curl
curl_devel
expat expat
freetype freetype
freetype_devel
gcc gcc
icu icu
libsolv libsolv
libedit libedit
libedit_devel
ncurses6 ncurses6
ncurses6_devel
zlib zlib
zlib_devel
; ;
AddHaikuImageDisabledPackages
curl_devel
freetype_devel
libedit_devel
ncurses6_devel
zlib_devel
;
} }
} }
+25 -8
View File
@@ -1039,13 +1039,12 @@ rule AddPackageFilesToHaikuImage location : packages : flags
HAIKU_PACKAGES_IN_IMAGE on $(HAIKU_IMAGE_CONTAINER_NAME) HAIKU_PACKAGES_IN_IMAGE on $(HAIKU_IMAGE_CONTAINER_NAME)
= [ on $(HAIKU_IMAGE_CONTAINER_NAME) return $(HAIKU_PACKAGES_IN_IMAGE) ] = [ on $(HAIKU_IMAGE_CONTAINER_NAME) return $(HAIKU_PACKAGES_IN_IMAGE) ]
$(packages) ; $(packages) ;
HAIKU_PACKAGE_INSTALLATION_LOCATION on $(packages) = $(location) ;
if nameFromMetaInfo in $(flags) { if nameFromMetaInfo in $(flags) {
AddFilesToHaikuImage $(location) packages : $(packages) AddFilesToHaikuImage $(location) : $(packages)
: packageFileName : computeName ; : packageFileName : computeName ;
} else { } else {
AddFilesToHaikuImage $(location) packages : $(packages) ; AddFilesToHaikuImage $(location) : $(packages) ;
} }
} }
@@ -1097,10 +1096,10 @@ rule OptionalPackageDependencies package : dependencies
} }
rule AddHaikuImagePackages packages rule AddHaikuImagePackages packages : directory
{ {
# AddHaikuImagePackages <packages> ; # AddHaikuImagePackages <packages> : <directory> ;
# Adds the given packages <packages> to the image. # Adds the given packages <packages> to the image in the given directory.
packages = [ FFilterByBuildFeatures $(packages) ] ; packages = [ FFilterByBuildFeatures $(packages) ] ;
@@ -1124,7 +1123,7 @@ rule AddHaikuImagePackages packages
HAIKU_INCLUDE_IN_IMAGE on $(file) = 1 ; 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 <packages> to the image. # Adds the given source packages for <packages> to the image.
if $(HAIKU_INCLUDE_SOURCES) = 1 { if $(HAIKU_INCLUDE_SOURCES) = 1 {
AddHaikuImagePackages $(packages)_source ; AddHaikuImagePackages $(packages)_source : _sources_ ;
} }
} }
rule AddHaikuImageSystemPackages packages
{
# AddHaikuImageSystemPackages <packages> ;
# Adds the given packages for <packages> to the image, in the system
# directory, so they will be activated on first boot.
AddHaikuImagePackages $(packages) : system packages ;
}
rule AddHaikuImageDisabledPackages packages
{
# AddHaikuImageDisabledPackages <packages> ;
# Adds the given packages for <packages> to the image, in the _packages_
# directory, so they can be later enabled in Installer.
AddHaikuImagePackages $(packages) : _packages_ ;
}
rule IsHaikuImagePackageAdded package rule IsHaikuImagePackageAdded package
{ {
local resolvedPackage = [ IsPackageAvailable $(package) ] ; local resolvedPackage = [ IsPackageAvailable $(package) ] ;
+30 -46
View File
@@ -21,7 +21,7 @@ OptionalPackageDependencies NetFS : UserlandFS ;
# Haiku sources # Haiku sources
if $(HAIKU_INCLUDE_SOURCES) = 1 { if $(HAIKU_INCLUDE_SOURCES) = 1 {
AddPackageFilesToHaikuImage system AddPackageFilesToHaikuImage _sources_
: :
haiku_source.hpkg haiku_source.hpkg
: :
@@ -32,7 +32,7 @@ if $(HAIKU_INCLUDE_SOURCES) = 1 {
# BeBook # BeBook
if [ IsOptionalHaikuImagePackageAdded BeBook ] { if [ IsOptionalHaikuImagePackageAdded BeBook ] {
AddHaikuImagePackages be_book ; AddHaikuImageSystemPackages be_book ;
AddSymlinkToHaikuImage home Desktop AddSymlinkToHaikuImage home Desktop
: /boot/system/documentation/BeBook/index.html : /boot/system/documentation/BeBook/index.html
: BeBook ; : BeBook ;
@@ -66,18 +66,18 @@ if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
# Development # Development
if [ IsOptionalHaikuImagePackageAdded Development ] { if [ IsOptionalHaikuImagePackageAdded Development ] {
# autotools and perl # autotools and perl
AddHaikuImagePackages autoconf automake perl texinfo ; AddHaikuImageDisabledPackages autoconf automake perl texinfo ;
AddHaikuImageSourcePackages autoconf automake texinfo ; AddHaikuImageSourcePackages autoconf automake texinfo ;
# some other build tools # some other build tools
AddHaikuImagePackages pkgconfig scons ; AddHaikuImageDisabledPackages pkgconfig scons ;
AddHaikuImageSourcePackages pkgconfig ; AddHaikuImageSourcePackages pkgconfig ;
# devel packages for some of the base set # devel packages for some of the base set
local architectureObject ; local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] { for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) { on $(architectureObject) {
AddHaikuImagePackages curl_devel glu_devel jpeg_devel AddHaikuImageDisabledPackages curl_devel glu_devel jpeg_devel
libpng16_devel zlib_devel ; libpng16_devel zlib_devel ;
} }
} }
@@ -90,13 +90,13 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] {
local architectureObject ; local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] { for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) { on $(architectureObject) {
AddHaikuImagePackages binutils gcc ; AddHaikuImageDisabledPackages binutils gcc ;
AddHaikuImageSourcePackages binutils gcc ; AddHaikuImageSourcePackages binutils gcc ;
} }
} }
# other commonly used tools # 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 ; AddHaikuImageSourcePackages bison cdrtools m4 make patch ;
} }
@@ -104,7 +104,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] {
# DevelopmentMin # DevelopmentMin
if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
&& ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) { && ( $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 ) {
AddPackageFilesToHaikuImage system AddPackageFilesToHaikuImage _packages_
: :
haiku_devel.hpkg haiku_devel.hpkg
haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg haiku_$(TARGET_PACKAGING_ARCHS[2-])_devel.hpkg
@@ -113,7 +113,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
; ;
if $(HAIKU_IS_BOOTSTRAP) != 1 { if $(HAIKU_IS_BOOTSTRAP) != 1 {
AddPackageFilesToHaikuImage system AddPackageFilesToHaikuImage _packages_
: :
makefile_engine.hpkg makefile_engine.hpkg
: :
@@ -125,7 +125,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
# Git # Git
if [ IsOptionalHaikuImagePackageAdded Git ] { if [ IsOptionalHaikuImagePackageAdded Git ] {
AddHaikuImagePackages git git_daemon ; AddHaikuImageSystemPackages git git_daemon ;
AddHaikuImageSourcePackages git ; AddHaikuImageSourcePackages git ;
} }
@@ -136,7 +136,7 @@ if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
for architectureObject in [ MultiArchSubDirSetup ] { for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) { on $(architectureObject) {
if [ FIsBuildFeatureEnabled webpositive ] { if [ FIsBuildFeatureEnabled webpositive ] {
AddPackageFilesToHaikuImage system : webpositive.hpkg AddPackageFilesToHaikuImage system packages : webpositive.hpkg
: nameFromMetaInfo ; : nameFromMetaInfo ;
break ; break ;
} }
@@ -147,42 +147,26 @@ if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
# Welcome # Welcome
if [ IsOptionalHaikuImagePackageAdded 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 ; : 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 AddSymlinkToHaikuImage home Desktop : /boot/system/bin/quicktour
: Quick\ Tour ; : Quick\ Tour ;
+4 -4
View File
@@ -142,7 +142,7 @@ ExtractArchiveToHaikuImage develop tools
# Add the optional package WonderBrush to the image. The package is downloaded # Add the optional package WonderBrush to the image. The package is downloaded
# via wget (i.e. wget must be installed). # 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 # Add the optional package WebPositive to the image but don't add its
# dependent SQLite optional package to the image. WebPositive still needs # dependent SQLite optional package to the image. WebPositive still needs
@@ -212,7 +212,7 @@ switch $(HAIKU_BUILD_PROFILE) {
case "disk" : { case "disk" : {
AddOptionalHaikuImagePackages BeBook BeHappy Bluetooth Development AddOptionalHaikuImagePackages BeBook BeHappy Bluetooth Development
OpenSSH OpenSSL Welcome ; OpenSSH OpenSSL Welcome ;
AddHaikuImagePackages bepdf cvs p7zip pe subversion vision wonderbrush ; AddHaikuImageSystemPackages bepdf cvs p7zip pe subversion vision wonderbrush ;
} }
case "qemu" : { case "qemu" : {
@@ -223,7 +223,7 @@ switch $(HAIKU_BUILD_PROFILE) {
HAIKU_IMAGE_SIZE = 400 ; HAIKU_IMAGE_SIZE = 400 ;
HAIKU_DONT_CLEAR_IMAGE = 1 ; HAIKU_DONT_CLEAR_IMAGE = 1 ;
AddOptionalHaikuImagePackages Development ; AddOptionalHaikuImagePackages Development ;
AddHaikuImagePackages pe ; AddHaikuImageSystemPackages pe ;
} }
case "anyboot" : { case "anyboot" : {
@@ -234,7 +234,7 @@ switch $(HAIKU_BUILD_PROFILE) {
HAIKU_IMAGE_SIZE = 1024 ; HAIKU_IMAGE_SIZE = 1024 ;
HAIKU_DONT_CLEAR_IMAGE = 1 ; HAIKU_DONT_CLEAR_IMAGE = 1 ;
AddOptionalHaikuImagePackages Development ; AddOptionalHaikuImagePackages Development ;
AddHaikuImagePackages pe ; AddHaikuImageSystemPackages pe ;
CopyDirectoryToHaikuImage home Desktop : $(HAIKU_TOP)/../crash-tests ; CopyDirectoryToHaikuImage home Desktop : $(HAIKU_TOP)/../crash-tests ;
} }
} }
+1 -1
View File
@@ -1,5 +1,5 @@
# Execute pre-image user config rules. # Execute pre-image user config rules.
UserBuildConfigRulePreImage ; UserBuildConfigRulePreImage ;
# Set cd file name and directory defaults and locate the cd file. # Set cd file name and directory defaults and locate the cd file.
HAIKU_CD_NAME ?= $(HAIKU_DEFAULT_CD_NAME) ; HAIKU_CD_NAME ?= $(HAIKU_DEFAULT_CD_NAME) ;