[Developers] I might be interested in creating a debian package!
Barak A. Pearlmutter
barak at cs.nuim.ie
Sun Feb 6 15:59:11 PST 2011
I'm a Debian developer, and I've started packaging admb.
Would very much welcome patches suggestions help etc.
When (if) it is whipped into shape it would be my pleasure to upload
it into Debian.
> The debian package build process would need to be completely
> automated in order for the ADMB project maintainers to keep it
> current. Usually, this automation is accomplished using make.
The way this typically works is that the Debian packaging information
per-se goes into a debian/ subdirectory maintained by the Debian
project. Changes outside there are kept minimal: bug fixed, generally
send to and coordinated with the upstream developers, and changes to
make the package build and install in a Debian-friendly way across as
many architectures as possible.
You can see what I've done so far, quite minimal just a quick pass,
via:
git clone git://git.debian.org/git/collab-maint/admb.git
The main pending issues are
(a) The need to do something special on 64-bit architectures to ask
the build system to not use -m32, which I hacked around in an ugly
way on amd64 only; I have no idea how this will work on other
64-bit architectures.
(b) The GNUMakefile generated by ./configure does not use the standard
API. In particular, "make install" does not pay attention to
DESTDIR, and prefix is hardwired at ./configure time rather than
just having a default set, and even at ./configure time particular
system target directories are not set using the standard names, in
particular it is hard to get /usr/bin to hold only user-callable
things, /usr/lib/admb to hold architecture-specific things,
/usr/share/amdb to hold non-arch-specific things, and
/usr/share/doc/amdb to hold all documentation. As is, /usr/bin/
would end up containing, e.g., all sorts of non-executables, like
sed script fragments and such.
(c) Although this could be hacked around with shell scripts wrappers,
ideally the executables would have a default value to ADMB_HOME
(or really its relevant components) which are used if that env
variable is not set, and those defaults would be set by passing
things constructed in the makefiles out of prefix & friends using
CPPFLAGS+=-MADMB_HOME_DEFAULT=\"$(prefix)...\" Icky I know.
(d) It seems like generating shared (i.e., dynamic) libraries would be
a good idea. Is there some reason that would be a bad idea?
(e) Man pages, even if they are short stubs...
(f) There are things happening at build time, like invoking
svnversion, that (1) might not be very robust, like if the build
is not in an SVN repo as in my case, and (2) require build-time
dependencies that will cause a lot of work for the debian
autobuilders. It would be good to have all "true" build-time
dependencies documented in, eg, README.txt. lex? flex?
I'm torn between doing something ad-hoc vs rejiggering the build
system to more fully integrate autotools and maybe automake. And
working around some of the above. Trying to rejigger the build to
generate dynamic libraries. A bit more than I'd bargained for!
Cheers,
--Barak.
--
Prof Barak A. Pearlmutter
Hamilton Institute & Dept Comp Sci, NUI Maynooth, Co. Kildare, Ireland
http://www.bcl.hamilton.ie/~barak/
More information about the Developers
mailing list