This patch adds in support for automatically detecting and decompressing
both formats gentoo currently ships portage snapshots in. To make the
change as minimal as possible I am using recent gnu tar ability to
automatically pick the correct format and decompress. This may not work
as expected on *bsd or MacOSX unless we already require gnu tar on those
platforms.

Signed-off-by: Rick Farina <[email protected]>
---
 modules/generic_stage_target.py |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
index c4ef239..031d8bf 100644
--- a/modules/generic_stage_target.py
+++ b/modules/generic_stage_target.py
@@ -404,12 +404,15 @@ class generic_stage_target(generic_target):
 
        def set_snapshot_path(self):
                
self.settings["snapshot_path"]=normpath(self.settings["storedir"]+\
-                       
"/snapshots/portage-"+self.settings["snapshot"]+".tar.bz2")
+                       
"/snapshots/portage-"+self.settings["snapshot"]+".tar.xz")
 
                if os.path.exists(self.settings["snapshot_path"]):
                        self.settings["snapshot_path_hash"]=\
                                generate_hash(self.settings["snapshot_path"],\
                                
hash_function=self.settings["hash_function"],verbose=False)
+               else:
+                       
self.settings["snapshot_path"]=normpath(self.settings["storedir"]+\
+                               
"/snapshots/portage-"+self.settings["snapshot"]+".tar.bz2")
 
        def set_snapcache_path(self):
                if self.settings.has_key("SNAPCACHE"):
@@ -635,7 +638,7 @@ class generic_stage_target(generic_target):
                                        self.settings["source_path"]+"\nto "+\
                                        self.settings["chroot_path"]+\
                                                " (This may take some time) 
...\n"
-                               unpack_cmd="tar xjpf 
"+self.settings["source_path"]+" -C "+\
+                               unpack_cmd="tar xpf 
"+self.settings["source_path"]+" -C "+\
                                        self.settings["chroot_path"]
                                error_msg="Tarball extraction of "+\
                                        self.settings["source_path"]+" to "+\
@@ -646,7 +649,7 @@ class generic_stage_target(generic_target):
                                self.settings["source_path"]+"\nto "+\
                                self.settings["chroot_path"]+\
                                " (This may take some time) ...\n"
-                       unpack_cmd="tar xjpf "+self.settings["source_path"]+" 
-C "+\
+                       unpack_cmd="tar xpf "+self.settings["source_path"]+" -C 
"+\
                                self.settings["chroot_path"]
                        error_msg="Tarball extraction of 
"+self.settings["source_path"]+\
                                " to "+self.settings["chroot_path"]+" failed."
@@ -744,7 +747,7 @@ class generic_stage_target(generic_target):
                                
read_from_clst(self.settings["snapshot_cache_path"]+\
                                "catalyst-hash")
                        destdir=self.settings["snapshot_cache_path"]
-                       unpack_cmd="tar xjpf "+self.settings["snapshot_path"]+" 
-C "+destdir
+                       unpack_cmd="tar xpf "+self.settings["snapshot_path"]+" 
-C "+destdir
                        unpack_errmsg="Error unpacking snapshot"
                        cleanup_msg="Cleaning up invalid snapshot cache at 
\n\t"+\
                                self.settings["snapshot_cache_path"]+\
@@ -760,7 +763,7 @@ class generic_stage_target(generic_target):
                        cleanup_errmsg="Error removing existing snapshot 
directory."
                        cleanup_msg=\
                                "Cleaning up existing portage tree (This can 
take a long time)..."
-                       unpack_cmd="tar xjpf "+self.settings["snapshot_path"]+" 
-C "+\
+                       unpack_cmd="tar xpf "+self.settings["snapshot_path"]+" 
-C "+\
                                self.settings["chroot_path"]+"/usr"
                        unpack_errmsg="Error unpacking snapshot"
 
-- 
1.7.8.6


Reply via email to