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_installchangelogsdebian/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.dgetable .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.