[Build-common-hackers] Using CDBS' flavors mechanism to build packages
Jonas Smedegaard
dr at jones.dk
Sun Dec 19 03:15:35 UTC 2010
On Sun, Dec 19, 2010 at 01:47:48AM +0000, Emilio Pozuelo Monfort wrote:
>On 11/12/10 15:30, Jonas Smedegaard wrote:
>>On Sat, Dec 11, 2010 at 02:09:58PM +0000, Emilio Pozuelo Monfort
>>wrote:
>>>I want to start using the CDBS' flavors support in packages that we
>>>currently build multiple times with different configure flags /
>>>CFLAGS / LDFLAGS... (e.g. gtk+, glib, pango, vte...).
>>>
>>>Can you point me to a package that uses this mechanism, so I can look
>>>at how it's done? Or in the absence of one, can you explain it to me?
>>>:)
>>
>>Source package libgd2 uses flavors explicitly.
>
>That's exactly what I needed!
Good.
>I'm giving it a try with vte, which builds the source multiple times (a
>normal build, an udeb build, one for each supported python version, and
>now an extra gtk+3 build). It's looks great,
Whoah, sounds like a (too?) good challenge for the flavor feature.
>though it can still be improved a bit:
>
>- I've seen that you've fixed the "honour
>DEB_CONFIGURE_FLAGS_$(flavor)" bug in git... would be nice to get that
>released.
Yes. Will do - although postponing a bit more now to include (easy
parts of) what you uncover here.
>- Currently I need to manually specify the install directory this way:
>DEB_MAKE_DESTDIRSKEL = $(CURDIR)/debian/tmp/@FLAVOR@
>DEB_DESTDIR = $(CURDIR)/debian/tmp/$(cdbs_make_curflavor)/
>Would be nice if that was not necessary (or not that complicated).
Please elaborate. What goes wrong if using the default values?
>There's a FIXME in libgd2/debian/rules about it.
Thanks for reminding me about the FIXME there.
Not sure if we are talking about the same, though: I see only one FIXME
which is about DEB_CONFIGURE_FLAGS, not DEB_DESTDIR?!?
>- Would be useful to be able to specify CFLAGS as CFLAGS_$(flavor),
>the same way as we do with DEB_CONFIGURE_FLAGS_$(flavor). Probably
>other variables like LDFLAGS, etc.
Yes. I'll look into that.
>- I'm currently installing each flavour in debian/tmp/$(flavour),
>then in my debian/*.install files I list what I want in each package.
>This is fine, except that I have e.g.:
>
>$ cat debian/libvte-common.install
>main/usr/share/locale/ usr/share/locale
>main/usr/share/glade3/ usr/share/glade3
>main/usr/share/vte/termcap-0.0 usr/share/vte/termcap-0.0
>gtk3/usr/share/vte/termcap-2.90 usr/share/vte/termcap-2.90
>
>And I need to repeat the directory without the flavour prefix,
>otherwise things are installed in /main/usr/... That's a bit
>annoying.
True, that's annoying.
dh_install is only simple to use when all nicely laid out ahead.
How about tidying up "by hand" before the binary-install/* targets -
e.g. in the per-package install/* targets?
>However it's really painful for python-vte.install:
>
>$ cat debian/python-vte.install
>python*/usr/lib/python*/*-packages/gtk-2.0/*
>
>Here it's installing stuff in /python2.5/usr and /python2.6/usr. I
>could change that to
>python2.5/usr/lib/python2.5/site-packages/gtk-2.0/
>usr/lib/python2.5/site-packages/gtk-2.0/
>python2.6/usr/lib/python2.6/site-packages/gtk-2.0/
>usr/lib/python2.6/dist-packages/gtk-2.0/
>
>But when the list of supported python version changes my package
>would become buggy. I could do something hacky on debian/rules, but
>the point is that the prefix are making stuff painful.
The problem here is that the python-autotools.mk snippet uses the flavor
feature: That clashes with explicit use of that same feature.
I believe you should avoid using that snippet and instead provide your
own local mechanism to add PYTHON to DEB_CONFIGURE_SCRIPT_ENV.
Something like flavors being "main-2.5 main-2.6 gtk3-2.5 gtk3-2.6" and
then resolve PYTHON by chopping off *- from each flavor.
If you have ideas to handle it generally I am obviously interested.
>I've thought that it would be cool to have a -pN option to dh_install,
>similar to the patch -pN option :-)
Would be nice. Try propose that to Joey. I suspect he won't like it,
though.
>>No need to cc me directly - sending to the list is enough. If I don't
>>respond, then please simply email again to "poke" me, as I sometimes
>>get overwhelmed by emails and don't get around to respond to them all.
>
>OK. I CCed you just in case because the list archive was full of spam
>:)
Oh. Others have mentioned that too recently. I don't notice it much,
probably because of my local spam filtering.
- Jonas
--
* 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/build-common-hackers/attachments/20101219/a5c2881c/attachment.pgp>
More information about the Build-common-hackers
mailing list