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).

Fix from previous version: the Haiku package was installed to /system
instead of /system/packages.

Fixes #15621.
This commit is contained in:
Adrien Destugues 2020-01-25 22:27:48 +01:00
parent e3952a44cd
commit 4f44282c3b
7 changed files with 88 additions and 87 deletions

12
Jamfile
View File

@ -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) {

View File

@ -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
;
}
}

View File

@ -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 <packages> ;
# Adds the given packages <packages> to the image.
# AddHaikuImagePackages <packages> : <directory> ;
# Adds the given packages <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 <packages> to the image.
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
{
local resolvedPackage = [ IsPackageAvailable $(package) ] ;

View File

@ -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 ;

View File

@ -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 ;
}
}

View File

@ -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) ;

View File

@ -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