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