diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 26a5f119a5..747d32e05b 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -318,8 +318,14 @@ AddFilesToHaikuImage system bin : installoptionalpackage ; SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ; AddFilesToHaikuImage system bin : install-wifi-firmwares.sh ; -# Record the installed optional packages. To be used by installoptionalpackage. +# Add the files to be used by installoptionalpackage. AddDirectoryToHaikuImage common data optional-packages ; +local optional-pkg-files = OptionalBuildFeatures OptionalPackageDependencies + OptionalPackages ; +for name in $(optional-pkg-files) { + local file = [ FDirName $(HAIKU_TOP) build jam $(name) ] ; + AddFilesToHaikuImage common data optional-packages : $(file) ; +} AddInstalledPackagesFileToHaikuImage ; AddSymlinkToHaikuImage system bin : bash : sh ; diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 592d3da2ac..cc511b5717 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -934,7 +934,7 @@ rule AddInstalledPackagesFileToHaikuImage Always $(file) ; MakeLocate $(file) : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ; BuildHaikuImageInstalledPackagesFile $(file) ; - AddFilesToHaikuImage common data : $(file) ; + AddFilesToHaikuImage common data optional-packages : $(file) ; } actions BuildHaikuImageInstalledPackagesFile diff --git a/data/bin/installoptionalpackage b/data/bin/installoptionalpackage index 82752baa31..d7462e6c07 100755 --- a/data/bin/installoptionalpackage +++ b/data/bin/installoptionalpackage @@ -43,7 +43,6 @@ declare alreadyInstalled="" # as they require either the source code or compiled binaries declare packageIgnoreList="Bluetooth Development DevelopmentMin \ DevelopmentBase MandatoryPackages UserlandFS Welcome WifiFirmwareScriptData " -installedPackagesFile="`finddir B_COMMON_DATA_DIRECTORY`/InstalledPackages" function CreateInstallerScript() @@ -337,6 +336,8 @@ function Init() tmpDir=`finddir B_COMMON_TEMP_DIRECTORY` libDir=`finddir B_SYSTEM_LIB_DIRECTORY` + installedPackagesFile="${baseDir}/InstalledPackages" + # Make sure these files are empty. echo "" > ${tmpDir}/optpkg.jam echo "" > ${tmpDir}/optpkg.stage1 @@ -783,8 +784,8 @@ function RemoveCachedFiles() { # RemoveCachedFiles echo "Removing cached files ..." - if [ -d ${baseDir} ]; then - rm -rf ${baseDir} + if [ -e ${baseDir}/OptionalPackageNames ]; then + rm ${baseDir}/OptionalPackageNames fi # Unset variables, which prevents duplicate entries.