Gentoo Archives: gentoo-commits

From: Hans de Graaff <graaff@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-ruby/rubygems/, dev-ruby/rubygems/files/
Date: Thu, 26 Dec 2019 06:30:52
Message-Id: 1577341836.5a867a40d121dddb477eb425e3119dc6ecbe206f.graaff@gentoo
1 commit: 5a867a40d121dddb477eb425e3119dc6ecbe206f
2 Author: Hans de Graaff <graaff <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 26 06:30:36 2019 +0000
4 Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 26 06:30:36 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a867a40
7
8 dev-ruby/rubygems: add 3.1.2
9
10 Package-Manager: Portage-2.3.79, Repoman-2.3.16
11 Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>
12
13 dev-ruby/rubygems/Manifest | 1 +
14 dev-ruby/rubygems/files/gentoo-defaults-4.rb | 63 ++++++++++++++++++
15 dev-ruby/rubygems/rubygems-3.1.2.ebuild | 99 ++++++++++++++++++++++++++++
16 3 files changed, 163 insertions(+)
17
18 diff --git a/dev-ruby/rubygems/Manifest b/dev-ruby/rubygems/Manifest
19 index 81d240ab47a..8d258b5df1c 100644
20 --- a/dev-ruby/rubygems/Manifest
21 +++ b/dev-ruby/rubygems/Manifest
22 @@ -2,3 +2,4 @@ DIST rubygems-2.7.10.tgz 863618 BLAKE2B 26a453d2808cbf03caa6f2ef4a829418de58f4ed
23 DIST rubygems-3.0.3.tgz 904175 BLAKE2B d99de4bdd51779ab214bc4a81f55483341a2c193d4304b8eeb6105cb95877e0a33fe03d93c47433ad3c6bdc8d3e453e33ffb799fd36164feac31616f95eeced4 SHA512 1dd585243341901c7b4cc60a4902000c10ce57fe2cc9c28e27e274a2e6029f936cde1c99d7097c93c2c5b2c8bcee5d692c8fe5cc00c996a040e4954b674e330e
24 DIST rubygems-3.0.4.tgz 883664 BLAKE2B d5ec493657c055561aa9c0c09719529857706db197bf266ef4c51e48e6f97c08d85a8923b0c6fd72b3fd6ecb584533ff8ca56515c555e9c5b786b0d99ad2a16e SHA512 887c64226ec0b32d33f2ea331936683406d54dc74d19e658a23521e25ab50aa23534fe9eecaf696154247ad1df1d24c233d8900b9aabc79096eebd6afef3f775
25 DIST rubygems-3.0.6.tgz 887156 BLAKE2B 685cfb108cc684ecbbcee6fe341baa429ac28f331b3db444c5ed3557bc169147dddc8d226780a85842bf1de2e24f6a60b0464820afa2a6838221c22543a36daa SHA512 1ef1822a2b19790a36a6d242b7d4584222617baa27787ec58961a9cfeb2733f19f9085490ffc72ee375d3153c7114e050c42e68fc8039e727fe5961b09365ee5
26 +DIST rubygems-3.1.2.tgz 995386 BLAKE2B bddf5dfc3568402257a2218642e6a15fe904b837114b9ce3a1aad155b235e42d96b1b0d4c6be1ee2e71712b8f1876902c343afdcb6d191ae0a6560f582cb282c SHA512 707525a98d14d46e69922e1deecd3b6c4caa090ee8113ba43b3912dc615cd2b1e0a083ecd0876a08b69c209bc05bba67d179f70d65aca45a92ac543170f13d39
27
28 diff --git a/dev-ruby/rubygems/files/gentoo-defaults-4.rb b/dev-ruby/rubygems/files/gentoo-defaults-4.rb
29 new file mode 100644
30 index 00000000000..1da07f64dde
31 --- /dev/null
32 +++ b/dev-ruby/rubygems/files/gentoo-defaults-4.rb
33 @@ -0,0 +1,63 @@
34 +# frozen_string_literal: true
35 +
36 +# Gentoo defaults for rubygems 3.x
37 +#
38 +# Gentoo policy is to install all manually installed code into
39 +# /usr/local and to keep /usr managed by Gentoo. This policy file
40 +# ensures that all manually installed gems using "gem install" are
41 +# installed in /usr/local. Gentoo gems are installed in /usr.
42 +
43 +# TODO: We used to manipulate the default_dir, but this no longer
44 +# works since this is now the base for the new "default" gems that
45 +# ruby 2.6 uses with irb. So default_dir should refer to the system
46 +# default now. rubygems also provides various hooks so we may be able
47 +# to use those to install gems in /usr/local by default in a less
48 +# intrusive way.
49 +module Gem
50 +
51 + class << self
52 + def portage_gems_dir
53 + RbConfig::CONFIG['sitelibdir'].gsub('site_ruby', 'gems')
54 + end
55 +
56 + def local_dir
57 + portage_gems_dir.gsub('@GENTOO_PORTAGE_EPREFIX@/usr',
58 + '@GENTOO_PORTAGE_EPREFIX@/usr/local')
59 + end
60 +
61 + def install_dir
62 + Process.euid.zero? ? local_dir : user_dir
63 + end
64 +
65 + undef :default_path
66 + def default_path
67 + path = []
68 + path << user_dir if user_home && File.exist?(user_home)
69 + path << default_dir
70 + path << vendor_dir if vendor_dir && File.directory?(vendor_dir)
71 + path << local_dir
72 + path << portage_gems_dir
73 + end
74 +
75 + def system_config_path
76 + '@GENTOO_PORTAGE_EPREFIX@/etc'
77 + end
78 +
79 + # Set Gentoo defaults for gem commands
80 + begin
81 + undef :operating_system_defaults
82 + rescue NameError
83 + # Avoid either runtime errors or redefinition warnings since
84 + # this method is not present in all rubygem versions distributed
85 + # with dev-lang/ruby.
86 + end
87 + def operating_system_defaults
88 + {
89 + 'install' => "--install-dir #{install_dir}",
90 + 'uninstall' => "--install-dir #{install_dir}",
91 + 'update' => "--install-dir #{install_dir}"
92 + }
93 + end
94 +
95 + end
96 +end
97
98 diff --git a/dev-ruby/rubygems/rubygems-3.1.2.ebuild b/dev-ruby/rubygems/rubygems-3.1.2.ebuild
99 new file mode 100644
100 index 00000000000..aabe914b1b9
101 --- /dev/null
102 +++ b/dev-ruby/rubygems/rubygems-3.1.2.ebuild
103 @@ -0,0 +1,99 @@
104 +# Copyright 1999-2019 Gentoo Authors
105 +# Distributed under the terms of the GNU General Public License v2
106 +
107 +EAPI=7
108 +
109 +USE_RUBY="ruby24 ruby25 ruby26"
110 +
111 +inherit ruby-ng prefix
112 +
113 +DESCRIPTION="Centralized Ruby extension management system"
114 +HOMEPAGE="https://rubygems.org/"
115 +LICENSE="GPL-2 || ( Ruby MIT )"
116 +
117 +SRC_URI="https://rubygems.org/rubygems/${P}.tgz"
118 +
119 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
120 +SLOT="0"
121 +IUSE="server test"
122 +RESTRICT="!test? ( test )"
123 +
124 +PDEPEND="server? ( =dev-ruby/builder-3* )"
125 +
126 +ruby_add_bdepend "
127 + test? (
128 + dev-ruby/json
129 + dev-ruby/minitest:5
130 + dev-ruby/rake
131 + dev-ruby/rdoc
132 + )"
133 +
134 +all_ruby_prepare() {
135 +
136 + mkdir -p lib/rubygems/defaults || die
137 + cp "${FILESDIR}/gentoo-defaults-4.rb" lib/rubygems/defaults/operating_system.rb || die
138 +
139 + eprefixify lib/rubygems/defaults/operating_system.rb
140 +
141 + # Disable broken tests when changing default values:
142 + sed -i -e '/test_default_path/,/^ end/ s:^:#:' test/rubygems/test_gem.rb || die
143 + # Avoid test that won't work as json is also installed as plain ruby code
144 + sed -i -e '/test_realworld_default_gem/askip "gentoo"' test/rubygems/test_require.rb || die
145 +
146 + # Update manifest after changing files to avoid a test failure
147 + rake update_manifest || die
148 +}
149 +
150 +each_ruby_compile() {
151 + # Not really a build but...
152 + sed -i -e 's:#!.*:#!'"${RUBY}"':' bin/gem
153 +}
154 +
155 +each_ruby_test() {
156 + # Unset RUBYOPT to avoid interferences, bug #158455 et. al.
157 + #unset RUBYOPT
158 +
159 + if [[ "${EUID}" -ne "0" ]]; then
160 + RUBYLIB="$(pwd)/lib${RUBYLIB+:${RUBYLIB}}" ${RUBY} --disable-gems -I.:lib:test:bundler/lib \
161 + -e 'require "rubygems"; gem "minitest", "~>5.0"; Dir["test/**/test_*.rb"].each { |tu| require tu }' || die "tests failed"
162 + else
163 + ewarn "The userpriv feature must be enabled to run tests, bug 408951."
164 + eerror "Testsuite will not be run."
165 + fi
166 +}
167 +
168 +each_ruby_install() {
169 + # Unset RUBYOPT to avoid interferences, bug #158455 et. al.
170 + unset RUBYOPT
171 + export RUBYLIB="$(pwd)/lib${RUBYLIB+:${RUBYLIB}}"
172 +
173 + pushd lib &>/dev/null
174 + doruby -r *
175 + popd &>/dev/null
176 +
177 + local sld=$(ruby_rbconfig_value 'sitelibdir')
178 + insinto "${sld#${EPREFIX}}" # bug #320813
179 + newins "${FILESDIR}/auto_gem.rb.ruby19" auto_gem.rb
180 +
181 + newbin bin/gem $(basename ${RUBY} | sed -e 's:ruby:gem:')
182 +}
183 +
184 +all_ruby_install() {
185 + dodoc History.txt README.md
186 +
187 + if use server; then
188 + newinitd "${FILESDIR}/init.d-gem_server2" gem_server
189 + newconfd "${FILESDIR}/conf.d-gem_server" gem_server
190 + fi
191 +}
192 +
193 +pkg_postinst() {
194 + if [[ ! -n $(readlink "${ROOT}"/usr/bin/gem) ]] ; then
195 + eselect ruby set $(eselect --brief --colour=no ruby show | head -n1)
196 + fi
197 +
198 + ewarn
199 + ewarn "To switch between available Ruby profiles, execute as root:"
200 + ewarn "\teselect ruby set ruby(25|26|...)"
201 + ewarn
202 +}