[sword-devel] Autotools Bug?

Jonathan Marsden jmarsden at fastmail.fm
Mon May 11 14:00:56 MST 2009


Greg Hellings wrote:

> The install was not 100% fresh... I had already tried to do
> autotools.sh, and thus installed automake/conf and libtool.

OK.  I suspect that the number of developer machines out there which 
have a working autotools installation, but no C++ compiler, is fairly 
small :)  So, there is probably not much of a need to better address 
this specific (rare) situation in the SWORD build system.

>>  sudo apt-get install build-essential

> Never did like that - I enjoy doing things in Linux the longer way.

Which is 100% fine for experts... but surely the whole point of having 
project-specific "easy-to-use" shell scripts like autogen.sh is to make 
things simpler for the non-experts?  So, if we're going to have such 
convenience scripts in SWORD, shouldn't they add real convenience? :)

> That pulls in extra packages (dpkg-dev) that I don't want to bother
> installing.

It's one package, it is tiny (600K download, 1.2MB installed) compared 
to g++ and libstdc++, and it is something that most Debian/Ubuntu 
developers are going to want to use at some point, as they look into or 
modify the contents of .deb packages and their corresponding source 
packages.

But doing things the longer way is your choice, as an expert, of course. 
  That's not really what I'm trying to address here.  The point is that 
there exists a well-known way to install the standard set of development 
tools on Debian and Ubuntu -- and it would have helped to prevent the 
issue you ran into, had you chosen to use it, or had the convenience 
script you ran detected and offered to remedy the issue, by using that 
approach.

> I would be startled, alarmed and probably not trust a package which
> asked me for my sudo password while I was just configuring it.  No
> thanks!

So in your view, it is better (for most SWORD developers and wannabe 
SWORD developers -- not just for you!) to have a project-specific 
non-standard helper/convenience script just fail?  That is preferable to 
displaying something like "Your system does not have the appropriate 
development tools installed, please provide your sudo password and they 
will be installed for you now using "sudo apt-get install 
build-essential" and then running the command?

As a "middle ground" compromise, the script could just output a message 
suggesting that the developer run "sudo apt-get install build-essential" 
and then re-run the helper script, in these circumstances, if the idea 
of the script running the install command itself is really that troubling.

Given that most folks who run autogen.sh will already have the relevant 
basic development tools in place, and so will never be so prompted, only 
novice (or forgetful!) SWORD developers on new systems will ever see 
this... it seems to me there is value in doing something like this.

[Aside: I was somewhat "alarmed" at the use of non-standard scripts for 
the SWORD build process when I first unpacked the source tarball and 
read the INSTALL file, and so I read them through before running them 
... I think most experienced developers would do the same.  Their doing 
so would address any concern about the appropriateness of using sudo 
therein. ]

If the idea of autogen.sh is other than to be a convenience for SWORD 
developers, what *is* its purpose?  Indeed, an expert developer with no 
prior knowledge of SWORD seeking to recreate the build system would 
probably see a configure.ac file and then instinctively run autoreconf 
(maybe with --install and/or --force options), since AFAIK that is the 
standard way to regenerate a GNU build system.

On a related note: Why doesn't autogen.sh use autoreconf, rather than 
running each separate component (libtoolize / aclocal / autoconf / 
autoheader / automake) ?  Would a small patch to fix things up (one line 
additions to Makefile.am and configure.ac, AFAICS) so that autoreconf 
works correctly and with fewer warnings for SWORD, and to have 
autogen.sh use it, be accepted/useful?

Jonathan



More information about the sword-devel mailing list