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, 29 Nov 2015 10:58:56
Message-Id: 1448794697.2a044810afc6f961afcd3a88bc426c7f80c97ef8.graaff@gentoo
1 commit: 2a044810afc6f961afcd3a88bc426c7f80c97ef8
2 Author: Hans de Graaff <graaff <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 29 10:58:02 2015 +0000
4 Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 29 10:58:17 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a044810
7
8 dev-lang/ruby: fix building with USE=multitarget
9
10 Don't set LD_LIBRARY_PATH by default when building
11 extensions since that does not work with USE=multitarget.
12
13 Fixes bug 564272
14
15 Package-Manager: portage-2.2.20.1
16
17 dev-lang/ruby/Manifest | 2 +
18 dev-lang/ruby/ruby-2.1.7-r1.ebuild | 230 ++++++++++++++++++++++++++++++++++
19 dev-lang/ruby/ruby-2.2.3-r2.ebuild | 244 +++++++++++++++++++++++++++++++++++++
20 3 files changed, 476 insertions(+)
21
22 diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
23 index f56f4d2..f1f3150 100644
24 --- a/dev-lang/ruby/Manifest
25 +++ b/dev-lang/ruby/Manifest
26 @@ -10,7 +10,9 @@ DIST ruby-patches-2.0.0_p645.tar.bz2 2947 SHA256 dc173fe94af215fd2c1823f46140e4f
27 DIST ruby-patches-2.0.0_p647-r1.tar.bz2 3341 SHA256 7d82403fed6216baed59ac1fbba888e2b9a4a9cb742ffd01531753bae07ab6b8 SHA512 40d07275a391df3e0a7a0c2705913c8120a548e223032dc39993f8f873c8d0639646cf728dc95f1400352a13766623ac6d69a1b1ff03183df6fabf32946dd7a6 WHIRLPOOL ed7ea6b1c1fd3570ea85b885f7455d8273cff2a9db2540c9e89faca867bd5eed2b4de52c7d21a96bb33ae0beedce113c68bb6c8cee4688650ff5169bd9c265fd
28 DIST ruby-patches-2.0.0_p647.tar.bz2 2947 SHA256 dc173fe94af215fd2c1823f46140e4f11892dec59ce55b10ffad26b622bb6e4e SHA512 423a4fddfc8d7fd4f5b041989da343bc96ce0c3f22a448cab8cec47d4c458f4deeb83b167a0a3ae71d3be57df9b41151d1cafadd191bd3d3e9b08b32732e36cd WHIRLPOOL 9c728e95cf01abdb48afc2ff008dc73d341096b253c664297b6780b32821c1ec406c388ce5860b5dd2ce2de862fb80b2ae45d03750045aaf13c371743f97c92e
29 DIST ruby-patches-2.1.6-r1.tar.bz2 2348 SHA256 2c158373217a719f2961c1f2cf2f3494eb43c413dc41ba7f9c1d88c60baca7f7 SHA512 01367d463a3aa72261742ae468d96ca1fb06a2d6b2a7a0cc416e449a7ae602d4478fb2394390636725424f252fa95c5db7d2c8116dc0b1e4477d8d641961980f WHIRLPOOL b39e8b9bdd8d05958b3b4c5884bfdd65c99b9aee2470a48ca748cbf336948bf0bb9f834ce3fec5e9365abaf385de760012f67dec6db257d7cbeff04ce0c5c7fb
30 +DIST ruby-patches-2.1.7-r1.tar.bz2 1931 SHA256 7e02c1b6a6352693bfd5828c9d1a7633a52baa57d8770df182ed0d8b450a3341 SHA512 85928207db4f76e58925e50d39d73db2d521674385ce3232828377e7d7bb4252aafb9f93d6045d4c159bf094b472af61ef9307203db313bf28918fe35e0f3a21 WHIRLPOOL 17a698b0a09be15f444ea34b33e9aa1d029fbd572c565072a92480bf7b6b21f1b6b88b0da3183a486bae30e7e65f3172cd72b7336be1dc5974b62bd8e2b9ef7a
31 DIST ruby-patches-2.1.7.tar.bz2 1931 SHA256 7e02c1b6a6352693bfd5828c9d1a7633a52baa57d8770df182ed0d8b450a3341 SHA512 85928207db4f76e58925e50d39d73db2d521674385ce3232828377e7d7bb4252aafb9f93d6045d4c159bf094b472af61ef9307203db313bf28918fe35e0f3a21 WHIRLPOOL 17a698b0a09be15f444ea34b33e9aa1d029fbd572c565072a92480bf7b6b21f1b6b88b0da3183a486bae30e7e65f3172cd72b7336be1dc5974b62bd8e2b9ef7a
32 DIST ruby-patches-2.2.2-r1.tar.bz2 3066 SHA256 65342c7cd5146f0d5025932d31e2ed40e1247355d68356e17a06b0ff728fbef1 SHA512 1c578b868db179bca6dd7800528ac23076b1f44519d93b92fafd724d8e5a158512b05cb3d5f7a4f5ada156692978f98cab7dd5b4282701e57c33d50bcda977de WHIRLPOOL 241622b25acdc8b2a7cb912bac2f6e29a4331798ba67507821b3fb295791d7bea8b7933540f2cd47cc7e8477df14be478286d018b7afe9ae121cd8c49c58dc83
33 DIST ruby-patches-2.2.3-r1.tar.bz2 3143 SHA256 45ce438c31c62313f193546a883afe19ccb6dda3276d1378eb5dfd33bd7b8bbe SHA512 e5799b8008276d98f3cd1bd57b1b76a39d052a7c920d84ef245961c2db55e96e7b7081b71aa04843844786cdeee759eb415b46d8e44611d5ff8f658ad12be7bb WHIRLPOOL d9d6dd5562574c2597cbb81b9dbb15c345cad9096e24cc82515fd021882a4e7fa375f37e660b1ce2075ef66bc7582bae4d0c3e819713549dbe7c5c3d4c658ded
34 +DIST ruby-patches-2.2.3-r2.tar.bz2 3143 SHA256 45ce438c31c62313f193546a883afe19ccb6dda3276d1378eb5dfd33bd7b8bbe SHA512 e5799b8008276d98f3cd1bd57b1b76a39d052a7c920d84ef245961c2db55e96e7b7081b71aa04843844786cdeee759eb415b46d8e44611d5ff8f658ad12be7bb WHIRLPOOL d9d6dd5562574c2597cbb81b9dbb15c345cad9096e24cc82515fd021882a4e7fa375f37e660b1ce2075ef66bc7582bae4d0c3e819713549dbe7c5c3d4c658ded
35 DIST ruby-patches-2.2.3.tar.bz2 2263 SHA256 a08bfaf193adf8e92e7937c9e8db3ec4a880e80dd9c99a5621a00a9233d4d2cd SHA512 dafbb40254d9703a7ed66314f6d9d0dd4c88485a5cef28ff1e3c7020c28cfaac1561ecfb72a465811b59213dbaf9aece6b52240ae895e47f5be63d7f88bc5543 WHIRLPOOL 54b91871b991d38cd4c573884389aaa4ee81afc14fd918e968f0b82df95264930d71199741be820c816998ca9134c496a028e13d00b93cae3c870981f28c2160
36
37 diff --git a/dev-lang/ruby/ruby-2.1.7-r1.ebuild b/dev-lang/ruby/ruby-2.1.7-r1.ebuild
38 new file mode 100644
39 index 0000000..82cc4e6
40 --- /dev/null
41 +++ b/dev-lang/ruby/ruby-2.1.7-r1.ebuild
42 @@ -0,0 +1,230 @@
43 +# Copyright 1999-2015 Gentoo Foundation
44 +# Distributed under the terms of the GNU General Public License v2
45 +# $Id$
46 +
47 +EAPI=5
48 +
49 +#PATCHSET=1
50 +
51 +inherit autotools eutils flag-o-matic multilib versionator
52 +
53 +RUBYPL=$(get_version_component_range 4)
54 +
55 +MY_P="${PN}-$(get_version_component_range 1-3)"
56 +#MY_P="${PN}-$(get_version_component_range 1-3)-${RUBYPL:-0}"
57 +S=${WORKDIR}/${MY_P}
58 +
59 +SLOT=$(get_version_component_range 1-2)
60 +MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
61 +RUBYVERSION=2.1.0
62 +
63 +if [[ -n ${PATCHSET} ]]; then
64 + if [[ ${PVR} == ${PV} ]]; then
65 + PATCHSET="${PV}-r0.${PATCHSET}"
66 + else
67 + PATCHSET="${PVR}.${PATCHSET}"
68 + fi
69 +else
70 + PATCHSET="${PVR}"
71 +fi
72 +
73 +DESCRIPTION="An object-oriented scripting language"
74 +HOMEPAGE="http://www.ruby-lang.org/"
75 +SRC_URI="mirror://ruby/2.1/${MY_P}.tar.xz
76 + https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
77 +
78 +LICENSE="|| ( Ruby-BSD BSD-2 )"
79 +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
80 +IUSE="berkdb debug doc examples gdbm ipv6 +rdoc rubytests socks5 ssl xemacs ncurses +readline"
81 +
82 +RDEPEND="
83 + berkdb? ( sys-libs/db:= )
84 + gdbm? ( sys-libs/gdbm )
85 + ssl? ( dev-libs/openssl:0 )
86 + socks5? ( >=net-proxy/dante-1.1.13 )
87 + ncurses? ( sys-libs/ncurses:0= )
88 + readline? ( sys-libs/readline:0 )
89 + dev-libs/libyaml
90 + virtual/libffi
91 + sys-libs/zlib
92 + >=app-eselect/eselect-ruby-20131227
93 + !<dev-ruby/rdoc-3.9.4
94 + !<dev-ruby/rubygems-1.8.10-r1"
95 +
96 +DEPEND="${RDEPEND}"
97 +PDEPEND="
98 + virtual/rubygems[ruby_targets_ruby21]
99 + >=dev-ruby/json-1.8.1[ruby_targets_ruby21]
100 + >=dev-ruby/rake-0.9.6[ruby_targets_ruby21]
101 + rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby21] )
102 + xemacs? ( app-xemacs/ruby-modes )"
103 +
104 +src_prepare() {
105 + EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
106 + epatch "${WORKDIR}/patches"
107 +
108 + # We can no longer unbundle all of rake because rubygems now depends
109 + # on this. We leave the actual rake code around to bootstrap
110 + # rubygems, but remove the bits that would cause a file collision.
111 + einfo "Unbundling gems..."
112 + cd "$S"
113 + rm -r \
114 + {bin,lib}/rake lib/rake.rb man/rake.1 \
115 + bin/gem || die "removal failed"
116 +
117 + # Fix a hardcoded lib path in configure script
118 + sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
119 + configure.in || die "sed failed"
120 +
121 + eautoreconf
122 +}
123 +
124 +src_configure() {
125 + local myconf=
126 +
127 + # The Tk module can no longer be built because the module code is no
128 + # longer compatible with newer stable versions.
129 + # https://bugs.gentoo.org/show_bug.cgi?id=500894
130 + local modules="tk"
131 +
132 + # -fomit-frame-pointer makes ruby segfault, see bug #150413.
133 + filter-flags -fomit-frame-pointer
134 + # In many places aliasing rules are broken; play it safe
135 + # as it's risky with newer compilers to leave it as it is.
136 + append-flags -fno-strict-aliasing
137 + # SuperH needs this
138 + use sh && append-flags -mieee
139 +
140 + # Socks support via dante
141 + if use socks5 ; then
142 + # Socks support can't be disabled as long as SOCKS_SERVER is
143 + # set and socks library is present, so need to unset
144 + # SOCKS_SERVER in that case.
145 + unset SOCKS_SERVER
146 + fi
147 +
148 + # Increase GC_MALLOC_LIMIT if set (default is 8000000)
149 + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
150 + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
151 + fi
152 +
153 + # ipv6 hack, bug 168939. Needs --enable-ipv6.
154 + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
155 +
156 + # Determine which modules *not* to build depending in the USE flags.
157 + if ! use readline ; then
158 + modules="${modules},readline"
159 + fi
160 + if ! use berkdb ; then
161 + modules="${modules},dbm"
162 + fi
163 + if ! use gdbm ; then
164 + modules="${modules},gdbm"
165 + fi
166 + if ! use ssl ; then
167 + modules="${modules},openssl"
168 + fi
169 + if ! use ncurses ; then
170 + modules="${modules},curses"
171 + fi
172 +
173 + # Provide an empty LIBPATHENV because we disable rpath but we do not
174 + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
175 + # #564272
176 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
177 + --program-suffix=${MY_SUFFIX} \
178 + --with-soname=ruby${MY_SUFFIX} \
179 + --docdir=${EPREFIX}/usr/share/doc/${P} \
180 + --enable-shared \
181 + --enable-pthread \
182 + --disable-rpath \
183 + --with-out-ext="${modules}" \
184 + $(use_enable socks5 socks) \
185 + $(use_enable doc install-doc) \
186 + --enable-ipv6 \
187 + $(use_enable debug) \
188 + ${myconf} \
189 + --enable-option-checking=no \
190 + || die "econf failed"
191 +}
192 +
193 +src_compile() {
194 + emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
195 +}
196 +
197 +src_test() {
198 + emake -j1 V=1 test || die "make test failed"
199 +
200 + elog "Ruby's make test has been run. Ruby also ships with a make check"
201 + elog "that cannot be run until after ruby has been installed."
202 + elog
203 + if use rubytests; then
204 + elog "You have enabled rubytests, so they will be installed to"
205 + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
206 + elog "than root, and you must place them into a writeable directory."
207 + elog "Then call: "
208 + elog
209 + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
210 + else
211 + elog "Enable the rubytests USE flag to install the make check tests"
212 + fi
213 +}
214 +
215 +src_install() {
216 + # Remove the remaining bundled gems. We do this late in the process
217 + # since they are used during the build to e.g. create the
218 + # documentation.
219 + rm -rf ext/json || die
220 +
221 + # Ruby is involved in the install process, we don't want interference here.
222 + unset RUBYOPT
223 +
224 + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
225 +
226 + LD_LIBRARY_PATH="${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
227 + RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
228 + for d in $(find "${S}/ext" -type d) ; do
229 + RUBYLIB="${RUBYLIB}:$d"
230 + done
231 + export LD_LIBRARY_PATH RUBYLIB
232 +
233 + emake V=1 DESTDIR="${D}" install || die "make install failed"
234 +
235 + # Remove installed rubygems copy
236 + rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
237 + rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
238 + rm -r "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
239 +
240 + if use doc; then
241 + make DESTDIR="${D}" install-doc || die "make install-doc failed"
242 + fi
243 +
244 + if use examples; then
245 + insinto /usr/share/doc/${PF}
246 + doins -r sample
247 + fi
248 +
249 + dodoc ChangeLog NEWS doc/NEWS* README* || die
250 +
251 + if use rubytests; then
252 + pushd test
253 + insinto /usr/share/${PN}-${SLOT}/test
254 + doins -r .
255 + popd
256 + fi
257 +}
258 +
259 +pkg_postinst() {
260 + if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
261 + eselect ruby set ruby${MY_SUFFIX}
262 + fi
263 +
264 + elog
265 + elog "To switch between available Ruby profiles, execute as root:"
266 + elog "\teselect ruby set ruby(19|20|...)"
267 + elog
268 +}
269 +
270 +pkg_postrm() {
271 + eselect ruby cleanup
272 +}
273
274 diff --git a/dev-lang/ruby/ruby-2.2.3-r2.ebuild b/dev-lang/ruby/ruby-2.2.3-r2.ebuild
275 new file mode 100644
276 index 0000000..16c694b
277 --- /dev/null
278 +++ b/dev-lang/ruby/ruby-2.2.3-r2.ebuild
279 @@ -0,0 +1,244 @@
280 +# Copyright 1999-2015 Gentoo Foundation
281 +# Distributed under the terms of the GNU General Public License v2
282 +# $Id$
283 +
284 +EAPI=5
285 +
286 +#PATCHSET=1
287 +
288 +inherit autotools eutils flag-o-matic multilib versionator
289 +
290 +MY_P="${PN}-$(get_version_component_range 1-3)"
291 +S=${WORKDIR}/${MY_P}
292 +
293 +SLOT=$(get_version_component_range 1-2)
294 +MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
295 +RUBYVERSION=2.2.0
296 +
297 +if [[ -n ${PATCHSET} ]]; then
298 + if [[ ${PVR} == ${PV} ]]; then
299 + PATCHSET="${PV}-r0.${PATCHSET}"
300 + else
301 + PATCHSET="${PVR}.${PATCHSET}"
302 + fi
303 +else
304 + PATCHSET="${PVR}"
305 +fi
306 +
307 +DESCRIPTION="An object-oriented scripting language"
308 +HOMEPAGE="http://www.ruby-lang.org/"
309 +SRC_URI="mirror://ruby/2.2/${MY_P}.tar.xz
310 + https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
311 +
312 +LICENSE="|| ( Ruby-BSD BSD-2 )"
313 +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
314 +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl xemacs ncurses +readline"
315 +
316 +RDEPEND="
317 + berkdb? ( sys-libs/db:= )
318 + gdbm? ( sys-libs/gdbm )
319 + jemalloc? ( dev-libs/jemalloc )
320 + ssl? (
321 + !libressl? ( dev-libs/openssl:0 )
322 + libressl? ( dev-libs/libressl )
323 + )
324 + socks5? ( >=net-proxy/dante-1.1.13 )
325 + ncurses? ( sys-libs/ncurses:0= )
326 + readline? ( sys-libs/readline:0 )
327 + dev-libs/libyaml
328 + virtual/libffi
329 + sys-libs/zlib
330 + >=app-eselect/eselect-ruby-20141227
331 + !<dev-ruby/rdoc-3.9.4
332 + !<dev-ruby/rubygems-1.8.10-r1"
333 +
334 +DEPEND="${RDEPEND}"
335 +
336 +BUNDLED_GEMS="
337 + >=dev-ruby/minitest-5.4.3[ruby_targets_ruby22]
338 + >=dev-ruby/power_assert-0.2.2[ruby_targets_ruby22]
339 + >=dev-ruby/test-unit-3.0.8[ruby_targets_ruby22]
340 +"
341 +
342 +PDEPEND="
343 + ${BUNDLED_GEMS}
344 + virtual/rubygems[ruby_targets_ruby22]
345 + >=dev-ruby/json-1.8.1[ruby_targets_ruby22]
346 + >=dev-ruby/rake-0.9.6[ruby_targets_ruby22]
347 + rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby22] )
348 + xemacs? ( app-xemacs/ruby-modes )"
349 +
350 +src_prepare() {
351 + EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
352 + epatch "${WORKDIR}/patches"
353 +
354 + # We can no longer unbundle all of rake because rubygems now depends
355 + # on this. We leave the actual rake code around to bootstrap
356 + # rubygems, but remove the bits that would cause a file collision.
357 + einfo "Unbundling gems..."
358 + cd "$S"
359 + rm -r \
360 + {bin,lib}/rake lib/rake.rb man/rake.1 \
361 + bin/gem || die "removal failed"
362 + # Remove bundled gems that we will install via PDEPEND, bug
363 + # 539700. Use explicit version numbers to ensure rm fails when they
364 + # change so we can update dependencies accordingly.
365 + rm gems/{minitest-5.4.3,power_assert-0.2.2,test-unit-3.0.8}.gem || die
366 +
367 + # Fix a hardcoded lib path in configure script
368 + sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
369 + configure.in || die "sed failed"
370 +
371 + eautoreconf
372 +}
373 +
374 +src_configure() {
375 + local myconf=
376 +
377 + # The Tk module can no longer be built because the module code is no
378 + # longer compatible with newer stable versions.
379 + # https://bugs.gentoo.org/show_bug.cgi?id=500894
380 + local modules="tk"
381 +
382 + # -fomit-frame-pointer makes ruby segfault, see bug #150413.
383 + filter-flags -fomit-frame-pointer
384 + # In many places aliasing rules are broken; play it safe
385 + # as it's risky with newer compilers to leave it as it is.
386 + append-flags -fno-strict-aliasing
387 + # SuperH needs this
388 + use sh && append-flags -mieee
389 +
390 + # Socks support via dante
391 + if use socks5 ; then
392 + # Socks support can't be disabled as long as SOCKS_SERVER is
393 + # set and socks library is present, so need to unset
394 + # SOCKS_SERVER in that case.
395 + unset SOCKS_SERVER
396 + fi
397 +
398 + # Increase GC_MALLOC_LIMIT if set (default is 8000000)
399 + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
400 + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
401 + fi
402 +
403 + # ipv6 hack, bug 168939. Needs --enable-ipv6.
404 + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
405 +
406 + # Determine which modules *not* to build depending in the USE flags.
407 + if ! use readline ; then
408 + modules="${modules},readline"
409 + fi
410 + if ! use berkdb ; then
411 + modules="${modules},dbm"
412 + fi
413 + if ! use gdbm ; then
414 + modules="${modules},gdbm"
415 + fi
416 + if ! use ssl ; then
417 + modules="${modules},openssl"
418 + fi
419 + if ! use ncurses ; then
420 + modules="${modules},curses"
421 + fi
422 +
423 + # Provide an empty LIBPATHENV because we disable rpath but we do not
424 + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
425 + # #564272
426 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
427 + --program-suffix=${MY_SUFFIX} \
428 + --with-soname=ruby${MY_SUFFIX} \
429 + --docdir=${EPREFIX}/usr/share/doc/${P} \
430 + --enable-shared \
431 + --enable-pthread \
432 + --disable-rpath \
433 + --with-out-ext="${modules}" \
434 + $(use_enable jemalloc jemalloc) \
435 + $(use_enable socks5 socks) \
436 + $(use_enable doc install-doc) \
437 + --enable-ipv6 \
438 + $(use_enable debug) \
439 + ${myconf} \
440 + --enable-option-checking=no \
441 + || die "econf failed"
442 +}
443 +
444 +src_compile() {
445 + emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
446 +}
447 +
448 +src_test() {
449 + emake -j1 V=1 test || die "make test failed"
450 +
451 + elog "Ruby's make test has been run. Ruby also ships with a make check"
452 + elog "that cannot be run until after ruby has been installed."
453 + elog
454 + if use rubytests; then
455 + elog "You have enabled rubytests, so they will be installed to"
456 + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
457 + elog "than root, and you must place them into a writeable directory."
458 + elog "Then call: "
459 + elog
460 + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
461 + else
462 + elog "Enable the rubytests USE flag to install the make check tests"
463 + fi
464 +}
465 +
466 +src_install() {
467 + # Remove the remaining bundled gems. We do this late in the process
468 + # since they are used during the build to e.g. create the
469 + # documentation.
470 + rm -rf ext/json || die
471 +
472 + # Ruby is involved in the install process, we don't want interference here.
473 + unset RUBYOPT
474 +
475 + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
476 +
477 + LD_LIBRARY_PATH="${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
478 + RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
479 + for d in $(find "${S}/ext" -type d) ; do
480 + RUBYLIB="${RUBYLIB}:$d"
481 + done
482 + export LD_LIBRARY_PATH RUBYLIB
483 +
484 + emake V=1 DESTDIR="${D}" install || die "make install failed"
485 +
486 + # Remove installed rubygems copy
487 + rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
488 + rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
489 + rm -r "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
490 +
491 + if use doc; then
492 + make DESTDIR="${D}" install-doc || die "make install-doc failed"
493 + fi
494 +
495 + if use examples; then
496 + insinto /usr/share/doc/${PF}
497 + doins -r sample
498 + fi
499 +
500 + dodoc ChangeLog NEWS doc/NEWS* README* || die
501 +
502 + if use rubytests; then
503 + pushd test
504 + insinto /usr/share/${PN}-${SLOT}/test
505 + doins -r .
506 + popd
507 + fi
508 +}
509 +
510 +pkg_postinst() {
511 + if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
512 + eselect ruby set ruby${MY_SUFFIX}
513 + fi
514 +
515 + elog
516 + elog "To switch between available Ruby profiles, execute as root:"
517 + elog "\teselect ruby set ruby(19|20|...)"
518 + elog
519 +}
520 +
521 +pkg_postrm() {
522 + eselect ruby cleanup
523 +}