diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-05-14 11:09:11 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-05-14 11:09:11 +0100 |
commit | deba8115d2c2af26df42966b91ef04ff4dd79cde (patch) | |
tree | 9a48f42594e1a9e6b2020d5535a784314434d7a7 /dev-lang/ruby | |
parent | 38423c67c8a23f6a1bc42038193182e2da3116eb (diff) |
gentoo resync : 14.05.2020
Diffstat (limited to 'dev-lang/ruby')
-rw-r--r-- | dev-lang/ruby/Manifest | 17 | ||||
-rw-r--r-- | dev-lang/ruby/metadata.xml | 17 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.4.10.ebuild | 2 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.5.8-r1.ebuild | 222 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.5.8.ebuild | 2 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.6.6-r1.ebuild | 2 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.6.6-r2.ebuild | 234 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.6.6.ebuild | 2 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.7.1-r1.ebuild | 2 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.7.1-r2.ebuild | 237 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-2.7.1.ebuild | 2 |
11 files changed, 712 insertions, 27 deletions
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest index 31650b5de957..8fd2d856d5e7 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -17,10 +17,13 @@ DIST ruby-2.4.10.tar.xz 10100664 BLAKE2B 7301f34b94bb6d88c0d049eed4220ddb290c877 DIST ruby-2.5.8.tar.xz 11298404 BLAKE2B 3256c0448e72b63c0bd89f89a27fa9c09c8feed54d42cd79899b7d5cfe9dbc29ca708d12c630b3f52ff85b0c6a4011ae7ff0483d64b2fd445700a72a91028035 SHA512 2886be764a454425c5beef2777c64a70ee0d048b07896b327633d904f5077fea4299526689f9e2ac4dcd2fc4811cf9a6c8ce75367ed35d29dfe1a54222872e0d DIST ruby-2.6.6.tar.xz 11567284 BLAKE2B 45e910dd9b128c46bff3003834c4fdcbbc2e2e4d3e44f298ff4356a285de2c375d6b6021a3aa28d89336b32a1655fa4a7c086d07f4a0f6bcd578a11dd4a894da SHA512 86caf93dbf61d03781767ab5375a7edf4761f13ba08ccfefe16c0a7550499237e7390c2f72a95d42670d4fe76b2401b4218936187c62ec1572799e9e04c50d62 DIST ruby-2.7.1.tar.xz 12003684 BLAKE2B 90a35c3e246cfe982a146be29a3d121d6e2c251ed96703dbc46b98c21e0e43e5445132e6119e584ae35f7193f063ff1b14822f947a4e07037c37fbba5e4038da SHA512 79f98b1ea98e0b10ec79da1883e8fc84d48ffe5c09ae945cbebde94365e35a589d919aac965f74d70ca7e21370ecee631ac5a8f9c4eac61d62f5aa629f27bf31 -EBUILD ruby-2.4.10.ebuild 6445 BLAKE2B 50e33957fe3894368da9d23aa28c1fe4230f053107372fba55d45a19d9933a1c67555353b66705207a00bd57aad46da501976e6c0ee0cf9ab441ad87cc571b10 SHA512 b0a9d8325fe49fb718d45240b31b97b21392c3aac13137276cd279f263a1cbe313237c598f8ceb748f0664afb62c898cf33a7d9a29d55e6cff67a5bfecee56b9 -EBUILD ruby-2.5.8.ebuild 6241 BLAKE2B 4837e144f5192b4878e15c69942687f2d9c155be85aa29247c270b0cf14b3d56b0c700affab27ab3b5f28835ec88f8ad7e030781645f1407dc978fa773193030 SHA512 702593e2fd389df453a08ad620d3151f2e1acfa7412f8832335602c58e228acaf9e013949d88920250fd6ef6d03ae8bb93382b59336a3559d7ed42c5281bd9cc -EBUILD ruby-2.6.6-r1.ebuild 6666 BLAKE2B 6a7f27dd9ed283990238379d619cdb32fcd8c50285c177e47ca9e9ce12de24a9c8dae9d934230ac825e82df8f7f290266cb2939587a8744c03cbfb2beb8c4530 SHA512 7ff00dda01c1e948c0508bdbb9e6f50146781b4b56c4bfc13fa2a3ba24d8cbeeaf1c63dbf8b0b760ba97d675777df9f8956ea07201d106f43e7984726fd7aedc -EBUILD ruby-2.6.6.ebuild 6666 BLAKE2B 29ee003ceed3463775bd53e1413376122e5924765fbfe8fefcf5a984b36943ebf3ae628a22eeea43e3321b913fbf94f46c5390f1bdc3afe919c15afe982ff6ee SHA512 ea5c016b4f6ff13a4d8746734d01fd88440ee953f61cd533cd7f53f8ebec71d09a5db39e3e7c34f40430480fffb4b9f883983f3880178c2be4d44211db92b72a -EBUILD ruby-2.7.1-r1.ebuild 6829 BLAKE2B ea0c450a2a8888fe928837e24b45714410252bbd19f6d417e5d1369c0e896e750a3bf5eb60688ddc5e40be65585f27fc86b53e6883ee836c485b16ccb6ca23e0 SHA512 2a3db05c31b04bcd137938112ccca978e8714c55c99057b177e288eae87b611eb85f739581a26143dcede234b808b913a0288f5005172635ddf69420e7667577 -EBUILD ruby-2.7.1.ebuild 6829 BLAKE2B db48628ec9177b4693d7e6f1bbec93725117b0dc3a2d3c73340ea1b8ea851652403dafe03dc526dc112ba7e9e578044d48af4cfe1f273efd279b10f9b33be967 SHA512 d80080fb8258fdcd7645ea4a1f7a86f373b73fdf2021e976e8dc4dc9d84d85feae3e2f0b11e47cd17a77ca0242bc736dd5c8df18164563bc246f0a0c401b30c8 -MISC metadata.xml 445 BLAKE2B c3b5fae44894da3c78d024a376522aa2ef486cd9435351ddd7fa8b7c9afdc36969251a3b043d5890a368616f0736ae80e2a65a7342b327f30eb3497c5c02d28a SHA512 3818ac938dd6f8a05e18662f83af542fb29af00a476362592afa86bc537a74ddd0abe275784340539b2cd38f97ad1fce8b8c427c65d61c05a90b2118f2d16a91 +EBUILD ruby-2.4.10.ebuild 6393 BLAKE2B cc96fa8471ca9f866bde55bc368f3034389095b91daa2e56755ba02a63732d5fac03267112f544bfd1545931ee0c107a171c5d9dfe9cd5b297ad7b85cae5d25d SHA512 2a8148d0cc49889369d2d4c13b01869ceb49d025cf2c3d32d206a8d955e7fc45664892d17df1684d72ec6a163e5cb2e398b48e48fff0145adf71c810591cee40 +EBUILD ruby-2.5.8-r1.ebuild 6278 BLAKE2B c14b2405e58a01a7ca7b8af4b9d7d85dc4bbce732277f5393a6bc3bf6895a1dd3c69183f07d73b869a8f0ebcd3a07fdbd8da6d84f7c42072a60f3f69bde6d43c SHA512 f01e6516e7c5b0c7cd2d93dab455143fe90617192b981c79a1184f369720d42cee8c836f4064540447a09ad81d7739e40717d5d9552a9b11e0fc30d5a4ccb1a4 +EBUILD ruby-2.5.8.ebuild 6189 BLAKE2B aa04b9f393085468d3452bfcc55a45c721bcbe51c9602d6f44510d1f936369f1c741ade879d24c619b1722270a460ba20bc679f0714a98d310d8293bc84c3678 SHA512 156ac0da5b5e6d1240bcb42ad9a7ce455a17077a3bfd66610d5425216ff7436462e8e1362764c8614900376eef146b168e1dd4691cddd9f13ded5a4a30204c9e +EBUILD ruby-2.6.6-r1.ebuild 6614 BLAKE2B b4862b320dbb557bde3b3c6e86b0d178a3421587afdb848ecf5991d48525c20b0012cf88cd31cc5f130088127b6c6ea5dd121cb461c842cab183f3db02260356 SHA512 28f23b21a389e90a59738a4debb38ed0eb30e44eac1dd3df0037fdd37d6e1467ee61beaa5dd35460cd767b743ef48c6c31b243cb207ffdef3b94bb3ef6d6241e +EBUILD ruby-2.6.6-r2.ebuild 6694 BLAKE2B 49e926f87c5fe7cc8630bc761b63eee53d8bbca163d85198e84d33941117f7499698580710ef43c359ccc313f21ff896c2af320b7ed884333d3673b198801bc2 SHA512 af1894b0ce4875b715a3d3e17ca0541f868e4f3c49f6e09a66b88716ef8a58645b7fd32ce8f7325e8c4df99a27dfeb222967cb141f022cc0db5167a2ab8b6712 +EBUILD ruby-2.6.6.ebuild 6614 BLAKE2B af5f7d759a8676db12091569871bf5d39a430715b1bba11c6f8a7fafb210039d0966797c5b2974fb56e91e670b65710adb73dbcc64cf20f2473c1b02f84bd4ba SHA512 ca639f0b01b4618f876d6473aa4a6756a97d66b8194a623865f8f96758016e3d4109ca5905570bbd0c7ad680c66722fffa91fc6c506083fd8e0ea418e354ffe9 +EBUILD ruby-2.7.1-r1.ebuild 6777 BLAKE2B 6f2bf65a51e784c931b962b7e1430655dc194801a2fd0ea63eff7c6ff97dd624939ff5f37ed6a2fa9aaec27ab0cad94281d4172051cc5e298e4df3b15d6deb41 SHA512 733c164d8d1a70a68d313ec764807386df22cbefa04346e788b3701e7a242899cb086ae18096002c3dee0c3f6459752a3f751c032320a9b0ae947e0ab2d16cc4 +EBUILD ruby-2.7.1-r2.ebuild 6857 BLAKE2B e4ed8cbe491edcc6123435383ead38cbe968f388acd35a0b9aa4e2ce556b8ac15e4c8ae5057678c5ef3c9e552b2a285953e85792fef8d45b0242dc4a52a59bb1 SHA512 1ac8a7d752fd80d4b70833acb059f650b0e79df376a6c956dd1f47857ef418e8ba5a7ff3cdf893eec17dd7afef901b95dec25eab8b1bda0e7f907ca658933453 +EBUILD ruby-2.7.1.ebuild 6777 BLAKE2B 987421adeb916bed61606194e0c4eff5d26e4da8e7d973bcc4ee2983fdbfb38c030a256b5327d23af3e2fd44dd2287cbeb4fd7072d375a3723fc16b1e18a5430 SHA512 3b733ece468748c72245c0cd83f8cb603e279db33aefa224f52c3441143332939b35f773a1d2d4a2cca688a74875f32537209b15cffbb5b4d7c1f6618f8a4a6b +MISC metadata.xml 523 BLAKE2B 4ed08360a279c8d44fe87f677cdc24a76eda6d37c591186951e16321f464d4451d0d1299c4e1d996bffe15a8cca672d4c5c1bc5fb0aa6cda69b8eff90ec31df8 SHA512 f74c386a3d6314d630aff11c40314db40b7f9fb202910480b37aa65b7bac62d6e87fa7590b2a26aa1713bb65be486ed84138e1273eaf7c8b966d7414e6b55464 diff --git a/dev-lang/ruby/metadata.xml b/dev-lang/ruby/metadata.xml index ad18c95606a5..3a5415201c60 100644 --- a/dev-lang/ruby/metadata.xml +++ b/dev-lang/ruby/metadata.xml @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>ruby@gentoo.org</email> - <name>Gentoo Ruby Project</name> - </maintainer> - <use> - <flag name="rubytests">Install ruby tests that can only be run after ruby is installed</flag> - <flag name="rdoc">Install <pkg>dev-ruby/rdoc</pkg> after installing Ruby.</flag> - </use> + <maintainer type="project"> + <email>ruby@gentoo.org</email> + <name>Gentoo Ruby Project</name> + </maintainer> + <use> + <flag name="rubytests">Install ruby tests that can only be run after ruby is installed</flag> + <flag name="rdoc">Install <pkg>dev-ruby/rdoc</pkg> after installing Ruby.</flag> + <flag name="systemtap">Enable SystemTAP/DTrace tracing</flag> + </use> </pkgmetadata> diff --git a/dev-lang/ruby/ruby-2.4.10.ebuild b/dev-lang/ruby/ruby-2.4.10.ebuild index 0d4a2f3a9dcc..7ea93eb0344f 100644 --- a/dev-lang/ruby/ruby-2.4.10.ebuild +++ b/dev-lang/ruby/ruby-2.4.10.ebuild @@ -90,8 +90,6 @@ src_configure() { # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing - # SuperH needs this - use sh && append-flags -mieee # Socks support via dante if use socks5 ; then diff --git a/dev-lang/ruby/ruby-2.5.8-r1.ebuild b/dev-lang/ruby/ruby-2.5.8-r1.ebuild new file mode 100644 index 000000000000..ab80427fda65 --- /dev/null +++ b/dev-lang/ruby/ruby-2.5.8-r1.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib + +MY_P="${PN}-$(ver_cut 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) +RUBYVERSION=${SLOT}.0 + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="https://www.ruby-lang.org/" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl ) + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + systemtap? ( dev-util/systemtap ) + tk? ( + dev-lang/tcl:0=[threads] + dev-lang/tk:0=[threads] + ) + dev-libs/libyaml + dev-libs/libffi:= + sys-libs/readline:0= + sys-libs/zlib + >=app-eselect/eselect-ruby-20171225 +" + +DEPEND="${RDEPEND}" + +BUNDLED_GEMS=" + >=dev-ruby/did_you_mean-1.2.0:2.5[ruby_targets_ruby25] + >=dev-ruby/minitest-5.10.3[ruby_targets_ruby25] + >=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby25] + >=dev-ruby/power_assert-1.1.1[ruby_targets_ruby25] + >=dev-ruby/rake-12.3.0[ruby_targets_ruby25] + >=dev-ruby/test-unit-3.2.7[ruby_targets_ruby25] + >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby25] +" + +PDEPEND=" + ${BUNDLED_GEMS} + virtual/rubygems[ruby_targets_ruby25] + >=dev-ruby/json-2.0.2[ruby_targets_ruby25] + rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby25] ) + xemacs? ( app-xemacs/ruby-modes )" + +src_prepare() { + eapply "${FILESDIR}"/${SLOT}/{001,005,011}*.patch + + einfo "Unbundling gems..." + cd "$S" + # Remove bundled gems that we will install via PDEPEND, bug + # 539700. Use explicit version numbers to ensure rm fails when they + # change so we can update dependencies accordingly. + rm -f gems/{did_you_mean-1.2.0,minitest-5.10.3,net-telnet-0.1.1,power_assert-1.1.1,rake-12.3.0,test-unit-3.2.7,xmlrpc-0.3.0}.gem || die + + einfo "Removing bundled libraries..." + rm -fr ext/fiddle/libffi-3.2.1 || die + + eapply_user + + eautoreconf +} + +src_configure() { + local modules= myconf= + + # -fomit-frame-pointer makes ruby segfault, see bug #150413. + filter-flags -fomit-frame-pointer + # In many places aliasing rules are broken; play it safe + # as it's risky with newer compilers to leave it as it is. + append-flags -fno-strict-aliasing + + # Socks support via dante + if use socks5 ; then + # Socks support can't be disabled as long as SOCKS_SERVER is + # set and socks library is present, so need to unset + # SOCKS_SERVER in that case. + unset SOCKS_SERVER + fi + + # Increase GC_MALLOC_LIMIT if set (default is 8000000) + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" + fi + + # ipv6 hack, bug 168939. Needs --enable-ipv6. + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" + + # Determine which modules *not* to build depending in the USE flags. + if ! use berkdb ; then + modules="${modules},dbm" + fi + if ! use gdbm ; then + modules="${modules},gdbm" + fi + if ! use ssl ; then + modules="${modules},openssl" + fi + if ! use tk ; then + modules="${modules},tk" + fi + + # Provide an empty LIBPATHENV because we disable rpath but we do not + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget + # #564272 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ + --program-suffix=${MY_SUFFIX} \ + --with-soname=ruby${MY_SUFFIX} \ + --enable-shared \ + --enable-pthread \ + --disable-rpath \ + --with-out-ext="${modules}" \ + $(use_with jemalloc jemalloc) \ + $(use_enable socks5 socks) \ + $(use_enable systemtap dtrace) \ + $(use_enable doc install-doc) \ + --enable-ipv6 \ + $(use_enable static-libs static) \ + $(use_enable static-libs install-static-library) \ + $(use_with static-libs static-linked-ext) \ + $(use_enable debug) \ + ${myconf} \ + --enable-option-checking=no +} + +src_compile() { + emake V=1 EXTLDFLAGS="${LDFLAGS}" +} + +src_test() { + emake -j1 V=1 test + + elog "Ruby's make test has been run. Ruby also ships with a make check" + elog "that cannot be run until after ruby has been installed." + elog + if use rubytests; then + elog "You have enabled rubytests, so they will be installed to" + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" + elog "than root, and you must place them into a writeable directory." + elog "Then call: " + elog + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" + else + elog "Enable the rubytests USE flag to install the make check tests" + fi +} + +src_install() { + # Remove the remaining bundled gems. We do this late in the process + # since they are used during the build to e.g. create the + # documentation. + rm -rf ext/json || die + + # Ruby is involved in the install process, we don't want interference here. + unset RUBYOPT + + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) + + LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" + for d in $(find "${S}/ext" -type d) ; do + RUBYLIB="${RUBYLIB}:$d" + done + export LD_LIBRARY_PATH RUBYLIB + + emake V=1 DESTDIR="${D}" install + + # Remove installed rubygems and rdoc copy + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" + rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" + rm -rf "${ED}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" + + if use doc; then + make DESTDIR="${D}" install-doc || die "make install-doc failed" + fi + + if use examples; then + dodoc -r sample + fi + + dodoc ChangeLog NEWS doc/NEWS* README* + + if use rubytests; then + pushd test + insinto /usr/share/${PN}-${SLOT}/test + doins -r . + popd + fi +} + +pkg_postinst() { + if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then + eselect ruby set ruby${MY_SUFFIX} + fi + + elog + elog "To switch between available Ruby profiles, execute as root:" + elog "\teselect ruby set ruby(23|24|...)" + elog +} + +pkg_postrm() { + eselect ruby cleanup +} diff --git a/dev-lang/ruby/ruby-2.5.8.ebuild b/dev-lang/ruby/ruby-2.5.8.ebuild index f74498bf13c4..e722111acf8c 100644 --- a/dev-lang/ruby/ruby-2.5.8.ebuild +++ b/dev-lang/ruby/ruby-2.5.8.ebuild @@ -85,8 +85,6 @@ src_configure() { # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing - # SuperH needs this - use sh && append-flags -mieee # Socks support via dante if use socks5 ; then diff --git a/dev-lang/ruby/ruby-2.6.6-r1.ebuild b/dev-lang/ruby/ruby-2.6.6-r1.ebuild index 6a89a6a0f4b5..7a67e1a482c5 100644 --- a/dev-lang/ruby/ruby-2.6.6-r1.ebuild +++ b/dev-lang/ruby/ruby-2.6.6-r1.ebuild @@ -88,8 +88,6 @@ src_configure() { # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing - # SuperH needs this - use sh && append-flags -mieee # Socks support via dante if use socks5 ; then diff --git a/dev-lang/ruby/ruby-2.6.6-r2.ebuild b/dev-lang/ruby/ruby-2.6.6-r2.ebuild new file mode 100644 index 000000000000..68311ff8543d --- /dev/null +++ b/dev-lang/ruby/ruby-2.6.6-r2.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib + +MY_P="${PN}-$(ver_cut 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) +RUBYVERSION=${SLOT}.0 + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="https://www.ruby-lang.org/" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc ) + jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl ) + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + systemtap? ( dev-util/systemtap ) + tk? ( + dev-lang/tcl:0=[threads] + dev-lang/tk:0=[threads] + ) + dev-libs/libyaml + dev-libs/libffi:= + sys-libs/readline:0= + sys-libs/zlib + >=app-eselect/eselect-ruby-20181225 +" + +DEPEND="${RDEPEND}" + +BUNDLED_GEMS=" + >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26] + >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26] + >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26] + >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26] + >=dev-ruby/rake-12.3.2[ruby_targets_ruby26] + >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26] + >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26] +" + +PDEPEND=" + ${BUNDLED_GEMS} + virtual/rubygems[ruby_targets_ruby26] + >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26] + >=dev-ruby/json-2.0.2[ruby_targets_ruby26] + rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] ) + xemacs? ( app-xemacs/ruby-modes )" + +src_prepare() { + # 005 does not compile bigdecimal and is questionable because it + # compiles ruby in a non-standard way, may be dropped + eapply "${FILESDIR}"/2.6/010*.patch + + einfo "Unbundling gems..." + cd "$S" + # Remove bundled gems that we will install via PDEPEND, bug + # 539700. + rm -fr gems/* || die + + einfo "Removing bundled libraries..." + rm -fr ext/fiddle/libffi-3.2.1 || die + + eapply_user + + eautoreconf +} + +src_configure() { + local modules= myconf= + + # -fomit-frame-pointer makes ruby segfault, see bug #150413. + filter-flags -fomit-frame-pointer + # In many places aliasing rules are broken; play it safe + # as it's risky with newer compilers to leave it as it is. + append-flags -fno-strict-aliasing + + # Socks support via dante + if use socks5 ; then + # Socks support can't be disabled as long as SOCKS_SERVER is + # set and socks library is present, so need to unset + # SOCKS_SERVER in that case. + unset SOCKS_SERVER + fi + + # Increase GC_MALLOC_LIMIT if set (default is 8000000) + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" + fi + + # ipv6 hack, bug 168939. Needs --enable-ipv6. + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" + + # Determine which modules *not* to build depending in the USE flags. + if ! use berkdb ; then + modules="${modules},dbm" + fi + if ! use gdbm ; then + modules="${modules},gdbm" + fi + if ! use ssl ; then + modules="${modules},openssl" + fi + if ! use tk ; then + modules="${modules},tk" + fi + + # Provide an empty LIBPATHENV because we disable rpath but we do not + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget + # #564272 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ + --program-suffix=${MY_SUFFIX} \ + --with-soname=ruby${MY_SUFFIX} \ + --enable-shared \ + --enable-pthread \ + --disable-rpath \ + --with-out-ext="${modules}" \ + $(use_with jemalloc jemalloc) \ + $(use_enable jit jit-support ) \ + $(use_enable socks5 socks) \ + $(use_enable systemtap dtrace) \ + $(use_enable doc install-doc) \ + --enable-ipv6 \ + $(use_enable static-libs static) \ + $(use_enable static-libs install-static-library) \ + $(use_with static-libs static-linked-ext) \ + $(use_enable debug) \ + ${myconf} \ + --enable-option-checking=no + + # Makefile is broken because it lacks -ldl + rm -rf ext/-test-/popen_deadlock || die +} + +src_compile() { + emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" +} + +src_test() { + emake -j1 V=1 test + + elog "Ruby's make test has been run. Ruby also ships with a make check" + elog "that cannot be run until after ruby has been installed." + elog + if use rubytests; then + elog "You have enabled rubytests, so they will be installed to" + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" + elog "than root, and you must place them into a writeable directory." + elog "Then call: " + elog + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" + else + elog "Enable the rubytests USE flag to install the make check tests" + fi +} + +src_install() { + # Remove the remaining bundled gems. We do this late in the process + # since they are used during the build to e.g. create the + # documentation. + rm -rf ext/json || die + rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die + + # Ruby is involved in the install process, we don't want interference here. + unset RUBYOPT + + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) + + LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" + for d in $(find "${S}/ext" -type d) ; do + RUBYLIB="${RUBYLIB}:$d" + done + export LD_LIBRARY_PATH RUBYLIB + + # Create directory for the default gems + local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" + mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" + + emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install + + # Remove installed rubygems and rdoc copy + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" + rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" + rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" + + if use doc; then + emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc + fi + + if use examples; then + dodoc -r sample + fi + + dodoc ChangeLog NEWS doc/NEWS* README* + + if use rubytests; then + pushd test + insinto /usr/share/${PN}-${SLOT}/test + doins -r . + popd + fi +} + +pkg_postinst() { + if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then + eselect ruby set ruby${MY_SUFFIX} + fi + + elog + elog "To switch between available Ruby profiles, execute as root:" + elog "\teselect ruby set ruby(23|24|...)" + elog +} + +pkg_postrm() { + eselect ruby cleanup +} diff --git a/dev-lang/ruby/ruby-2.6.6.ebuild b/dev-lang/ruby/ruby-2.6.6.ebuild index 921aad60f88c..e7c55656994f 100644 --- a/dev-lang/ruby/ruby-2.6.6.ebuild +++ b/dev-lang/ruby/ruby-2.6.6.ebuild @@ -88,8 +88,6 @@ src_configure() { # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing - # SuperH needs this - use sh && append-flags -mieee # Socks support via dante if use socks5 ; then diff --git a/dev-lang/ruby/ruby-2.7.1-r1.ebuild b/dev-lang/ruby/ruby-2.7.1-r1.ebuild index 1c5b95241d8f..c1b75c35766f 100644 --- a/dev-lang/ruby/ruby-2.7.1-r1.ebuild +++ b/dev-lang/ruby/ruby-2.7.1-r1.ebuild @@ -91,8 +91,6 @@ src_configure() { # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing - # SuperH needs this - use sh && append-flags -mieee # Socks support via dante if use socks5 ; then diff --git a/dev-lang/ruby/ruby-2.7.1-r2.ebuild b/dev-lang/ruby/ruby-2.7.1-r2.ebuild new file mode 100644 index 000000000000..e4e8048e083a --- /dev/null +++ b/dev-lang/ruby/ruby-2.7.1-r2.ebuild @@ -0,0 +1,237 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib + +MY_P="${PN}-$(ver_cut 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) +RUBYVERSION=${SLOT}.0 + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="https://www.ruby-lang.org/" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc ) + jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl ) + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + systemtap? ( dev-util/systemtap ) + tk? ( + dev-lang/tcl:0=[threads] + dev-lang/tk:0=[threads] + ) + dev-libs/libyaml + dev-libs/libffi:= + sys-libs/readline:0= + sys-libs/zlib + >=app-eselect/eselect-ruby-20191222 +" + +DEPEND="${RDEPEND}" + +BUNDLED_GEMS=" + >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27] + >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27] + >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27] + >=dev-ruby/rake-13.0.1[ruby_targets_ruby27] + >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27] + >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27] +" + +PDEPEND=" + ${BUNDLED_GEMS} + virtual/rubygems[ruby_targets_ruby27] + >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27] + >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27] + >=dev-ruby/json-2.0.2[ruby_targets_ruby27] + rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] ) + xemacs? ( app-xemacs/ruby-modes )" + +src_prepare() { + # 005 does not compile bigdecimal and is questionable because it + # compiles ruby in a non-standard way, may be dropped + eapply "${FILESDIR}"/2.7/010*.patch + + einfo "Unbundling gems..." + cd "$S" + # Remove bundled gems that we will install via PDEPEND, bug + # 539700. + rm -fr gems/* || die + # Don't install CLI tools since they will clash with the gem + rm -f bin/{racc,racc2y,y2racc} || die + sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die + + einfo "Removing bundled libraries..." + rm -fr ext/fiddle/libffi-3.2.1 || die + + eapply_user + + eautoreconf +} + +src_configure() { + local modules= myconf= + + # -fomit-frame-pointer makes ruby segfault, see bug #150413. + filter-flags -fomit-frame-pointer + # In many places aliasing rules are broken; play it safe + # as it's risky with newer compilers to leave it as it is. + append-flags -fno-strict-aliasing + + # Socks support via dante + if use socks5 ; then + # Socks support can't be disabled as long as SOCKS_SERVER is + # set and socks library is present, so need to unset + # SOCKS_SERVER in that case. + unset SOCKS_SERVER + fi + + # Increase GC_MALLOC_LIMIT if set (default is 8000000) + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" + fi + + # ipv6 hack, bug 168939. Needs --enable-ipv6. + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" + + # Determine which modules *not* to build depending in the USE flags. + if ! use berkdb ; then + modules="${modules},dbm" + fi + if ! use gdbm ; then + modules="${modules},gdbm" + fi + if ! use ssl ; then + modules="${modules},openssl" + fi + if ! use tk ; then + modules="${modules},tk" + fi + + # Provide an empty LIBPATHENV because we disable rpath but we do not + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget + # #564272 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ + --program-suffix=${MY_SUFFIX} \ + --with-soname=ruby${MY_SUFFIX} \ + --enable-shared \ + --enable-pthread \ + --disable-rpath \ + --with-out-ext="${modules}" \ + $(use_with jemalloc jemalloc) \ + $(use_enable jit jit-support ) \ + $(use_enable socks5 socks) \ + $(use_enable systemtap dtrace) \ + $(use_enable doc install-doc) \ + --enable-ipv6 \ + $(use_enable static-libs static) \ + $(use_enable static-libs install-static-library) \ + $(use_with static-libs static-linked-ext) \ + $(use_enable debug) \ + ${myconf} \ + --enable-option-checking=no + + # Makefile is broken because it lacks -ldl + rm -rf ext/-test-/popen_deadlock || die +} + +src_compile() { + emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" +} + +src_test() { + emake -j1 V=1 test + + elog "Ruby's make test has been run. Ruby also ships with a make check" + elog "that cannot be run until after ruby has been installed." + elog + if use rubytests; then + elog "You have enabled rubytests, so they will be installed to" + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" + elog "than root, and you must place them into a writeable directory." + elog "Then call: " + elog + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" + else + elog "Enable the rubytests USE flag to install the make check tests" + fi +} + +src_install() { + # Remove the remaining bundled gems. We do this late in the process + # since they are used during the build to e.g. create the + # documentation. + rm -rf ext/json || die + rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die + + # Ruby is involved in the install process, we don't want interference here. + unset RUBYOPT + + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) + + LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" + for d in $(find "${S}/ext" -type d) ; do + RUBYLIB="${RUBYLIB}:$d" + done + export LD_LIBRARY_PATH RUBYLIB + + # Create directory for the default gems + local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" + mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" + + emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install + + # Remove installed rubygems and rdoc copy + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" + rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" + rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" + + if use doc; then + emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc + fi + + if use examples; then + dodoc -r sample + fi + + dodoc ChangeLog NEWS doc/NEWS* README* + + if use rubytests; then + pushd test + insinto /usr/share/${PN}-${SLOT}/test + doins -r . + popd + fi +} + +pkg_postinst() { + if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then + eselect ruby set ruby${MY_SUFFIX} + fi + + elog + elog "To switch between available Ruby profiles, execute as root:" + elog "\teselect ruby set ruby(23|24|...)" + elog +} + +pkg_postrm() { + eselect ruby cleanup +} diff --git a/dev-lang/ruby/ruby-2.7.1.ebuild b/dev-lang/ruby/ruby-2.7.1.ebuild index bd2dd1fd6f27..49b0ce2ee2e1 100644 --- a/dev-lang/ruby/ruby-2.7.1.ebuild +++ b/dev-lang/ruby/ruby-2.7.1.ebuild @@ -91,8 +91,6 @@ src_configure() { # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing - # SuperH needs this - use sh && append-flags -mieee # Socks support via dante if use socks5 ; then |