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-lang/ruby/
Date: Sun, 18 Jul 2021 08:46:36
Message-Id: 1626597986.915ad705bf194fb1a9ee62b699689fb83499a022.graaff@gentoo
1 commit: 915ad705bf194fb1a9ee62b699689fb83499a022
2 Author: Hans de Graaff <graaff <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jul 18 08:46:26 2021 +0000
4 Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org>
5 CommitDate: Sun Jul 18 08:46:26 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=915ad705
7
8 dev-lang/ruby: cleanup vulnerable versions
9
10 Bug: https://bugs.gentoo.org/780498
11 Package-Manager: Portage-3.0.20, Repoman-3.0.2
12 Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>
13
14 dev-lang/ruby/Manifest | 3 -
15 dev-lang/ruby/ruby-2.6.6-r4.ebuild | 258 ------------------------------------
16 dev-lang/ruby/ruby-2.7.2-r2.ebuild | 261 ------------------------------------
17 dev-lang/ruby/ruby-2.7.2-r3.ebuild | 263 ------------------------------------
18 dev-lang/ruby/ruby-3.0.0-r3.ebuild | 262 ------------------------------------
19 dev-lang/ruby/ruby-3.0.0-r4.ebuild | 262 ------------------------------------
20 dev-lang/ruby/ruby-3.0.0-r5.ebuild | 264 -------------------------------------
21 7 files changed, 1573 deletions(-)
22
23 diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
24 index c54bac521eb..e85c41f7c58 100644
25 --- a/dev-lang/ruby/Manifest
26 +++ b/dev-lang/ruby/Manifest
27 @@ -1,11 +1,8 @@
28 DIST ruby-2.5.8.tar.xz 11298404 BLAKE2B 3256c0448e72b63c0bd89f89a27fa9c09c8feed54d42cd79899b7d5cfe9dbc29ca708d12c630b3f52ff85b0c6a4011ae7ff0483d64b2fd445700a72a91028035 SHA512 2886be764a454425c5beef2777c64a70ee0d048b07896b327633d904f5077fea4299526689f9e2ac4dcd2fc4811cf9a6c8ce75367ed35d29dfe1a54222872e0d
29 DIST ruby-2.5.9.tar.xz 11314448 BLAKE2B ed3c698f076066b0ca771d69ffeb92bf10de6fe051a36d373445ce071af850cb707344becf610657b473d14c7d4dcfb6a814b9d69ed6999e69c6dc3bfb3eaee4 SHA512 239f73eb4049ae2654b648ab927b1f74643d38a5f29572e4bd4e6aa3c53c1df29e0a995fd90d4ab9d4b2ff073fd809b12df820ccb1ddf395684bba6be1855b7a
30 -DIST ruby-2.6.6.tar.xz 11567284 BLAKE2B 45e910dd9b128c46bff3003834c4fdcbbc2e2e4d3e44f298ff4356a285de2c375d6b6021a3aa28d89336b32a1655fa4a7c086d07f4a0f6bcd578a11dd4a894da SHA512 86caf93dbf61d03781767ab5375a7edf4761f13ba08ccfefe16c0a7550499237e7390c2f72a95d42670d4fe76b2401b4218936187c62ec1572799e9e04c50d62
31 DIST ruby-2.6.7.tar.xz 11591404 BLAKE2B 4578f29111fe7845265290dfa9d0146e85f3feb646160d96c1ea04aadb6f0fe8992bf3c7708624132106fdd674978ac21ca24eb2ba13d85572a9467f90417615 SHA512 ba6fc0a36af2a08cf1b008851e805f59ea1047724fc7b61d4bc674533b8f123cb12fa0969e9a3f57290477c0d75f974ca7e304836e4905bd96a737211df9bd21
32 DIST ruby-2.6.8.tar.xz 11599488 BLAKE2B e5b2949233d8540f72d4d8b9c246f9bd0d1342426d2a1c19cb240b7c86f37299e9dc1dfc98ef2a86d1d91055865b4542d690de5567c71189bf2973a4989fa0fd SHA512 d040ad2238523587d8f356fcb796b8b6ad7f8caff7dd6df09e3f7efcbfa0369e33600e78c7f2bc713ae77c040757cce5c4fec223cb9070209f2bf741899c556d
33 -DIST ruby-2.7.2.tar.xz 12037052 BLAKE2B a4ad22295b3fed4e8064fc6e77adb8642d1fa7ae1f4ef912d7bde19c735cb25b1a3e3aefba53dad944046d844d608bcefba61c314cf1e52747f50d7d91f4c436 SHA512 7972278b096aa768c7adf2befd26003e18781a29ca317640317d30d93d6e963ded197724c8e2f1dfe1e838c5647176d414a74732a62e931fb50d6f2e0f777349
34 DIST ruby-2.7.3.tar.xz 12073568 BLAKE2B ee6a7fc8ea611c3204efb32634743bc6b2df46cf3ae7310fc6895a22d0404256911e8d7141ee0a0f1c4cf7cf3b2fdccef12d9fb23eb7916c6fec48c411034dc3 SHA512 b755d418b3bab2f9f6a8893afd13869269f17065643dde78b9e85ae3538a6d0617893db6e9c3908e00a40c7577a5c912a7c822d8f245cdcfb857be76dfb66c1e
35 DIST ruby-2.7.4.tar.xz 12067588 BLAKE2B 2680a7ccd1daf3d156d9519d9132853e68f5f1aad592abce3e73fdd03314a6c28e7d94590153aead86af8952ff51f804ee029f8100b0137919cc27373cb8b9cd SHA512 2cbb70ecfdd69120e789023ddb2b25cab0d03bc33fdc367a8f74ca8a3ee785c18c8ded9de3ecee627c7e275ffb85147e6abf921b6a61e31851b37c7fedf45bf9
36 -DIST ruby-3.0.0.tar.xz 14374176 BLAKE2B 9e7520e0b1ae6644285449c4ae92983d306772b3dd5366a17da709a55797c798d099424a5628c78c842b825fb336c6a769ac9c371ef276f42bf3550fd0761ebe SHA512 2a23c2894e62e24bb20cec6b2a016b66d7df05083668726b6f70af8338211cfec417aa3624290d1f5ccd130f65ee7b52b5db7d428abc4a9460459c9a5dd1a450
37 DIST ruby-3.0.1.tar.xz 14486780 BLAKE2B 60872c457f5bcb58e1bb1792ca13ae21c7cc30d22ae9bd072b3f6d6b83f41e535d905d19fd1aaf7a377801a5b610930bd1727219ab3c1461ee3d1ec7d041c2b6 SHA512 97d2e883656060846b304368d9d836e2f3ef39859c36171c9398a0573818e4ed75bfd7460f901a9553f7f53518c505327a66e74f83704a881469f5ac61fe13d7
38 DIST ruby-3.0.2.tar.xz 14746080 BLAKE2B 47c5591261fb63b1ec3ca719ea6b0c348937456c3711351c1f5317d1e6a748de197e90c8bd4ff822f7b2d4580ad7ed0b54b9eb7aaa5166ea1a15ab2deae96439 SHA512 0f702e2d8ca1342a9d4284dbdd234a3588e057b92566353aa7c21835cf09a3932864b2acf459a976960a1704e9befa562155d36b98b7cda8bd99526e10a374c4
39
40 diff --git a/dev-lang/ruby/ruby-2.6.6-r4.ebuild b/dev-lang/ruby/ruby-2.6.6-r4.ebuild
41 deleted file mode 100644
42 index 96442510f25..00000000000
43 --- a/dev-lang/ruby/ruby-2.6.6-r4.ebuild
44 +++ /dev/null
45 @@ -1,258 +0,0 @@
46 -# Copyright 1999-2021 Gentoo Authors
47 -# Distributed under the terms of the GNU General Public License v2
48 -
49 -EAPI=7
50 -
51 -inherit autotools flag-o-matic multilib
52 -
53 -MY_P="${PN}-$(ver_cut 1-3)"
54 -S=${WORKDIR}/${MY_P}
55 -
56 -SLOT=$(ver_cut 1-2)
57 -MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
58 -RUBYVERSION=${SLOT}.0
59 -
60 -DESCRIPTION="An object-oriented scripting language"
61 -HOMEPAGE="https://www.ruby-lang.org/"
62 -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
63 -
64 -LICENSE="|| ( Ruby-BSD BSD-2 )"
65 -KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
66 -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
67 -
68 -RDEPEND="
69 - berkdb? ( sys-libs/db:= )
70 - gdbm? ( sys-libs/gdbm:= )
71 - jemalloc? ( dev-libs/jemalloc:= )
72 - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
73 - ssl? (
74 - dev-libs/openssl:0=
75 - )
76 - socks5? ( >=net-proxy/dante-1.1.13 )
77 - systemtap? ( dev-util/systemtap )
78 - tk? (
79 - dev-lang/tcl:0=[threads]
80 - dev-lang/tk:0=[threads]
81 - )
82 - dev-libs/libyaml
83 - dev-libs/libffi:=
84 - sys-libs/readline:0=
85 - sys-libs/zlib
86 - virtual/libcrypt:=
87 - >=app-eselect/eselect-ruby-20181225
88 -"
89 -
90 -DEPEND="${RDEPEND}"
91 -
92 -BUNDLED_GEMS="
93 - >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26]
94 - >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26]
95 - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26]
96 - >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26]
97 - >=dev-ruby/rake-12.3.2[ruby_targets_ruby26]
98 - >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26]
99 - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26]
100 -"
101 -
102 -PDEPEND="
103 - ${BUNDLED_GEMS}
104 - virtual/rubygems[ruby_targets_ruby26]
105 - >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26]
106 - >=dev-ruby/json-2.0.2[ruby_targets_ruby26]
107 - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] )
108 - xemacs? ( app-xemacs/ruby-modes )"
109 -
110 -src_prepare() {
111 - # 005 does not compile bigdecimal and is questionable because it
112 - # compiles ruby in a non-standard way, may be dropped
113 - eapply "${FILESDIR}"/2.6/{002,010}*.patch
114 -
115 - einfo "Unbundling gems..."
116 - cd "$S"
117 - # Remove bundled gems that we will install via PDEPEND, bug
118 - # 539700.
119 - rm -fr gems/* || die
120 -
121 - einfo "Removing bundled libraries..."
122 - rm -fr ext/fiddle/libffi-3.2.1 || die
123 -
124 - if use prefix ; then
125 - # Fix hardcoded SHELL var in mkmf library
126 - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
127 -
128 - if [[ ${CHOST} == *darwin* ]] ; then
129 - # avoid symlink loop on Darwin (?!)
130 - sed -i \
131 - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
132 - configure.ac || die
133 -
134 - # make ar/libtool hack for Darwin work
135 - sed -i \
136 - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
137 - configure.ac || die
138 - fi
139 - fi
140 -
141 - eapply_user
142 -
143 - eautoreconf
144 -}
145 -
146 -src_configure() {
147 - local modules= myconf=
148 -
149 - # -fomit-frame-pointer makes ruby segfault, see bug #150413.
150 - filter-flags -fomit-frame-pointer
151 - # In many places aliasing rules are broken; play it safe
152 - # as it's risky with newer compilers to leave it as it is.
153 - append-flags -fno-strict-aliasing
154 -
155 - # Socks support via dante
156 - if use socks5 ; then
157 - # Socks support can't be disabled as long as SOCKS_SERVER is
158 - # set and socks library is present, so need to unset
159 - # SOCKS_SERVER in that case.
160 - unset SOCKS_SERVER
161 - fi
162 -
163 - # Increase GC_MALLOC_LIMIT if set (default is 8000000)
164 - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
165 - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
166 - fi
167 -
168 - # ipv6 hack, bug 168939. Needs --enable-ipv6.
169 - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
170 -
171 - # Determine which modules *not* to build depending in the USE flags.
172 - if ! use berkdb ; then
173 - modules="${modules},dbm"
174 - fi
175 - if ! use gdbm ; then
176 - modules="${modules},gdbm"
177 - fi
178 - if ! use ssl ; then
179 - modules="${modules},openssl"
180 - fi
181 - if ! use tk ; then
182 - modules="${modules},tk"
183 - fi
184 -
185 - # Provide an empty LIBPATHENV because we disable rpath but we do not
186 - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
187 - # #564272
188 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
189 - --program-suffix=${MY_SUFFIX} \
190 - --with-soname=ruby${MY_SUFFIX} \
191 - --with-readline-dir="${EPREFIX}"/usr \
192 - --enable-shared \
193 - --enable-pthread \
194 - --disable-rpath \
195 - --with-out-ext="${modules}" \
196 - $(use_with jemalloc jemalloc) \
197 - $(use_enable jit jit-support ) \
198 - $(use_enable socks5 socks) \
199 - $(use_enable systemtap dtrace) \
200 - $(use_enable doc install-doc) \
201 - --enable-ipv6 \
202 - $(use_enable static-libs static) \
203 - $(use_enable static-libs install-static-library) \
204 - $(use_with static-libs static-linked-ext) \
205 - $(use_enable debug) \
206 - ${myconf} \
207 - --enable-option-checking=no
208 -
209 - # Makefile is broken because it lacks -ldl
210 - rm -rf ext/-test-/popen_deadlock || die
211 -}
212 -
213 -src_compile() {
214 - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
215 -}
216 -
217 -src_test() {
218 - emake -j1 V=1 test
219 -
220 - elog "Ruby's make test has been run. Ruby also ships with a make check"
221 - elog "that cannot be run until after ruby has been installed."
222 - elog
223 - if use rubytests; then
224 - elog "You have enabled rubytests, so they will be installed to"
225 - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
226 - elog "than root, and you must place them into a writeable directory."
227 - elog "Then call: "
228 - elog
229 - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
230 - else
231 - elog "Enable the rubytests USE flag to install the make check tests"
232 - fi
233 -}
234 -
235 -src_install() {
236 - # Remove the remaining bundled gems. We do this late in the process
237 - # since they are used during the build to e.g. create the
238 - # documentation.
239 - rm -rf ext/json || die
240 - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
241 -
242 - # Ruby is involved in the install process, we don't want interference here.
243 - unset RUBYOPT
244 -
245 - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
246 -
247 - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
248 -
249 - if [[ ${CHOST} == *darwin* ]] ; then
250 - DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
251 - export DYLD_LIBRARY_PATH
252 - fi
253 -
254 - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
255 - for d in $(find "${S}/ext" -type d) ; do
256 - RUBYLIB="${RUBYLIB}:$d"
257 - done
258 - export LD_LIBRARY_PATH RUBYLIB
259 -
260 - # Create directory for the default gems
261 - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
262 - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
263 -
264 - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
265 -
266 - # Remove installed rubygems and rdoc copy
267 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
268 - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
269 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
270 - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
271 -
272 - if use doc; then
273 - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
274 - fi
275 -
276 - if use examples; then
277 - dodoc -r sample
278 - fi
279 -
280 - dodoc ChangeLog NEWS doc/NEWS* README*
281 -
282 - if use rubytests; then
283 - pushd test
284 - insinto /usr/share/${PN}-${SLOT}/test
285 - doins -r .
286 - popd
287 - fi
288 -}
289 -
290 -pkg_postinst() {
291 - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
292 - eselect ruby set ruby${MY_SUFFIX}
293 - fi
294 -
295 - elog
296 - elog "To switch between available Ruby profiles, execute as root:"
297 - elog "\teselect ruby set ruby(23|24|...)"
298 - elog
299 -}
300 -
301 -pkg_postrm() {
302 - eselect ruby cleanup
303 -}
304
305 diff --git a/dev-lang/ruby/ruby-2.7.2-r2.ebuild b/dev-lang/ruby/ruby-2.7.2-r2.ebuild
306 deleted file mode 100644
307 index f798dc8d515..00000000000
308 --- a/dev-lang/ruby/ruby-2.7.2-r2.ebuild
309 +++ /dev/null
310 @@ -1,261 +0,0 @@
311 -# Copyright 1999-2021 Gentoo Authors
312 -# Distributed under the terms of the GNU General Public License v2
313 -
314 -EAPI=7
315 -
316 -inherit autotools flag-o-matic multilib
317 -
318 -MY_P="${PN}-$(ver_cut 1-3)"
319 -S=${WORKDIR}/${MY_P}
320 -
321 -SLOT=$(ver_cut 1-2)
322 -MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
323 -RUBYVERSION=${SLOT}.0
324 -
325 -DESCRIPTION="An object-oriented scripting language"
326 -HOMEPAGE="https://www.ruby-lang.org/"
327 -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
328 -
329 -LICENSE="|| ( Ruby-BSD BSD-2 )"
330 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
331 -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
332 -
333 -RDEPEND="
334 - berkdb? ( sys-libs/db:= )
335 - gdbm? ( sys-libs/gdbm:= )
336 - jemalloc? ( dev-libs/jemalloc:= )
337 - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
338 - ssl? (
339 - dev-libs/openssl:0=
340 - )
341 - socks5? ( >=net-proxy/dante-1.1.13 )
342 - systemtap? ( dev-util/systemtap )
343 - tk? (
344 - dev-lang/tcl:0=[threads]
345 - dev-lang/tk:0=[threads]
346 - )
347 - dev-libs/libyaml
348 - dev-libs/libffi:=
349 - sys-libs/readline:0=
350 - sys-libs/zlib
351 - virtual/libcrypt:=
352 - >=app-eselect/eselect-ruby-20191222
353 -"
354 -
355 -DEPEND="${RDEPEND}"
356 -
357 -BUNDLED_GEMS="
358 - >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27]
359 - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27]
360 - >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27]
361 - >=dev-ruby/rake-13.0.1[ruby_targets_ruby27]
362 - >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27]
363 - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27]
364 -"
365 -
366 -PDEPEND="
367 - ${BUNDLED_GEMS}
368 - virtual/rubygems[ruby_targets_ruby27]
369 - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27]
370 - >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27]
371 - >=dev-ruby/json-2.0.2[ruby_targets_ruby27]
372 - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] )
373 - xemacs? ( app-xemacs/ruby-modes )"
374 -
375 -src_prepare() {
376 - # 005 does not compile bigdecimal and is questionable because it
377 - # compiles ruby in a non-standard way, may be dropped
378 - eapply "${FILESDIR}"/2.7/{002,010}*.patch
379 -
380 - einfo "Unbundling gems..."
381 - cd "$S"
382 - # Remove bundled gems that we will install via PDEPEND, bug
383 - # 539700.
384 - rm -fr gems/* || die
385 - # Don't install CLI tools since they will clash with the gem
386 - rm -f bin/{racc,racc2y,y2racc} || die
387 - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
388 -
389 - einfo "Removing bundled libraries..."
390 - rm -fr ext/fiddle/libffi-3.2.1 || die
391 -
392 - if use prefix ; then
393 - # Fix hardcoded SHELL var in mkmf library
394 - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
395 -
396 - if [[ ${CHOST} == *darwin* ]] ; then
397 - # avoid symlink loop on Darwin (?!)
398 - sed -i \
399 - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
400 - configure.ac || die
401 -
402 - # make ar/libtool hack for Darwin work
403 - sed -i \
404 - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
405 - configure.ac || die
406 - fi
407 - fi
408 -
409 - eapply_user
410 -
411 - eautoreconf
412 -}
413 -
414 -src_configure() {
415 - local modules= myconf=
416 -
417 - # -fomit-frame-pointer makes ruby segfault, see bug #150413.
418 - filter-flags -fomit-frame-pointer
419 - # In many places aliasing rules are broken; play it safe
420 - # as it's risky with newer compilers to leave it as it is.
421 - append-flags -fno-strict-aliasing
422 -
423 - # Socks support via dante
424 - if use socks5 ; then
425 - # Socks support can't be disabled as long as SOCKS_SERVER is
426 - # set and socks library is present, so need to unset
427 - # SOCKS_SERVER in that case.
428 - unset SOCKS_SERVER
429 - fi
430 -
431 - # Increase GC_MALLOC_LIMIT if set (default is 8000000)
432 - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
433 - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
434 - fi
435 -
436 - # ipv6 hack, bug 168939. Needs --enable-ipv6.
437 - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
438 -
439 - # Determine which modules *not* to build depending in the USE flags.
440 - if ! use berkdb ; then
441 - modules="${modules},dbm"
442 - fi
443 - if ! use gdbm ; then
444 - modules="${modules},gdbm"
445 - fi
446 - if ! use ssl ; then
447 - modules="${modules},openssl"
448 - fi
449 - if ! use tk ; then
450 - modules="${modules},tk"
451 - fi
452 -
453 - # Provide an empty LIBPATHENV because we disable rpath but we do not
454 - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
455 - # #564272
456 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
457 - --program-suffix=${MY_SUFFIX} \
458 - --with-soname=ruby${MY_SUFFIX} \
459 - --with-readline-dir="${EPREFIX}"/usr \
460 - --enable-shared \
461 - --enable-pthread \
462 - --disable-rpath \
463 - --with-out-ext="${modules}" \
464 - $(use_with jemalloc jemalloc) \
465 - $(use_enable jit jit-support ) \
466 - $(use_enable socks5 socks) \
467 - $(use_enable systemtap dtrace) \
468 - $(use_enable doc install-doc) \
469 - --enable-ipv6 \
470 - $(use_enable static-libs static) \
471 - $(use_enable static-libs install-static-library) \
472 - $(use_with static-libs static-linked-ext) \
473 - $(use_enable debug) \
474 - ${myconf} \
475 - --enable-option-checking=no
476 -
477 - # Makefile is broken because it lacks -ldl
478 - rm -rf ext/-test-/popen_deadlock || die
479 -}
480 -
481 -src_compile() {
482 - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
483 -}
484 -
485 -src_test() {
486 - emake -j1 V=1 test
487 -
488 - elog "Ruby's make test has been run. Ruby also ships with a make check"
489 - elog "that cannot be run until after ruby has been installed."
490 - elog
491 - if use rubytests; then
492 - elog "You have enabled rubytests, so they will be installed to"
493 - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
494 - elog "than root, and you must place them into a writeable directory."
495 - elog "Then call: "
496 - elog
497 - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
498 - else
499 - elog "Enable the rubytests USE flag to install the make check tests"
500 - fi
501 -}
502 -
503 -src_install() {
504 - # Remove the remaining bundled gems. We do this late in the process
505 - # since they are used during the build to e.g. create the
506 - # documentation.
507 - rm -rf ext/json || die
508 - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
509 -
510 - # Ruby is involved in the install process, we don't want interference here.
511 - unset RUBYOPT
512 -
513 - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
514 -
515 - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
516 -
517 - if [[ ${CHOST} == *darwin* ]] ; then
518 - DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
519 - export DYLD_LIBRARY_PATH
520 - fi
521 -
522 - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
523 - for d in $(find "${S}/ext" -type d) ; do
524 - RUBYLIB="${RUBYLIB}:$d"
525 - done
526 - export LD_LIBRARY_PATH RUBYLIB
527 -
528 - # Create directory for the default gems
529 - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
530 - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
531 -
532 - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
533 -
534 - # Remove installed rubygems and rdoc copy
535 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
536 - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
537 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
538 - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
539 -
540 - if use doc; then
541 - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
542 - fi
543 -
544 - if use examples; then
545 - dodoc -r sample
546 - fi
547 -
548 - dodoc ChangeLog NEWS doc/NEWS* README*
549 -
550 - if use rubytests; then
551 - pushd test
552 - insinto /usr/share/${PN}-${SLOT}/test
553 - doins -r .
554 - popd
555 - fi
556 -}
557 -
558 -pkg_postinst() {
559 - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
560 - eselect ruby set ruby${MY_SUFFIX}
561 - fi
562 -
563 - elog
564 - elog "To switch between available Ruby profiles, execute as root:"
565 - elog "\teselect ruby set ruby(23|24|...)"
566 - elog
567 -}
568 -
569 -pkg_postrm() {
570 - eselect ruby cleanup
571 -}
572
573 diff --git a/dev-lang/ruby/ruby-2.7.2-r3.ebuild b/dev-lang/ruby/ruby-2.7.2-r3.ebuild
574 deleted file mode 100644
575 index d0bd2d0867a..00000000000
576 --- a/dev-lang/ruby/ruby-2.7.2-r3.ebuild
577 +++ /dev/null
578 @@ -1,263 +0,0 @@
579 -# Copyright 1999-2021 Gentoo Authors
580 -# Distributed under the terms of the GNU General Public License v2
581 -
582 -EAPI=7
583 -
584 -inherit autotools flag-o-matic multilib
585 -
586 -MY_P="${PN}-$(ver_cut 1-3)"
587 -S=${WORKDIR}/${MY_P}
588 -
589 -SLOT=$(ver_cut 1-2)
590 -MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
591 -RUBYVERSION=${SLOT}.0
592 -
593 -DESCRIPTION="An object-oriented scripting language"
594 -HOMEPAGE="https://www.ruby-lang.org/"
595 -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
596 -
597 -LICENSE="|| ( Ruby-BSD BSD-2 )"
598 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
599 -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
600 -
601 -RDEPEND="
602 - berkdb? ( sys-libs/db:= )
603 - gdbm? ( sys-libs/gdbm:= )
604 - jemalloc? ( dev-libs/jemalloc:= )
605 - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
606 - ssl? (
607 - dev-libs/openssl:0=
608 - )
609 - socks5? ( >=net-proxy/dante-1.1.13 )
610 - systemtap? ( dev-util/systemtap )
611 - tk? (
612 - dev-lang/tcl:0=[threads]
613 - dev-lang/tk:0=[threads]
614 - )
615 - dev-libs/libyaml
616 - dev-libs/libffi:=
617 - sys-libs/readline:0=
618 - sys-libs/zlib
619 - virtual/libcrypt:=
620 - >=app-eselect/eselect-ruby-20191222
621 -"
622 -
623 -DEPEND="${RDEPEND}"
624 -
625 -BUNDLED_GEMS="
626 - >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27]
627 - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27]
628 - >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27]
629 - >=dev-ruby/rake-13.0.1[ruby_targets_ruby27]
630 - >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27]
631 - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27]
632 -"
633 -
634 -PDEPEND="
635 - ${BUNDLED_GEMS}
636 - virtual/rubygems[ruby_targets_ruby27]
637 - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27]
638 - >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27]
639 - >=dev-ruby/json-2.0.2[ruby_targets_ruby27]
640 - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] )
641 - xemacs? ( app-xemacs/ruby-modes )"
642 -
643 -src_prepare() {
644 - # 005 does not compile bigdecimal and is questionable because it
645 - # compiles ruby in a non-standard way, may be dropped
646 - eapply "${FILESDIR}"/2.7/{002,010}*.patch
647 -
648 - einfo "Unbundling gems..."
649 - cd "$S"
650 - # Remove bundled gems that we will install via PDEPEND, bug
651 - # 539700.
652 - rm -fr gems/* || die
653 - # Don't install CLI tools since they will clash with the gem
654 - rm -f bin/{racc,racc2y,y2racc} || die
655 - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
656 -
657 - einfo "Removing bundled libraries..."
658 - rm -fr ext/fiddle/libffi-3.2.1 || die
659 -
660 - if use prefix ; then
661 - # Fix hardcoded SHELL var in mkmf library
662 - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
663 -
664 - if [[ ${CHOST} == *darwin* ]] ; then
665 - # avoid symlink loop on Darwin (?!)
666 - sed -i \
667 - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
668 - configure.ac || die
669 -
670 - # make ar/libtool hack for Darwin work
671 - sed -i \
672 - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
673 - configure.ac || die
674 - fi
675 - fi
676 -
677 - eapply_user
678 -
679 - eautoreconf
680 -}
681 -
682 -src_configure() {
683 - local modules= myconf=
684 -
685 - # -fomit-frame-pointer makes ruby segfault, see bug #150413.
686 - filter-flags -fomit-frame-pointer
687 - # In many places aliasing rules are broken; play it safe
688 - # as it's risky with newer compilers to leave it as it is.
689 - append-flags -fno-strict-aliasing
690 -
691 - # Socks support via dante
692 - if use socks5 ; then
693 - # Socks support can't be disabled as long as SOCKS_SERVER is
694 - # set and socks library is present, so need to unset
695 - # SOCKS_SERVER in that case.
696 - unset SOCKS_SERVER
697 - fi
698 -
699 - # Increase GC_MALLOC_LIMIT if set (default is 8000000)
700 - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
701 - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
702 - fi
703 -
704 - # ipv6 hack, bug 168939. Needs --enable-ipv6.
705 - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
706 -
707 - # Determine which modules *not* to build depending in the USE flags.
708 - if ! use berkdb ; then
709 - modules="${modules},dbm"
710 - fi
711 - if ! use gdbm ; then
712 - modules="${modules},gdbm"
713 - fi
714 - if ! use ssl ; then
715 - modules="${modules},openssl"
716 - fi
717 - if ! use tk ; then
718 - modules="${modules},tk"
719 - fi
720 -
721 - # Provide an empty LIBPATHENV because we disable rpath but we do not
722 - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
723 - # #564272
724 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
725 - --program-suffix=${MY_SUFFIX} \
726 - --with-soname=ruby${MY_SUFFIX} \
727 - --with-readline-dir="${EPREFIX}"/usr \
728 - --enable-shared \
729 - --enable-pthread \
730 - --disable-rpath \
731 - --with-out-ext="${modules}" \
732 - $(use_with jemalloc jemalloc) \
733 - $(use_enable jit jit-support ) \
734 - $(use_enable socks5 socks) \
735 - $(use_enable systemtap dtrace) \
736 - $(use_enable doc install-doc) \
737 - --enable-ipv6 \
738 - $(use_enable static-libs static) \
739 - $(use_enable static-libs install-static-library) \
740 - $(use_with static-libs static-linked-ext) \
741 - $(use_enable debug) \
742 - ${myconf} \
743 - --enable-option-checking=no
744 -
745 - # Makefile is broken because it lacks -ldl
746 - rm -rf ext/-test-/popen_deadlock || die
747 -}
748 -
749 -src_compile() {
750 - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
751 -}
752 -
753 -src_test() {
754 - emake -j1 V=1 test
755 -
756 - elog "Ruby's make test has been run. Ruby also ships with a make check"
757 - elog "that cannot be run until after ruby has been installed."
758 - elog
759 - if use rubytests; then
760 - elog "You have enabled rubytests, so they will be installed to"
761 - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
762 - elog "than root, and you must place them into a writeable directory."
763 - elog "Then call: "
764 - elog
765 - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
766 - else
767 - elog "Enable the rubytests USE flag to install the make check tests"
768 - fi
769 -}
770 -
771 -src_install() {
772 - # Remove the remaining bundled gems. We do this late in the process
773 - # since they are used during the build to e.g. create the
774 - # documentation.
775 - einfo "Removing default gems before installation"
776 - rm -rf .ext/common/json.rb .ext/common/json ext/json || die
777 - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
778 - rm -rf lib/did_you_mean* || die
779 -
780 - # Ruby is involved in the install process, we don't want interference here.
781 - unset RUBYOPT
782 -
783 - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
784 -
785 - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
786 -
787 - if [[ ${CHOST} == *darwin* ]] ; then
788 - DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
789 - export DYLD_LIBRARY_PATH
790 - fi
791 -
792 - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
793 - for d in $(find "${S}/ext" -type d) ; do
794 - RUBYLIB="${RUBYLIB}:$d"
795 - done
796 - export LD_LIBRARY_PATH RUBYLIB
797 -
798 - # Create directory for the default gems
799 - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
800 - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
801 -
802 - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
803 -
804 - # Remove installed rubygems and rdoc copy
805 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
806 - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
807 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
808 - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
809 -
810 - if use doc; then
811 - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
812 - fi
813 -
814 - if use examples; then
815 - dodoc -r sample
816 - fi
817 -
818 - dodoc ChangeLog NEWS doc/NEWS* README*
819 -
820 - if use rubytests; then
821 - pushd test
822 - insinto /usr/share/${PN}-${SLOT}/test
823 - doins -r .
824 - popd
825 - fi
826 -}
827 -
828 -pkg_postinst() {
829 - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
830 - eselect ruby set ruby${MY_SUFFIX}
831 - fi
832 -
833 - elog
834 - elog "To switch between available Ruby profiles, execute as root:"
835 - elog "\teselect ruby set ruby(23|24|...)"
836 - elog
837 -}
838 -
839 -pkg_postrm() {
840 - eselect ruby cleanup
841 -}
842
843 diff --git a/dev-lang/ruby/ruby-3.0.0-r3.ebuild b/dev-lang/ruby/ruby-3.0.0-r3.ebuild
844 deleted file mode 100644
845 index 993097d71ce..00000000000
846 --- a/dev-lang/ruby/ruby-3.0.0-r3.ebuild
847 +++ /dev/null
848 @@ -1,262 +0,0 @@
849 -# Copyright 1999-2021 Gentoo Authors
850 -# Distributed under the terms of the GNU General Public License v2
851 -
852 -EAPI=7
853 -
854 -inherit autotools flag-o-matic multilib
855 -
856 -MY_P="${PN}-$(ver_cut 1-3)"
857 -S=${WORKDIR}/${MY_P}
858 -
859 -SLOT=$(ver_cut 1-2)
860 -MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
861 -RUBYVERSION=${SLOT}.0
862 -
863 -DESCRIPTION="An object-oriented scripting language"
864 -HOMEPAGE="https://www.ruby-lang.org/"
865 -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
866 -
867 -LICENSE="|| ( Ruby-BSD BSD-2 )"
868 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
869 -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
870 -
871 -RDEPEND="
872 - berkdb? ( sys-libs/db:= )
873 - gdbm? ( sys-libs/gdbm:= )
874 - jemalloc? ( dev-libs/jemalloc:= )
875 - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
876 - ssl? (
877 - dev-libs/openssl:0=
878 - )
879 - socks5? ( >=net-proxy/dante-1.1.13 )
880 - systemtap? ( dev-util/systemtap )
881 - tk? (
882 - dev-lang/tcl:0=[threads]
883 - dev-lang/tk:0=[threads]
884 - )
885 - dev-libs/libyaml
886 - dev-libs/libffi:=
887 - sys-libs/readline:0=
888 - sys-libs/zlib
889 - virtual/libcrypt:=
890 - >=app-eselect/eselect-ruby-20201225
891 -"
892 -
893 -DEPEND="${RDEPEND}"
894 -
895 -BUNDLED_GEMS="
896 - >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
897 - >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
898 - >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
899 - >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
900 - >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
901 - >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
902 - >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
903 - >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
904 -"
905 -
906 -PDEPEND="
907 - ${BUNDLED_GEMS}
908 - virtual/rubygems[ruby_targets_ruby30]
909 - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
910 - >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
911 - >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
912 - rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
913 - xemacs? ( app-xemacs/ruby-modes )"
914 -
915 -src_prepare() {
916 - eapply "${FILESDIR}"/"${SLOT}"/010*.patch
917 -
918 - einfo "Unbundling gems..."
919 - cd "$S"
920 - # Remove bundled gems that we will install via PDEPEND, bug
921 - # 539700.
922 - rm -fr gems/* || die
923 - touch gems/bundled_gems || die
924 - # Don't install CLI tools since they will clash with the gem
925 - rm -f bin/{racc,racc2y,y2racc} || die
926 - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
927 -
928 - einfo "Removing bundled libraries..."
929 - rm -fr ext/fiddle/libffi-3.2.1 || die
930 -
931 - if use prefix ; then
932 - # Fix hardcoded SHELL var in mkmf library
933 - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
934 -
935 - if [[ ${CHOST} == *darwin* ]] ; then
936 - # avoid symlink loop on Darwin (?!)
937 - sed -i \
938 - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
939 - configure.ac || die
940 -
941 - # make ar/libtool hack for Darwin work
942 - sed -i \
943 - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
944 - configure.ac || die
945 - fi
946 - fi
947 -
948 - eapply_user
949 -
950 - eautoreconf
951 -}
952 -
953 -src_configure() {
954 - local modules= myconf=
955 -
956 - # -fomit-frame-pointer makes ruby segfault, see bug #150413.
957 - filter-flags -fomit-frame-pointer
958 - # In many places aliasing rules are broken; play it safe
959 - # as it's risky with newer compilers to leave it as it is.
960 - append-flags -fno-strict-aliasing
961 -
962 - # Socks support via dante
963 - if use socks5 ; then
964 - # Socks support can't be disabled as long as SOCKS_SERVER is
965 - # set and socks library is present, so need to unset
966 - # SOCKS_SERVER in that case.
967 - unset SOCKS_SERVER
968 - fi
969 -
970 - # Increase GC_MALLOC_LIMIT if set (default is 8000000)
971 - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
972 - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
973 - fi
974 -
975 - # ipv6 hack, bug 168939. Needs --enable-ipv6.
976 - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
977 -
978 - # Determine which modules *not* to build depending in the USE flags.
979 - if ! use berkdb ; then
980 - modules="${modules},dbm"
981 - fi
982 - if ! use gdbm ; then
983 - modules="${modules},gdbm"
984 - fi
985 - if ! use ssl ; then
986 - modules="${modules},openssl"
987 - fi
988 - if ! use tk ; then
989 - modules="${modules},tk"
990 - fi
991 -
992 - # Provide an empty LIBPATHENV because we disable rpath but we do not
993 - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
994 - # #564272
995 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
996 - --program-suffix=${MY_SUFFIX} \
997 - --with-soname=ruby${MY_SUFFIX} \
998 - --with-readline-dir="${EPREFIX}"/usr \
999 - --enable-shared \
1000 - --enable-pthread \
1001 - --disable-rpath \
1002 - --with-out-ext="${modules}" \
1003 - $(use_with jemalloc jemalloc) \
1004 - $(use_enable jit jit-support ) \
1005 - $(use_enable socks5 socks) \
1006 - $(use_enable systemtap dtrace) \
1007 - $(use_enable doc install-doc) \
1008 - --enable-ipv6 \
1009 - $(use_enable static-libs static) \
1010 - $(use_enable static-libs install-static-library) \
1011 - $(use_with static-libs static-linked-ext) \
1012 - $(use_enable debug) \
1013 - ${myconf} \
1014 - --enable-option-checking=no
1015 -
1016 - # Makefile is broken because it lacks -ldl
1017 - rm -rf ext/-test-/popen_deadlock || die
1018 -}
1019 -
1020 -src_compile() {
1021 - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
1022 -}
1023 -
1024 -src_test() {
1025 - emake -j1 V=1 test
1026 -
1027 - elog "Ruby's make test has been run. Ruby also ships with a make check"
1028 - elog "that cannot be run until after ruby has been installed."
1029 - elog
1030 - if use rubytests; then
1031 - elog "You have enabled rubytests, so they will be installed to"
1032 - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
1033 - elog "than root, and you must place them into a writeable directory."
1034 - elog "Then call: "
1035 - elog
1036 - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
1037 - else
1038 - elog "Enable the rubytests USE flag to install the make check tests"
1039 - fi
1040 -}
1041 -
1042 -src_install() {
1043 - # Remove the remaining bundled gems. We do this late in the process
1044 - # since they are used during the build to e.g. create the
1045 - # documentation.
1046 - rm -rf ext/json || die
1047 - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
1048 -
1049 - # Ruby is involved in the install process, we don't want interference here.
1050 - unset RUBYOPT
1051 -
1052 - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
1053 -
1054 - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
1055 -
1056 - if [[ ${CHOST} == *darwin* ]] ; then
1057 - DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
1058 - export DYLD_LIBRARY_PATH
1059 - fi
1060 -
1061 - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
1062 - for d in $(find "${S}/ext" -type d) ; do
1063 - RUBYLIB="${RUBYLIB}:$d"
1064 - done
1065 - export LD_LIBRARY_PATH RUBYLIB
1066 -
1067 - # Create directory for the default gems
1068 - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
1069 - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
1070 -
1071 - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
1072 -
1073 - # Remove installed rubygems and rdoc copy
1074 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
1075 - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
1076 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
1077 - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
1078 -
1079 - if use doc; then
1080 - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
1081 - fi
1082 -
1083 - if use examples; then
1084 - dodoc -r sample
1085 - fi
1086 -
1087 - dodoc ChangeLog NEWS.md doc/NEWS* README*
1088 -
1089 - if use rubytests; then
1090 - pushd test
1091 - insinto /usr/share/${PN}-${SLOT}/test
1092 - doins -r .
1093 - popd
1094 - fi
1095 -}
1096 -
1097 -pkg_postinst() {
1098 - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
1099 - eselect ruby set ruby${MY_SUFFIX}
1100 - fi
1101 -
1102 - elog
1103 - elog "To switch between available Ruby profiles, execute as root:"
1104 - elog "\teselect ruby set ruby(23|24|...)"
1105 - elog
1106 -}
1107 -
1108 -pkg_postrm() {
1109 - eselect ruby cleanup
1110 -}
1111
1112 diff --git a/dev-lang/ruby/ruby-3.0.0-r4.ebuild b/dev-lang/ruby/ruby-3.0.0-r4.ebuild
1113 deleted file mode 100644
1114 index c42410d8984..00000000000
1115 --- a/dev-lang/ruby/ruby-3.0.0-r4.ebuild
1116 +++ /dev/null
1117 @@ -1,262 +0,0 @@
1118 -# Copyright 1999-2021 Gentoo Authors
1119 -# Distributed under the terms of the GNU General Public License v2
1120 -
1121 -EAPI=7
1122 -
1123 -inherit autotools flag-o-matic multilib
1124 -
1125 -MY_P="${PN}-$(ver_cut 1-3)"
1126 -S=${WORKDIR}/${MY_P}
1127 -
1128 -SLOT=$(ver_cut 1-2)
1129 -MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
1130 -RUBYVERSION=${SLOT}.0
1131 -
1132 -DESCRIPTION="An object-oriented scripting language"
1133 -HOMEPAGE="https://www.ruby-lang.org/"
1134 -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
1135 -
1136 -LICENSE="|| ( Ruby-BSD BSD-2 )"
1137 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
1138 -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
1139 -
1140 -RDEPEND="
1141 - berkdb? ( sys-libs/db:= )
1142 - gdbm? ( sys-libs/gdbm:= )
1143 - jemalloc? ( dev-libs/jemalloc:= )
1144 - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
1145 - ssl? (
1146 - dev-libs/openssl:0=
1147 - )
1148 - socks5? ( >=net-proxy/dante-1.1.13 )
1149 - systemtap? ( dev-util/systemtap )
1150 - tk? (
1151 - dev-lang/tcl:0=[threads]
1152 - dev-lang/tk:0=[threads]
1153 - )
1154 - dev-libs/libyaml
1155 - dev-libs/libffi:=
1156 - sys-libs/readline:0=
1157 - sys-libs/zlib
1158 - virtual/libcrypt:=
1159 - >=app-eselect/eselect-ruby-20201225
1160 -"
1161 -
1162 -DEPEND="${RDEPEND}"
1163 -
1164 -BUNDLED_GEMS="
1165 - >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
1166 - >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
1167 - >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
1168 - >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
1169 - >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
1170 - >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
1171 - >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
1172 - >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
1173 -"
1174 -
1175 -PDEPEND="
1176 - ${BUNDLED_GEMS}
1177 - virtual/rubygems[ruby_targets_ruby30]
1178 - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
1179 - >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
1180 - >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
1181 - rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
1182 - xemacs? ( app-xemacs/ruby-modes )"
1183 -
1184 -src_prepare() {
1185 - eapply "${FILESDIR}"/"${SLOT}"/{001,010}*.patch
1186 -
1187 - einfo "Unbundling gems..."
1188 - cd "$S"
1189 - # Remove bundled gems that we will install via PDEPEND, bug
1190 - # 539700.
1191 - rm -fr gems/* || die
1192 - touch gems/bundled_gems || die
1193 - # Don't install CLI tools since they will clash with the gem
1194 - rm -f bin/{racc,racc2y,y2racc} || die
1195 - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
1196 -
1197 - einfo "Removing bundled libraries..."
1198 - rm -fr ext/fiddle/libffi-3.2.1 || die
1199 -
1200 - if use prefix ; then
1201 - # Fix hardcoded SHELL var in mkmf library
1202 - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
1203 -
1204 - if [[ ${CHOST} == *darwin* ]] ; then
1205 - # avoid symlink loop on Darwin (?!)
1206 - sed -i \
1207 - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
1208 - configure.ac || die
1209 -
1210 - # make ar/libtool hack for Darwin work
1211 - sed -i \
1212 - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
1213 - configure.ac || die
1214 - fi
1215 - fi
1216 -
1217 - eapply_user
1218 -
1219 - eautoreconf
1220 -}
1221 -
1222 -src_configure() {
1223 - local modules= myconf=
1224 -
1225 - # -fomit-frame-pointer makes ruby segfault, see bug #150413.
1226 - filter-flags -fomit-frame-pointer
1227 - # In many places aliasing rules are broken; play it safe
1228 - # as it's risky with newer compilers to leave it as it is.
1229 - append-flags -fno-strict-aliasing
1230 -
1231 - # Socks support via dante
1232 - if use socks5 ; then
1233 - # Socks support can't be disabled as long as SOCKS_SERVER is
1234 - # set and socks library is present, so need to unset
1235 - # SOCKS_SERVER in that case.
1236 - unset SOCKS_SERVER
1237 - fi
1238 -
1239 - # Increase GC_MALLOC_LIMIT if set (default is 8000000)
1240 - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
1241 - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
1242 - fi
1243 -
1244 - # ipv6 hack, bug 168939. Needs --enable-ipv6.
1245 - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
1246 -
1247 - # Determine which modules *not* to build depending in the USE flags.
1248 - if ! use berkdb ; then
1249 - modules="${modules},dbm"
1250 - fi
1251 - if ! use gdbm ; then
1252 - modules="${modules},gdbm"
1253 - fi
1254 - if ! use ssl ; then
1255 - modules="${modules},openssl"
1256 - fi
1257 - if ! use tk ; then
1258 - modules="${modules},tk"
1259 - fi
1260 -
1261 - # Provide an empty LIBPATHENV because we disable rpath but we do not
1262 - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
1263 - # #564272
1264 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
1265 - --program-suffix=${MY_SUFFIX} \
1266 - --with-soname=ruby${MY_SUFFIX} \
1267 - --with-readline-dir="${EPREFIX}"/usr \
1268 - --enable-shared \
1269 - --enable-pthread \
1270 - --disable-rpath \
1271 - --with-out-ext="${modules}" \
1272 - $(use_with jemalloc jemalloc) \
1273 - $(use_enable jit jit-support ) \
1274 - $(use_enable socks5 socks) \
1275 - $(use_enable systemtap dtrace) \
1276 - $(use_enable doc install-doc) \
1277 - --enable-ipv6 \
1278 - $(use_enable static-libs static) \
1279 - $(use_enable static-libs install-static-library) \
1280 - $(use_with static-libs static-linked-ext) \
1281 - $(use_enable debug) \
1282 - ${myconf} \
1283 - --enable-option-checking=no
1284 -
1285 - # Makefile is broken because it lacks -ldl
1286 - rm -rf ext/-test-/popen_deadlock || die
1287 -}
1288 -
1289 -src_compile() {
1290 - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
1291 -}
1292 -
1293 -src_test() {
1294 - emake -j1 V=1 test
1295 -
1296 - elog "Ruby's make test has been run. Ruby also ships with a make check"
1297 - elog "that cannot be run until after ruby has been installed."
1298 - elog
1299 - if use rubytests; then
1300 - elog "You have enabled rubytests, so they will be installed to"
1301 - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
1302 - elog "than root, and you must place them into a writeable directory."
1303 - elog "Then call: "
1304 - elog
1305 - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
1306 - else
1307 - elog "Enable the rubytests USE flag to install the make check tests"
1308 - fi
1309 -}
1310 -
1311 -src_install() {
1312 - # Remove the remaining bundled gems. We do this late in the process
1313 - # since they are used during the build to e.g. create the
1314 - # documentation.
1315 - rm -rf ext/json || die
1316 - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
1317 -
1318 - # Ruby is involved in the install process, we don't want interference here.
1319 - unset RUBYOPT
1320 -
1321 - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
1322 -
1323 - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
1324 -
1325 - if [[ ${CHOST} == *darwin* ]] ; then
1326 - DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
1327 - export DYLD_LIBRARY_PATH
1328 - fi
1329 -
1330 - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
1331 - for d in $(find "${S}/ext" -type d) ; do
1332 - RUBYLIB="${RUBYLIB}:$d"
1333 - done
1334 - export LD_LIBRARY_PATH RUBYLIB
1335 -
1336 - # Create directory for the default gems
1337 - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
1338 - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
1339 -
1340 - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
1341 -
1342 - # Remove installed rubygems and rdoc copy
1343 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
1344 - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
1345 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
1346 - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
1347 -
1348 - if use doc; then
1349 - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
1350 - fi
1351 -
1352 - if use examples; then
1353 - dodoc -r sample
1354 - fi
1355 -
1356 - dodoc ChangeLog NEWS.md doc/NEWS* README*
1357 -
1358 - if use rubytests; then
1359 - pushd test
1360 - insinto /usr/share/${PN}-${SLOT}/test
1361 - doins -r .
1362 - popd
1363 - fi
1364 -}
1365 -
1366 -pkg_postinst() {
1367 - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
1368 - eselect ruby set ruby${MY_SUFFIX}
1369 - fi
1370 -
1371 - elog
1372 - elog "To switch between available Ruby profiles, execute as root:"
1373 - elog "\teselect ruby set ruby(23|24|...)"
1374 - elog
1375 -}
1376 -
1377 -pkg_postrm() {
1378 - eselect ruby cleanup
1379 -}
1380
1381 diff --git a/dev-lang/ruby/ruby-3.0.0-r5.ebuild b/dev-lang/ruby/ruby-3.0.0-r5.ebuild
1382 deleted file mode 100644
1383 index 219a641a6d3..00000000000
1384 --- a/dev-lang/ruby/ruby-3.0.0-r5.ebuild
1385 +++ /dev/null
1386 @@ -1,264 +0,0 @@
1387 -# Copyright 1999-2021 Gentoo Authors
1388 -# Distributed under the terms of the GNU General Public License v2
1389 -
1390 -EAPI=7
1391 -
1392 -inherit autotools flag-o-matic multilib
1393 -
1394 -MY_P="${PN}-$(ver_cut 1-3)"
1395 -S=${WORKDIR}/${MY_P}
1396 -
1397 -SLOT=$(ver_cut 1-2)
1398 -MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
1399 -RUBYVERSION=${SLOT}.0
1400 -
1401 -DESCRIPTION="An object-oriented scripting language"
1402 -HOMEPAGE="https://www.ruby-lang.org/"
1403 -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
1404 -
1405 -LICENSE="|| ( Ruby-BSD BSD-2 )"
1406 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
1407 -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
1408 -
1409 -RDEPEND="
1410 - berkdb? ( sys-libs/db:= )
1411 - gdbm? ( sys-libs/gdbm:= )
1412 - jemalloc? ( dev-libs/jemalloc:= )
1413 - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
1414 - ssl? (
1415 - dev-libs/openssl:0=
1416 - )
1417 - socks5? ( >=net-proxy/dante-1.1.13 )
1418 - systemtap? ( dev-util/systemtap )
1419 - tk? (
1420 - dev-lang/tcl:0=[threads]
1421 - dev-lang/tk:0=[threads]
1422 - )
1423 - dev-libs/libyaml
1424 - dev-libs/libffi:=
1425 - sys-libs/readline:0=
1426 - sys-libs/zlib
1427 - virtual/libcrypt:=
1428 - >=app-eselect/eselect-ruby-20201225
1429 -"
1430 -
1431 -DEPEND="${RDEPEND}"
1432 -
1433 -BUNDLED_GEMS="
1434 - >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
1435 - >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
1436 - >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
1437 - >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
1438 - >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
1439 - >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
1440 - >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
1441 - >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
1442 -"
1443 -
1444 -PDEPEND="
1445 - ${BUNDLED_GEMS}
1446 - virtual/rubygems[ruby_targets_ruby30]
1447 - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
1448 - >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
1449 - >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
1450 - rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
1451 - xemacs? ( app-xemacs/ruby-modes )"
1452 -
1453 -src_prepare() {
1454 - eapply "${FILESDIR}"/"${SLOT}"/{001,010}*.patch
1455 -
1456 - einfo "Unbundling gems..."
1457 - cd "$S"
1458 - # Remove bundled gems that we will install via PDEPEND, bug
1459 - # 539700.
1460 - rm -fr gems/* || die
1461 - touch gems/bundled_gems || die
1462 - # Don't install CLI tools since they will clash with the gem
1463 - rm -f bin/{racc,racc2y,y2racc} || die
1464 - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
1465 -
1466 - einfo "Removing bundled libraries..."
1467 - rm -fr ext/fiddle/libffi-3.2.1 || die
1468 -
1469 - if use prefix ; then
1470 - # Fix hardcoded SHELL var in mkmf library
1471 - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
1472 -
1473 - if [[ ${CHOST} == *darwin* ]] ; then
1474 - # avoid symlink loop on Darwin (?!)
1475 - sed -i \
1476 - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
1477 - configure.ac || die
1478 -
1479 - # make ar/libtool hack for Darwin work
1480 - sed -i \
1481 - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
1482 - configure.ac || die
1483 - fi
1484 - fi
1485 -
1486 - eapply_user
1487 -
1488 - eautoreconf
1489 -}
1490 -
1491 -src_configure() {
1492 - local modules= myconf=
1493 -
1494 - # -fomit-frame-pointer makes ruby segfault, see bug #150413.
1495 - filter-flags -fomit-frame-pointer
1496 - # In many places aliasing rules are broken; play it safe
1497 - # as it's risky with newer compilers to leave it as it is.
1498 - append-flags -fno-strict-aliasing
1499 -
1500 - # Socks support via dante
1501 - if use socks5 ; then
1502 - # Socks support can't be disabled as long as SOCKS_SERVER is
1503 - # set and socks library is present, so need to unset
1504 - # SOCKS_SERVER in that case.
1505 - unset SOCKS_SERVER
1506 - fi
1507 -
1508 - # Increase GC_MALLOC_LIMIT if set (default is 8000000)
1509 - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
1510 - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
1511 - fi
1512 -
1513 - # ipv6 hack, bug 168939. Needs --enable-ipv6.
1514 - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
1515 -
1516 - # Determine which modules *not* to build depending in the USE flags.
1517 - if ! use berkdb ; then
1518 - modules="${modules},dbm"
1519 - fi
1520 - if ! use gdbm ; then
1521 - modules="${modules},gdbm"
1522 - fi
1523 - if ! use ssl ; then
1524 - modules="${modules},openssl"
1525 - fi
1526 - if ! use tk ; then
1527 - modules="${modules},tk"
1528 - fi
1529 -
1530 - # Provide an empty LIBPATHENV because we disable rpath but we do not
1531 - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
1532 - # #564272
1533 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
1534 - --program-suffix=${MY_SUFFIX} \
1535 - --with-soname=ruby${MY_SUFFIX} \
1536 - --with-readline-dir="${EPREFIX}"/usr \
1537 - --enable-shared \
1538 - --enable-pthread \
1539 - --disable-rpath \
1540 - --with-out-ext="${modules}" \
1541 - $(use_with jemalloc jemalloc) \
1542 - $(use_enable jit jit-support ) \
1543 - $(use_enable socks5 socks) \
1544 - $(use_enable systemtap dtrace) \
1545 - $(use_enable doc install-doc) \
1546 - --enable-ipv6 \
1547 - $(use_enable static-libs static) \
1548 - $(use_enable static-libs install-static-library) \
1549 - $(use_with static-libs static-linked-ext) \
1550 - $(use_enable debug) \
1551 - ${myconf} \
1552 - --enable-option-checking=no
1553 -
1554 - # Makefile is broken because it lacks -ldl
1555 - rm -rf ext/-test-/popen_deadlock || die
1556 -}
1557 -
1558 -src_compile() {
1559 - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
1560 -}
1561 -
1562 -src_test() {
1563 - emake -j1 V=1 test
1564 -
1565 - elog "Ruby's make test has been run. Ruby also ships with a make check"
1566 - elog "that cannot be run until after ruby has been installed."
1567 - elog
1568 - if use rubytests; then
1569 - elog "You have enabled rubytests, so they will be installed to"
1570 - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
1571 - elog "than root, and you must place them into a writeable directory."
1572 - elog "Then call: "
1573 - elog
1574 - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
1575 - else
1576 - elog "Enable the rubytests USE flag to install the make check tests"
1577 - fi
1578 -}
1579 -
1580 -src_install() {
1581 - # Remove the remaining bundled gems. We do this late in the process
1582 - # since they are used during the build to e.g. create the
1583 - # documentation.
1584 - einfo "Removing default gems before installation"
1585 - rm -rf .ext/common/json.rb .ext/common/json ext/json || die
1586 - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
1587 - rm -rf lib/did_you_mean* || die
1588 -
1589 - # Ruby is involved in the install process, we don't want interference here.
1590 - unset RUBYOPT
1591 -
1592 - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
1593 -
1594 - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
1595 -
1596 - if [[ ${CHOST} == *darwin* ]] ; then
1597 - DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
1598 - export DYLD_LIBRARY_PATH
1599 - fi
1600 -
1601 - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
1602 - for d in $(find "${S}/ext" -type d) ; do
1603 - RUBYLIB="${RUBYLIB}:$d"
1604 - done
1605 - export LD_LIBRARY_PATH RUBYLIB
1606 -
1607 - # Create directory for the default gems
1608 - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
1609 - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
1610 -
1611 - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
1612 -
1613 - # Remove installed rubygems and rdoc copy
1614 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
1615 - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
1616 - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
1617 - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
1618 -
1619 - if use doc; then
1620 - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
1621 - fi
1622 -
1623 - if use examples; then
1624 - dodoc -r sample
1625 - fi
1626 -
1627 - dodoc ChangeLog NEWS.md doc/NEWS* README*
1628 -
1629 - if use rubytests; then
1630 - pushd test
1631 - insinto /usr/share/${PN}-${SLOT}/test
1632 - doins -r .
1633 - popd
1634 - fi
1635 -}
1636 -
1637 -pkg_postinst() {
1638 - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
1639 - eselect ruby set ruby${MY_SUFFIX}
1640 - fi
1641 -
1642 - elog
1643 - elog "To switch between available Ruby profiles, execute as root:"
1644 - elog "\teselect ruby set ruby(23|24|...)"
1645 - elog
1646 -}
1647 -
1648 -pkg_postrm() {
1649 - eselect ruby cleanup
1650 -}