[haiku-commits] haiku: hrev47020 - in build/jam/images: . build/jam

  • From: zooey@xxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 16 Mar 2014 01:18:05 +0100 (CET)

hrev47020 adds 2 changesets to branch 'master'
old head: 998f4043691e226cc0ccec8776fced9286facb26
new head: 72e677911f70c9b191fa5ea2f1c0e76cb00ea2b7
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=72e6779+%5E998f404

----------------------------------------------------------------------------

bef384b: Don't copy over package versions into package-list for bootstrap.
  
  * This decouples the versions referenced by the architecture-specific
    repository file from the actual versions available in the haikuports
    branch that happens to be used for the bootstrap build.

72e6779: 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).

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

5 files changed, 278 insertions(+), 15 deletions(-)
Jamfile                            |  29 ++++-
build/jam/DefaultBuildProfiles     |  28 +++-
build/jam/ImageRules               |   2 +-
build/jam/RepositoryRules          |   7 +-
build/jam/images/HaikuImageMinimum | 227 +++++++++++++++++++++++++++++++++

############################################################################

Commit:      bef384b0582ca327d03fedbb717454e59c8536b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bef384b
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Mar 15 16:08:38 2014 UTC

Don't copy over package versions into package-list for bootstrap.

* This decouples the versions referenced by the architecture-specific
  repository file from the actual versions available in the haikuports
  branch that happens to be used for the bootstrap build.

----------------------------------------------------------------------------

diff --git a/build/jam/ImageRules b/build/jam/ImageRules
index a78f1f3..84e562d 100644
--- a/build/jam/ImageRules
+++ b/build/jam/ImageRules
@@ -1153,7 +1153,7 @@ rule BuildHaikuImagePackageList target
        }
 
        # extract the versioned package names (without revision)
-       packageFiles = [ Match "(.*)-[^-]*-[^-]*" : $(packageFiles:B) ] ;
+       packageFiles = [ Match "^([^-]*)" : $(packageFiles:B) ] ;
 
        HAIKU_IMAGE_PACKAGES on $(target) = $(packageFiles) ;
 }

############################################################################

Revision:    hrev47020
Commit:      72e677911f70c9b191fa5ea2f1c0e76cb00ea2b7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=72e6779
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Mar 16 00:00:28 2014 UTC

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

----------------------------------------------------------------------------

diff --git a/Jamfile b/Jamfile
index 7aa6d8f..086d82b 100644
--- a/Jamfile
+++ b/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 ] ;
 }
diff --git a/build/jam/DefaultBuildProfiles b/build/jam/DefaultBuildProfiles
index a77ca98..d221b79 100644
--- a/build/jam/DefaultBuildProfiles
+++ b/build/jam/DefaultBuildProfiles
@@ -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
+                               ;
+               }
        }
 
 
diff --git a/build/jam/RepositoryRules b/build/jam/RepositoryRules
index 1242c62..43089f3 100644
--- a/build/jam/RepositoryRules
+++ b/build/jam/RepositoryRules
@@ -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)
 }
 
 
diff --git a/build/jam/images/HaikuImageMinimum 
b/build/jam/images/HaikuImageMinimum
new file mode 100644
index 0000000..d81d483
--- /dev/null
+++ b/build/jam/images/HaikuImageMinimum
@@ -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 ] ;


Other related posts: