diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 7ca97bfc9c..f057e05a7d 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -840,6 +840,9 @@ rule AddPackagesAndRepositoryVariablesToContainerScript script : container AddVariableToScript $(script) : resolvePackageDependencies : $(resolvePackageDependencies) ; + AddVariableToScript $(script) : updateAllPackages + : $(HAIKU_UPDATE_ALL_PACKAGES) ; + # Add variable "systemPackages" with the packages copied/updated. local allPackages = [ on $(container) return $(HAIKU_PACKAGES_IN_IMAGE) ] ; if $(updateOnly) && ! [ IncludeAllTargetsInContainer $(container) ] { diff --git a/build/scripts/build_haiku_image b/build/scripts/build_haiku_image index 0cf41a6f7e..67125190f1 100755 --- a/build/scripts/build_haiku_image +++ b/build/scripts/build_haiku_image @@ -16,6 +16,7 @@ set -o errexit # imageSize # imageLabel # resolvePackageDependencies +# updateAllPackages # updateOnly # dontClearImage # isVMwareImage @@ -269,6 +270,15 @@ if [ $isImage ]; then $cd . fi + +# Clean out the old packages directory, if updating all packages. +if [ -n "$updateAllPackages" ]; then + echo "Removing old packages ..." + $rm -rf "${tPrefix}system/packages" + $mkdir -p "${tPrefix}system/packages" +fi + + echo "Populating image ..." while [ $# -gt 0 ]; do . $1