Package: devscripts
Version: 2.10.50+lzma
Severity: minor
Tags: patch

Hi,

the attached patch adds lzma support to uupdate.

   Simon
diff -Nru devscripts-2.10.50/debian/changelog devscripts-2.10.50+lzma/debian/changelog
--- devscripts-2.10.50/debian/changelog	2009-05-21 22:50:32.000000000 +0200
+++ devscripts-2.10.50+lzma/debian/changelog	2009-06-02 15:02:39.000000000 +0200
@@ -1,3 +1,9 @@
+devscripts (2.10.50+lzma) unstable; urgency=low
+
+  * Add lzma handling to uupdate
+
+ -- Simon Richter <s...@debian.org>  Tue, 02 Jun 2009 15:02:12 +0200
+
 devscripts (2.10.50) unstable; urgency=low
 
   [ Adam D. Barratt ]
diff -Nru devscripts-2.10.50/scripts/uupdate.sh devscripts-2.10.50+lzma/scripts/uupdate.sh
--- devscripts-2.10.50/scripts/uupdate.sh	2008-12-07 17:59:22.000000000 +0100
+++ devscripts-2.10.50+lzma/scripts/uupdate.sh	2009-06-02 15:04:28.000000000 +0200
@@ -48,7 +48,7 @@
 "Usage for a new archive:
   $PROGNAME [options] <new upstream archive> [<version>]
 For a patch file:
-  $PROGNAME [options] --patch|-p <patch>[.gz|.bz2]
+  $PROGNAME [options] --patch|-p <patch>[.gz|.bz2|.lzma]
 Options are:
    --upstream-version <version>, -v <version>
                       specify version number of upstream package
@@ -56,10 +56,10 @@
                       which command to be used to become root
                       for package-building
    --pristine, -u     Source is pristine upstream source and should be
-                      copied to <pkg>_<version>.orig.tar.{gz|bz2}; not valid
+                      copied to <pkg>_<version>.orig.tar.{gz|bz2|lzma}; not valid
                       for patches
    --no-symlink       Copy new upstream archive to new location
-                      as <pkg>_<version>.orig.tar.{gz|bz2} instead of making a
+                      as <pkg>_<version>.orig.tar.{gz|bz2|lzma} instead of making a
                       symlink
    --no-conf, --noconf
                       Don't read devscripts config files;
@@ -257,6 +257,7 @@
 	    case "$PATCH" in
 		*.gz)  CATPATCH="zcat $PATCH"; X=${X%.gz};;
 		*.bz2) CATPATCH="bzcat $PATCH"; X=${X%.bz2};;
+		*.lzma) CATPATCH="lzcat $PATCH"; X=${X%.lzma};;
 		*)     CATPATCH="cat $PATCH";;
 	    esac
 	    ;;
@@ -282,6 +283,14 @@
 		    fi
 		    X=${X%.bz2}
 		    ;;
+		*.lzma)
+		    if [ -r "$OPWD/$PATCH" ]; then
+			CATPATCH="lzcat $OPWD/$PATCH"
+		    else
+			CATPATCH="lzcat ../$PATCH"
+		    fi
+		    X=${X%.lzma}
+		    ;;
 		*)    if [ -r "$OPWD/$PATCH" ]; then
 			CATPATCH="cat $OPWD/$PATCH"
 		    else
@@ -338,6 +347,9 @@
     elif [ -r "../${PACKAGE}_$UVERSION.orig.tar.bz2" ]; then
 	OLDARCHIVE="${PACKAGE}_$UVERSION.orig.tar.bz2"
 	OLDARCHIVETYPE=bz2
+    elif [ -r "../${PACKAGE}_$UVERSION.orig.tar.lzma" ]; then
+	OLDARCHIVE="${PACKAGE}_$UVERSION.orig.tar.lzma"
+	OLDARCHIVETYPE=lzma
     else
 	echo "$PROGNAME: can't find/read ${PACKAGE}_$UVERSION.orig.tar.{gz|bz2}" >&2
 	echo "in the parent directory!" >&2
@@ -383,6 +395,12 @@
 	    echo "aborting..." >&2
 	    exit 1
 	}
+    elif [ "$OLDARCHIVETYPE" = lzma ]; then
+	tar --lzma -xf ../$OLDARCHIVE || {
+	    echo "$PROGNAME: can't untar $OLDARCHIVE;" >&2
+	    echo "aborting..." >&2
+	    exit 1
+	}
     else
 	echo "$PROGNAME: internal error: unknown OLDARCHIVETYPE: $OLDARCHIVETYPE" >&2
 	exit 1
@@ -468,8 +486,11 @@
 	                    TYPE=gz ;;
 	    *.orig.tar.bz2) X="${X%.orig.tar.bz2}"; UNPACK="tar --bzip -xf";
 	                    TYPE=bz2 ;;
