From 0ccd3960565934e038558cbf7e88f72462a81bef Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 7 Jun 2015 04:41:40 +0200 Subject: [PATCH] patchupdate.py: Improvement of category dependency handling. --- debian/tools/patchinstall.sh.in | 1 + debian/tools/patchupdate.py | 16 +++++++++++++++- patches/patchinstall.sh | 10 ++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/debian/tools/patchinstall.sh.in b/debian/tools/patchinstall.sh.in index 74bb3b33..f47f14b1 100644 --- a/debian/tools/patchinstall.sh.in +++ b/debian/tools/patchinstall.sh.in @@ -76,6 +76,7 @@ warning() # Default settings patch_enable_all 0 +category_enable_all 0 enable_patchlist=1 enable_autoconf=1 patchlist="/dev/null" diff --git a/debian/tools/patchupdate.py b/debian/tools/patchupdate.py index 33a6f2e9..bd0dd720 100755 --- a/debian/tools/patchupdate.py +++ b/debian/tools/patchupdate.py @@ -69,6 +69,7 @@ class PatchUpdaterError(RuntimeError): class PatchSet(object): def __init__(self, name, directory): self.name = name + self.is_category = False self.variable = None self.directory = directory self.fixes = [] @@ -340,6 +341,7 @@ def read_patchset(revision = None): # Add virtual targets for all the categories for category, indices in categories.iteritems(): patch = PatchSet(category, directory) + patch.is_category = True patch.depends = indices i = next(unique_id) @@ -622,11 +624,23 @@ def generate_script(all_patches): lines.append("patch_enable_all ()\n") lines.append("{\n") for i, patch in sorted([(i, all_patches[i]) for i in resolved], key=lambda x:x[1].name): + if patch.is_category: continue patch.variable = "enable_%s" % patch.name.replace("-","_").replace(".","_") lines.append("\t%s=\"$1\"\n" % patch.variable) lines.append("}\n") lines.append("\n") - lines.append("# Enable or disable a specific patchset\n") + + lines.append("# Enable or disable all categories\n") + lines.append("category_enable_all ()\n") + lines.append("{\n") + for i, patch in sorted([(i, all_patches[i]) for i in resolved], key=lambda x:x[1].name): + if not patch.is_category: continue + patch.variable = "enable_%s" % patch.name.replace("-","_").replace(".","_") + lines.append("\t%s=\"$1\"\n" % patch.variable) + lines.append("}\n") + lines.append("\n") + + lines.append("# Enable or disable a specific patchset/category\n") lines.append("patch_enable ()\n") lines.append("{\n") lines.append("\tcase \"$1\" in\n") diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 5a11a5be..c7b02c67 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -83,7 +83,6 @@ patch_enable_all () enable_advapi32_LsaLookupSids="$1" enable_browseui_ACLShell_IEnumString="$1" enable_browseui_Progress_Dialog="$1" - enable_category_stable="$1" enable_combase_String="$1" enable_comctl32_LoadIconMetric="$1" enable_configure_Absolute_RPATH="$1" @@ -297,7 +296,13 @@ patch_enable_all () enable_wtsapi32_EnumerateProcesses="$1" } -# Enable or disable a specific patchset +# Enable or disable all categories +category_enable_all () +{ + enable_category_stable="$1" +} + +# Enable or disable a specific patchset/category patch_enable () { case "$1" in @@ -970,6 +975,7 @@ patch_enable () # Default settings patch_enable_all 0 +category_enable_all 0 enable_patchlist=1 enable_autoconf=1 patchlist="/dev/null"