quilt's home is http://savannah.nongnu.org/projects/quilt At the time of writing, its download directory was not yet restored on savannah.
Mirrors are e.g. ftp://ftp.debian.org/debian/pool/main/q/quilt/ or (currently more up-to-date): http://graal.ens-lyon.fr/~mquinson/debian/dists/unstable/main/source/devel/
Unpack and install.
Add this to your ~/.quiltrc:
# -p : Show which C function each change is in. QUILT_DIFF_OPTS="-p${QUILT_DIFF_OPTS:+ $QUILT_DIFF_OPTS}"
If you're starting from a clean OOo source, you can skip this section.
quilt doesn't know about the ooo-build patches yet. If your tree was patched by ooo-build, revert the patches by running:
ooo-build/patches/apply.pl ooo-build/patches/OOO_1_1_0 $OOBUILDDIR --distro=$DISTRO -R$OOBUILDDIR is the path to your OOo source tree, $DISTRO is what you used for --with-distro= when you ran configure
quilt expects patches in the patches subdir of the source tree:
ln -s /path/to/ooo-build/patches $OOBUILDDIR
quilt gets the list of patches from a `series' file, similar to ooo-build's apply files. You can generate a series file by running
ooo-build/patches/apply.pl ooo-build/patches/OOO_1_1_0 --series-from=$DISTRO > seriesin your working directory.
Now you can apply the patches with quilt using quilt push, and revert them with quilt pop (one at a time, use the -a switch to push/pop all).
A smoke test for your quilt setup (and the ooo-build patches) is:
quilt push -a quilt pop -a quilt push -a quilt pop -a
There should be no failure.
Now's a good time to read quilt.pdf from the quilt 0.29 (or later) tarball or http://savannah.nongnu.org/cgi-bin/viewcvs/quilt/quilt/doc/quilt.pdf.
Let's say you want to create a patch for Issue 13473 LINK tags in HTML export of presentations Maybe you want to write your patch on top of all the other patches. Run quilt push -a to apply all patches.
In the OOo source tree run quilt new patches/OOO_1_1/sd-export-html-link-rel.diff to create the new patch.
You'll have to edit sd/source/filter/html/htmlex.cxx. Run quilt add sd/source/filter/html/htmlex.cxx. Quilt will make a backup copy of the file. Later it can use that copy to create the diff.
Now edit sd/source/filter/html/htmlex.cxx, compile, test, edit again, ...
When you're finished (or just want to know what you have changed in the file), run quilt refresh -p0. You can shorten refresh to ref, the -p0 is necessary because in ooo-build all patches are expected to be in -p0 format.
If you're confident that your patch is fine, add it to the apply file, write the ChangeLog entry and commit.
The neat thing is that you couldn't do this with a simple cvs diff, because htmlex.cxx is modified by other patches as well.