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
