[PATCH 06 of 14] Add support for tar.lzma files

Bart vdr. Meulen bartvdrmeulen@gmail.com
Sat May 14 14:02:00 GMT 2011


# HG changeset patch
# User Bart vdr. Meulen <bartvdrmeulen@gmail.com>
# Date 1305381590 -7200
# Node ID 96c4998fad3b0a6a3f3f445cc5d54676174d3039
# Parent  29bc634855fcd7ea543b5ff972fb4382f0620ea8
Add support for tar.lzma files
Some packages have switch too the lzma format, add support to download
package with tar.lzma format and extract them.
The extract is done in two stages, because I was unable to get the
command "lzma -c -d <file> | tar x" working

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
---
 scripts/functions |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/scripts/functions b/scripts/functions
--- a/scripts/functions
+++ b/scripts/functions
@@ -410,7 +410,7 @@
     # we need to also check for an empty extension for those very
     # peculiar components that don't have one (such as sstrip from
     # buildroot).
-    for ext in ${first_ext} .tar.gz .tar.bz2 .tgz .tar /.git ''; do
+    for ext in ${first_ext} .tar.gz .tar.bz2 .tgz .tar.lzma .tar /.git ''; do
         if [ -e "${CT_TARBALLS_DIR}/${file}${ext}" ]; then
             echo "${ext}"
             exit 0
@@ -479,7 +479,7 @@
         CT_DoLog DEBUG "Trying to retrieve an already downloaded copy of '${basename}'"
         # We'd rather have a bzip2'ed tarball, then gzipped tarball, plain tarball,
         # or, as a failover, a file without extension.
-        for ext in ${first_ext} .tar.bz2 .tar.gz .tgz .tar ''; do
+        for ext in ${first_ext} .tar.bz2 .tar.gz .tgz .tar.lzma .tar ''; do
             CT_DoLog DEBUG "Trying '${CT_LOCAL_TARBALLS_DIR}/${basename}${ext}'"
             if [ -r "${CT_LOCAL_TARBALLS_DIR}/${basename}${ext}" -a \
                  "${CT_FORCE_DOWNLOAD}" != "y" ]; then
@@ -553,7 +553,7 @@
     # Scan all URLs in turn, and try to grab a tarball from there
     # Do *not* try git trees (ext=/.git), this is handled in a specific
     # wrapper, below
-    for ext in ${first_ext} .tar.bz2 .tar.gz .tgz .tar ''; do
+    for ext in ${first_ext} .tar.bz2 .tar.gz .tgz .tar.lzma .tar ''; do
         # Try all urls in turn
         for url in ${URLS}; do
             CT_DoLog DEBUG "Trying '${url}/${file}${ext}'"
@@ -725,6 +725,10 @@
     case "${ext}" in
         .tar.bz2)     CT_DoExecLog FILE tar xvjf "${full_file}";;
         .tar.gz|.tgz) CT_DoExecLog FILE tar xvzf "${full_file}";;
+	.tar.lzma)    CT_DoExecLog FILE lzma -d "${full_file}"
+		      CT_DoExecLog FILE tar xf "${CT_TARBALLS_DIR}/${basename}.tar"
+		      CT_DoExecLog FILE rm "${CT_TARBALLS_DIR}/${basename}.tar"
+		      ;;
         .tar)         CT_DoExecLog FILE tar xvf  "${full_file}";;
         /.git)        CT_ExtractGit "${basename}" "${@}";;
         *)            CT_Abort "Don't know how to handle '${basename}${ext}': unknown extension";;

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list