Subject: Re: hidden dependencies, Act II
To: Johnny C. Lam <lamj@stat.cmu.edu>
From: Todd Vierling <tv@wasabisystems.com>
List: tech-pkg
Date: 06/13/2001 04:55:38
On Wed, 13 Jun 2001, Johnny C. Lam wrote:
: There was a suggestion by Todd Vierling <tv@wasabisystems.com> that we
: try to hack the AC_CHECK_LIB macro in autoconf as an alternative way
: to deal with hidden dependencies. I've something working that I've
: placed at:
Applause. I don't have time to look at it at this very moment, but I'll
trust your work on this, since you've been dealing heavily with the
dependency goop recently. I do promise to look at this soon when my current
overfull plate has shrunk.
Though having autoconf and automake as build time dependencies are a tad
annoying, I believe the ends justify the means here. Like libtool, autoconf
is a common build tool which can be tailored to help isolate the pkgsrc
build environment.
: (1) Many packages patch only the configure script, or only the
: Makefile.in file. These changes get lost when pkgautoreconf (or
: autoconf) is invoked unless the changes are propagated to the
: configure.in and Makefile.am files.
...Which means that patches should only patch the configure.in or
Makefile.am files instead, because the generated files will be regen'd
automagically.
: (2) Interactions with automake: if automake is installed, then it's
: invoked from pkgautoreconf, otherwise pkgautoreconf/autoconf just
: ignores the fact that automake isn't there and moves on. I can't
: see any problems right away, but I've a feeling this behaviour
: might cause some problems down the road.
This can cause problems where Makefile.am's have to be patched, *but* so
long as a build dependency is marked for automake, all should be fine in
each respective pkg.
: (3) Packages that depend on automake seem to include an explicit
: dependency on autoconf as well, instead of relying on automake to
: include the dependency automatically. All those explicit
: dependencies on autoconf need to be removed.
Just a matter of cleanliness.
: (4) You need to trawl through the autoconf input files carefully to
: find out which libraries may need to be found. Again, package
: maintainers need to have some more knowledge about how autoconf
: works.
Actually, the typical situation *should* be that nothing external is used,
meaning only -lc and -lgcc are automatic. The places where this can trip up
builds are commonly-used extra libs like -lz and -lX11 ... but a careful
watch of the "configure" phase when putting together a pkg should make that
a no-brainer (and point out these often forgotten dependencies which are
only in the base system on some OS's, actually an added benefit). This is
all Packages.txt documentation fodder.
--
-- Todd Vierling <tv@wasabisystems.com> * Wasabi NetBSD: Run with it.
-- NetBSD 1.5 now available on CD-ROM -- http://www.wasabisystems.com/