Friday, December 18, 2009

Please do not include debian/ in your source tree

In my opinion in his previous post Robert Collins proposes a change which does not help packaging, instead it would just make things worse.

DO NOT include a packaging debian/ directory into your source tree. If for whatever reason you need to provide your application out of the official repositories just upload to a PPA using the regular process with the source+debian diff .

Including the debian directory on your source does not help anyone, however it will make life's harder for people that wants to package your software. The debian/* format is standard but it's implementation, integration and component versions between different distributions and releases are not.
There are plenty of reasons for projects/individuals to provide your software built/integrated in a different manner. Including a specific version of a package building process on the source will conflict with the regular packaging process, source+buldif diff forcing other packages to change your source by removing the /debian dir or maintaining a diff for it.

I agree with Robert that upstreams should be more involved with distros and whenever possible take care of the packaging, the blockers for that are more social than technical. If there is an understanding that the "introduce a new package" process is not acceptable/friendly with upstreams then it should be improved.

If the objective was to improve packaging collaboration then just move debian/* to a VCS, that way everyone can collaborate: upstream, distribution maintainers and 3rd parties.


  1. Huh? DebSrc3.0 kills debian in orig.tar.gz and uses the one from debian-patch.tar.gz??? Or are you talking about Ubuntu Distributed Development? It's not in that stage yet! So I really don't get it!

  2. I am talking about the inclusion of the debian/ dir on the original source. Did you happen to read Robert's blog entry :) ?

  3. I think the real problem here is a lack of automation and consistency in the packaging process. The developer should just have to specify what the dependencies are and which versions are needed. The distributions should then be able to use that information to generate debian/ or the RPM spec file or whatever. This would require, of course, that there be standard naming conventions across distributions.

  4. What dmitrij is saying is that with Source v3 format the problems you describe have just gone away, so encouraging upstreams to host the debian/ dir (in VCS, but in tarballs doesn't hurt either) and thereby fostering collaboration between diffrent packaging efforts is indeed the correct thing to do now.
    See my comment on Robert's blog for details.