I’ve been trying to learn more about building Debian packages and I’ve been learning how to design printed circuit boards. Hence, I’ve attempted to backport a more recent version of kicad to Debian Wheezy!

This is a rough outline of the steps I took to do a backport:

Configure your ~/.devscripts file to specify the GPG key you want to use by defining DEBSIGN_KEYID= or be sure to pass the proper key identification switches to dpkg-buildpackage or debsign as needed later.

Get the sources from Debian testing by adding the testing repo to your /etc/apt/sources.list.d directory (just a deb-src line as you probably don’t want to actually install packages from testing on your stable). Then do an apt-get update. Then you can get the sources from testing with an apt-get source $PKGNAME=$VERSION to get the sources for a given version.

You may need to have the backports archive setup to pull in binary packages if the thing you’re backporting has dependencies on newer libraries or whatnot. Follow the nice instructions for adding backports to your apt.

Now get the build dependencies for the package you’re trying to backport with apt-get build-dep $PACKAGE=$VERSION.

Enter into the source directory for your package. Update the changelog to show that you’re backporting with dch --bpo (and if you have dch from wheezy, it’ll show squeeze-backports which you should correct to wheezy-backports).

Then build the package with dpkg-buildpackage and add the -sa switch if you need to include the full sources (aka, this isn’t a debian software), and add the -j3 (adjust for your machine’s number of CPUs) to parallelize the build, and add the -v$STABLEVERSION switch if there has been no backport of this package yet so that the changes file includes all the changes since the stable version was released.

If for some reason your package didn’t have its dsc and changes files signed by dpkg-buildpackage, then use debsign to sign them now (telling debsign which key to use if needed).

Now you have a full set of output .deb files, a changes file, a dsc file, and both the upstream packaged sources and debian patches in tarballs!

Upload this to Debian Mentors following the instructions (skip to section 4).

Once you’ve uploaded the package to Debian Mentors, ask for someone to review on the proper mailing list!


17 March 2015