Package: devscripts
Version: 2.10.61
Severity: wishlist
Tags: patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

 I want uupdate to work with .xz and .7z upstream archive (some upstream
 use .7z now, it's quite effective for fonts archive - 90% better than gz),
 so made a quick patch for that. I hope this would be included.

 And I think this is not needed to add to --repack option for uscan.

- -- 
Regards,

 Hideki Yamane

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkttGXsACgkQIu0hy8THJkvqeACeLLH4U9q1jZPOIfhzCzcjW5PX
2qkAoLL9lV5aRzSmV8AM7MMX1HEhoq9G
=crf3
-----END PGP SIGNATURE-----
diff -urN devscripts-2.10.61.orig/scripts/uupdate.1 devscripts-2.10.61/scripts/uupdate.1
--- devscripts-2.10.61.orig/scripts/uupdate.1	2010-01-03 12:20:42.000000000 +0900
+++ devscripts-2.10.61/scripts/uupdate.1	2010-02-06 15:58:49.000000000 +0900
@@ -20,11 +20,11 @@
 .PP
 Currently supported source code file types are \fI.tar.gz\fR,
 \fI.tar.bz2\fR, \fI.tar.Z\fR, \fI.tgz\fR, \fI.tar\fR, \fI.tar.lzma\fR
-and \fI.zip\fR
+\fI.tar.xz\fR, \fI.zip\fR and \fI.7z\fR
 archives.  Also supported are already unpacked source code archives;
 simply give the path of the source code directory.  Supported patch
 file types are \fBgzip\fR-compressed, \fBbzip2\fR-compressed,
-\fBlzma\fR-compressed and
+\fBlzma\fR-compressed, \fBxz\fR-compressed and
 uncompressed patch files.  The file types are identified by the file
 names, so they must use the standard suffixes.
 .PP
diff -urN devscripts-2.10.61.orig/scripts/uupdate.sh devscripts-2.10.61/scripts/uupdate.sh
--- devscripts-2.10.61.orig/scripts/uupdate.sh	2010-01-03 12:20:42.000000000 +0900
+++ devscripts-2.10.61/scripts/uupdate.sh	2010-02-06 16:11:54.000000000 +0900
@@ -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|.lzma]
+  $PROGNAME [options] --patch|-p <patch>[.gz|.bz2|.lzma|.xz]
 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|lzma}; not valid
+                      copied to <pkg>_<version>.orig.tar.{gz|bz2|lzma|xz}; not valid
                       for patches
    --no-symlink       Copy new upstream archive to new location
-                      as <pkg>_<version>.orig.tar.{gz|bz2|lzma} instead of making a
+                      as <pkg>_<version>.orig.tar.{gz|bz2|lzma|xz} instead of making a
                       symlink
    --no-conf, --noconf
                       Don't read devscripts config files;
@@ -258,6 +258,7 @@
 		*.gz)  CATPATCH="zcat $PATCH"; X=${X%.gz};;
 		*.bz2) CATPATCH="bzcat $PATCH"; X=${X%.bz2};;
 		*.lzma) CATPATCH="lzcat $PATCH"; X=${X%.lzma};;
+		*.xz) CATPATCH="xzcat $PATCH"; X=${X%.xz};;
 		*)     CATPATCH="cat $PATCH";;
 	    esac
 	    ;;
@@ -291,6 +292,14 @@
 		    fi
 		    X=${X%.lzma}
 		    ;;
+		*.xz)
+		    if [ -r "$OPWD/$PATCH" ]; then
+			CATPATCH="xzcat $OPWD/$PATCH"
+		    else
+			CATPATCH="xzcat ../$PATCH"
+		    fi
+		    X=${X%.xz}
+		    ;;
 		*)    if [ -r "$OPWD/$PATCH" ]; then
 			CATPATCH="cat $OPWD/$PATCH"
 		    else
@@ -350,8 +359,11 @@
     elif [ -r "../${PACKAGE}_$UVERSION.orig.tar.lzma" ]; then
 	OLDARCHIVE="${PACKAGE}_$UVERSION.orig.tar.lzma"
 	OLDARCHIVETYPE=lzma
+    elif [ -r "../${PACKAGE}_$UVERSION.orig.tar.xz" ]; then
+	OLDARCHIVE="${PACKAGE}_$UVERSION.orig.tar.xz"
+	OLDARCHIVETYPE=xz
     else
-	echo "$PROGNAME: can't find/read ${PACKAGE}_$UVERSION.orig.tar.{gz|bz2}" >&2
+	echo "$PROGNAME: can't find/read ${PACKAGE}_$UVERSION.orig.tar.{gz|bz2|lzma|xz}" >&2
 	echo "in the parent directory!" >&2
 	echo "Aborting...." >&2
 	exit 1
