diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2010-05-21 16:54:25 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2010-05-21 16:54:25 +0000 |
commit | 231b4810ebfa1d55a03592ffa6287137b79b5293 (patch) | |
tree | 9cbadfa8e04d8e0b3a7121ec97d654a8b7e1f9e0 /eclass/ruby-ng-gnome2.eclass | |
parent | Version bump, bug #319213. (diff) | |
download | gentoo-2-231b4810ebfa1d55a03592ffa6287137b79b5293.tar.gz gentoo-2-231b4810ebfa1d55a03592ffa6287137b79b5293.tar.bz2 gentoo-2-231b4810ebfa1d55a03592ffa6287137b79b5293.zip |
Solve bug #320545 in the least hacky way: disable --no-undefined for
the Ruby-Gnome2 bindings. Unfortunately they rely on a
partially-undefined behaviour, let's just hope they'll never come
giving us trouble for this.
Also avoid using cp -a (non-portable) for installing samples, use
insinto/doins instead.
Diffstat (limited to 'eclass/ruby-ng-gnome2.eclass')
-rw-r--r-- | eclass/ruby-ng-gnome2.eclass | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/eclass/ruby-ng-gnome2.eclass b/eclass/ruby-ng-gnome2.eclass index ca0165e1a125..51eb6b16537b 100644 --- a/eclass/ruby-ng-gnome2.eclass +++ b/eclass/ruby-ng-gnome2.eclass @@ -1,6 +1,6 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/ruby-ng-gnome2.eclass,v 1.1 2010/01/13 18:33:32 graaff Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/ruby-ng-gnome2.eclass,v 1.2 2010/05/21 16:54:25 flameeyes Exp $ # # @ECLASS: ruby-ng-gnome2.eclass # @MAINTAINER: @@ -34,6 +34,13 @@ each_ruby_configure() { # @DESCRIPTION: # Compile the C bindings in the subbinding for each specific ruby target. each_ruby_compile() { + # We have injected --no-undefined in Ruby as a safety precaution + # against broken ebuilds, but the Ruby-Gnome bindings + # unfortunately rely on the lazy load of other extensions; see bug + # #320545. + find . -name Makefile -print0 | xargs -0 \ + sed -i -e 's:-Wl,--no-undefined ::' || die "--no-undefined removal failed" + emake || die "emake failed" } @@ -55,7 +62,7 @@ all_ruby_install() { [ -s "$doc" ] && dodoc $doc done if [[ -d sample ]]; then - dodir /usr/share/doc/${PF} - cp -a sample "${D}"/usr/share/doc/${PF} || die "cp failed" + insinto /usr/share/doc/${PF} + doins -r sample || die "sample install failed" fi } |