+	    *.orig.tar.lzma) X="${X%.orig.tar.lzma}"; UNPACK="tar --lzma -xf";
+	                    TYPE=lzma ;;
 	    *.tar.gz)  X="${X%.tar.gz}";  UNPACK="tar zxf"; TYPE=gz ;;
 	    *.tar.bz2) X="${X%.tar.bz2}"; UNPACK="tar --bzip -xf"; TYPE=bz2 ;;
+	    *.tar.lzma) X="${X%.tar.lzma}"; UNPACK="tar --lzma -xf"; TYPE=lzma ;;
 	    *.tar.Z)   X="${X%.tar.Z}";   UNPACK="tar zxf"; TYPE="" ;;
 	    *.tgz)     X="${X%.tgz}";     UNPACK="tar zxf"; TYPE=gz ;;
 	    *.tar)     X="${X%.tar}";     UNPACK="tar xf";  TYPE="" ;;
@@ -535,11 +556,20 @@
 	echo "already exists in the parent dir;" >&2
 	echo "please check on the situation before trying $PROGNAME again." >&2
 	exit 1
+    elif [ -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma" ] && \
+	[ "$(md5sum "${ARCHIVE_PATH}" | cut -d" " -f1)" != \
+	  "$(md5sum "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma" | cut -d" " -f1)" ]
+    then
+	echo "$PROGNAME: a different ${PACKAGE}_$SNEW_VERSION.orig.tar.lzma" >&2
+	echo "already exists in the parent dir;" >&2
+	echo "please check on the situation before trying $PROGNAME again." >&2
+	exit 1
     fi
 
     if [ $UUPDATE_PRISTINE = yes -a -n "$TYPE" -a \
 	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.gz" -a \
-	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.bz2" ]; then
+	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.bz2" -a \
+	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma" ]; then
 	if [ "$UUPDATE_SYMLINK_ORIG" = yes ]; then
 	    echo "Symlinking to pristine source from ${PACKAGE}_$SNEW_VERSION.orig.tar.$TYPE..."
 	    case $ARCHIVE_PATH in
@@ -565,6 +595,13 @@
 		    cp "$ARCHIVE_PATH" "../${PACKAGE}_$SNEW_VERSION.orig.tar.bz2"
 		fi
 		;;
+	    lzma)
+		if [ "$UUPDATE_SYMLINK_ORIG" = yes ]; then
+		    ln -s "$LINKARCHIVE" "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma"
+		else
+		    cp "$ARCHIVE_PATH" "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma"
+		fi
+		;;
 	    *)
 		echo "$PROGNAME: can't preserve pristine sources from non .tar.gz/.tar.bz2 upstream archive!" >&2
 		echo "Continuing anyway..." >&2
@@ -615,6 +652,10 @@
 	DIFF="../${PACKAGE}_$SVERSION.diff.bz2"
 	DIFFTYPE=diff
 	DIFFCAT=bzcat
+    elif [ -r "../${PACKAGE}_$SVERSION.diff.lzma" ]; then
+	DIFF="../${PACKAGE}_$SVERSION.diff.lzma"
+	DIFFTYPE=diff
+	DIFFCAT=lzcat
     elif [ -r "../${PACKAGE}_$SVERSION.debian.tar.gz" ]; then
 	DIFF="../${PACKAGE}_$SVERSION.debian.tar.gz"
 	DIFFTYPE=tar
@@ -623,6 +664,10 @@
 	DIFF="../${PACKAGE}_$SVERSION.debian.tar.bz2"
 	DIFFTYPE=tar
 	DIFFUNPACK="tar --bzip2 -xf"
+    elif [ -r "../${PACKAGE}_$SVERSION.debian.tar.lzma" ]; then
+	DIFF="../${PACKAGE}_$SVERSION.debian.tar.lzma"
+	DIFFTYPE=tar
+	DIFFUNPACK="tar --lzma -xf"
     fi
 
     if [ "$DIFFTYPE" = diff ]; then
@@ -677,7 +722,7 @@
 	    done
 	fi
 
-	if zcat ../${PACKAGE}_$SVERSION.diff.gz | patch -sNp1 ; then
+	if $DIFFCAT ../$DIFF | patch -sNp1 ; then
 	    echo "Success!  The diffs from version $VERSION worked fine."
 	else
 	    echo "$PROGNAME: the diffs from version $VERSION did not apply cleanly!" >&2
@@ -697,7 +742,7 @@
 
     elif [ "$DIFFTYPE" = tar ]; then
 	if [ -d debian ]; then
-	    echo "$PROGNAME warning: using a debian.tar.{gz|bz2} file in old Debian source," >&@
+	    echo "$PROGNAME warning: using a debian.tar.{gz|bz2|lzma} file in old Debian source," >&@
 	    echo "but upstream also contains a debian/ directory!" >&2
 	    if [ -e "debian.upstream" ]; then
 		echo "Please apply the diff by hand and take care with this." >&2

Reply via email to