[Piuparts-commits] [SCM] piuparts git repository branch, piatti, updated. 0.44-811-gcddb6b0

Andreas Beckmann debian at abeckmann.de
Tue Jun 19 09:47:51 UTC 2012


The following commit has been merged in the piatti branch:
commit 4de35236b41bb0fdbd77c58b618010238164bcd4
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Mon Jun 11 21:32:24 2012 +0200

    p: add support for version-qualified packages
    
    e.g. piuparts ... --apt foo=1.2-3
    
    version qualification needs to be removed at certain places
    
    Signed-off-by: Andreas Beckmann <debian at abeckmann.de>

diff --git a/debian/changelog b/debian/changelog
index 65764aa..dbcdae1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -83,6 +83,7 @@ piuparts (0.45) UNRELEASED; urgency=low
     - Remove temp_tgz on error exit.
     - Remove metapackage build directory on error exit.  (Closes: #663702)
     - Don't remove eatmydata when minimizing a chroot.  (Closes: #658962)
+    - Add support for version-qualified package arguments (--apt foo=1.2-3).
   * piuparts.conf:
     - Defaults for all [section] settings can be set in the [global] section.
     - Change master-command to not include the section name so that it can be
diff --git a/piuparts.py b/piuparts.py
index 6aae953..cffd2c0 100644
--- a/piuparts.py
+++ b/piuparts.py
@@ -1132,6 +1132,8 @@ class Chroot:
         """Restore package selections in a chroot to the state in
         'selections'."""
 
+        packages = [p.split("=", 1)[0].strip() for p in packages]
+
         changes = diff_selections(self, selections)
         deps = {}
         nondeps = {}
@@ -1240,7 +1242,7 @@ class Chroot:
             self.run_scripts("pre_install")
 
             self.run(["apt-cache", "policy"])
-            self.run(["apt-cache", "policy"] + packages)
+            self.run(["apt-cache", "policy"] + [p.split("=", 1)[0].strip() for p in packages])
 
             if settings.list_installed_files:
                 pre_info = self.save_meta_data()
@@ -2135,7 +2137,7 @@ def load_meta_data(filename):
     return chroot_state
 
 
-def install_and_upgrade_between_distros(package_files, packages):
+def install_and_upgrade_between_distros(package_files, packages_qualified):
     """Install package and upgrade it between distributions, then remove.
        Return True if successful, False if not."""
 
@@ -2163,6 +2165,8 @@ def install_and_upgrade_between_distros(package_files, packages):
 
     os.environ["PIUPARTS_TEST"] = "distupgrade"
 
+    packages = [p.split("=", 1)[0].strip() for p in packages_qualified]
+
     chroot = get_chroot()
     chroot.create()
 
@@ -2231,7 +2235,7 @@ def install_and_upgrade_between_distros(package_files, packages):
     if settings.install_remove_install:
         chroot.install_packages_by_name(packages)
 
-    chroot.install_package_files(package_files, packages)
+    chroot.install_package_files(package_files, packages_qualified)
 
     chroot.check_for_no_processes()
 
@@ -2658,7 +2662,7 @@ def process_packages(package_list):
             if not settings.args_are_package_files:
                 logging.info("Can't test upgrades: -a or --apt option used.")
             else:
-                packages_to_query = packages[:]
+                packages_to_query = [p.split("=", 1)[0].strip() for p in packages]
                 packages_to_query.extend(settings.extra_old_packages)
                 known_packages = chroot.get_known_packages(packages_to_query)
                 if not known_packages:

-- 
piuparts git repository



More information about the Piuparts-commits mailing list