Index: gems.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/gems.eclass,v retrieving revision 1.16 diff -u -r1.16 gems.eclass --- gems.eclass 31 Jan 2007 13:46:07 -0000 1.16 +++ gems.eclass 31 Jan 2007 15:02:06 -0000 @@ -37,12 +37,13 @@ } gems_src_unpack() { - #ruby_patch_mkmf true } gems_src_install() { gems_location + # why placing this function in gems_src_unpack doesn't work? + ruby_patch_rbconfig if [ -z "${MY_P}" ]; then GEM_SRC=${DISTDIR}/${P} Index: ruby-gnome2.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/ruby-gnome2.eclass,v retrieving revision 1.11 diff -u -r1.11 ruby-gnome2.eclass --- ruby-gnome2.eclass 26 Jan 2007 15:53:18 -0000 1.11 +++ ruby-gnome2.eclass 31 Jan 2007 15:02:06 -0000 @@ -11,6 +11,8 @@ # Variables: # PATCHES Space delimited list of patch files. +inherit ruby + EXPORT_FUNCTIONS src_compile src_install src_unpack IUSE="" @@ -31,18 +33,6 @@ RDEPEND="virtual/ruby" ruby-gnome2_src_unpack() { - if [ ! -x /bin/install -a -x /usr/bin/install ]; then - cat <${T}/mkmf.rb -require 'mkmf' - -STDERR.puts 'patching mkmf' -CONFIG['INSTALL'] = '/usr/bin/install' -END - # save it because rubygems needs it (for unsetting RUBYOPT) - export GENTOO_RUBYOPT="-r${T}/mkmf.rb" - export RUBYOPT="${RUBYOPT} ${GENTOO_RUBYOPT}" - fi - unpack ${A} cd ${S} # apply bulk patches @@ -54,6 +44,7 @@ } ruby-gnome2_src_compile() { + ruby_patch_rbconfig ruby extconf.rb || die "extconf.rb failed" emake CC=${CC:-gcc} CXX=${CXX:-g++} || die "emake failed" } Index: ruby.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/ruby.eclass,v retrieving revision 1.62 diff -u -r1.62 ruby.eclass --- ruby.eclass 31 Jan 2007 13:46:07 -0000 1.62 +++ ruby.eclass 31 Jan 2007 15:02:07 -0000 @@ -53,25 +53,25 @@ [[ -z "${RUBY}" ]] && export RUBY=/usr/bin/ruby -ruby_patch_mkmf() { - +ruby_patch_rbconfig() { + local rbconfig if [ ! -x /bin/install -a -x /usr/bin/install ]; then - einfo "Patching mkmf" - cat <${T}/mkmf.rb -require 'mkmf' - -STDERR.puts 'Modified mkmf is used' -CONFIG['INSTALL'] = '/usr/bin/install' -END - # save it because rubygems needs it (for unsetting RUBYOPT) - export GENTOO_RUBYOPT="-r${T}/mkmf.rb" - export RUBYOPT="${RUBYOPT} ${GENTOO_RUBYOPT}" + einfo "Shadowing rbconfig.rb" + mkdir "${T}/ruby" + rbconfig=$(ruby -r rbconfig -e 'print Config::CONFIG["archdir"]')/rbconfig.rb + [ -f "${rbconfig}" ] || die "File ${rbconfig} not found. Please report" + sed 's,/bin/install,/usr/bin/install,g' "$rbconfig" > "${T}/ruby/rbconfig.rb" + export GENTOO_RUBYLIB="${T}/ruby" + if [ -n "${RUBYLIB}" ]; then + export RUBYLIB="${GENTOO_RUBYLIB}:${RUBYLIB}" + else + export RUBYLIB="${GENTOO_RUBYLIB}" + fi fi } ruby_src_unpack() { - #ruby_patch_mkmf unpack ${A} cd ${S} # apply bulk patches @@ -83,6 +83,7 @@ } ruby_econf() { + ruby_patch_rbconfig RUBY_ECONF="${RUBY_ECONF} ${EXTRA_ECONF}" if [ -f configure ] ; then