Using a long term release of Ubuntu, such as Xenial, means that you will find times when you want to compile something which requires a later version of something, typically a library. And when you search the official Ubuntu backports, you've drawn a blank.

Provided a later version of the package exists in any Ubuntu release, the process of making a backport is surprisingly easy. The following instructions are based on those here, but I've added notes based on my experience of backporting libuv1 to Xenial.

Step-by-step guide

To begin, you will need the following:

  1. A login for Launchpad.
  2. A Launchpad PPA. I've created a personal PPA specifically for backports.
  3. A Xenial build host, with the following packages installed:
  4. One (or more) OpenPGP keys registered with Launchpad for use signing packages. Launchpad has instructions on how to go about this if you haven't already.

  5. A sufficiently later version of the package from any Ubuntu distribution. Check for these at packages.ubuntu.com. You need to find the name of the source package. In my case, it's libuv1, and version 1.11.0 is available in bionic.

Now we're ready to start. On your Xenial host, run backportpackage. I ran the following:

$ backportpackage -u ppa:banburybill/backports libuv1

You can use the -s option to specify the release from which you want the package to be obtained. If omitted, the most recent release is used, which is just fine with me.

This process will download the source package, apply a backport change, and sign it (so you'll have to type your GPG key passphrase a couple of times) and upload it to the incoming queue on your PPA. Wait a while, and Launchpad will build packages for you.

Launchpad will even show you the apt command to use to add your backports repository to you system. Check the page for your backports PPA.

And that's it. Admit it. It's easier than you thought, eh?

Related articles



Related issues