<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<id>https://www.tortall.net/mu/blog</id>
<title>Recent Entries</title>
<updated>2008-02-09T09:00:07Z</updated>
<link rel="alternate" type="text/html" href="https://www.tortall.net/mu/blog"/>
<author><name>Michael Urman</name><uri>https://www.tortall.net/mu</uri></author>

<entry>
<title>Using quilt for inplace tooltips</title>
<link rel="alternate" type="text/html" href="https://www.tortall.net/mu/blog/2008/02/09/using_quilt_for_inplace_tooltips"/>
<id>https://www.tortall.net/mu/blog/2008/02/09/using_quilt_for_inplace_tooltips</id>
<updated>2008-02-09T09:00:07Z</updated>
<published>2008-02-09T16:39:06Z</published>
<category term="debian"/>
<category term="gtk+"/>
<category term="freesoftware"/>
<category term="quilt"/>
<content type="text/html" mode="escaped"><![CDATA[<div class="blog_entry" name="Using quilt for inplace tooltips">
<p>
As I talked about <a href="http://www.tortall.net/mu/blog/2008/02/06/inplace_tooltips_vs_aptitude" class="out">earlier</a>, I have a patch for showing <a href="http://bugzilla.gnome.org/show_bug.cgi?id=346992" class="out">inplace tooltips on a gtk+ treeview</a>. Furthermore as it's nearing time to update it, I wanted to record the steps necessary to do so and to apply it.
</p>
<p>
Most of what I know about quilt I learned from this <a href="http://pkg-perl.alioth.debian.org/howto/quilt.html" class="out">quilt howto</a> hosted on <a href="http://alioth.debian.org/" class="out">alioth</a>. 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.
</p>
<p>
First: set up quilt. Here's my modified <tt>/etc/quilt/quiltrc</tt> but feel free to put the equivalent in your own <tt>~/.quiltrc</tt> instead. The first line is critical; the others just simplify the patches.
</p>
<pre class="block">QUILT_PATCHES=debian/patches
QUILT_DIFF_ARGS="--no-timestamps --no-index"
QUILT_REFRESH_ARGS="--no-timestamps --no-index"</pre><p>
Second: get the build dependencies and source.
</p>
<pre class="block">% 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</pre><p>
Third: apply the patch.
</p>
<pre class="block">% 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)</pre><p>
Fourth: update debian/changelog. You'll want to fix the conflict, revert the changes, or update the number.
</p>
<pre class="block">% quilt push mu-inplace-tips.patch
% quilt edit debian/changelog
[...]
% quilt refresh
Refreshed patch mu-inplace-tips.patch</pre><p>
Fifth: build the packages. This takes a while.
</p>
<pre class="block">% dpkg-buildpackage -us -uc
[...]</pre><p>
If anything breaks you'll probably have to run <tt>quilt pop mu-inplace-tips.patch</tt>, edit the patch to resolve the build failure, run <tt>quilt refresh</tt>, and try the build again.
</p>
<p>
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.
</p>
<pre class="block">% 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</pre><p>
Finally restart any gtk+ programs you want to use your freshly updated gtk+ library.
</p>

</div>
]]></content>
</entry>
</feed>
