[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Stag and the Emdebian composite method.



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: pgp3P4mkztANY.pgp
Description: PGP signature


Reply to: