Backport Evince
For simplicity I essentially dropped the nautilus integration (thumbnails, etc.).
Step 1
$ apt-get build-dep evince [...] No candidate version found for libdjvulibre-dev No candidate version found for libnautilus-extension-dev
Dependency 1: libdjvulibre-dev
libdjvulibre-dev (v3.15) is missing, and is only available with etch and later. sarge doesn't countain - by mistake - a -dev
package for libdjvulibre1 (v3.14), otherwise we could have used that one and skip another backport.
Backporting lidjvulibre-dev
build-dep
reports one missing dependency: libqt3-mt-dev
.
In debian/control
, change libqt3-mt-dev from version
3:3.3.4-4 to version 3:3.3.4-3 (stable) - ain't it precise ;) If I got it right, -4 switches to xorg, so better stay stable.
I also needed to temporarily upgrade debhelper:
aptitude -t sarge-backports install debhelper
I needed to revert it to sarge before to compile evince, so as to avoid new dependencies from dh_gconf:
aptitude install debhelper/stable
As a result, I also set debhelper (>= 5)
in debian/control
and reported it to the maintainer (who shared some insights on the lack of flexibility in this particular area of dpkg ;))
debian/changelog:
djvulibre (3.5.17-0bpo1) sarge-backports; urgency=low * Rebuilt for sarge. * debian/control: Changed dependency libqt3-mt-dev from version 3:3.3.4-4 to version 3:3.3.4-3 (sarge), and required debhelper v5. -- Sylvain Beucler <beuc@beuc.net> Sat, 17 Jun 2006 15:37:26 +0000
Note: if you already compiled and are recompiling again, remove everything first. Indeed, djvulibre's clean target is not perfect and let a few files around, namely djview.menu
, which are then mistakenly added to the Debian diff (package-*.diff.gz).
Dependency 2: libnautilus-extension-dev
Backporting the library essentially means backporting nautilus and probably a couple dependencies from Gnome. We'll desactivate it instead:
- Remove it from
debian/control.in
. - In
debian/rules
, modifyDEB_CONFIGURE_EXTRA_FLAGS
and add the--disable-nautilus
option
Step 2
debian/changelog for evince:
evince (0.4.0-1bpo1) sarge-backports; urgency=low * Rebuilt for sarge. * debian/control: Disabled nautilus extension (too much dependencies), and set debhelper (<< 5) because dh5 adds an install-time to gconf2/testing -- Sylvain Beucler <beuc@beuc.net> Sun, 18 Jun 2006 21:29:03 +0000
I used the debhelper (<< 5)
dependency in debian/control
, to avoid evince from being built with the backports version of debhelper which requires the etch version of gconf2 when installing the resulting package.
Clean-up to regenerate debian/control from debian/control.in:
make -f debian/rules clean
Compilation:
$ debuild -us -uc [...] checking for GDU_MODULE_VERSION_CHECK... configure: error: Package requirements (gnome-doc-utils >= 0.3.2) were not met. [...] make: *** [config.status] Error 1 debuild: fatal error at line 765: dpkg-buildpackage failed!
Dependency 3: gnome-doc-utils
gnome-doc-utils is required with version >= 0.3, while we're using v0.1 from sarge). It was detected at ./configure
time only because the debian/control dependency did not specify a version.
Joost van Baal enticed me to send a bugreport to the evince maintainers about it, which I did. We'll also fix the dependencies in evince-*/debian/control:
Build-Depends: cdbs, [...], gnome-doc-utils (>= 0.3.2)
This one is pretty simple to solve:
apt-src install gnome-doc-utils cd gnome-doc-utils-* dch -i # set version - see below debuild -us -uc
(using the sid version)
dch modifies debian/changelog. I used:
gnome-doc-utils (0.6.0-0bpo1) sarge-backports; urgency=low * Rebuilt for sarge. -- Sylvain Beucler <beuc@beuc.net> Fri, 16 Jun 2006 16:42:54 +0000
What is important is:
- distribution set to sarge-backports
- version set to [previous Debian version - 1]bpo1
- and a message explaining the changes.
You now can build your .debs with debuild :)