[Neurodebian-devel] Debian packages for Stimfit
Yaroslav Halchenko
yoh at dartmouth.edu
Tue Jan 25 16:07:41 UTC 2011
On Tue, 25 Jan 2011, Christoph Schmidt-Hieber wrote:
> I've looked into libfann2 and some more packages, but either missed the point or they're doing it differently:
> In the case of stimfit and python-stfio, the binaries are generated using different configure flags; i.e. to build stimfit, you do:
> ./configure --enable-python
> make
> sudo make install
> whereas to build python-stfio, you do (in a separate build - none of the *.o files can be re-used):
> ./configure --enable-module
> make
> sudo make install
> How would I go about this in the debian/rules and
> debian/*.install files? Do you know of any package that uses a similar
> build process that I could use as a template?
it is hard to choose any particular one ;-) and to have multiple calls
to configure and then make -- nothing comes in mind (I know those who
call cmake multiple times for different kinds of builds, e.g.:
http://git.debian.org/?p=pkg-exppsy/afni.git;a=blob;hb=HEAD;f=debian/rules
but there it is also 'out of source' building
> Or should I try to tweak
> my build toolchain so that both packages are generated during the same
> build?
Well -- it is ok actually if I got you right, a
you could simply override install target of debian/rules and
just call
configure --enable-python
make
make install DESTDIR=debian/stimfit (or whatever that package name would be)
configure --enable-module
make
make install DESTDIR=debian/python-stfio
actually since stfio is an extension (not pure python) -- you better
enable it building for all supported versions of Python (not just
default). For that, I guess, you would need to loop through them... I
guess similar to
http://git.debian.org/?p=pkg-exppsy/brian.git;a=blob;hb=HEAD;f=debian/rules
there it is a bit obfuscated since I wanted also to
* build sphinx documentation
* unittest against every supported python version
* move arch-dep extensions (.so) into their own package
but it should give you the idea ;-)
just do not get confused -- it uses 'debhelper 7' features, so you will
not see much of dh_* calls in there, only the "override_"s where things
need to be changed from the default behavior
Sidenote:
you are using HG -- branching/merging should be easy, why not to keep
'debian/' directory as is in a 'debian' branch... then you could,
whenever release ready simply merge your 'tip' into it, adjust and build
from it... also it should make things easier while working on packaging.
Such setup is very common in Debian world and you could even benefit
from helper tools such as
mercurial-buildpackage
disclaimer: I am not HG user myself, GIT, so I use git-buildpackage and
svn-buildpackage before (when I used SVN primarily); but I guess
mercurial-buildpackage should be similar in functionality
--
Yaroslav O. Halchenko
Postdoctoral Fellow, Department of Psychological and Brain Sciences
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419
WWW: http://www.linkedin.com/in/yarik
More information about the Neurodebian-devel
mailing list