autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC] getting rid of the config.guess/sub problem when bootstrapping


From: Warren Young
Subject: Re: [RFC] getting rid of the config.guess/sub problem when bootstrapping new ports/systems
Date: Fri, 17 May 2013 14:43:50 -0600
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130509 Thunderbird/17.0.6

On 5/17/2013 13:05, Henrique de Moraes Holschuh wrote:

It would have been really useful if autofoo used whatever is in
/usr/share/misc, unless there is a config.sub.override or
config.guess.override file

You're starting from an assumption that autotools are installed on all systems where you would want to build an autoconfiscated package.

For example, on Cygwin and FreeBSD, a C compiler is optional, and installing it doesn't drag in the autotools.

All you're supposed to need to build an autoconfiscated package are sh(1), make(1), and the compiler for whatever language the package's source code is in.

I think you have the seed of a good idea here, though.

What if configure behaves just like it currently does unless it sees that config.{guess,sub}[.override] aren't present at all? It can then go looking for default versions in the usual system locations.

OS package creation tools could offer a per-package flag in the package's configuration (.spec, .ebuild, .cygport, debian/...) that tells it it is safe to remove shipped config.{guess,sub} files from the tarball when building the source package, and that it should autoreconf the package to get a configure script and Makefile.in that's aware of this new behavior. The idea here is that binary package building workstations *can* be assumed to have autotools installed.

It would also be useful if generated configure scripts supported a --no-local-guess flag which forces it to look for system versions even if it finds them in the same directory as the configure script. That way a tarball can *ship* with config.{guess,sub}, but when a package maintainer knows the system versions are going to work better, it can pass that flag without autoreconf'ing the package.

You might think that unnecessarily fiddly, but it's based on an experience of mine just last month. I was trying to build something that shipped with outdated config.{guess,sub} files, but I couldn't autoreconf it because its configure.ac file was *also* written in a style so obsolescent that autoconf refused to cope with it. The package creation tool "helpfully" tried overwriting config.{guess,sub} but it did so with versions that were still too old, so even if I overwrote them ahead of time, it clobbered my fixes.

That "--no-local-guess" flag would have saved me some aggravation.

Yes, I realize such behavior won't save me for another 3+ years, if I have my way. I'd rather have these features painlessly in the future than break a hundred thousand tarballs so I can have these features now.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]