Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 238508 - sys-devel/libtool should not call eautoreconf
Summary: sys-devel/libtool should not call eautoreconf
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Fabian Groffen
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-23 21:01 UTC by Elias Pipping
Modified: 2008-10-26 11:18 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
It does -- attaching build log for `ebuild libtool-2.2.6a.ebuild clean unpack` (build.log,1.57 KB, text/plain)
2008-09-25 09:43 UTC, Elias Pipping
Details
exemplary diff against autotools.eclass (autotools.diff,999 bytes, patch)
2008-09-27 01:02 UTC, Elias Pipping
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Elias Pipping 2008-09-23 21:01:19 UTC
libtool 2.2.4 calls eautoreconf in ${S}.
libtool 2.2.6a calls eautoreconf there and in ${S}/libltdl

Calling eautoreconf results in calling `libtoolize --force`,
which is not the case with the bootstrap script that comes
with libtoolize (./bootstrap). It takes care of calling
eautoreconf and supplies a libtoolize-dummy that does
nothing. That script should be called instead.

That fact that libtool runs libtoolize in the ebuild (through
eautoreconf) is causes problems in portage prefix (e.g. on osx).

Quoting http://www.gentoo.org/proj/en/qa/autofailure.xml here (emphasis added)

  Many packages provide a single script, often called autogen.sh or
  bootstrap.sh that is uses to execute the tools in the order that upstream
  thinks it's the right one, often setting variables so that the right version
  of the tools is run (different versions of autotools often does not get
  along well). These scripts are, in general, *preferred* over other methods [..]
Comment 1 SpanKY gentoo-dev 2008-09-25 00:13:50 UTC
it does not call libtoolize
Comment 2 Elias Pipping 2008-09-25 09:43:11 UTC
Created attachment 166364 [details]
It does -- attaching build log for `ebuild libtool-2.2.6a.ebuild clean unpack`

libtoolize is called glibtoolize on osx
Comment 3 Elias Pipping 2008-09-25 09:43:38 UTC
Reopening. See the above attachment.
Comment 4 SpanKY gentoo-dev 2008-09-25 22:00:06 UTC
the ebuild is correct.  you're simply pointing out a bug in the Darwin code.

Fabian: you'll want to review _elibtoolize() in autotools.eclass
Comment 5 Elias Pipping 2008-09-26 11:57:28 UTC
It's not a prefix issue.

In libtool's ebuild, we do

      [[ ${CHOST} == *-darwin* ]] && myconf="--program-prefix=g"

and in autotools.eclass (both in _elibtoolize and eautoreconf) we do

[[ ${CHOST} == *-darwin* ]] && LIBTOOLIZE="glibtoolize"

with LIBTOOLIZE defaulting to libtoolize on every other architecture. This is all perfectly fine and unrelated to the bug.

Please re-assign to base-system@gentoo.org
Comment 6 Rafał Mużyło 2008-09-26 23:28:43 UTC
The whole problem seems to come from the fact, that
there doesn't seem to be a way to skip _elibtoolize
during eautoreconf.
In nearly all cases it would probably be a very wrong thing to do,
but here things break unless it's skipped.
Comment 7 Rafał Mużyło 2008-09-26 23:29:52 UTC
ebuild does LIBTOOLIZE=true and that works...
unless libtoolize is called glibtoolize.
Comment 8 Elias Pipping 2008-09-27 00:03:19 UTC
so we're using the variable LIBTOOLIZE although we shouldn't be since it's defined somewhere else?
this is horrible.

where is it defined?
Comment 9 Elias Pipping 2008-09-27 01:02:22 UTC
Created attachment 166563 [details, diff]
exemplary diff against autotools.eclass

No that's not it. I've applied this patch and the output turns out to be exactly the same.

In a nutshell, the bug is not related to messing with the variable LIBTOOLIZE.
Comment 10 Rafał Mużyło 2008-09-27 01:30:43 UTC
Maybe I misunderstood something,
but still that patch makes things worse.

Without that patch, as long as we're not on a darwin host,
setting LIBTOOLIZE to true lets us skip it.
With this patch, we can't skip it regardless of the host.

Comment 11 Fabian Groffen gentoo-dev 2008-09-27 08:29:21 UTC
Thanks Rafał for finally making me understand why it only fails on Darwin.  We should indeed not "clobber" with LIBTOOLIZE in a way that breaks this, like Mike said.
Comment 12 Fabian Groffen gentoo-dev 2008-09-27 08:39:42 UTC
I patched stuff not to override LIBTOOLIZE now, and only change the value to set "if unset" to include the g on Darwin.  This should do it.  Please test.
Comment 13 Elias Pipping 2008-09-27 10:40:30 UTC
Works now. Didn't realize LIBTOOLIZE is set in the ebuild (d'oh).
Comment 14 SpanKY gentoo-dev 2008-10-26 05:51:21 UTC
Fabian: any reason you arent checking this fixes into the main gentoo tree ?
Comment 15 Fabian Groffen gentoo-dev 2008-10-26 11:18:43 UTC
I don't have any good reason apart from not wanting to pollute gentoo-x86 with prefix-specific bits that gentoo-x86 folk might not understand (and remove).