diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-06-08 21:52:05 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-06-08 21:52:05 +0000 |
commit | e9c94396a7bb9147e33882676f55a3cfacdd8f87 (patch) | |
tree | 222438393c0784daf111caf530a9aa84183e2d3c /sys-devel/libtool | |
parent | mask so people know this isnt directly supported anymore (diff) | |
download | gentoo-2-e9c94396a7bb9147e33882676f55a3cfacdd8f87.tar.gz gentoo-2-e9c94396a7bb9147e33882676f55a3cfacdd8f87.tar.bz2 gentoo-2-e9c94396a7bb9147e33882676f55a3cfacdd8f87.zip |
Add patch from upstream for as-needed test failures #321551 by Xake. Transition the SLOT (and EAPI) so we can install libtool-1.5.x libltdl ABI in parallel. Require newer binutils to avoid old as-needed test failures. Drop help2man cruft now that the upstream tarball includes the man pages.
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'sys-devel/libtool')
-rw-r--r-- | sys-devel/libtool/ChangeLog | 11 | ||||
-rw-r--r-- | sys-devel/libtool/files/libtool-2.2.8-versioning-as-needed-test.patch | 89 | ||||
-rw-r--r-- | sys-devel/libtool/libtool-2.2.8-r1.ebuild | 66 |
3 files changed, 165 insertions, 1 deletions
diff --git a/sys-devel/libtool/ChangeLog b/sys-devel/libtool/ChangeLog index 10693df2c0ab..a42ed5dcbab2 100644 --- a/sys-devel/libtool/ChangeLog +++ b/sys-devel/libtool/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for sys-devel/libtool # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/libtool/ChangeLog,v 1.168 2010/06/05 01:56:11 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/libtool/ChangeLog,v 1.169 2010/06/08 21:52:05 vapier Exp $ + +*libtool-2.2.8-r1 (08 Jun 2010) + + 08 Jun 2010; Mike Frysinger <vapier@gentoo.org> +libtool-2.2.8-r1.ebuild, + +files/libtool-2.2.8-versioning-as-needed-test.patch: + Add patch from upstream for as-needed test failures #321551 by Xake. + Transition the SLOT (and EAPI) so we can install libtool-1.5.x libltdl ABI + in parallel. Require newer binutils to avoid old as-needed test failures. + Drop help2man cruft now that the upstream tarball includes the man pages. *libtool-2.2.8 (05 Jun 2010) diff --git a/sys-devel/libtool/files/libtool-2.2.8-versioning-as-needed-test.patch b/sys-devel/libtool/files/libtool-2.2.8-versioning-as-needed-test.patch new file mode 100644 index 000000000000..cecaf1364986 --- /dev/null +++ b/sys-devel/libtool/files/libtool-2.2.8-versioning-as-needed-test.patch @@ -0,0 +1,89 @@ +https://bugs.gentoo.org/321551 + +From 9a801684f6e1a665dc7126091662b34d042adf68 Mon Sep 17 00:00:00 2001 +From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +Date: Mon, 7 Jun 2010 22:30:44 +0200 +Subject: [PATCH 1/2] Fix versioning test for LDFLAGS=-Wl,--as-needed. + +* tests/versioning.at (versioning): For the library update +hypotheses, ensure the unchanged library libb isn't accidentally +relinked against the new liba, by not reinstalling libb. +Fixes testsuite failure for the incompatible update case with +LDFLAGS=-Wl,--as-needed. +* THANKS: Update. +Report by Ryan Hill. + +Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +--- + tests/versioning.at | 19 +++++++++---------- + 1 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/tests/versioning.at b/tests/versioning.at +index 136a549..31f294e 100644 +--- a/tests/versioning.at ++++ b/tests/versioning.at +@@ -1,6 +1,6 @@ + # versioning.at -- test libtool versioning -*- Autotest -*- + # +-# Copyright (C) 2009 Free Software Foundation, Inc. ++# Copyright (C) 2009, 2010 Free Software Foundation, Inc. + # + # This file is part of GNU Libtool. + # +@@ -190,18 +190,17 @@ AT_CHECK([$LIBTOOL --mode=uninstall rm -f $libdir/liba.la], [], [ignore], [ignor + + + # Hypothesis: library revision updates do not require (uninstalled +-# nor installed) programs to be relinked. ++# nor installed) programs or libraries to be relinked. + AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la liba2.lo ]dnl + [-version-info 0:1:0 -rpath $libdir], [], [ignore], [ignore]) + test_uninstalled +-AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir], +- [], [ignore], [ignore]) ++AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore]) + AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore]) + test_installed + # do not uninstall here: the library may be reused in the next test. + + # Hypothesis: backward compatible library updates do not require +-# (uninstalled nor installed) programs to be relinked. ++# (uninstalled nor installed) programs or libraries to be relinked. + # This can have one of several reasons: + # - the soname is the difference between $current and $age, thus + # unchanged; in this case, the newly installed library will be used, +@@ -212,26 +211,26 @@ test_installed + AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la liba3.lo ]dnl + [-version-info 1:0:1 -rpath $libdir], [], [ignore], [ignore]) + # Do not test the uninstalled program, it may be broken (in the second case). +-AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir], +- [], [ignore], [ignore]) ++AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore]) + AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore]) + test_installed + # do not uninstall here: the library may be reused in the next test. + + + # Hypothesis: with shared libraries, incompatible library updates +-# will not cause old installed programs (linked against the old ++# will not cause old installed programs or libraries (linked against the old + # library version) to break. + # This can have one of several reasons: + # - the soname has changed, so the old installed library will still be + # available, + # - we are linking statically, so the old library code will still be used. ++# In order to be sure we are still linking against the old library version, ++# we must ensure that libb is not relinked, so we must not reinstall libb here. + AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la liba4.lo ]dnl + [-version-info 2:0:0 -rpath $libdir], [], [ignore], [ignore]) + # We do not guarantee that old versions of an uninstalled library are still + # available, so test_uninstalled will not necessarily work here any more. +-AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir], +- [], [ignore], [ignore]) ++AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore]) + AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore]) + test_installed + +-- +1.7.1 + diff --git a/sys-devel/libtool/libtool-2.2.8-r1.ebuild b/sys-devel/libtool/libtool-2.2.8-r1.ebuild new file mode 100644 index 000000000000..3f68fa1fd289 --- /dev/null +++ b/sys-devel/libtool/libtool-2.2.8-r1.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-devel/libtool/libtool-2.2.8-r1.ebuild,v 1.1 2010/06/08 21:52:05 vapier Exp $ + +EAPI="3" + +LIBTOOLIZE="true" #225559 +inherit eutils autotools multilib + +DESCRIPTION="A shared library tool for developers" +HOMEPAGE="http://www.gnu.org/software/libtool/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.lzma" + +LICENSE="GPL-2" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" +IUSE="vanilla" + +RDEPEND="sys-devel/gnuconfig + >=sys-devel/autoconf-2.60 + >=sys-devel/automake-1.10.1 + !=sys-devel/libtool-2*:1.5" +DEPEND="${RDEPEND} + >=sys-devel/binutils-2.20 + || ( app-arch/xz-utils app-arch/lzma-utils )" + +src_prepare() { + epatch "${FILESDIR}"/${P}-versioning-as-needed-test.patch #321551 + + if ! use vanilla ; then + epunt_cxx + cd libltdl/m4 + epatch "${FILESDIR}"/1.5.20/${PN}-1.5.20-use-linux-version-in-fbsd.patch #109105 + cd .. + AT_NOELIBTOOLIZE=yes eautoreconf + cd .. + AT_NOELIBTOOLIZE=yes eautoreconf + fi +} + +src_configure() { + # the libtool script uses bash code in it and at configure time, tries + # to find a bash shell. if /bin/sh is bash, it uses that. this can + # cause problems for people who switch /bin/sh on the fly to other + # shells, so just force libtool to use /bin/bash all the time. + export CONFIG_SHELL=/bin/bash + + default +} + +src_install() { + emake DESTDIR="${D}" install || die + dodoc AUTHORS ChangeLog* NEWS README THANKS TODO doc/PLATFORMS + + for x in $(find "${D}" -name config.guess -o -name config.sub) ; do + rm -f "${x}" ; ln -sf /usr/share/gnuconfig/${x##*/} "${x}" + done +} + +pkg_preinst() { + preserve_old_lib /usr/$(get_libdir)/libltdl.so.3 +} + +pkg_postinst() { + preserve_old_lib_notify /usr/$(get_libdir)/libltdl.so.3 +} |