From 061a83ad5d396ad2db4ed02cfab221f4e6ebb913 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Wed, 24 Jul 2013 14:25:31 +0300 Subject: [PATCH] create-update: package blacklisting Support blacklisting some packages from the update. Use with care! Change-Id: Ia8d212d13cba8796e3e6eb1074ec57e871e7b40d Signed-off-by: Markus Lehtonen --- tools/updateinfo/TZPC-UP-0001-01.yaml | 2 ++ tools/updateinfo/create-update.py | 3 ++- tools/updateinfo/updateutils.py | 8 +++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/updateinfo/TZPC-UP-0001-01.yaml b/tools/updateinfo/TZPC-UP-0001-01.yaml index c335f2d..056233d 100644 --- a/tools/updateinfo/TZPC-UP-0001-01.yaml +++ b/tools/updateinfo/TZPC-UP-0001-01.yaml @@ -9,3 +9,5 @@ Description: | Type: recommended Status: stable ID: TZPC-UP-0001-01 +BlacklistPkgs: + - broken-pkg diff --git a/tools/updateinfo/create-update.py b/tools/updateinfo/create-update.py index 605e72c..b3e153f 100755 --- a/tools/updateinfo/create-update.py +++ b/tools/updateinfo/create-update.py @@ -102,7 +102,8 @@ with open(os.path.join(patch_dir, "repourl"), "w") as repourlfile: repourlfile.write("%s\n" % config.get(opts.product, 'repo-url', False, {'build-id': opts.new})) -repo_dir = create_delta_repo(tmp_dir, patch_dir, cached_pkgs_dir, tmp_dir, credentials) +blacklist = patch['BlacklistPkgs'] if 'BlacklistPkgs' in patch else [] +repo_dir = create_delta_repo(tmp_dir, patch_dir, cached_pkgs_dir, tmp_dir, credentials, blacklist) # create updateinfo create_updateinfo(tmp_dir, patch) diff --git a/tools/updateinfo/updateutils.py b/tools/updateinfo/updateutils.py index f958583..9200238 100755 --- a/tools/updateinfo/updateutils.py +++ b/tools/updateinfo/updateutils.py @@ -51,7 +51,7 @@ def parse_package_list(filename): packages[pkg[0]] = {'scm': None, 'version': row[1], 'arch': pkg[1]} return packages -def create_delta_repo(baseline_dir, target_dir, pkg_cache_dir, tmp_dir, credentials): +def create_delta_repo(baseline_dir, target_dir, pkg_cache_dir, tmp_dir, credentials, blacklist): p1 = parse_package_list(os.path.join(baseline_dir, "packages")) p2 = parse_package_list(os.path.join(target_dir, "packages")) @@ -76,11 +76,17 @@ def create_delta_repo(baseline_dir, target_dir, pkg_cache_dir, tmp_dir, credenti new_repourl = repourlfile.read().strip() for p in newpkgs: + if p in blacklist: + print "Skipping blacklisted new package %s" % p + continue rpm = "%s-%s.%s.rpm" % (p, p2[p]['version'], p2[p]['arch']) arch = p2[p]['arch'] download("%s/%s/%s" % (new_repourl, arch, rpm), credentials, new_pkgs_dir, pkg_cache_dir) for p in changedpkgs: + if p in blacklist: + print "Skipping blacklisted changed package %s" % p + continue rpm = "%s-%s.%s.rpm" % (p, p1[p]['version'], p1[p]['arch']) arch = p1[p]['arch'] download("%s/%s/%s" % (old_repourl, arch, rpm), credentials, old_pkgs_dir, pkg_cache_dir) -- 2.7.4