diff options
author | Alex Legler <a3li@gentoo.org> | 2010-05-16 13:30:02 +0000 |
---|---|---|
committer | Alex Legler <a3li@gentoo.org> | 2010-05-16 13:30:02 +0000 |
commit | 38efd55ef39de645bcd753dab0a8d257f1c4d6cd (patch) | |
tree | cccd04c2c45ee84cffc340739eb0681ecb55364d /dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild | |
parent | x86 stable wrt bug #317143 (diff) | |
download | gentoo-2-38efd55ef39de645bcd753dab0a8d257f1c4d6cd.tar.gz gentoo-2-38efd55ef39de645bcd753dab0a8d257f1c4d6cd.tar.bz2 gentoo-2-38efd55ef39de645bcd753dab0a8d257f1c4d6cd.zip |
Fix 1.9 gem installation path. Homedir-installed gems are now in ~/.gem/ruby/1.9.1 instead of ~/.gem/ruby19/1.9.1. The systemwide installation directory will follow that change eventually. Closes bug 319977.
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild')
-rw-r--r-- | dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild b/dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild new file mode 100644 index 000000000000..3adf527a16bc --- /dev/null +++ b/dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-ruby/rubygems/rubygems-1.3.7-r1.ebuild,v 1.1 2010/05/16 13:30:02 a3li Exp $ + +EAPI="2" + +USE_RUBY="ruby18 ruby19 ree18 jruby" + +inherit ruby-ng + +DESCRIPTION="Centralized Ruby extension management system" +HOMEPAGE="http://rubyforge.org/projects/rubygems/" +LICENSE="|| ( Ruby GPL-2 )" + +# Needs to be installed first +RESTRICT="test" + +SRC_URI="mirror://rubyforge/${PN}/${P}.tgz" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc64 ~s390 ~sparc ~x86 ~x86-fbsd" +SLOT="0" +IUSE="doc server" + +# previous versions had rubygems bundled, so it would collide badly +RDEPEND=" + ruby_targets_jruby? ( >=dev-java/jruby-1.4.0-r5 ) + ruby_targets_ruby19? ( >=dev-lang/ruby-1.9.1_p376 ) +" + +# index_gem_repository.rb +PDEPEND="server? ( dev-ruby/builder[ruby_targets_ruby18] )" + +all_ruby_prepare() { + epatch "${FILESDIR}/${PN}-1.3.5-setup.patch" + # Fixes a new "feature" that would prevent us from recognizing installed + # gems inside the sandbox + epatch "${FILESDIR}/${PN}-1.3.3-gentoo.patch" +} + +each_ruby_prepare() { + case ${RUBY} in + *rubyee18) + epatch "${FILESDIR}/${P}-rubyee.patch" || die "ree patch failed" + ;; + *ruby19) + epatch "${FILESDIR}/${P}-ruby19.patch" || die "ruby19 patch failed" + ;; + *) + ;; + esac +} + +each_ruby_install() { + # Unset RUBYOPT to avoid interferences, bug #158455 et. al. + unset RUBYOPT + + local gemsitedir=$(ruby_rbconfig_value 'sitelibdir' | sed -e 's:site_ruby:gems:') + + # rubygems tries to create GEM_HOME if it doesn't exist, upsetting sandbox, + # bug #202109. Since 1.2.0 we also need to set GEM_PATH for this reason, bug #230163 + export GEM_HOME="${D}${gemsitedir}" + export GEM_PATH="${GEM_HOME}/" + keepdir ${gemsitedir}/{doc,gems,cache,specifications} + + myconf="" + if ! use doc; then + myconf="${myconf} --no-ri" + myconf="${myconf} --no-rdoc" + fi + + ${RUBY} setup.rb $myconf --destdir="${D}" || die "setup.rb install failed" + + insinto $(ruby_rbconfig_value 'sitelibdir') + newins "${FILESDIR}/auto_gem.rb.$(basename ${RUBY})" auto_gem.rb || die "newins auto_gem failed" +} + +all_ruby_install() { + dodoc README || die "dodoc README failed" + + doenvd "${FILESDIR}/10rubygems" || die "doenvd 10rubygems failed" + + if use server; then + newinitd "${FILESDIR}/init.d-gem_server2" gem_server || die "newinitd failed" + newconfd "${FILESDIR}/conf.d-gem_server" gem_server || die "newconfd failed" + fi +} + +clear_source_cache() { + local gemsitedir=$(ruby_rbconfig_value 'sitelibdir' | sed -e 's:site_ruby:gems:') + SOURCE_CACHE="${gemsitedir}/source_cache" + + if [[ -e "${SOURCE_CACHE}" ]]; then + rm "${SOURCE_CACHE}" + einfo "Cleared gem source cache." + fi +} + +pkg_postinst() { + _ruby_each_implementation clear_source_cache + + if [[ ! -n $(readlink "${ROOT}"usr/bin/gem) ]] ; then + eselect ruby set $(eselect --brief --no-color ruby show | head -n1) + fi + + ewarn + ewarn "To switch between available Ruby profiles, execute as root:" + ewarn "\teselect ruby set ruby(18|19|...)" + ewarn +} + +pkg_postrm() { + ewarn "If you have uninstalled dev-ruby/rubygems, Ruby applications are unlikely" + ewarn "to run in current shells because of missing auto_gem." + ewarn "Please run \"unset RUBYOPT\" in your shells before using ruby" + ewarn "or start new shells" + ewarn + ewarn "If you have not uninstalled dev-ruby/rubygems, please do not unset " + ewarn "RUBYOPT" +} |