Probably everyone has encountered a package in Ubuntu which was not the newest released version while one for some reason needed the newest one. The first step is to search for a PPA with the desired version. But what if there is no such PPA or you want to build the version yourself? This is where this guide comes in. Note however that this is not aimed at ordinary users – you need some experience with programming/ compiling to successfully build a package.
Before you startBefore you start make sure that you have source packages enabled in your software sources.
Next you obviously need the upstream source tar-ball of the new program which should look something like <packagename>–<version>.tar.gz.
Download this tar-ball to a new directory <somedir> and extract it there.
For the following commands I assume you are in the previously created directory <somedir>.
First we need to get the old version of the source package
apt-get source <packagename>
This will download and extract the old source package into <packagename>–<oldversion>.
Now we need some helper scripts to perform the upgrading as well as the build-time dependencies of the package
sudo apt-get install dpkg-dev devscripts fakeroot sudo apt-get build-dep <packagename>
Next change into the extracted sources of the old package and update the packaging
cd <packagename>-<oldversion>
uupdate -v <newversion> ../<packagename>-<newversion>.tar.gz
# change into the extracted new package
cd ../<packagename>-<newversion>
# update version info
dch -l ~ppa -D $(lsb_release -sc)
For more information see the Debian New Maintainers Guide.
Building the programTo trigger a rebuild of the program simply execute
dpkg-buildpackageUploading your version to a PPA
To upload a package to a PPA you first need to sign it to prove that you are the author. To do this you have to execute the following in the <packagename>–<newversion> directory
debuild -S
Furthermore you need the upload tool dput to actually perform the uploading
sudo apt-get install dput
Now change to <somedir> and execute
dput ppa:<your_username>/<repository> <source.changes>
You can find more information at Launchpad.