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

Reply via email to