Backport hplip
I needed a newer version of hpijs to support a new printer.
Previous backport
First, check what the previous maintainer did!
dget http://backports.org/debian/pool/main/h/hplip/hplip_0.9.7-3bpo1.dsc dpkg-source -x hplip_0.9.7-3bpo1.dsc debian/changelog: * Backport of sid release 0.9.7-4 (no changes needed)
Ok, last backport was trivial. Let's hope this one will be as well :)
Get the build dependencies
apt-get build-dep
complains about libsnmp9-dev missing... Weird.
Switching libsnmp9-dev | libsnmp5-dev
to libsnmp5-dev | libsnmp9-dev
in /var/lib/apt/... does the trick.
Changes
Missing Python support
Apparently related to the new python policy. A recent discussion on the list concluded that it is best not to follow the new python policy and hence avoid requiring a backported python.
Comment the 'dh_pysupport' call in debian/rules.
debhelper
Use debhelper/bpo, change debhelper (>= 5.0.37.2, needed for the new Python policy version) to debhelper (>= 5.0)
patch
Do:
debuild -us -uc => unknown option -U
(option -U, from debian/patches/00patch-opts)
You need to use patch/bpo -> fix build-deps:
patch (>= 2.5.9-3bpo1)
findutils
Do:
debuild -us -uc => xargs: invalid option -- d
We need to use findutils/bpo -> fix build-deps:
findutils (>= 4.2.28-1~bpo.1)
PyQt
After installation:
hp-print --help error: This program may not function properly with the version of PyQt that is installed (3.13.0). error: Incorrect version of pyQt installed. Ver. 3.14 or greater required. error: PyQt/Qt initialization error. Please check install of PyQt/Qt and try again.
The package works fine with 3.13. We can safely downgrade the requirement to 3.13 in base/g.py.
Lintian
After I uploaded my packages to mentors.debian.net, I got mail saying:
E: hplip source: package-needs-python-policy-debhelper N: N: The source package requests dh_python compatibility level 2 (or N: higher) in debian/pycompat but doesn't depend on a new enough N: debhelper. A Build-Depends on debhelper (>= 5.0.37.2) is required for N: this support. N:
We need to downgrade the Python compatibility since we don't follow the new policy -> debian/pycompat -> s/2/1/
We probably need to install a newer version of lintian, I didn't get that one with the sarge version.
Check and recheck your changes
$ mkdir temp $ cd temp/ $ cp ../hplip_1.6.7-2~bpo.1.diff.gz . $ wget http://ftp.debian.org/debian/pool/main/h/hplip/hplip_1.6.7-2.diff.gz --12:30:47-- http://ftp.debian.org/debian/pool/main/h/hplip/hplip_1.6.7-2.diff.gz => `hplip_1.6.7-2.diff.gz' Résolution de ftp.debian.org... 128.101.240.212 Connexion vers ftp.debian.org[128.101.240.212]:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 247,960 [text/plain] 100%[=================================================================================================================>] 247,960 202.63K/s 12:30:54 (202.10 KB/s) - « hplip_1.6.7-2.diff.gz » sauvegardé [247960/247960] $ gunzip * $ interdiff hplip_1.6.7-2.diff hplip_1.6.7-2~bpo.1.diff
The final ChangeLog
hplip (1.6.7-2~bpo.1) sarge-backports; urgency=low * Rebuild for Sarge - http://www.backports.org/ * Added dependencies to patch/bpo and findutils/bpo * Downgraded pyqt-utils dependency from 3.14 to 3.13 (works ok) * Reverted Python-policy: removed python-support dependency and a dh_pysupport call, changed the pycompat file, and downgraded the debhelper dependency from (>= 5.0.37.2) to (>= 5.0.34bpo1) * Put libsnmp5-dev before libsnmp9-dev in the Build-Depends, so that apt-get build-dep doesn't require libsnmp9-dev -- Sylvain Beucler <beuc@beuc.net> Thu, 19 Oct 2006 12:32:03 +0200
In debian/control
, add your name:
Uploaders: Torsten Landschoff <torsten@debian.org>, Sylvain Beucler <beuc@beuc.net>
so the package will appear in your QA page.
Testing
Once you finished compiling your packages, you can try to install them using debi:
/usr/src/hplip-1.6.7$ su -c debi
This will install all the packages generated by the hplip source package :)
A note on rebuilding
When testing and building your package, beware that the clean
procedure is not complete. This means that if you build your package, fix something, and rebuild it, there will be a few extra changes. These changes are not functionnaly significants (usually they are non-removed parts of the Debian patches or the build process, but their existence makes your Debian diff unclean. Since sponsors tend to be picky about it (and they can control these changes easily using the interdiff technique), you'd better avoid those.
Therefore, between two compilation, I usually remove the working directory and recreate it using dpkg-source:
cd /usr/src/ rm -rf hplip-1.6.7/ dpkg-source -x hplip_1.6.7-2~bpo.1.dsc
Be a good neighbour and tell your fellow upstream maintainer about the issues you encountered
Reported to the package maintainers:
- Switching libsnmp9-dev | libsnmp5-dev to libsnmp5-dev | libsnmp9-dev to work-around 'apt-get build-dep'.
- sudo dpkg -i hplip... fails - probably because sudo cleans the environment.
- Possibly precise the patch and findutils dependencies
- Possibly precise the pyqt-utils dependency
- won't work directly w/o 3.14
- also work with 3.13, so maybe use 3.13