@@ -401,6 +413,12 @@
 	    echo "aborting..." >&2
 	    exit 1
 	}
+    elif [ "$OLDARCHIVETYPE" = xz ]; then
+	tar -J -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
@@ -488,13 +506,17 @@
 	                    TYPE=bz2 ;;
 	    *.orig.tar.lzma) X="${X%.orig.tar.lzma}"; UNPACK="tar --lzma -xf";
 	                    TYPE=lzma ;;
+	    *.orig.tar.xz) X="${X%.orig.tar.xz}"; UNPACK="tar -J -xf";
+	                    TYPE=xz ;;
 	    *.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.xz)  X="${X%.tar.xz}";  UNPACK="tar -J -xf"; TYPE=xz ;;
 	    *.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="" ;;
 	    *.zip)     X="${X%.zip}";     UNPACK="unzip";   TYPE="" ;;
+	    *.7z)      X="${X%.7z}";      UNPACK="7z x"     TYPE="" ;;
 	    *)
 		echo "$PROGNAME: sorry: Unknown archive type" >&2
 		exit 1
@@ -564,12 +586,21 @@
 	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.xz" ] && \
+	[ "$(md5sum "${ARCHIVE_PATH}" | cut -d" " -f1)" != \
+	  "$(md5sum "../${PACKAGE}_$SNEW_VERSION.orig.tar.xz" | cut -d" " -f1)" ]
+    then
+	echo "$PROGNAME: a different ${PACKAGE}_$SNEW_VERSION.orig.tar.xz" >&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" -a \
-	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma" ]; then
+	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma" -a \
+	! -e "../${PACKAGE}_$SNEW_VERSION.orig.tar.xz" ]; then
 	if [ "$UUPDATE_SYMLINK_ORIG" = yes ]; then
 	    echo "Symlinking to pristine source from ${PACKAGE}_$SNEW_VERSION.orig.tar.$TYPE..."
 	    case $ARCHIVE_PATH in
@@ -602,8 +633,15 @@
 		    cp "$ARCHIVE_PATH" "../${PACKAGE}_$SNEW_VERSION.orig.tar.lzma"
 		fi
 		;;
+	    xz)
+		if [ "$UUPDATE_SYMLINK_ORIG" = yes ]; then
+		    ln -s "$LINKARCHIVE" "../${PACKAGE}_$SNEW_VERSION.orig.tar.xz"
+		else
+		    cp "$ARCHIVE_PATH" "../${PACKAGE}_$SNEW_VERSION.orig.tar.xz"
+		fi
+		;;
 	    *)
-		echo "$PROGNAME: can't preserve pristine sources from non .tar.gz/.tar.bz2 upstream archive!" >&2
+		echo "$PROGNAME: can't preserve pristine sources from non .tar.{gz,bz2,lzma,xz} upstream archive!" >&2
 		echo "Continuing anyway..." >&2
 		;;
 	esac
@@ -656,6 +694,10 @@
 	DIFF="../${PACKAGE}_$SVERSION.diff.lzma"
 	DIFFTYPE=diff
 	DIFFCAT=lzcat
+    elif [ -r "../${PACKAGE}_$SVERSION.diff.xz" ]; then
+	DIFF="../${PACKAGE}_$SVERSION.diff.xz"
+	DIFFTYPE=diff
+	DIFFCAT=xzcat
     elif [ -r "../${PACKAGE}_$SVERSION.debian.tar.gz" ]; then
 	DIFF="../${PACKAGE}_$SVERSION.debian.tar.gz"
 	DIFFTYPE=tar
@@ -668,6 +710,10 @@
 	DIFF="../${PACKAGE}_$SVERSION.debian.tar.lzma"
 	DIFFTYPE=tar
 	DIFFUNPACK="tar --lzma -xf"
+    elif [ -r "../${PACKAGE}_$SVERSION.debian.tar.xz" ]; then
+	DIFF="../${PACKAGE}_$SVERSION.debian.tar.xz"
+	DIFFTYPE=tar
+	DIFFUNPACK="tar -J -xf"
     fi
 
     if [ "$DIFFTYPE" = diff ]; then
@@ -742,7 +788,7 @@
 
     elif [ "$DIFFTYPE" = tar ]; then
 	if [ -d debian ]; then
-	    echo "$PROGNAME warning: using a debian.tar.{gz|bz2|lzma} file in old Debian source," >&@
+	    echo "$PROGNAME warning: using a debian.tar.{gz|bz2|lzma|xz} 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