mirror of
https://review.haiku-os.org/haiku
synced 2024-11-23 07:18:40 +01:00
Make set of source packages for bootstrap-image configurable.
* Add new build profile 'minimum', which defines a minimum set of packages. * Introduce HAIKU_BOOTSTRAP_SOURCES_PROFILE and let it default to '@minimum-raw'. This can be overruled in UserBuildConfig, setting it to '@release-raw' will cause all source packages required for a full release to be put onto the bootstrap-image. * Add new image HaikuImageMinimum, which is meant to define the minimum useful Haiku image (yeah, I know that's vague). * Add HAIKU_MINIMUM_BUILD, which indicates that HaikuImageMinimum should be used (it would be better to merge this with HAIKU_BOOTSTRAP_BUILD into something like HAIKU_BUILD_TYPE) * Cleanup duplicate references to basic packages - those are now added by the topmost Jamfile (no longer referenced by the build profiles).
This commit is contained in:
parent
bef384b058
commit
72e677911f
29
Jamfile
29
Jamfile
@ -11,13 +11,28 @@ for architectureObject in [ MultiArchSubDirSetup ] {
|
||||
}
|
||||
}
|
||||
|
||||
# Include packages that are required by all images.
|
||||
if ! $(HAIKU_BOOTSTRAP_BUILD) {
|
||||
# Include packages that are required by all images:
|
||||
# primary architecture
|
||||
AddHaikuImagePackages
|
||||
curl freetype icu libsolv zlib
|
||||
;
|
||||
# secondary architectures
|
||||
local architectureObject ;
|
||||
for architectureObject
|
||||
in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] {
|
||||
on $(architectureObject) {
|
||||
AddHaikuImagePackages
|
||||
curl freetype icu libsolv zlib
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
# Include packages that are required by non-basic images:
|
||||
if ! ( $(HAIKU_BOOTSTRAP_BUILD) || $(HAIKU_MINIMUM_BUILD) ) {
|
||||
# primary architecture
|
||||
AddHaikuImagePackages
|
||||
bzip2 ctags curl findutils gawk grep sed tar which zlib
|
||||
ffmpeg freetype icu jpeg libpng libsolv
|
||||
mesa mesa_devel mesa_swrast glu
|
||||
bzip2 ctags ffmpeg findutils gawk glu grep jpeg libpng
|
||||
mesa mesa_devel mesa_swrast sed tar which
|
||||
;
|
||||
|
||||
# secondary architectures
|
||||
@ -26,7 +41,7 @@ if ! $(HAIKU_BOOTSTRAP_BUILD) {
|
||||
in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] {
|
||||
on $(architectureObject) {
|
||||
AddHaikuImagePackages
|
||||
curl ffmpeg freetype glu icu jpeg libpng libsolv mesa zlib
|
||||
ffmpeg glu jpeg libpng mesa
|
||||
;
|
||||
}
|
||||
}
|
||||
@ -68,6 +83,8 @@ include [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories Haiku ] ;
|
||||
# specify the Haiku image and network boot archive contents
|
||||
if $(HAIKU_BOOTSTRAP_BUILD) {
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ;
|
||||
} else if $(HAIKU_MINIMUM_BUILD) {
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageMinimum ] ;
|
||||
} else {
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ;
|
||||
}
|
||||
|
@ -1,9 +1,14 @@
|
||||
# set HAIKU_BOOTSTRAP_BUILD early, if building a bootstrap Haiku image
|
||||
switch $(HAIKU_BUILD_PROFILE) {
|
||||
case "bootstrap-*" :
|
||||
case "bootstrap-*" : {
|
||||
HAIKU_BOOTSTRAP_BUILD = 1 ;
|
||||
HAIKU_DEFINES += HAIKU_BOOTSTRAP_BUILD ;
|
||||
TARGET_DEFINES += HAIKU_BOOTSTRAP_BUILD ;
|
||||
}
|
||||
|
||||
case "minimum-*" : {
|
||||
HAIKU_MINIMUM_BUILD = 1 ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -28,6 +33,13 @@ rule DefineDefaultBuildProfiles
|
||||
DefineBuildProfile bootstrap-vmware : vmware-image
|
||||
: "haiku-bootstrap.vmdk" ;
|
||||
|
||||
# minimum profiles
|
||||
DefineBuildProfile minimum-raw : image : "haiku-minimum.image" ;
|
||||
DefineBuildProfile minimum-vmware : vmware-image : "haiku-minimum.vmdk" ;
|
||||
DefineBuildProfile minimum-anyboot : anyboot-image
|
||||
: "haiku-minimum-anyboot.image" ;
|
||||
|
||||
|
||||
switch $(HAIKU_BUILD_PROFILE) {
|
||||
case "release-*" : {
|
||||
Echo Building Haiku R1/development preview ;
|
||||
@ -41,6 +53,7 @@ rule DefineDefaultBuildProfiles
|
||||
bepdf
|
||||
cvs
|
||||
keymapswitcher
|
||||
llvm
|
||||
man
|
||||
mercurial
|
||||
nano
|
||||
@ -123,18 +136,14 @@ rule DefineDefaultBuildProfiles
|
||||
automake
|
||||
binutils
|
||||
bison
|
||||
curl
|
||||
curl_devel
|
||||
findutils
|
||||
flex
|
||||
freetype
|
||||
freetype_devel
|
||||
gawk
|
||||
gcc
|
||||
grep
|
||||
haikuporter
|
||||
icu
|
||||
libsolv
|
||||
libtool
|
||||
libtool_libltdl
|
||||
m4
|
||||
@ -144,7 +153,6 @@ rule DefineDefaultBuildProfiles
|
||||
python
|
||||
sed
|
||||
texinfo
|
||||
zlib
|
||||
zlib_devel
|
||||
;
|
||||
|
||||
@ -172,6 +180,14 @@ rule DefineDefaultBuildProfiles
|
||||
|
||||
AddOptionalHaikuImagePackages DevelopmentMin ;
|
||||
}
|
||||
|
||||
case "minimum-*" : {
|
||||
Echo Building Haiku Minimum Target ;
|
||||
HAIKU_IMAGE_HOST_NAME ?= shredder ;
|
||||
|
||||
AddHaikuImagePackages
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#pragma mark - Private
|
||||
|
||||
# default value for the build profile that defines the set of source packages
|
||||
# that will be put onto the bootstrap image
|
||||
HAIKU_BOOTSTRAP_SOURCES_PROFILE ?= @minimum-raw ;
|
||||
|
||||
rule PackageFamily packageBaseName
|
||||
{
|
||||
@ -555,8 +558,8 @@ rule BuildHaikuPortsSourcePackageDirectory
|
||||
|
||||
actions BuildHaikuPortsPackageList
|
||||
{
|
||||
HAIKU_BOOTSTRAP_BUILD= $(JAM:E=jam) @release-raw build-package-list $(1) \
|
||||
$(HAIKU_REPOSITORY_BUILD_ADDITIONAL_PACKAGES)
|
||||
HAIKU_BOOTSTRAP_BUILD= $(JAM:E=jam) $(HAIKU_BOOTSTRAP_SOURCES_PROFILE) \
|
||||
build-package-list $(1) $(HAIKU_REPOSITORY_BUILD_ADDITIONAL_PACKAGES)
|
||||
}
|
||||
|
||||
|
||||
|
227
build/jam/images/HaikuImageMinimum
Normal file
227
build/jam/images/HaikuImageMinimum
Normal file
@ -0,0 +1,227 @@
|
||||
# This file defines what ends up on the Haiku minimum image (respectively in
|
||||
# the Haiku installation directory) and it executes the rules building the image
|
||||
# (respectively installing the files in the installation directory).
|
||||
|
||||
|
||||
SYSTEM_BIN = [ FFilterByBuildFeatures
|
||||
"["
|
||||
addattr alert arp
|
||||
base64 basename bash bc beep bfsinfo
|
||||
cal cat catattr checkfs checkitout chgrp chmod chop chown chroot cksum clear
|
||||
clockconfig cmp collectcatkeys comm compress copyattr cp
|
||||
csplit cut date dc dd desklink df diff diff3 dircolors dirname
|
||||
diskimage draggers driveinfo dstcheck du dumpcatalog
|
||||
echo eject env error expand expr
|
||||
factor false fdinfo ffm filepanel finddir findpaths fmt fold
|
||||
fortune ftp ftpd funzip
|
||||
getarch getlimits groupadd groupdel groupmod groups gzip gzexe
|
||||
hd head hey hostname
|
||||
id ident ifconfig <bin>install isvolume
|
||||
ideinfo@ide idestatus@ide
|
||||
join kernel_debugger keymap keystore kill
|
||||
less lessecho lesskey link linkcatkeys listarea listattr listimage listdev
|
||||
listport listres listsem listusb ln locale logger login logname ls
|
||||
lsindex
|
||||
makebootable md5sum merge message mimeset mkdir
|
||||
mkfifo mkfs mkindex mktemp modifiers mount mountvolume mv
|
||||
netcat netstat nl nohup notify nproc
|
||||
od open
|
||||
package package_repo passwd paste patch pathchk pc ping ping6 pkgman
|
||||
pr prio printenv printf profile ps ptx pwd
|
||||
query quit
|
||||
rc readlink reindex release renice rlog rm rmattr rmindex rmdir roster
|
||||
route
|
||||
safemode screen_blanker screenmode sdiff setarch setmime settype
|
||||
setversion setvolume seq sha1sum sha256sum shar shred shuf shutdown sleep
|
||||
sort split stat strace stty su sum sync sysinfo
|
||||
tac tail tcpdump tcptester tee telnet telnetd test timeout top touch
|
||||
tr traceroute trash true truncate tsort tty
|
||||
uname unchop unexpand unmount uniq unlink unshar unzip unzipsfx
|
||||
uptime urlwrapper useradd userdel uudecode uuencode
|
||||
vdir version vmstat
|
||||
waitfor watch wc wget whoami writembr@x86 xres
|
||||
yes
|
||||
zdiff zforce zgrep zip zipcloak <bin>zipgrep zipnote zipsplit zmore znew
|
||||
] ;
|
||||
|
||||
SYSTEM_APPS = [ FFilterByBuildFeatures
|
||||
AboutSystem ActivityMonitor BootManager@x86,x86_64 CharacterMap
|
||||
DeskCalc Debugger Devices DiskProbe DiskUsage DriveSetup
|
||||
Expander Installer
|
||||
NetworkStatus
|
||||
PowerStatus ProcessController ShowImage
|
||||
StyledEdit Terminal TextSearch Workspaces
|
||||
] ;
|
||||
SYSTEM_PREFERENCES = [ FFilterByBuildFeatures
|
||||
Appearance Backgrounds
|
||||
<preference>Deskbar FileTypes Keyboard Keymap Locale
|
||||
Mouse Network Notifications Screen ScreenSaver
|
||||
Shortcuts Time Touchpad <preference>Tracker VirtualMemory
|
||||
] ;
|
||||
SYSTEM_DEMOS = ;
|
||||
|
||||
|
||||
rule HaikuImageGetSystemLibs
|
||||
{
|
||||
return
|
||||
# libs with special grist
|
||||
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
|
||||
$(HAIKU_SHARED_LIBSTDC++_$(TARGET_PACKAGING_ARCH))
|
||||
$(HAIKU_SHARED_LIBSUPC++_$(TARGET_PACKAGING_ARCH))
|
||||
# libs with standard grist
|
||||
[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
|
||||
libbe.so libbsd.so libbnetapi.so
|
||||
libdebug.so libdevice.so
|
||||
libgame.so
|
||||
libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so
|
||||
libnetwork.so
|
||||
libpackage.so
|
||||
libscreensaver.so
|
||||
libtextencoding.so libtracker.so libtranslation.so
|
||||
] ]
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
rule HaikuImageGetPrivateSystemLibs
|
||||
{
|
||||
return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
|
||||
libalm.so
|
||||
libfluidsynth.so
|
||||
# libilmimf.so
|
||||
libpackage-add-on-libsolv.so
|
||||
libroot-addon-icu.so
|
||||
] ] ;
|
||||
}
|
||||
|
||||
|
||||
SYSTEM_SERVERS = [ FFilterByBuildFeatures
|
||||
app_server debug_server dns_resolver_server input_server
|
||||
keystore_server media_addon_server
|
||||
mount_server net_server notification_server
|
||||
package_daemon power_daemon registrar
|
||||
syslog_daemon
|
||||
] ;
|
||||
|
||||
SYSTEM_NETWORK_DEVICES = ethernet loopback ;
|
||||
SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame
|
||||
ipv6_datagram ;
|
||||
#SYSTEM_NETWORK_PPP = ipcp modem pap pppoe ;
|
||||
SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix icmp6 ipv6 ;
|
||||
|
||||
SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures
|
||||
x86,x86_64 @{
|
||||
vesa.accelerant
|
||||
}@ # x86,x86_64
|
||||
x86 @{
|
||||
3dfx.accelerant ati.accelerant matrox.accelerant neomagic.accelerant
|
||||
nvidia.accelerant intel_810.accelerant intel_extreme.accelerant
|
||||
radeon.accelerant radeon_hd.accelerant s3.accelerant
|
||||
#via.accelerant vmware.accelerant
|
||||
}@ # x86
|
||||
] ;
|
||||
SYSTEM_ADD_ONS_TRANSLATORS = STXTTranslator ;
|
||||
SYSTEM_ADD_ONS_LOCALE_CATALOGS = <catalog-addon>plaintext ;
|
||||
SYSTEM_ADD_ONS_MEDIA = ;
|
||||
SYSTEM_ADD_ONS_MEDIA_PLUGINS = ;
|
||||
SYSTEM_ADD_ONS_PRINT = ;
|
||||
SYSTEM_ADD_ONS_PRINT_TRANSPORT = ;
|
||||
SYSTEM_ADD_ONS_SCREENSAVERS = ;
|
||||
SYSTEM_ADD_ONS_DRIVERS_AUDIO = ;
|
||||
SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ;
|
||||
SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures
|
||||
x86,x86_64 @{
|
||||
vesa
|
||||
}@ # x86,x86_64
|
||||
x86 @{
|
||||
ati 3dfx intel_810 intel_extreme matrox neomagic nvidia radeon radeon_hd
|
||||
s3 #via vmware
|
||||
}@ # x86
|
||||
] ;
|
||||
SYSTEM_ADD_ONS_DRIVERS_MIDI = ;
|
||||
SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures
|
||||
x86,x86_64 @{
|
||||
3com atheros813x ar81xx attansic_l1 attansic_l2 broadcom440x
|
||||
broadcom570x dec21xxx ipro100 ipro1000 jmicron2x0 marvell_yukon nforce
|
||||
pcnet rtl8139 rtl81xx sis19x syskonnect via_rhine vt612x
|
||||
}@ # x86_64
|
||||
|
||||
etherpci pegasus sis900 usb_davicom usb_asix usb_ecm wb840
|
||||
|
||||
# WLAN drivers
|
||||
x86 @{
|
||||
aironetwifi atheroswifi broadcom43xx
|
||||
iprowifi2100 iprowifi2200 iprowifi3945
|
||||
iprowifi4965 marvell88w8363 marvell88w8335
|
||||
ralinkwifi wavelanwifi
|
||||
}@ # x86
|
||||
|
||||
# WWAN drivers
|
||||
#usb_beceemwmx@gpl
|
||||
] ;
|
||||
SYSTEM_ADD_ONS_DRIVERS_POWER = [ FFilterByBuildFeatures acpi_button@x86 ] ;
|
||||
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
|
||||
ata@ata pci ps2@x86,x86_64 isa@x86,x86_64
|
||||
ide@ide scsi config_manager agp_gart@x86 usb firewire@x86 acpi@x86,x86_64
|
||||
virtio
|
||||
] ;
|
||||
SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs bindfs btrfs exfat ext2 fat iso9660
|
||||
attribute_overlay write_overlay ntfs packagefs reiserfs@x86 udf ;
|
||||
|
||||
|
||||
# build the haiku system packages and add them
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuPackages ] ;
|
||||
|
||||
AddPackageFilesToHaikuImage system :
|
||||
haiku_loader.hpkg
|
||||
haiku.hpkg
|
||||
haiku_$(TARGET_PACKAGING_ARCHS[2-]).hpkg
|
||||
:
|
||||
nameFromMetaInfo
|
||||
;
|
||||
|
||||
|
||||
AddSymlinkToHaikuImage home Desktop : /boot/home : Home ;
|
||||
|
||||
# global settings when a package is installed in ~/config
|
||||
AddDirectoryToHaikuImage home config settings global ;
|
||||
|
||||
|
||||
# scripts and data files
|
||||
local userBootScripts = UserBootscript UserSetupEnvironment.sample ;
|
||||
SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ;
|
||||
AddFilesToHaikuImage home config settings boot : $(userBootScripts) ;
|
||||
|
||||
# Add boot launch directory
|
||||
AddDirectoryToHaikuImage home config settings boot launch ;
|
||||
|
||||
local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ;
|
||||
local etcFiles = inputrc profile ;
|
||||
etcFiles = $(etcFiles:G=etc) ;
|
||||
SEARCH on $(etcFiles) = $(etcDir) ;
|
||||
etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ;
|
||||
AddFilesToHaikuImage system settings etc : $(etcFiles) ;
|
||||
|
||||
local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ;
|
||||
profileFiles = $(profileFiles:G=profile-d) ;
|
||||
AddDirectoryToHaikuImage system settings etc profile.d ;
|
||||
AddFilesToHaikuImage system settings etc profile.d : $(profileFiles) ;
|
||||
|
||||
local driverSettingsFiles = <driver-settings>kernel ;
|
||||
SEARCH on $(driverSettingsFiles)
|
||||
= [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ;
|
||||
AddFilesToHaikuImage home config settings kernel drivers
|
||||
: $(driverSettingsFiles) ;
|
||||
|
||||
local networkSettingsFiles = <network-settings>services ;
|
||||
SEARCH on $(networkSettingsFiles)
|
||||
= [ FDirName $(HAIKU_TOP) data settings network ] ;
|
||||
AddFilesToHaikuImage system settings network : $(networkSettingsFiles) ;
|
||||
|
||||
# fresh install indicator file for the post install scripts
|
||||
SEARCH on <post-install>fresh_install
|
||||
= [ FDirName $(HAIKU_TOP) data system settings ] ;
|
||||
AddFilesToHaikuImage system settings : <post-install>fresh_install ;
|
||||
|
||||
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageCommon ] ;
|
Loading…
Reference in New Issue
Block a user