From 37cfff1f04388b62c3a7453aa4cc0e81b4c0978c Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 13 Aug 2013 15:31:22 +0200 Subject: [PATCH] build_haiku_image: filter duplicate packages Resolving the package dependencies for system might yield packages that are already given for common. Filter those out of the list for common before resolving the common dependencies. --- build/scripts/build_haiku_image | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/build/scripts/build_haiku_image b/build/scripts/build_haiku_image index a345e532ba..19fac6329c 100755 --- a/build/scripts/build_haiku_image +++ b/build/scripts/build_haiku_image @@ -147,6 +147,18 @@ else fi +is_in_list() +{ + local element + for element in $2; do + if [ "$1" = "$element" ]; then + return 0 + fi + done + return 1 +} + + extractFile() { # extractFile @@ -279,6 +291,18 @@ if [ -n "$resolvePackageDependencies" ]; then systemPackages="$systemPackages $packageFilePath" done + # Remove packages from the list for common, that are already in the package + # list for system. + unfilteredCommonPackages="$commonPackages" + commonPackages= + for packageFile in $unfilteredCommonPackages; do + if is_in_list "$packageFile" "$systemPackages"; then + : + else + commonPackages="$commonPackages $packageFile" + fi + done + # additional packages for common packageUrls=`$getPackageDependencies $repositories -- $systemPackages \ $commonPackages`