I've been looking at how I can start building emdebian packages - starting with libglib2.0-0 - and as part of this, I've been taking a look at Stag. 1. The Stag addons in Emdebian SVN are quite a bit behind current Debian unstable: Stag is based on: debhelper 4.2.11 dpkg 1.10.22 Debian unstable, as of November 2006, has: debhelper 5.0.42 dpkg 1.13.24 2. The Stag scripts use the emdebian/ directory ($DEBIAN_DIR) method. So I've done a few comparisons to see where the land lies with reference to the composite method proposed on the Wiki. If I've read the emdebian stag-addons SVN code correctly, removing the need for $DEBIAN_DIR and emdebian/* has removed the need to modify the bulk of the debhelper scripts modified in Stag. There are no changes in the customised Perl library: EmDebian::Debhelper::Dh_Lib beyond handling $DEBIAN_DIR so the original Debian::Debhelper::Dh_Lib library can be used. This removes a burden from us because we don't need to keep a patched version updated. Also, I've looked at each of the individual scripts in emdebian/stag-addons/trunk/debhelper in SVN and compared with the originals in the same folder. Of 46 scripts, only FIVE have modifications that go beyond handling $DEBIAN_DIR or the use of EmDebian::Debhelper::Dh_Lib. These five scripts are modified only to the point of being emptied of content and made into placeholders. i.e. simply *not running* these scripts is directly equivalent to the Stag debhelper config as it is outlined in emdebian SVN. The five scripts are: dh_installdocs dh_installexamples dh_installinfo dh_installman dh_installmanpages I'd welcome any comments on this review from those with more experience of Stag, but it does look like a simple tweak of debian/rules that specifically comments out / removes these five scripts with a simple regular expression will be sufficient to simulate a Stag build. CDBS packages can be handled simply by substituting a cdbs ruleset that avoids running these scripts. Naturally, em_make would be able to do this for us so that emdebianising a Debian package achieves three tasks: 1. Create an emdebian version string and a suitable entry in debian/changelog 2. Create the locale packages and entries in debian/control 3. Comment out/remove these five scripts from debian/rules or add the masking CDBS ruleset. Hopefully, this will dramatically reduce the size of the emdebian.diff patches to be held in SVN and the number of packages that will need any patches stored in SVN in the first place. I'll be looking at the dpkg code next, looking at what code may need to be implemented in emdebian scripts to handle differences between Debian and Stag. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
pgpmo6K3CMgSI.pgp
Description: PGP signature