From 50ffb212914720bb408c4680b5af2db9908ee932 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 5 Oct 2013 22:28:59 +0200 Subject: [PATCH] update-{all,packages} build profile action: empty packages dir ... before copying the new contents to the image. This caters to the typical use case of updating an existing Haiku, making manual intervention to get the new packages activated unnecessary. The downside is that manually added packages will be removed as well. --- build/jam/ImageRules | 3 +++ build/scripts/build_haiku_image | 10 ++++++++++ 2 files changed, 13 insertions(+) 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