Package: devscripts Version: 2.10.72 Severity: wishlist Tags: patch Please consider to add dquilt wrapper for quilt so more packages use 3.0 (quilt) format.
I think most people has customized quilt configuration so when packaging Debian package, quilt uses debian/patches as the place to store patches etc. Except this is extra hussle, this works most of the time. But if the upstream uses quilt to store source variations and if you wish to build such source, this popular method fails. While I was writing maint-guide[1] for this trick, I realized making super simple wrapper of quilt as shown in the patch solves this problem. If we provide this wrapper with its default configuration in devscripts, no one need to do cumbersome action any more and maint-guide will look cleaner :-) The attached patch is against devscripts-2.10.69+squeeze1 . ( Yes, I am still using squeeze.) I hope adding quilt as recommend is OK now. Osamu [1] http://www.debian.org/doc/manuals/maint-guide/modify.en.html#quiltrc (already updated to be dquilt. Released one for squeeze was a bit different.) -- Package-specific info: --- /etc/devscripts.conf --- --- ~/.devscripts --- DEBSIGN_KEYID="A8061F32" -- System Information: Debian Release: 6.0.1 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages devscripts depends on: ii dpkg-dev 1.15.8.10 Debian package development tools ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib ii perl 5.10.1-17 Larry Wall's Practical Extraction Versions of packages devscripts recommends: ii at 3.1.12-1 Delayed job execution and batch pr ii bsd-mailx [ 8.1.2-0.20100314cvs-1 simple mail user agent ii bzr 2.1.2-1 easy to use distributed version co ii chromium-br 6.0.472.63~r59945-5+squeeze4 Chromium browser ii curl 7.21.0-1 Get a file from an HTTP, HTTPS or ii cvs 1:1.12.13-12 Concurrent Versions System ii darcs 2.4.4-3 a distributed, interactive, smart ii dctrl-tools 2.14.5 Command-line tools to process Debi ii debian-keyr 2010.12.29 GnuPG keys of Debian Developers ii dput 0.9.6.1 Debian package upload tool ii epiphany-br 2.30.6-1 Intuitive GNOME web browser ii equivs 2.0.8 Circumvent Debian package dependen ii fakeroot 1.14.4-1 Gives a fake root environment ii git [git-co 1:1.7.2.5-1 fast, scalable, distributed revisi ii gnupg 1.4.10-4 GNU privacy guard - a free PGP rep ii iceweasel [ 3.5.16-6 Web browser based on Firefox ii libauthen-s 2.1500-1 Authen::SASL - SASL Authentication ii libcrypt-ss 0.57-2 Support for https protocol in LWP ii libjson-per 2.21-1 Perl module to parse and convert t ii libparse-de 2.005-2 Easy OO parsing of Debian control- ii libsoap-lit 0.712-2 Perl implementation of a SOAP clie ii libterm-siz 0.2-4+b1 Perl extension for retrieving term ii libtimedate 1.2000-1 collection of modules to manipulat ii liburi-perl 1.54-2 module to manipulate and access UR ii libwww-perl 5.836-1 Perl HTTP/WWW client/server librar ii libyaml-syc 1.12-1 Perl module providing a fast, ligh ii lintian 2.4.3 Debian package checker ii lsb-release 3.2-23.2squeeze1 Linux Standard Base version report ii lynx-cur [w 2.8.8dev.5-1 Text-mode WWW Browser with NLS sup ii lzma 4.43-14 Compression method of 7z format in ii man-db 2.5.7-8 on-line manual pager ii mercurial 1.6.4-1 scalable distributed version contr ii openssh-cli 1:5.5p1-6 secure shell (SSH) client, for sec ii patch 2.6-2 Apply a diff file to an original ii patchutils 0.3.1-2 Utilities to work with patches ii quilt 0.48-7 Tool to work with series of patche ii sensible-ut 0.0.4 Utilities for sensible alternative ii strace 4.5.20-2 A system call tracer ii subversion 1.6.12dfsg-5 Advanced version control system ii tla 1.3.5+dfsg-16 GNU Arch revision control system ii unzip 6.0-4 De-archiver for .zip files ii w3m [www-br 0.5.2-9 WWW browsable pager with excellent ii wdiff 0.6.3-1 Compares two files word by word ii wget 1.12-2.1 retrieves files from the web ii xz-utils 5.0.0-2 XZ-format compression utilities Versions of packages devscripts suggests: ii build-essential 11.5 Informational list of build-essent pn cvs-buildpackage <none> (no description available) pn devscripts-el <none> (no description available) pn gnuplot <none> (no description available) ii libfile-desktopentry-p 0.04-2 Perl module to handle freedesktop ii libnet-smtp-ssl-perl 1.01-2 SSL support for Net::SMTP ii mutt 1.5.20-9+squeeze1 text-based mailreader supporting M ii svn-buildpackage 0.8.3 helper programs to maintain Debian ii w3m 0.5.2-9 WWW browsable pager with excellent -- no debconf information
diff -Nru devscripts-2.10.69+squeeze1/debian/changelog devscripts-2.10.70/debian/changelog --- devscripts-2.10.69+squeeze1/debian/changelog 2011-02-06 15:04:09.000000000 +0900 +++ devscripts-2.10.70/debian/changelog 2011-04-30 00:13:50.614666213 +0900 @@ -1,3 +1,11 @@ +devscripts (2.10.70) UNRELEASED; urgency=low + + * Non-maintainer upload. + * Added dquilt as a wrapper for quilt used for the 3.0 (quilt) source + format. + + -- Osamu Aoki <[email protected]> Sat, 30 Apr 2011 00:10:52 +0900 + devscripts (2.10.69+squeeze1) stable; urgency=low * bts: Accept the "wheezy" and "wheezy-ignore" tags. diff -Nru devscripts-2.10.69+squeeze1/debian/control devscripts-2.10.70/debian/control --- devscripts-2.10.69+squeeze1/debian/control 2011-02-06 15:04:09.000000000 +0900 +++ devscripts-2.10.70/debian/control 2011-04-30 00:06:57.725674603 +0900 @@ -18,7 +18,7 @@ libcrypt-ssleay-perl, libparse-debcontrol-perl, libsoap-lite-perl, libterm-size-perl, libtimedate-perl, liburi-perl, libwww-perl, libyaml-syck-perl, lintian, lsb-release, bsd-mailx | mailx, - man-db, patch, patchutils, ssh-client, strace, unzip, wdiff, www-browser, + man-db, patch, patchutils, quilt, ssh-client, strace, unzip, wdiff, www-browser, subversion | cvs | darcs | tla | bzr | git-core | mercurial, lzma, xz-utils, sensible-utils, libjson-perl Suggests: build-essential, cvs-buildpackage, devscripts-el, gnuplot, @@ -88,6 +88,10 @@ control field needed [build-essential, strace] - diff2patches: extract patches from a .diff.gz file placing them under debian/ or, if present, debian/patches [patchutils] + - dquilt: A wrapper program for quilt which forces to use an alternative + configuration file at ~/.quiltrc-dpkg (or /etc/quilt.quiltrc-dpkg if + ~/.quiltrc-dpkg does not exist) for managing the 3.0 (quilt) source + format [quilt] - dscverify: verify the integrity of a Debian package from the .changes or .dsc files [gnupg, debian-keyring, libdigest-md5-perl] - getbuildlog: download package build logs from Debian auto-builders [wget] diff -Nru devscripts-2.10.69+squeeze1/debian/install devscripts-2.10.70/debian/install --- devscripts-2.10.69+squeeze1/debian/install 2011-02-06 15:04:09.000000000 +0900 +++ devscripts-2.10.70/debian/install 2011-04-29 23:55:23.910717101 +0900 @@ -1,2 +1,3 @@ debian/bug/* /usr/share/bug/devscripts cowpoke.conf /etc +quilt.quiltrc-dpkg /etc diff -Nru devscripts-2.10.69+squeeze1/quilt.quiltrc-dpkg devscripts-2.10.70/quilt.quiltrc-dpkg --- devscripts-2.10.69+squeeze1/quilt.quiltrc-dpkg 1970-01-01 09:00:00.000000000 +0900 +++ devscripts-2.10.70/quilt.quiltrc-dpkg 2011-04-23 01:36:51.000000000 +0900 @@ -0,0 +1,11 @@ +d=. ; while [ ! -d "$d/debian" -a `readlink -e $d` != / ]; do d="$d/.."; done +if [ -d "$d/debian" ] && [ -z "$QUILT_PATCHES" ]; then + # Debian packaging case and unset $QUILT_PATCHES + QUILT_PATCHES=debian/patches + QUILT_PATCH_OPTS="--unified-reject-files" + QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto" + QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index" + QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33" + if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi +fi + diff -Nru devscripts-2.10.69+squeeze1/README devscripts-2.10.70/README --- devscripts-2.10.69+squeeze1/README 2011-02-06 15:04:09.000000000 +0900 +++ devscripts-2.10.70/README 2011-04-30 00:06:04.549686162 +0900 @@ -152,6 +152,11 @@ when trying to determine the packages needed in the Build-Depends etc. lines in the debian/control file. [build-essential, strace] +- dquilt: A wrapper program for quilt which forces to use an alternative + configuration file at ~/.quiltrc-dpkg (or /etc/quilt.quiltrc-dpkg if + ~/.quiltrc-dpkg does not exist) for managing the 3.0 (quilt) source + format. [quilt] + - dscverify: check the signature and MD5 sums of a dsc file against the most current Debian keyring on your system. [gnupg, debian-keyring, libdigest-md5-perl] @@ -240,22 +245,25 @@ 2. Editing of files -3. Log the changes with: dch -i "I changed this" +3. Recording changes as the quilt patch queue using dquilt for + the 3.0 (quilt) source format. + +4. Log the changes with: dch -i "I changed this" If desired, use debcommit to commit changes to cvs, svn, arch or git. -4. Run debuild to compile it. If it fails, return to 2. (You could +5. Run debuild to compile it. If it fails, return to 2. (You could also just test the compilation by running the appropriate part of debian/rules.) -5. Check if package contents appear to be ok with "debc" +6. Check if package contents appear to be ok with "debc" -6. Install the package with "debi" and test the functionality it +7. Install the package with "debi" and test the functionality it should provide. (Note that this step requires debpkg to be setuid root, or you to be logged in as root or similar.) -7. If all is ok release it by running debrelease. +8. If all is ok release it by running debrelease. -8. Optionally, use debcommit --release to commit and tag the release +9. Optionally, use debcommit --release to commit and tag the release in revision control. diff -Nru devscripts-2.10.69+squeeze1/scripts/dquilt.1 devscripts-2.10.70/scripts/dquilt.1 --- devscripts-2.10.69+squeeze1/scripts/dquilt.1 1970-01-01 09:00:00.000000000 +0900 +++ devscripts-2.10.70/scripts/dquilt.1 2011-04-30 00:10:31.514662799 +0900 @@ -0,0 +1,13 @@ +.TH DEBPKG 1 "Debian Utilities" "DEBIAN" \" -*- nroff -*- +.SH NAME +dquilt \- wrapper for quilt +.SH SYNOPSIS +\fBdquilt\fP \fIcommand [options]\fP +.SH DESCRIPTION +\fBdquilt\fR simply invokes \fBquilt\fP(1) with an alternative +configuration file at i\fB~/.quiltrc-dpkg\fP (or \fB/etc/quilt.quiltrc-dpkg\fP if +\fB~/.quiltrc-dpkg\fP does not exist) for managing the 3.0 (quilt) source format. +.SH REQUIREMENTS +\fBquilt\fP must be installed and this is executed in the Debianized source tree. +.SH AUTHOR +Osamu Aoki <[email protected]>. diff -Nru devscripts-2.10.69+squeeze1/scripts/dquilt.sh devscripts-2.10.70/scripts/dquilt.sh --- devscripts-2.10.69+squeeze1/scripts/dquilt.sh 1970-01-01 09:00:00.000000000 +0900 +++ devscripts-2.10.70/scripts/dquilt.sh 2011-04-30 00:07:56.693686597 +0900 @@ -0,0 +1,22 @@ +#!/bin/sh -e +# (C) 2011, Osamu Aoki <[email protected]>, GPL2+ +PROGNAME=`basename $0` + +if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + cat <<EOF +Usage: $PROGNAME command [options] + +This is a wrapper program for quilt which forces to use an alternative +configuration file at ~/.quiltrc-dpkg (or /etc/quilt.quiltrc-dpkg if +~/.quiltrc-dpkg does not exist) for managing the 3.0 (quilt) source format. +=== +EOF + quilt -h + exit 1 +fi + +if [ -r ~/.quiltrc-dpkg ]; then + quilt --quiltrc ~/.quiltrc-dpkg "$@" +else + quilt --quiltrc /etc/quilt.quiltrc-dpkg "$@" +fi
