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

question on conditional'd spec files



Hi,

I'm fixing build stuff for GStreamer (http://gstreamer.net)

Now, currently, we have one large spec file which generates close to 40
RPM's.  As you can imagine, the build takes quite some time, and it is
really disheartening to have the rpm building fail because of one badly
spec'd or badly coded plugin.  This is of course a major issue in quality
testing (automatic building at night) and when close to a release.

Now I have taken a few steps to remedy this, but I would like some ideas
since I'm not sure what route to take.

First of all, I have started adding --enable options for all of the
plugins and libraries, so that I can decide what to turn on and off at
build time.  For the mad plugin, this is for example done by defining a
USE_MAD in configure.ac

in gst-plugins.spec.in, I prefix each line pertaining to the mad package
with
@USE_MAD_TRUE@

This way, the package spec only ends up in the spec file when it's
actually being used.  This will take a lot of work, however, so I was
wondering how other, similarly large, packages handle this issue.

This approach is supposed to give us a few advantages.

a) in configure.ac, we can easily list a few of the plugins as
experimental or broken, so when we roll the tarball these parts of the
spec file will not be generated and thus it is easy to get all of the
rpm's to build that we are sure that work.

b) by writing a small script, we can easily regenerate tarballs with
different USE_... vars defined.  This way we can repeatedly create a
tarball that will only build one plugin/package, build an rpm from that,
and repeat this cycle.  This way we can actually test what parts of the
whole source code/configure/spec part are mapped out right when the time
is nigh for a release.

Another question I have is: am I making this too hard ? Are there options
I can use in the spec file that make this easier, or does rpm provide for
sequential building ?

If any of this makes sense to you, and you have information to share or
stuff to comment, then please do ;) I'm looking to learn some more ...

Thomas

The Dave/Dina Project : future TV today ! - http://davedina.apestaart.org/
<-*-                      -*->
Follow me down to the bushes dear
No one will know we'll disappear
I'll hold your hand we'll never tell
Our private little trip to hell tonight
<-*- thomas@apestaart.org -*->
URGent, the best radio on the Internet - 24/7 ! - http://urgent.rug.ac.be/





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