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 _______________________________________________ sword-devel mailing list: [email protected] http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page
