[Piuparts-commits] [SCM] piuparts git repository branch, piatti, updated. 0.48-78-g1d4b0ea

Andreas Beckmann debian at abeckmann.de
Thu Jan 3 15:40:21 UTC 2013


The following commit has been merged in the piatti branch:
commit 3c06234ad7770412fe033e55d48af7a41ce1345b
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Sun Dec 16 22:35:10 2012 +0100

    p: add --distupgrade-to-testdebs option
    
    Do a distupgrade, but install the packages from the testdebs repository
    instead of the packages from the target distribution.
    
    Signed-off-by: Andreas Beckmann <debian at abeckmann.de>

diff --git a/debian/changelog b/debian/changelog
index 2cb334c..790e365 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -20,6 +20,9 @@ piuparts (0.49) UNRELEASED; urgency=low
       to be tested (and additional dependencies that are not yet in the
       archive) in a repository to enable dependency resolution with apt-get.
       Use for complex install and upgrade scenarios.
+    - Add --distupgrade-to-testdebs option. During distupgrade tests override
+      packages from the target distro with the packages from the testdebs
+      repository. This allows doing distupgrade tests before uploading.
   * piuparts.conf:
   * piupartslib/conf.py:
     - Add get_final_distro() method.
diff --git a/piuparts.1.txt b/piuparts.1.txt
index 0e29186..26a6406 100644
--- a/piuparts.1.txt
+++ b/piuparts.1.txt
@@ -76,6 +76,11 @@ The tarball can be created with the '-s' option, or you can use one that *pbuild
   a new one with debootstrap. This is similar to '--basetgz', but the contents
   are not archived.
 
+*--distupgrade-to-testdebs*::
+  Use the "testdebs" repository to override the packages in the distupgrade
+  target distribution. This allows to test complex upgrade paths before the
+  packages enter the archive.
+
 *--extra-repo*='deb-line'::
   Provide an additional (unparsed) line to be appended to sources.list, e.g.
     'deb <URL> <distrib> <components>' or
diff --git a/piuparts.py b/piuparts.py
index d0998e3..c9b792c 100644
--- a/piuparts.py
+++ b/piuparts.py
@@ -170,6 +170,7 @@ class Settings:
         self.warn_broken_symlinks = True
         self.warn_on_others = False
         self.warn_on_leftovers_after_purge = False
+        self.distupgrade_to_testdebs = False
         self.ignored_files = [
             # piuparts state
             "/usr/sbin/policy-rc.d",
@@ -2365,14 +2366,23 @@ def install_and_upgrade_between_distros(package_files, packages_qualified):
     os.environ["PIUPARTS_PHASE"] = "distupgrade"
 
     chroot.upgrade_to_distros(settings.debian_distros[1:-1], distupgrade_packages)
+
+    if settings.distupgrade_to_testdebs:
+        chroot.enable_testdebs_repo(update=False)
+
     chroot.upgrade_to_distros(settings.debian_distros[-1:], distupgrade_packages)
 
     chroot.check_for_no_processes()
 
     os.environ["PIUPARTS_PHASE"] = "upgrade"
 
+    if not settings.distupgrade_to_testdebs:
+        chroot.enable_testdebs_repo()
+
     chroot.install_packages(package_files, [p for p in packages_qualified if not p.endswith("=None")])
 
+    chroot.disable_testdebs_repo()
+
     chroot.check_for_no_processes()
 
     file_owners = chroot.get_files_owned_by_packages()
@@ -2480,6 +2490,10 @@ def parse_command_line():
                       action='store_true',
                       help="Do not verify signatures from the Release files when running debootstrap.")
 
+    parser.add_option("--distupgrade-to-testdebs", default=False,
+                      action='store_true',
+                      help="Use the testdebs repository as distupgrade target.")
+
     parser.add_option("-e", "--existing-chroot", metavar="DIR",
                       help="Use DIR as the contents of the initial " +
                            "chroot, instead of building a new one with " +
@@ -2721,6 +2735,7 @@ def parse_command_line():
     settings.pedantic_purge_test = opts.pedantic_purge_test
     if not settings.pedantic_purge_test:
       settings.ignored_patterns += settings.non_pedantic_ignore_patterns
+    settings.distupgrade_to_testdebs = opts.distupgrade_to_testdebs
 
     settings.extra_repos = opts.extra_repo
     settings.testdebs_repo = opts.testdebs_repo

-- 
piuparts git repository



More information about the Piuparts-commits mailing list