Package: quilt Version: 0.48-2a0.mrvn.1 Severity: important Tags: patch Hi,
by default quilt looks for patches and series in the current directory. With the new 3.0 (quilt) format patches are in debian/patches. In other projects patches can also be somewhere other than the current directory. This means one has to set QUILT_PATCHES and possibly QUILT_SERIES correctly before working on the source or strange things happen when using quilt. To automate that one can put some logic into .quiltrc that guesses the right QUILT_PATCHES/QUILT_SERIES. But it remains to be a guess only and can be wrong from time to time. The attached patch makes quilt add .pc/quilt_patches and ..pc/quilt_series files when first creating the .pc directory and makes it use those files to override any other setting if they exist. It also make the two relative if they are inside the current directory (dpkg-source sets them absolut) so renaming the source directory doesn't invalidate them. With the patch one can dpkg-source -x *.dsc cd */ quilt pop quilt push quilt refresh .... without the need of a complicted .quiltrc to guess QUILT_PATCHES/QUILT_SERIES. Given the push to have 3.0 (quilt) as default format in Debian I think this feature is verry important so first time users will not experience strange quilt problems caused by an unset QUILT_PATCHES while working with a debian source. MfG Goswin -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (499, 'unstable'), (2, 'experimental'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.31.5 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/bash Versions of packages quilt depends on: ii bzip2 1.0.5-3 high-quality block-sorting file co ii diffstat 1.47-1 produces graph of changes introduc ii gettext 0.17-8 GNU Internationalization utilities ii patch 2.5.9-5 Apply a diff file to an original quilt recommends no packages. Versions of packages quilt suggests: ii graphviz 2.20.2-4 rich set of graph drawing tools ii procmail 3.22-18 Versatile e-mail processor -- no debconf information
Index: quilt-0.48/quilt/scripts/patchfns.in =================================================================== --- quilt-0.48.orig/quilt/scripts/patchfns.in 2009-11-23 12:02:52.000000000 +0100 +++ quilt-0.48/quilt/scripts/patchfns.in 2009-11-23 12:04:35.000000000 +0100 @@ -20,9 +20,14 @@ export QUILT_PATCHES QUILT_PC SUBDIR SERIES DB DB_VERSION=2 -: ${QUILT_PATCHES:=patches} : ${QUILT_PC:=.pc} +if [ -r $QUILT_PC/quilt_patches ]; then + QUILT_PATCHES=$(cat $QUILT_PC/quilt_patches) +else + : ${QUILT_PATCHES:=patches} +fi + # Support compatibility layer if [ -d $QUILT_DIR/compat ] then @@ -924,11 +929,28 @@ echo "${base%-$num}-$((num+1))${patch#$base}" } +relativize_path() { + if ! [ "${1:0:1}" = "/" ] + then + echo "$1" + return + fi + LEN="$(echo "$2" | wc -c)" + if [ "${1:0:$(($LEN-1))}" = "$2" ] + then + echo "${1:$(($LEN-1))}" + else + echo "$1" + fi +} + create_db() { if ! [ -e $QUILT_PC ] then mkdir -p $QUILT_PC echo $DB_VERSION > $QUILT_PC/.version + relativize_path "$QUILT_PATCHES" "$(pwd)/" > "$QUILT_PC/quilt_patches" + relativize_path "$QUILT_SERIES" "$(pwd)/" > "$QUILT_PC/quilt_series" fi } @@ -1008,7 +1030,11 @@ unset basedir down fi -: ${QUILT_SERIES:=series} +if [ -r $QUILT_PC/quilt_series ]; then + QUILT_SERIES=$(cat $QUILT_PC/quilt_series) +else + : ${QUILT_SERIES:=series} +fi if [ "${QUILT_SERIES:0:1}" = / ] then