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

Re: [Sc-devel] [PROPOSE] adding automatic debian package building to SConscript



Jan, the one here in Bielefeld "in charge" for the sc debian/ubuntu package writes to me:

Hi,

this seems useful.
Any objection to adding these?

Could you attach the two other files as well?

We already have a working debian package- integrating them with the main
SConstruct-File shouldn't be hard, but is in principle uneccessary.
For Example, mplayer comes also with a debian/ which can be used simply
by  typing 'debian/rules binary'.

More important: This will not fix an SConstruct-Bug which prevents us
from building it at the moment :(. I will distribute our updated
debian/ if it builds successfully. I think getting an updated Version
of SC3 into Debian/Ubuntu should have first priority- everything else
will be a byproduct of this. IMO, adding a hacked Debian support to
the scons-files instead is not the way to go. As already pointed out,
there is only little work done creating a complete 'control' file. Also, a package build like this will AFAIK never be accepted into Debian/ Ubuntu.

Details of SConstruct-Bug I mentioned:
If you try to build the package in an environment that only fetches the build-requirements (usually via 'apt-get build-deps') the SConstruct file will abort, because it checks for the required libraries any time it runs and
exits if it doesn't find it:

From the Source [1]:
 349 # sndfile
350 success, libraries['sndfile'] = conf.CheckPKG('sndfile >= 1.0.16')
 351 if not success: Exit(1)
 352
 353 # FFTW
 354 success, libraries['fftwf'] = conf.CheckPKG('fftw3f')
 355 if not success: Exit(1)

If I recall correctly this also applies to the check for pkgconfig.
You may ask: Why is this a problem? Well, it is good practice to build Debian
packages in
such an environment, for example with pbuilder [2], because
missing build-dependencies will be noticed immediately. Also, you can
build packages for any distribution for it. The software extracts a base
system tarball into a temporary directory, extracts the debian sources
into it, chroots into it, runs a 'make clean' (this is where the current check breaks), installs the build dependencies, builds the package, copies
the created debian packages and removes the temporary chroot.

But getting this to work needs a fix of the above-described bug. Any
help to fix it is much appreciated.

3c

Grüße,
Jan