Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

How I use quilt

To summarize my notes from a conversation about building dpkgs:

In a debuild (which calls dpkg-buildpackage) operation, it will run quilt push -a to apply all patches listed in debian/patches/series. This process is not tolerant of any fuzz. It's not clear from a debuild operation if it's fuzz or if it actually failed. I always have to manually quilt push iteratively (or quilt push -a to go through them until it stops). When you manually run quilt push it will tolerate fuzz but not errors. If a patch indicates that it has fuzz, before pushing the next patch, you run quilt refresh to refresh the current top-most patch. That's how I make the de-fuzzed patch files nowadays. If a patch has actual errors, you have to run quilt push -f (and notably there are not long-option equivalent parameters) to force the patch, and then you have to manually fix the errors and then run quilt refresh. It gets messy and it's not my favorite tool, but I've finally started understanding it just a little bit better.

One should read Using Quilt which is the official documentation for it.

edited 2023-07-24

My quiltrc is:

for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do
    if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then
        export QUILT_PATCHES=debian/patches
        break
    fi
done
QUILT_PUSH_ARGS="--color=auto"
QUILT_DIFF_ARGS="--no-timestamps --no-index -p ab --color=auto"
QUILT_REFRESH_ARGS="--no-timestamps --no-index -p ab"
QUILT_DIFF_OPTS='-p'

Comments