This page contains my (personal) tips and tricks for mentees so that they get the upload of their packages into the Debian archive sponsored by me.
If you’re interested in having me as sponsor for some of your packages, I’d be happy if you would have a look at this page and try to follow these requirements, recommendations and suggestions.
Contact me on IRC (XTaran on OFTC, Freenode, (German) IRCNet, LUGS IRC Network, Chaostreff.ch IRC Network, …), by e-mail (abe@debian.org) or in real life.
Packages uploaded to Debian should have successive Debian versions. Especially packages containing new upstream versions should end in either a -1
or lower (e.g. for NMUs or upload to experimental).
~
, e.g. -1~mentors1
, -1~test1
, or -1~dev1
in case you prefer to upload only distinct versions to mentors.debian.net. Nevertheless do merge their changelogs for the final version.~
based suffix for versions in those repositories is appreciated, though.licensecheck
from the devscripts package. Does it show anything unexpected? Are all found licenses DFSG-compliant?lintian -L '>=pedantic/wild-guess'
on the .changes
file or instruct debuild
to do so automatically.lintian-info
or add the --info
option.blhc
from the blhc package and the standalone Build Log Scanner from the package bls-standalone
.debdiff
over the previous and the current source packages. Anything unexpected?debdiff
over all binary packages of the previous and the current source packages. Anything unexpected?nocheck
? (Or just use dh_auto_test
and no more care about the correct usage of the test suite. :-)… and you should, too. ;-)
clean
target should restore the source package into the same state as it was at unpack time. Having the package in VCS helps here.dh_autotools-dev_updateconfig
and dh_autotools-dev_restoreconfig
or dh_autoreconf
and dh_autoreconf_clean
.
config.guess
and config.sub
at build-time, i.e. build-depend on autotools-dev (either directly or indirectly via dh-autoreconf)config.guess
and config.sub
manually in the debian/rules
file unless you have a very good reason for not using dh_autotools-dev_updateconfig
and dh_autotools-dev_restoreconfig
.debian/rules
. Use dh_clean
and debhelper compatibility level 7 or higher.debian
directory should be documented in the package’s changelog. Details may be left out on bigger changes which obviously change those things not mentioned.
Standard-Version
or the debhelper compatibility level, always mention to which level you switch.Depends
should be real hard dependencies. All optional dependencies go either into Recommends
or Suggests
, even if there are people which are annoyed because their use-case didn’t work out-of-the-box, because they disabled pulling in recommended packages by default.dpkg
’s build flags, i.e. hardening flags. Using dh_auto_configure
, dh_auto_build
and debhelper compatibility ≥ 9 often helps already a lot here.python
and/or binary package prefix python-
if you’re packaging a python-written application or service.ruby
and/or binary package prefix ruby-
if you’re packaging a ruby-written application or service.perl
and/or a binary package name of the scheme lib*-perl
if you’re packaging a perl-written application or service.dh_installchangelogs
debian/changelog
unless
dpkg
is picky at that point :-)README.source
documenting why and how the upstream tar-ball has been repackaged.get-orig-source
target in debian/rules
which does repackaging (and optionally the downloading, too)debian/copyright
format 1.0COPYING
or LICENSE
does not count. Upstream may have copied some code from other sources and did not mention it in their documentation.(Applies if I already agreed to sponsor your packages.)
debuild
without -us -uc
or use pdebuild --auto-debsign
.dget
able .dsc
files, but a pointer to some VCS is fine, too, if that VCS also provides the upstream tar-balls via pristine-tar, preferably imported with git-import-orig
from the git-buildpackage package.This is a list of things which I prefer, so I tend to sponsor a package more likely if fits into these preferences.
debian/rules
files, i.e. as much as possible is done via defaults and like needs less maintenance when the defaults change in the future.quilt
over dpatch
over direct changes in the Debian .diff.gz
.Thanks to Paul Tagliamonte for inspiring this document with his Sponsoring Guildines and Mattia Rizzolo for further suggestions.