As I talked about earlier, I have a patch for showing inplace tooltips on a gtk+ treeview. Furthermore as it's nearing time to update it, I wanted to record the steps necessary to do so and to apply it.
Most of what I know about quilt I learned from this quilt howto hosted on alioth. So I'm by no means an expert; rather I know just enough to be dangerous. So here are the steps a Debian user can use to update and refresh my inplace tooltips patch.
First: set up quilt. Here's my modified /etc/quilt/quiltrc but feel free to put the equivalent in your own ~/.quiltrc instead. The first line is critical; the others just simplify the patches.
QUILT_PATCHES=debian/patches QUILT_DIFF_ARGS="--no-timestamps --no-index" QUILT_REFRESH_ARGS="--no-timestamps --no-index"
Second: get the build dependencies and source.
% sudo apt-get build-dep libgtk2.0-0 Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. % apt-get source libgtk2.0-0 Reading package lists... Done Building dependency tree Reading state information... Done Need to get 23.6MB of source archives. Get:1 http://http.us.debian.org unstable/main gtk+2.0 2.12.7-1 (dsc) [1565B] Get:2 http://http.us.debian.org unstable/main gtk+2.0 2.12.7-1 (tar) [23.5MB] Get:3 http://http.us.debian.org unstable/main gtk+2.0 2.12.7-1 (diff) [89.4kB] Fetched 23.6MB in 54s (430kB/s) dpkg-source: extracting gtk+2.0 in gtk+2.0-2.12.7 dpkg-source: unpacking gtk+2.0_2.12.7.orig.tar.gz dpkg-source: applying ./gtk+2.0_2.12.7-1.diff.gz
Third: apply the patch.
% cd gtk+2.0-2.12.7 % quilt import ../gtk+2.0-2.12.5/debian/patches/mu-inplace-tips.patch Importing patch ../gtk+2.0-2.12.5/debian/patches/mu-inplace-tips.patch (stored as mu-inplace-tips.patch)
Fourth: update debian/changelog. You'll want to fix the conflict, revert the changes, or update the number.
% quilt push mu-inplace-tips.patch % quilt edit debian/changelog [...] % quilt refresh Refreshed patch mu-inplace-tips.patch
Fifth: build the packages. This takes a while.
% dpkg-buildpackage -us -uc [...]
If anything breaks you'll probably have to run quilt pop mu-inplace-tips.patch, edit the patch to resolve the build failure, run quilt refresh, and try the build again.
Sixth: install the package, and optionally put it on hold. Note that you need only the libgtk2.0-0 package if you haven't bumped up the version in the changelog; you don't really need the others if you have, but they have tightly coupled version dependencies that complain if you don't use them.
% cd .. % sudo dpkg -i libgtk2.0-0_2.12.7-1+0mu_i386.deb libgtk2.0-dev_2.12.7-1+0mu_i386.deb gtk2-engines-pixbuf_2.12.7-1+0mu_i386.deb [...] % echo libgtk2.0-0_2.12.7-1+0mu_i386.deb hold | sudo dpkg --set-selections % echo libgtk2.0-dev_2.12.7-1+0mu_i386.deb hold | sudo dpkg --set-selections % echo gtk2-engines-pixbuf_2.12.7-1+0mu_i386.deb hold | sudo dpkg --set-selections
Finally restart any gtk+ programs you want to use your freshly updated gtk+ library.
Comments:
Michael Urman @ 2008.02.17 10:39:
After actually trying the patch generated above including the quilt edit debian/changelog, I'm going to recommend against that step. It won't apply to the next package. Edit the changelog without quilt if you like, but not with.