[Build-common-hackers] rewrite plans

Colin Walters walters@verbum.org
Wed, 09 Jun 2004 21:46:35 -0400


--=-EtsjzNQ59ny1eO9o7Dov
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Fri, 2004-05-21 at 19:16, Andres Salomon wrote:
> Ok, since I've gotten a few emails and such about the rewrite I'm
> currently working on, I figured it would be good to get a discussion
> going.  So, to start off, here are my planned features:
>=20
> * Consistent hook naming. =20

Would be nice, yeah.

> * Verbosity setting=20

Yep.

Both of the above seem doable without a rewrite though.  Just have the
old hook names depend on the new ones.  Probably put them in a separate
-compat.mk file which is included by default for cleanliness.

> * Support for multiple build directories.  This would create directories
> in the pre-prepare hook; for example, pre-prepape/apache2-mpm-prefork
> would create debian/build/apache2-mpm-prefork.  This is one way of doing
> multi-builds; it is good for smaller packages.

Don't we already support this with DEB_BUILDDIRS or something?

> * Support for -source packages.=20

Sounds doable without a rewrite.  We already recognize -debug and -udeb.

> * Support for -udeb packages.  Same as -source packages; CDBS should
> automatically handle debhelper stuff for udebs.

We already have this, although as I understand it isn't great.  I wrote
it before debhelper had udeb stuff though.

> * Generation of control files.  A control.cdbs might have CDBS variables
> for SONAMEs, so that the line "Package: libfoo$(CDBS_SONAME)" would be
> changed to "Package: libfoo4" (if SONAME=3D=3D4) in the generated control
> file.  This doesn't have to be for just file contents; it can also be
> for files themselves.  For example, libfooCDBS_SONAME.install.cdbs can
> be turned into libfoo4.install.  This sort of thing is useful for
> packages like gstreamer, and kernel packages.

Yes...this is very tricky.

> * Automatic build-dep handling.  If control files are being generated,
> there's no reason why we can't add "cdbs (>=3D 4.0.0), debhelper (>=3D 4.=
2)"
> to a Build-dep line.  There are lots of other possibilities for handling
> things more cleanly than we currently do, as well.

I'm not sure about automatically modifying the Build-Depends line.  We
could probably grep for things that seem likely and warn if they're not
present.  But I wouldn't add them automatically, since they could just
be part of another dependency, and calling out to apt or whatever sounds
pretty evil :)

> * And, of course, all the current CDBS features we've come to enjoy; 4
> line debian/rules, auto-patching, the ability to easily override and
> extend default behavior.

Yeah.

> I had started implementing this in gmake; however, as jbailey pointed
> out, there's no reason why this can't be done in shell.  I'm even
> inclined to do it in perl, but I'll have to play w/ it a bit.  I don't
> have anything committed to my arch repository yet, as the code isn't in
> a usable state yet.

One of my original goals was to have the cdbs core be integrated into
dpkg, so bits and pieces (e.g. variables) could be used by all
packages.  I think in order to make that useful to the current package
set, cdbs should stay in gmake.


--=-EtsjzNQ59ny1eO9o7Dov
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBAx717OIkJWWp2WGURAurcAJ4u4XgmijY0GxCBPKdZLKfStq2rvACfcwf1
NJfdgMdX5nX0ZeyT6II9p9s=
=uy2I
-----END PGP SIGNATURE-----

--=-EtsjzNQ59ny1eO9o7Dov--