Differences between revisions 39 and 40
Revision 39 as of 2014-03-20 21:07:56
Size: 2465
Editor: ?JaakRistioja
Comment: Missing "apt-get install " from administrative command
Revision 40 as of 2014-03-21 06:41:24
Size: 2626
Editor: ?JaakRistioja
Comment: Note about GnuPG error
Deletions are marked like this. Additions are marked like this.
Line 33: Line 33:
'''''Note:''' If the above command complains about your `~/.gnupg` directory not being found, run `gpg -k` to initialize the GnuPG directory before retrying.''

Translation(s): English - Français - Italiano - Русский


Here we take the example of the package mame, from which we want to install a newer release availaible in sid/experimental. If the package you're looking for not available in Sid, but in a Ubuntu PPA, you can have a look at CreatePackageFromPPA.

We don't need to be root here except the first and last steps.

Install Debian SDK

su -c "apt-get install devscripts build-essential debian-keyring"

Find which version is available in the debian archive

rmadison mame --architecture amd64
 mame | 0.146-5 | wheezy/non-free       | amd64
 mame | 0.146-5 | jessie/non-free       | amd64
 mame | 0.146-5 | sid/non-free          | amd64
 mame | 0.148-1 | experimental/non-free | amd64

Download the .dsc file from the sid release

From your web browser at http://packages.debian.org/sid/mame, look at the dsc file and copy the link location

dget -x http://ftp.de.debian.org/debian/pool/non-free/m/mame/mame_0.148-1.dsc

Note: If the above command complains about your ~/.gnupg directory not being found, run gpg -k to initialize the GnuPG directory before retrying.

Find and Install missing build dependencies as found in debian/control

cd mame-0.148
dpkg-checkbuilddeps
su -c "apt-get install libexpat1-dev libflac-dev libgconf2-dev libgtk2.0-dev libjpeg8-dev libportmidi-dev libsdl-ttf2.0-dev libsdl1.2-dev zlib1g-dev"

Indicate in the changelog a backport revision number

dch --local ~bpo70+ --distribution wheezy-backports "Rebuild for wheezy-backports."

This will add something like ~bpo70+ to the package version number. The tilde ~ makes the package inferior in version, which should allow a proper package upgrade when you upgrade to the next debian release (ie your package will be replaced with the official debian package)

Test if we can successfully build the package

fakeroot debian/rules binary

Build a package properly , without GPG signing the package

dpkg-buildpackage -us -uc

Install and enjoy !

su -c "dpkg -i ../mame_0.148-1_amd64.deb"

Go further

You could have a look BuildingFormalBackports and contribute your backport to Debian as explained here: http://backports.debian.org/Contribute/