Calling autoconf in a spec.

Sam Varshavchik mrsam at courier-mta.com
Mon Jul 4 03:34:41 UTC 2011


Kevin Kofler writes:

> Sam Varshavchik wrote:
>
> >
> > Can you translate that. It's nonsense because many upstreams do that?
>
> Oops, I forgot the most important word. :-(
>
> Nonsense. Even many upstreams DON'T do that.
>
> Only very few upstreams use a specific version of autoconf and/or automake,
> most upstreams will just use whatever version happens to be on the
> developer's system that day.

Well, I can tell you, as an upstream, when my build distro is updated, the  
existing source trees do not get rebuilt automatically. configure does not  
get triggered, in the existing source trees, to rebuild itself. configure  
and automake-generated makefiles only look at the timestamps of the existing  
files in the source tree, and do not consider the timestamps of the autoconf  
and automake packages.

So, even after a build distro update, autotools do not get regenerated  
automatically. The entire source tree will likely get rebuilt, because all  
the system header files have been touched, but autotools does not regenerate  
automatically.

After things settle down, then I would go in and rebuild all the autotools  
stuff, then test the end results and sign off that the new versions of  
autotools didn't break anything.

They don't break every time, but they do break, and after many autotools  
updates over the many years, the configure scripts did have to be fixed,  
more than once, to work with the new autotools. It's been mostly autoconf.  
Rarely does something changes with automake, or even libtool, or even  
gettext, that breaks things. Most of the time it's autoconf.

But, it does happen with sufficient regularity for me to conclude that just  
rebuilding all the autotools stuff with whatever's on the build platform,  
without considering what upstream is using, and just blindly forging ahead  
without doing any due diligence, is just not stable. Sorry, it's not.

> > Sure. You must be able to tell, at a glance, which version of autoconf and
> > automake were used by upstream, and what the impact will be as a result of
> > rebuilding with, most likely, Fedora's different version, even before
> > introducing any patches.
>
> Even upstream itself will generally just run "autoreconf -i -f" without even
> looking at the warnings. The warnings are generally such incomprehensible
> gibberish that nobody who isn't an autotools developer even understands them
> at all.

Well, I can't speak for every upstream. But, I don't ignore warnings, and I  
don't update my trees to new versions of autoconf arbitrarily. That's a non- 
trivial excersize that, if one wants to do some due diligence.

> But in practice, the right thing to do is to just run "autoreconf -i -f" in
> %prep, and fix any issues if they fail the build or get reported by users,
> exactly the same way as we handle incompatible GCC changes.

Well, to me it makes much more sense to simply eliminate the uncertainty  
from the process. If I take the tarball that I'm going to build today, if I  
have to rebuild it next year, of a few years from -- the tarball will remain  
the same. It's not going to change. Similarly, if I apply a patch to some  
file in the tarball, if the patch file also is the same next year as it is  
today, then I have a pretty good level of confidence that the end result  
will be the same today, as it will be next year, or even a few years from  
now. In fact, I'm pretty damn sure it will be, and if I'm audited, I will be  
able to prove it.

Unfortunately, if my build process involves running whatever version of  
autotools happens to be present somewhere in the filesystem, then I can't be  
100% sure that the results next year will be exactly, identically the same  
as the results that I'm going to get today. I will not guarantee that the  
results will be the same. You can assert as much as you want, with as much  
confidence as you want, that this is the right way to do, from some  
philosophical viewpoint, but you will not be able to prove to me that you  
will always get the same results.

So, if my goal is to always get the same end results, then I simply cannot  
do that.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
Url : http://lists.fedoraproject.org/pipermail/devel/attachments/20110703/b1d9232f/attachment.bin 


More information about the devel mailing list