[sword-devel] Autotools Bug?
jmarsden at fastmail.fm
Mon May 11 16:37:11 MST 2009
Greg Hellings wrote:
> If the configure script can't find a required tool or library, it
> should die and issue an appropriate error message.
Seems reasonable, although "should" is maybe a bit strong. Isn't that
what AC_REQUIRE_CPP does? I'll check it out this evening at home, if I
have a chance.
> In this case, configure was just testing through and couldn't find
> g++ and any of about a dozen other C++ compilers, but it continued
I think that's the default behaviour. The search for a C++ compiler
done by AC_PROG_CXX just defaults to g++ if it can't find one, rather
than exiting with an error. I'd guess there are historical reasons for
> I think it should fail, but the failure should be inside of
> configure.sh ...
OK. I'm fairly sure that's "just" a matter of instructing autoconf to
do what you want it to do.
> One of the problems with running sudo is that in many configurations
> (including the default configuration on Ubuntu) it "remembers" that a
> particular console or session is authorized for a certain amount of
> time, which would make it possible for extraneous sudo commands to
> slip into the configure or make system.
That's the kind of thing that led to sudo -k . Security-conscious users
who use sudo and are about to run untested scripts from unknown source
tarballs should use sudo -k before running them.
> And the claim is not entirely academic - there have been a few
> isolated cases where a library's build system, after asking for root
> permissions, downloaded and installed code which was harmful to the
> user. As such, I wouldn't ever supply my root password to a
> configure script without being VERY sure I knew who it came from.
Sure; but I wouldn't run a script with a non-standard name that even
doesn't look like it was generated by autoconf, in an unfamiliar
apparently-autoconf-using setup, without reading it first anyway -- even
as my regular user ... it might add 'interesting' stuff to my .bashrc ,
or alias su or sudo to do very naughty things, or just /bin/rm -rf ~ :|
One should probably be building and testing untrusted code in a VM
anyway, or if not, at least in a chrooted build environment, if system
security is an important concern. Which is often is, or often should be!
Seeing an unexpected or unexplained sudo password prompt is not an
absolute sign of a problem in a script, IMO -- just a sign that you
forgot to read through the script before running it!
> I have no problems with autogen.sh - I've seen something similar on
> almost every auto-tools based project I've pulled from a VCS.
autogen.sh seems fundamentally unnecessary to me. If a couple of minor
tweaks are made to configure.am and Makefile.am (tweaks which should be
made anyway, since autoreconf really is supposed to work when used on an
autotool-based source tree!), then what autogen.sh does is what
autoreconf normally does -- or else I am misunderstanding what
autogen.sh is all about, hence my questions regarding it :)
> The real problem here is that autotools isn't behaving properly -
> e.g. alerting the user that required programs aren't found.
As noted above, as far as I can tell, that's "just" a matter of telling
autoconf that "alert and die" is the behaviour you want from its
configure script regarding a C++ compiler, since, for whatever reason,
that is not the default. If it really is as easy as adding
AC_REQUIRE_CPP to configure.ac, I'll provide a trivial patch in a few
Worst case we might have to use an AC_CHECK_PROG macro to test for this.
It's not a "real problem" either way, I think, more a matter of your
expectations not exactly matching those of whoever created SWORD's
configure.ac file, nor those of autotools' defaults.
Incidentally, running a quick autoscan on the SWORD 1.6.0RC3 sources
suggests there are several things which "should" be being checked for
but which are not currently being checked.
More information about the sword-devel