Skip to content

Debian Packaging via CheckInstall: now also 64 bit

The Debian and Ubuntu .deb packages that I provide for SyncEvolution are created with a patched CheckInstall which works without root access. For the technically inclined I’d like to explain the reasons behind that; for everyone else I have good news about prebuilt packages for x86_64.

There were several reasons why I chose to use CheckInstall instead of using native package building tools:

  • executables are only built once, then tested and packaged in different formats: using native packaging tools typically implies rebuilding and retesting for each format
  • support for .deb, .rpm and Slackware without having to learn each format

At least these are the theoretical advantages: when I tried to build .rpms on a Debian Etch host the rpmbuild command bailed out with errors. I never finished my investigations of that and probably never will, because SyncEvolution is now packaged as part of Fedora Core 7 and 8.

There were disadvantages:

  • no source .debs, so people on platforms for which no .deb is available (typically x86_64) cannot easily build a package themselves
  • only works as root

The last item was a show stopper for me, so I patched CheckInstall 1.6.1 so that “fakeroot checkinstall -make install” works. While setting it up for SyncEvolution I also added more control options for Debian package creation, in particular “–provides” and “–conflicts”. This is needed because the different .debs all provide “syncevolution”, but only one of them can be installed at a time, typically the one matching the Evolution on the system.

One remaining problem is that CheckInstall always appends the package name to the doc directory name: in SyncEvolution the package name is e.g. “syncevolution-evolution-2.8″ (for a binary which works with Evolution 2.8) but I would like to have the documentation under /usr/share/doc/syncevolution (without the -evolution-2.8 suffix). A patch which takes the “–docdir” parameter as it is would be straight-forward, but changes existing behavior. Hmm.

Packages for 64 bit

The x86 packages are build on each night during the regular testing of SyncEvolution. Because I had no access to an x86_64 system I had no way to build for that, but since I replaced my desktop system with a 64 bit capable one I no longer have an excuse… so now there are also 0.7pre2 .debs and for x86_64 (aka amd64) .debs in the repository and .tar.gz packages on SourceForge. I compiled packages for Debian Etch/Evolution 2.6 and one for Debian Gutsy/Evolution 2.12 and skipped the package for Evolution 2.8/2.10 because I hope that this will cover the relevant cases.

The packages are fresh and hot off the CPU, so they might still be a bit raw: I will deliver them well-done and seasoned with more testing in the final 0.7 release. In the meantime, enjoy!

{ 1 } Trackback

  1. [...] There’s also a make deb BINSUFFIX=foo. It depends on a CheckInstall which contains some patches that I wrote. When releasing source code make sure that your source tar ball is complete with make [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *