Backport Evince

De Cliss XXI
Sauter à la navigation Sauter à la recherche

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, modify DEB_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

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 :)