1 |
commit: a6a37f10bb8b1cc9c00b6ab7228ee8ffa2f01bff |
2 |
Author: Hans de Graaff <graaff <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Nov 26 10:06:24 2021 +0000 |
4 |
Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Nov 26 10:06:37 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6a37f10 |
7 |
|
8 |
dev-ruby/rubygems: add 3.2.31 with new gentoo profile |
9 |
|
10 |
This version also updates the gentoo-defaults.rb profile to address |
11 |
issues with installing gems directly with rubygems or bundler, either as |
12 |
root or as a normal user. |
13 |
|
14 |
Bug: https://bugs.gentoo.org/789957 |
15 |
Package-Manager: Portage-3.0.28, Repoman-3.0.3 |
16 |
Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org> |
17 |
|
18 |
dev-ruby/rubygems/Manifest | 1 + |
19 |
dev-ruby/rubygems/files/gentoo-defaults-5.rb | 65 ++++++++++++++++ |
20 |
dev-ruby/rubygems/rubygems-3.2.31.ebuild | 110 +++++++++++++++++++++++++++ |
21 |
3 files changed, 176 insertions(+) |
22 |
|
23 |
diff --git a/dev-ruby/rubygems/Manifest b/dev-ruby/rubygems/Manifest |
24 |
index 78ae49602230..e538c8bead67 100644 |
25 |
--- a/dev-ruby/rubygems/Manifest |
26 |
+++ b/dev-ruby/rubygems/Manifest |
27 |
@@ -3,3 +3,4 @@ DIST rubygems-3.0.9.tgz 886153 BLAKE2B 942f641c7dec30d3dd2f0756d04b1b6b071f5d3b5 |
28 |
DIST rubygems-3.1.6.tgz 996339 BLAKE2B 8dc242a64c6f934b876de841cb6ea86455d7754cbe3902620a10ac40bb97264c03c1002b45a5734d1882617d95e8b390873ed390d00fe7e54b6d8f11a301c2b3 SHA512 730381cf683cd57f7ea7889f63cf21abb699bf28d2a25fa63f510756ece285cb63e4208130c20fa7c0232d6093d869e5d99d5b5fdad9bc68be5e8ead21863d97 |
29 |
DIST rubygems-3.2.14.tgz 987419 BLAKE2B cfd1545f022194f8b7a99b1698a38d4cfae08b8fe25c45fc7b7c935953ec7a66b0b00f21f77eefe757226d80f19a2093f2b85767e5caabfe13f445fbf6dc5508 SHA512 de28bdfdc239cd49bb5a1f78f0a9e3ec432fb70c8326c7899f7ef0a088f60becd99ba81285b20388296f96afb46ca3ca359208621d88a6be68b7388d155a2383 |
30 |
DIST rubygems-3.2.22.tgz 1236895 BLAKE2B c4782e064d2d9748519f915264411e11151edf9273e6a0473e70c39d9fc484b0c2d45e5fe4f00c6b83d9f27393a487c9e0b87a6f9d02449b370ae64a32f891a6 SHA512 6872e08b22ed3903e9d6e67ed03bb79f1ab6819eac0837b9f1003c0ef88ee751a380f9f55e548988baf2658470fcad204eca289acbd2043e04a9d12ed23eac16 |
31 |
+DIST rubygems-3.2.31.tar.gz 11219985 BLAKE2B befb5910365e109e130ca63fb71cc9b94ad92ab0eac41808a2d1955bb062a0c548e9faf283e0bc4b65409041ba4ffdc665335c920417e176bea7d2b08b7c2418 SHA512 34f934b4091a883c9e583563e37f7238c817c1dc9634506239ecd177b7c3cffee49eaaa33c6e9f52dfd7ee195609f2b6d7096254e2fb995396b835c9526f0a3f |
32 |
|
33 |
diff --git a/dev-ruby/rubygems/files/gentoo-defaults-5.rb b/dev-ruby/rubygems/files/gentoo-defaults-5.rb |
34 |
new file mode 100644 |
35 |
index 000000000000..602ad0e4055e |
36 |
--- /dev/null |
37 |
+++ b/dev-ruby/rubygems/files/gentoo-defaults-5.rb |
38 |
@@ -0,0 +1,65 @@ |
39 |
+# frozen_string_literal: true |
40 |
+ |
41 |
+# Gentoo defaults for rubygems 3.x |
42 |
+# |
43 |
+# Gentoo policy is to install all manually installed code into |
44 |
+# /usr/local and to keep /usr managed by Gentoo. This policy file |
45 |
+# ensures that all manually installed gems using "gem install" as root |
46 |
+# are installed in /usr/local. Gentoo gems are installed in /usr. |
47 |
+ |
48 |
+# TODO: We used to manipulate the default_dir, but this no longer |
49 |
+# works since this is now the base for the new "default" gems that |
50 |
+# ruby 2.6 uses with irb. So default_dir should refer to the system |
51 |
+# default now. rubygems also provides various hooks so we may be able |
52 |
+# to use those to install gems in /usr/local by default in a less |
53 |
+# intrusive way. |
54 |
+module Gem |
55 |
+ class << self |
56 |
+ def portage_gems_dir |
57 |
+ RbConfig::CONFIG['sitelibdir'].gsub('site_ruby', 'gems') |
58 |
+ end |
59 |
+ |
60 |
+ def bindir |
61 |
+ Process.euid.zero? ? '@GENTOO_PORTAGE_EPREFIX@/usr/local/bin' : File.join(user_home, 'bin') |
62 |
+ end |
63 |
+ |
64 |
+ def local_dir |
65 |
+ portage_gems_dir.gsub('@GENTOO_PORTAGE_EPREFIX@/usr', |
66 |
+ '@GENTOO_PORTAGE_EPREFIX@/usr/local') |
67 |
+ end |
68 |
+ |
69 |
+ def install_dir |
70 |
+ Process.euid.zero? ? local_dir : user_dir |
71 |
+ end |
72 |
+ |
73 |
+ undef :default_path |
74 |
+ def default_path |
75 |
+ path = [] |
76 |
+ path << user_dir if user_home && File.exist?(user_home) |
77 |
+ path << default_dir |
78 |
+ path << vendor_dir if vendor_dir && File.directory?(vendor_dir) |
79 |
+ path << local_dir |
80 |
+ path << portage_gems_dir |
81 |
+ end |
82 |
+ |
83 |
+ def system_config_path |
84 |
+ '@GENTOO_PORTAGE_EPREFIX@/etc' |
85 |
+ end |
86 |
+ |
87 |
+ # Set Gentoo defaults for gem commands |
88 |
+ begin |
89 |
+ undef :operating_system_defaults |
90 |
+ rescue NameError |
91 |
+ # Avoid either runtime errors or redefinition warnings since |
92 |
+ # this method is not present in all rubygem versions distributed |
93 |
+ # with dev-lang/ruby. |
94 |
+ end |
95 |
+ def operating_system_defaults |
96 |
+ { |
97 |
+ 'install' => "--install-dir #{install_dir}", |
98 |
+ 'uninstall' => "--install-dir #{install_dir}", |
99 |
+ 'update' => "--install-dir #{install_dir}" |
100 |
+ } |
101 |
+ end |
102 |
+ end |
103 |
+end |
104 |
|
105 |
diff --git a/dev-ruby/rubygems/rubygems-3.2.31.ebuild b/dev-ruby/rubygems/rubygems-3.2.31.ebuild |
106 |
new file mode 100644 |
107 |
index 000000000000..b0596c49d95d |
108 |
--- /dev/null |
109 |
+++ b/dev-ruby/rubygems/rubygems-3.2.31.ebuild |
110 |
@@ -0,0 +1,110 @@ |
111 |
+# Copyright 1999-2021 Gentoo Authors |
112 |
+# Distributed under the terms of the GNU General Public License v2 |
113 |
+ |
114 |
+EAPI=8 |
115 |
+ |
116 |
+USE_RUBY="ruby26 ruby27 ruby30" |
117 |
+ |
118 |
+inherit ruby-ng prefix |
119 |
+ |
120 |
+DESCRIPTION="Centralized Ruby extension management system" |
121 |
+HOMEPAGE="https://rubygems.org/" |
122 |
+LICENSE="GPL-2 || ( Ruby MIT )" |
123 |
+ |
124 |
+SRC_URI="https://github.com/rubygems/rubygems/archive/v${PV}.tar.gz -> ${P}.tar.gz" |
125 |
+ |
126 |
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" |
127 |
+SLOT="0" |
128 |
+IUSE="server test" |
129 |
+RESTRICT="!test? ( test )" |
130 |
+ |
131 |
+PDEPEND="server? ( =dev-ruby/builder-3* )" |
132 |
+ |
133 |
+ruby_add_depend "virtual/ruby-ssl" |
134 |
+ |
135 |
+ruby_add_bdepend " |
136 |
+ test? ( |
137 |
+ dev-ruby/json |
138 |
+ dev-ruby/minitest:5 |
139 |
+ dev-ruby/rake |
140 |
+ dev-ruby/rdoc |
141 |
+ dev-ruby/webrick |
142 |
+ )" |
143 |
+ |
144 |
+all_ruby_prepare() { |
145 |
+ # Remove unpackaged automatiek from Rakefile which stops it from working |
146 |
+ sed -i -e '/automatiek/ s:^:#:' -e '/Automatiek/,/^end/ s:^:#:' Rakefile || die |
147 |
+ |
148 |
+ mkdir -p lib/rubygems/defaults || die |
149 |
+ cp "${FILESDIR}/gentoo-defaults-5.rb" lib/rubygems/defaults/operating_system.rb || die |
150 |
+ |
151 |
+ eprefixify lib/rubygems/defaults/operating_system.rb |
152 |
+ |
153 |
+ # Disable broken tests when changing default values: |
154 |
+ sed -i -e '/test_default_path/,/^ end/ s:^:#:' test/rubygems/test_gem.rb || die |
155 |
+ sed -i -e '/test_initialize_\(path_with_defaults\|regexp_path_separator\)/aomit "gentoo"' test/rubygems/test_gem_path_support.rb || die |
156 |
+ # Avoid test that won't work as json is also installed as plain ruby code |
157 |
+ sed -i -e '/test_realworld_\(\|upgraded_\)default_gem/aomit "gentoo"' test/rubygems/test_require.rb || die |
158 |
+ |
159 |
+ # Avoid test that requires additional utility scripts |
160 |
+ rm -f test/test_changelog_generator.rb || die |
161 |
+ |
162 |
+ # Update manifest after changing files to avoid a test failure |
163 |
+ if use test; then |
164 |
+ rake update_manifest || die |
165 |
+ fi |
166 |
+} |
167 |
+ |
168 |
+each_ruby_compile() { |
169 |
+ # Not really a build but... |
170 |
+ sed -i -e 's:#!.*:#!'"${RUBY}"':' bin/gem |
171 |
+} |
172 |
+ |
173 |
+each_ruby_test() { |
174 |
+ # Unset RUBYOPT to avoid interferences, bug #158455 et. al. |
175 |
+ #unset RUBYOPT |
176 |
+ |
177 |
+ if [[ "${EUID}" -ne "0" ]]; then |
178 |
+ RUBYLIB="$(pwd)/lib${RUBYLIB+:${RUBYLIB}}" ${RUBY} --disable-gems -I.:lib:test:bundler/lib \ |
179 |
+ -e 'require "rubygems"; gem "minitest", "~>5.0"; Dir["test/**/test_*.rb"].each { |tu| require tu }' || die "tests failed" |
180 |
+ else |
181 |
+ ewarn "The userpriv feature must be enabled to run tests, bug 408951." |
182 |
+ eerror "Testsuite will not be run." |
183 |
+ fi |
184 |
+} |
185 |
+ |
186 |
+each_ruby_install() { |
187 |
+ # Unset RUBYOPT to avoid interferences, bug #158455 et. al. |
188 |
+ unset RUBYOPT |
189 |
+ export RUBYLIB="$(pwd)/lib${RUBYLIB+:${RUBYLIB}}" |
190 |
+ |
191 |
+ pushd lib &>/dev/null |
192 |
+ doruby -r * |
193 |
+ popd &>/dev/null |
194 |
+ |
195 |
+ local sld=$(ruby_rbconfig_value 'sitelibdir') |
196 |
+ insinto "${sld#${EPREFIX}}" # bug #320813 |
197 |
+ newins "${FILESDIR}/auto_gem.rb.ruby19" auto_gem.rb |
198 |
+ |
199 |
+ newbin bin/gem $(basename ${RUBY} | sed -e 's:ruby:gem:') |
200 |
+} |
201 |
+ |
202 |
+all_ruby_install() { |
203 |
+ dodoc CHANGELOG.md README.md |
204 |
+ |
205 |
+ if use server; then |
206 |
+ newinitd "${FILESDIR}/init.d-gem_server2" gem_server |
207 |
+ newconfd "${FILESDIR}/conf.d-gem_server" gem_server |
208 |
+ fi |
209 |
+} |
210 |
+ |
211 |
+pkg_postinst() { |
212 |
+ if [[ ! -n $(readlink "${ROOT}"/usr/bin/gem) ]] ; then |
213 |
+ eselect ruby set $(eselect --brief --colour=no ruby show | head -n1) |
214 |
+ fi |
215 |
+ |
216 |
+ ewarn |
217 |
+ ewarn "To switch between available Ruby profiles, execute as root:" |
218 |
+ ewarn "\teselect ruby set ruby(25|26|...)" |
219 |
+ ewarn |
220 |
+} |