[Rpm-maint] [draft] spec file unification: autotools based projects
Marc Haisenko
haisenko at comdasys.com
Fri Jul 18 10:58:49 UTC 2008
On Friday 18 July 2008, Stanislav Brabec wrote:
> Autotools, distributions and processors are developing. Older autotools
> cannot detect processors and systems, that did not exist in time of the
> release. For example, old autotools were often not able to build shared
> s390/s390x libraries. Working with engineering samples could make
> autoreconf mandatory as well.
... or detect "armeb" as machine name big endian ARM processors. I regularly
run into this. And very old versions have some other problems when it comes
to cross-compiling.
> But if we are talking about unified packages for general use, skipping
> of autoreconf seems to be acceptable.
>
> It's possible to define and recommend use of %autotools_update macro,
> which can have arbitrary contents defined by the vendor (e. g. empty).
> If distributors feel the need to call autoreconf, it could be even
> hidden into %configure.
What about passing autoconf cache variables ? I regularly need to do things
like:
ac_cv_foo=yes \
ac_cv_bar=no \
./configure ...
Needs to be thought of when designing %configure.
> Far the best solution would be encouraging software developers in using
> of latest autotools.
Simply not possible if you're packaging something that's not in active
maintenance any more. It's up to you (the packager) to deal with it.
> > Only patching both sources and generated files guarantees deterministic
> > behavior of building.
>
> It may easily guarantee indeterministic behavior depending on order of
> chunks in the patch, fraction of second, when the patch was applied,
> file system time accuracy, disc cache size in memory and load of the
> system.
>
> After spending one day of debugging of such issue, I would strongly
> advice to never patch any auto-generated files.
I think it's sometimes necessary (sometimes easier), e.g. I regularly find
myself patching config.sub to understand "armeb" as machine name. Simple
two-line patch, far better than trying to run autotools only to find out that
I have to heavily patch configure.in or other stuff to make my autotools
generate the files when the original author used another (old) version of
them.
But sometimes this patching is brutaly smashed to pieces by autotools and
their nice tendency to sometimes call themselves when running "make". While
the autotools have made my life as maintainer of cross-compiled packages
easier I still sometimes want to punch some of the autotools authors for
things like that.
--
Marc Haisenko
Comdasys AG
Rüdesheimer Str. 7
80686 München
Germany
Tel.: +49 (0)89 548 433 321
More information about the Rpm-maint
mailing list