cdbs vs dh (was: uploaded first pkg: pd-motex)

Jonas Smedegaard dr at jones.dk
Fri Aug 13 13:10:19 UTC 2010


On Fri, Aug 13, 2010 at 01:58:18PM +0200, Benjamin Drung wrote:
>Am Freitag, den 13.08.2010, 10:40 +0200 schrieb Jonas Smedegaard:
>> On Thu, Aug 12, 2010 at 11:43:51PM +0200, Benjamin Drung wrote:
>> >Am Donnerstag, den 12.08.2010, 23:38 +0200 schrieb Jonas Smedegaard:
>> >> [1] or agree to repackage using cdbs - I just won't you to get the 
>> >> impression that I lured you into this: most people in the 
>> >> multimedia team are fine with - yeah, even prefer - short-form dh, 
>> >> it is just me being obnoxious.
>> >
>> >I prefer dh over cdbs over long debhelper form. Are there any 
>> >technical reasons for not using dh?
>>
>> Good question. Thanks for asking!

...and your question was easy and quick to answer exactly because you 
only asked for a one-sided view, not a(n attempt at) full comparison, 
which I suspect this thread may now turn into...


>> CDBS is more backports-friendly (beyond backports.org too!).
>
>That's true. Using bleeding edge packaging tools make backporting
>harder.
>
>> CDBS provides routines to fetch and repackage upstream tarballs
>
>I don't use this feature, but it could be useful.
>
>> CDBS provides routines to track copyright and licensing info of sources.
>
>That's nice. Where do I can read more about it?

Hehe, that's actually one thing CDBS lacks: proper and up-to-date 
documentation!

...and I don't even blog about it (yet - that's one of the planned 
outcomes of the Ikiwiki work I do with my girlfriend: she slowly started 
blogging quite some time ago but I set a bar so high for myself 
regarding "needed" features that I still - after a couple of years 
working on it - don't feel "ready").

Here's a quick intro (from my head - hope it works):

  1) Include /usr/share/cdbs/1/rules/utils.mk

  2) touch debian/copyright_hints
     (else you will simply be suggested to do this at each build)

  3) build as usual

  4) copy the autogenerated debian/copyright_newhints to debian/copyright 
     and verify and clean it up manually

...or what I do, and find smarter, is at 3) to a) build with "maintainer 
mode" enabled[1], b) manually apply patches, and c) only build the 
minimal necessary for the licensing check. Like this:

   QUILT_PATCHES=debian/patches quilt push -a
   DEB_MAINTAINER_MODE=1 debian/rules pre-build

Also, I cleanup with maintainer mode enabled, which keeps the 
debian/copyright_newhints file but tidy other noise in source:

   DEB_MAINTAINER_MODE=1 fakeroot debian/rules clean
   QUILT_PATCHES=debian/patches quilt pop -a


>> CDBS is less invasive - e.g. can be used with manually run dh_* 
>> commands
>
>You can use override_dh_* to run a dh_* command manually.

I might be wrong, but it seems to me that with short-form dh you add 
debhelper to *every* build target, trusting it to then properly handle 
anything thrown at it.

Yes, you can then explicitly disable parts of it - for the parts that 
debhelper happens to support disabling.

What you do with CDBS is *not* enabling the parts you don't want CDBS to 
handle for you.  As the prime example, you can choose to not let CDBS 
handle your debhelper routines but add that by hand.  When I discourage 
using CDBS together with short-form dh it is because I fear debhelper 
being too intrusive and automagically taking over parts that it 
shouldn't.  I would be more than happy to be assured that this is not 
the case, and they indeed work nicely together as long as you simply do 
not include the CDBS debhelper.mk snippet.


>> CDBS is written in make (short-form dh somewhat reinvents make in 
>> Perl)
>
>Yes, but Makefile rules can get complicated. Do you want an example? I 
>like dh because it's simple.

Perl code can be complex too.  You just tend to not look at that code.

What obviously helps is documentation.  I never used documentation 
myself for CDBS, just looked at the snippets, and I agree they may look 
scary to someone not intimate in make (similar to autotools being 
disliked by many).


Kind regards,

  - Jonas


[1] DEB_MAINTAINER_MODE enables features ireelevant or even policy 
violating to do by default (e.g. on build daemons). It makes the 
copyright-check routien fail, not just warn, in case of new or changed 
copyright and licensing info - which is always the case when you've 
initially touch'ed the file.


-- 
  * Jonas Smedegaard - idealist & Internet-arkitekt
  * Tlf.: +45 40843136  Website: http://dr.jones.dk/

  [x] quote me freely  [ ] ask before reusing  [ ] keep private
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20100813/06132e4a/attachment.pgp>


More information about the pkg-multimedia-maintainers mailing list