Translation(s): English - Français - Italiano
Here we take the example of the package mame, which exists in Debian Sid, but not in the stable release. If the package you're looking for not availaible in Sid, but in a Ubuntu PPA, you can have a look at CreatePackageFromPPA.
We don't need to be root here exepct the first and last steps.
Install Debian SDK
su -c "apt-get install devscripts build-essential"
Download the .dsc file from the sid release
From your web browser at http://packages.debian.org/sid/mame, look at the dsc file or:
dget -u http://ftp.de.debian.org/debian/pool/non-free/m/mame/mame_0.142-1.dsc
Note that -u tells dget not to check the signature on the source package. If you have the debian-keyring package installed, then you can use -x there instead to check the signature. Use dpkg-source -x mame_0.142-1.dsc to ignore signature problems and unpack the source anyway.
Install dependencies as found in debian/control
cd mame-0.142 grep Build-Depends debian/control Build-Depends: debhelper (>= 8), libexpat1-dev, libsdl1.2-dev, zlib1g-dev, libxinerama-dev, libgconf2-dev, libgtk2.0-dev, libsdl-ttf2.0-dev su -c "apt-get install debhelper libexpat1-dev libsdl1.2-dev zlib1g-dev libxinerama-dev libgconf2-dev libgtk2.0-dev libsdl-ttf2.0-dev"
Indicate in the changelog a backport revision number
dch --bpo
Write something like "my first backport" and save the file.
This will add something like ~bpo60+1 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.
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.142-1_amd64.deb"
Alternative Method?
There is a (more simple) method presented at ?DebianEeePC/Software/Productivity/LinphoneBackportingFromSid. Please merge and comment both methods if you can tell the difference.