create-update: package blacklisting 11/6011/1
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Wed, 24 Jul 2013 11:25:31 +0000 (14:25 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Wed, 24 Jul 2013 11:25:48 +0000 (14:25 +0300)
Support blacklisting some packages from the update. Use with care!

Change-Id: Ia8d212d13cba8796e3e6eb1074ec57e871e7b40d
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
tools/updateinfo/TZPC-UP-0001-01.yaml
tools/updateinfo/create-update.py
tools/updateinfo/updateutils.py

index c335f2d..056233d 100644 (file)
@@ -9,3 +9,5 @@ Description: |
 Type: recommended
 Status: stable
 ID: TZPC-UP-0001-01
+BlacklistPkgs:
+    - broken-pkg
index 605e72c..b3e153f 100755 (executable)
@@ -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)
index f958583..9200238 100755 (executable)
@@ -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)