I needed a newer version of hpijs to support a new printer.
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 </code>libsnmp9-dev missing</code>... Weird.
libsnmp9-dev | libsnmp5-dev to
libsnmp5-dev | libsnmp9-dev in </code>/var/lib/apt/</code>... does the trick.
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.
Use debhelper/bpo, change debhelper (>= 22.214.171.124, needed for the new Python policy version) to debhelper (>= 5.0)
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)
debuild -us -uc => xargs: invalid option -- d
We need to use findutils/bpo -> fix build-deps:
findutils (>= 4.2.28-1~bpo.1)
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.
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 (>= 126.96.36.199) 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... 188.8.131.52 Connexion vers ftp.debian.org[184.108.40.206]: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 (>= 220.127.116.11) 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 <firstname.lastname@example.org> Thu, 19 Oct 2006 12:32:03 +0200
debian/control, add your name:
Uploaders: Torsten Landschoff <email@example.com>, Sylvain Beucler <firstname.lastname@example.org>
so the package will appear in your QA page.
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