summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-06-08 21:52:05 +0000
committerMike Frysinger <vapier@gentoo.org>2010-06-08 21:52:05 +0000
commite9c94396a7bb9147e33882676f55a3cfacdd8f87 (patch)
tree222438393c0784daf111caf530a9aa84183e2d3c /sys-devel/libtool
parentmask so people know this isnt directly supported anymore (diff)
downloadgentoo-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/ChangeLog11
-rw-r--r--sys-devel/libtool/files/libtool-2.2.8-versioning-as-needed-test.patch89
-rw-r--r--sys-devel/libtool/libtool-2.2.8-r1.ebuild66
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
+}