[Piuparts-commits] [SCM] piuparts git repository branch, master, updated. eda668423fa87898c59d1075118693714aa5a053

Andreas Beckmann debian at abeckmann.de
Fri Dec 23 10:27:23 UTC 2011


The following commit has been merged in the master branch:
commit 57d6c35fa6eb065049b4015a8f06421b50c15876
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Sun Nov 6 15:00:58 2011 +0100

    restore initial chroot from temp_tgz
    
    Unless --basetgz is given, install_and_upgrade_between_distros() creates a
    temporary tgz of the source distribution chroot.  Use this to initialize
    the source distribution chroot for the second round (when actual package
    installations are performed).  No need to run debootstrap again.
    
    Signed-off-by: Andreas Beckmann <debian at abeckmann.de>

diff --git a/piuparts.py b/piuparts.py
index 79b3b60..0b98969 100644
--- a/piuparts.py
+++ b/piuparts.py
@@ -715,21 +715,23 @@ class Chroot:
         os.chmod(self.name, 0755)
         logging.debug("Created temporary directory %s" % self.name)
 
-    def create(self):
+    def create(self, temp_tgz = None):
         """Create a chroot according to user's wishes."""
         self.create_temp_dir()
         cid = do_on_panic(self.remove)
 
-        if settings.basetgz:
+        if temp_tgz:
+            self.unpack_from_tgz(temp_tgz)
+        elif settings.basetgz:
             self.unpack_from_tgz(settings.basetgz)
         elif settings.lvm_volume:
             self.setup_from_lvm(settings.lvm_volume)
         else:
             self.setup_minimal_chroot()
 
-        self.configure_chroot()
         self.mount_proc()
         self.mount_selinux()
+        self.configure_chroot()
         if settings.basetgz:
             self.run(["apt-get", "-yf", "upgrade"])
         self.minimize()
@@ -747,7 +749,7 @@ class Chroot:
         # Run custom scripts after creating the chroot.
         self.run_scripts("post_setup")
 
-        if settings.savetgz:
+        if settings.savetgz and not temp_tgz:
             self.pack_into_tgz(settings.savetgz)
 
         dont_do_on_panic(cid)
@@ -2050,9 +2052,8 @@ def install_and_upgrade_between_distros(package_files, packages):
         if settings.basetgz:
             chroot.create()
         else:
-            # FIXME: restore from temp_tgz
+            chroot.create(temp_tgz)
             chroot.remove_temp_tgz_file(temp_tgz)
-            chroot.create()
         cid = do_on_panic(chroot.remove)
 
     chroot.check_for_no_processes()

-- 
piuparts git repository



More information about the Piuparts-commits mailing list