diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-03-04 13:38:05 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-03-04 13:38:05 +0000 |
commit | 65e4244e411c4f65f55f2aa91f39e228f4c0680b (patch) | |
tree | 8b41c53639e40128179128339b45b0ed05984142 /dev-lang | |
parent | 5ae7efc9abae6bb8f8fac438298427769a91f5ad (diff) |
gentoo auto-resync : 04:03:2023 - 13:38:04
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/Manifest.gz | bin | 19689 -> 19690 bytes | |||
-rw-r--r-- | dev-lang/cfortran/Manifest | 2 | ||||
-rw-r--r-- | dev-lang/cfortran/cfortran-20210827.ebuild | 4 | ||||
-rw-r--r-- | dev-lang/nprolog/Manifest | 2 | ||||
-rw-r--r-- | dev-lang/nprolog/nprolog-1.94.ebuild | 4 | ||||
-rw-r--r-- | dev-lang/ruby/Manifest | 4 | ||||
-rw-r--r-- | dev-lang/ruby/files/3.2/010-default-gem-location.patch | 11 | ||||
-rw-r--r-- | dev-lang/ruby/files/3.2/901-musl-stacksize.patch | 26 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-3.2.1.ebuild | 270 |
9 files changed, 317 insertions, 6 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex d13b0784547b..29a60e8ed519 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz diff --git a/dev-lang/cfortran/Manifest b/dev-lang/cfortran/Manifest index b81fc4ab5858..605580ba87a3 100644 --- a/dev-lang/cfortran/Manifest +++ b/dev-lang/cfortran/Manifest @@ -5,6 +5,6 @@ DIST cfortran_20210827.orig.tar.gz 94493 BLAKE2B 9ba0a22d1231702d04e484c21b56696 DIST cfortran_4.4-14.diff.gz 23084 BLAKE2B 8e760b3697869c12e94925c4781318fbe7640f0563a2464bf5d9f51a4afcb4bf9c281bab189542f2342d6dbc6f5524b4a48d9f844459d190e9182a96ebefbf9b SHA512 1e0b267efc17c2ba30ca1108d59ef87d1a401e6b88bea2c7045458f8cfad6ec9a05f6bf4a08c1d6cb314c790a4969a1f0fdf0c7b6abc28bae544928aad5b0218 DIST cfortran_4.4.orig.tar.gz 120119 BLAKE2B df4e0650e2718ed0c2009fb1b85330266308b0b584fcdc85e08cad0913bf063ab38824724b43a005a63a6e6bd5152b35115a68659487a992b96d0d38792e6d0a SHA512 969d0db566ecd7ed7945cac7f8ceea1cbd94ab427734ba83882acf97022c83b1417e32515d847fee89144137f58f7041cf5164fc397f3d7526f3aa958f8b038c EBUILD cfortran-20110621.ebuild 1559 BLAKE2B 81947a1b88493e41e745a1dca5eea75806b01e8a86befd1d57e05c7e2430d588bd16b68964c0182626b15f1f9d31fc4073a48338e8690ff2053285aeec93b8a4 SHA512 ac393c8d1ffc01ad86678e563d8249f40aa28ce951dcdefb6636302028819bdbbf257f7bebafc5e95026f6941801578abdd9a737d756d61aafde89f089d1b424 -EBUILD cfortran-20210827.ebuild 1669 BLAKE2B 3cc90c86786e1017886d6d1ac59dfe1d9e3b5c48085e271ed831019198ff87dc6ccd4ef383412bcd5d10ef84d5e3c1a107abb33320fb951e8711027314455617 SHA512 fddb209db372461810520333d910f94ea5bcd079955587c4a0b22e3e76493f083d6c7c6ff6d33d133fbbbcb3218b6b8923bf67a9ee73e199ab7bd2c990bde118 +EBUILD cfortran-20210827.ebuild 1666 BLAKE2B 9dfac6658b71780c00cf8a666ae9cdc66a808192cbcbed0ef162bf451bb55c7f7f6c6ba606351522480412b46e6ce205916876a8f271ddabf3932ff9c03a4109 SHA512 1dd742635ef9f2d53d6d25199e35a77faadef84819a5288de9fb6e355a781149873328435d34c8156a1a1d9f2c0948fb3fb482e6e52dc3568d91c7943c4144a6 EBUILD cfortran-4.4-r4.ebuild 1120 BLAKE2B 5ebfb10a8132ed0aed7dd5182f2adfc9451bf645256c33546e5e3669d71e23a099ef3bf9e4585ad4c5799aeb4ad1059011ca51b012a43f79adfabb72a01eba5f SHA512 d25efdd1033b1c431927108b1a0df7c9ec31897caa091dd30658b434ce9bff3f2e6f2f131cc762f58a92d03fd54441dddd7cc052fe0d46dd6c294671869fd22b MISC metadata.xml 591 BLAKE2B f28360bae3f043699eb9b95347d7c816db8cc5d15c8bfaa8a4b5eac7b69bcf653b4307fbd62e1d6cc935b1c7ead60915a8f78c142ff4cf48bd92f6ad0990b150 SHA512 bf38bcd48faab6b142525d95ad3257fa99dd4b65441004d1cd9503f1814e516c7526bbf4e0d595eada753ef1b9e628d6fdcff39b0c8d14e65b2bdb95ea091951 diff --git a/dev-lang/cfortran/cfortran-20210827.ebuild b/dev-lang/cfortran/cfortran-20210827.ebuild index 9639036d2826..b198977780f4 100644 --- a/dev-lang/cfortran/cfortran-20210827.ebuild +++ b/dev-lang/cfortran/cfortran-20210827.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -17,7 +17,7 @@ SRC_URI+=" mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.debian.tar.xz LICENSE="LGPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux" IUSE="examples test" RESTRICT="!test? ( test )" diff --git a/dev-lang/nprolog/Manifest b/dev-lang/nprolog/Manifest index 8011dad69027..099fb73fea0c 100644 --- a/dev-lang/nprolog/Manifest +++ b/dev-lang/nprolog/Manifest @@ -1,5 +1,5 @@ DIST nprolog-1.92.tar.gz 186417 BLAKE2B a71ae358d8d00bde69d435f88a5923045fc939ff8fb78cbd550e3ba47a92388b8d0fc2d03406932ea5245c000e96a1ee58dc94db71bc27241c3c55bfff4b6728 SHA512 784c766080dcee126667f5c6bf7e78cf1367031bafccb6ac01145961e56679b1a90a2cf2499676881473d4fcbe20a9e99f03a53d6958eeaa23999c3efa588110 DIST nprolog-1.94.tar.gz 128172 BLAKE2B b3a2de8e5e247bce55fc6eabbd06dddee1d42d8d993b38a2effb505647e5a4a60f89f85f14be4e469d81b5488b4494e0a45c2672b2ba00b8f06ae0545951d08e SHA512 7db39847ecfa91b65fad1e035ddb9267856726adc9741a76fdd088c8f678ba8e98eef3890283b543d345a9441dabada4038984e12709898c6887a186a19136c9 EBUILD nprolog-1.92.ebuild 641 BLAKE2B 75e91379662045c5f1a082d98a0749b0c3f7c3fa7bc28b406fdc8ad64c3492a494f18f719d80817cd3a8d95d4af39e7cbeec2f414353e6cb32eda3b969162e60 SHA512 3be76ac887a1b8a5bc8ab33d830f98c52bc859dcbaf77b78175688f8734aa332b1cdb42ca86065816f6df4728abf21d6e36c30bb7f0b3fdd087b10778aa963ea -EBUILD nprolog-1.94.ebuild 635 BLAKE2B 2b26d9bb6b84773c3d388a675672ddd9ee2333961c7524e7952211f7aebfa6016d39f74772b6059dbcdb79126fbc44c2a61dcc50b0f16e2a59b8444c2190bd37 SHA512 c54639378af267505c35b4a0bf1610ddd2f3bdf196d7e9406db8f198ca5a555382a2b57134e1e1e02973e0506cbef19a53f85dd69922638bd61b015780eaa6fe +EBUILD nprolog-1.94.ebuild 634 BLAKE2B 822935947e92f30d24d24df388dc6510d81d110a797308305a95192caf1ce0204228e392d5044b553dc1662df5ac263d59b06e06bc3d85d0111524feb29341be SHA512 7cf886165103e200e8acb05903df2cde5457bf0daaebe83c7098edc003cafa21ff285eff13bfd24eac6ffd142c334c5ef0abe18fe14e58752f1bfeb5bf9f760d MISC metadata.xml 657 BLAKE2B 9331358542d57958385bc1218b4a1c5d38185ab0822d0cc68e51bcc5f8b00645a523a1a4f60d30188efc3ed7cb934f0a6a964d27bf0915c5956c69774c734590 SHA512 972ae4d1f2179887f77d8805f2e5482c17767e38b078fa9d9ee65a2f43e0b56b76fccd0166f4c5121de9a7cead4faa7683bd8e9076c257ffb2d1deb673eb276e diff --git a/dev-lang/nprolog/nprolog-1.94.ebuild b/dev-lang/nprolog/nprolog-1.94.ebuild index b140b252bea6..1f92e4123250 100644 --- a/dev-lang/nprolog/nprolog-1.94.ebuild +++ b/dev-lang/nprolog/nprolog-1.94.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ SRC_URI="https://github.com/sasagawa888/nprolog/archive/v${PV}.tar.gz LICENSE="BSD-2" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 ~x86" DOCS=( README{,-ja}.md document ) diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest index 96a78cbe638f..1226227fca8d 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -15,10 +15,14 @@ AUX 3.1/001-socksocket-fix.patch 457 BLAKE2B cf3e15858481cdaa48be2cb3685bed663d9 AUX 3.1/010-default-gem-location.patch 715 BLAKE2B 1a3b0a3479210f6bafe89bfea4580ebcf44bb5c42b72a244dee9fa53371c095d6c8ff39feb58296518779b5841647ed89732bed33c542ad24d5b93ba97097cd6 SHA512 e0d0ebfc6de8dfb81cee309f0d1b7a9ccf64617ea16ad6d8d3ea715b29fb7b3bb6d962072503eee7125ffc1e5ba53035453e887935e681de3d35df279d7c0dc8 AUX 3.1/011-default-gem-location.patch 689 BLAKE2B 754bb18d8d028e763cc4e91e5a0a543beee807d0dd9d68e3bef52beafd2a28896372e20e5b9ee9fd6556323f7369f30a0c65d676e5de869bb81f978b6f7e655b SHA512 71e9ec7e0e6353cc4b973ed6dbe3c12c7784173705dc17a2e772f653aa592f2252749955f7957aa7526071eceb927711ef9055430ed3671025e35f57898ca754 AUX 3.1/901-musl-stacksize.patch 945 BLAKE2B 7187ee4c73fb4a9ec00b32a02a176863d88437abae60c20955f28baf939aa76daee7d8accfa5b35c8ae857c25b243d57d719e7542a20439b1eb5952b319fa383 SHA512 5db3e96891498aee8f97f0c5ffe0633c6554b8d8a4975fd73f838ebac1ceea248d18aa4262c2b865b7ca15e9d293d482f7323565ed6ae47ed632cb8a044976e6 +AUX 3.2/010-default-gem-location.patch 356 BLAKE2B f44459799fff80c7f14e5e7d674ee9ed22863cdb84838e0fad55a66f615fa91e3e4de30377c04a385927feea67c6046c837eb7a647fbe162685309ea3f9ea420 SHA512 894075663d409a117ad94abd63d6562c90b87a725ef56d02ad7c187532b99a56128be2f5f64d0e72763d1c14213707de84c920415107df875218489796bc4a5a +AUX 3.2/901-musl-stacksize.patch 945 BLAKE2B 7187ee4c73fb4a9ec00b32a02a176863d88437abae60c20955f28baf939aa76daee7d8accfa5b35c8ae857c25b243d57d719e7542a20439b1eb5952b319fa383 SHA512 5db3e96891498aee8f97f0c5ffe0633c6554b8d8a4975fd73f838ebac1ceea248d18aa4262c2b865b7ca15e9d293d482f7323565ed6ae47ed632cb8a044976e6 DIST ruby-2.7.7.tar.xz 12101804 BLAKE2B 35f53835259217e344bde7fa3e2fe18e24c3e56eed2ca6dffb7385f38def401e6115944189138b280df5bbb0f5ff2e98f88260165f6e1802c60bd24cc6366397 SHA512 a19be3f0dfce040fe79f439e606f179d6750d2cc6e7b64fd65933edd487f5995573f7d0730beec9d3edadf942f8e9216f01ab3fff189d6cbe9d46a9add3e2683 DIST ruby-3.0.5.tar.xz 15880196 BLAKE2B 581aa202f6b1b5c72bb18d486c4f74ec87a6c2dd38166c4841b75dba891aabd72c3889b158134b04763cddb22c0f60015f4d21c5130077053e1fcb13e28a8024 SHA512 1c69d18210a2156f7696c678a8d54bf05c4dc49a1401c1ecc5760b1c23fb6ac14053873a225564664d6a327cda274ce72f47d112a6ad8d378f978de4e507e9a0 DIST ruby-3.1.3.tar.xz 15300224 BLAKE2B f3ef9031c2902bf5d624dce0a4584724e7a9099fb8b33b86a99026c37f4b91f23ff35c23a3cd7715bf739e6c539cc3612b5a750d00cbacf8e4ebcc70bbc85f41 SHA512 4b0fd334ae56132ba98b8a69adad54bdcf7f7aeabd5eba5b0f0399a3868e2054f9026ca1b1cb2dbb197a9e9b0610b263481949c0623a62071546bc5adff8ca69 +DIST ruby-3.2.1.tar.xz 15094384 BLAKE2B 2dce2201c2c44910fdfe3e58013df9432e6b242baa9cb1f2c0ea3b010a18f9508d9c7802932cca0a05e6b35a2fcd17195a076f6c6741684959065878c31fc2bf SHA512 69caadab9be6b56905ea4fc92fa0e36704f9fa6a0e7e7f4c6bdb79e9cbe8dc57c524f96d9c18802d61aa1ca578fed2e9758692f9d701bf0dba938f0206b721b3 EBUILD ruby-2.7.7.ebuild 7919 BLAKE2B 1e6c1c39b7213fac6b657a059b9648e46bb3535e142335aba846ee323a39d4c1ec55dbab65e418670fe6207f33b8e0f1db72ceac56468acc27664aafa092de34 SHA512 7050b5d05734f0b588877c33b1b531d8d50d060234f12c29d5a209ab8dbd440bfc223f038002aac30837dc2f76d8774e18b661dbef53efb3ee8b0b4dc8e8fcb5 EBUILD ruby-3.0.5.ebuild 7766 BLAKE2B ac667961e1ffd320e538ba8faacc9777ca1d0b8d7c9ee2961bfa92280f67a8ab80f45a3e43008d89dd8424d12c061bdd870e616d5c614567bac74cbc8bd5c5e7 SHA512 5ddf1bdf0a4b5c5b1db85800dd2acac3658ab3717293f7a405d0b7a1531dde904da233193766e3f47dd5e1b6029931327d61803bdda3db2699057cf34a1cbf1c EBUILD ruby-3.1.3.ebuild 7518 BLAKE2B b2ed93e5681dad89f143af813c75e515d96c0c698f21a6a19a7ed959d5eb165352f6d87dc7a76395f9bbd43f8d17995c4f3511a37b8afa397a7b67f051a66d6e SHA512 b45cd6530aebf890663d1481fb0354363de0e7ca8a04b575d14e643b40b68eaf4d47d9c372165860ec49382d3ea9b6b078567c92b29042d75c69679e35615c0d +EBUILD ruby-3.2.1.ebuild 8476 BLAKE2B f35a5404a5ff8e9db176ea8101a2dc9db4e4b7668980558ef963177f01b981b1d3e9015a63cee8bc7b9dbbf07efcf6d78fe79a4a9b0124b49f91f96ad49ff2f3 SHA512 0fc79ee82cfc26ea5fffcb540475df889193d98edee577c2fd7eb0c289f3c39b2f40cfdc5f3676a62f7fffb121b405235b67b582936e14d89da5ac83ecfce0cd MISC metadata.xml 602 BLAKE2B a6e6786b21d135c4a952d48d7430a1ad545d1ae45687e83eae3164818a20b7322aac330a8b125247f1772411564a799451a3a94f5375986277dbaf824970992d SHA512 3af744c835dfeefe931af01c2b50e721ac2ba82f65ab06160aa4b63a5c2eb6543c0954902f9eee80e86cbcd727d496c2de9a9a8ebfd1cd0af9e995c6f6ab8cd8 diff --git a/dev-lang/ruby/files/3.2/010-default-gem-location.patch b/dev-lang/ruby/files/3.2/010-default-gem-location.patch new file mode 100644 index 000000000000..36009ad66f61 --- /dev/null +++ b/dev-lang/ruby/files/3.2/010-default-gem-location.patch @@ -0,0 +1,11 @@ +--- a/tool/rbinstall.rb 2022-11-13 08:12:27.373041649 +0100 ++++ b/tool/rbinstall.rb 2022-11-13 08:16:09.110406705 +0100 +@@ -994,7 +994,7 @@ + end + + install?(:ext, :comm, :gem, :'bundled-gems') do +- gem_dir = Gem.default_dir ++ gem_dir = ENV['GEM_DESTDIR'] + install_dir = with_destdir(gem_dir) + prepare "bundled gems", gem_dir + RbInstall.no_write do diff --git a/dev-lang/ruby/files/3.2/901-musl-stacksize.patch b/dev-lang/ruby/files/3.2/901-musl-stacksize.patch new file mode 100644 index 000000000000..e5fcfce2195e --- /dev/null +++ b/dev-lang/ruby/files/3.2/901-musl-stacksize.patch @@ -0,0 +1,26 @@ +musl has a conservative stacksize, as compared to glibc, so treat it +like other systems with such stacksize + +diff --git a/thread_pthread.c b/thread_pthread.c +index 951885ffa0..e2d662143b 100644 +--- a/thread_pthread.c ++++ b/thread_pthread.c +@@ -721,7 +721,7 @@ ruby_init_stack(volatile VALUE *addr + { + native_main_thread.id = pthread_self(); + +-#if MAINSTACKADDR_AVAILABLE ++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__)) + if (native_main_thread.stack_maxsize) return; + { + void* stackaddr; +@@ -1680,7 +1680,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr) + + #ifdef STACKADDR_AVAILABLE + if (get_stack(&base, &size) == 0) { +-# ifdef __APPLE__ ++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__)) + if (pthread_equal(th->thread_id, native_main_thread.id)) { + struct rlimit rlim; + if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) { + diff --git a/dev-lang/ruby/ruby-3.2.1.ebuild b/dev-lang/ruby/ruby-3.2.1.ebuild new file mode 100644 index 000000000000..9193389e5f80 --- /dev/null +++ b/dev-lang/ruby/ruby-3.2.1.ebuild @@ -0,0 +1,270 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +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 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc socks5 +ssl static-libs systemtap tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc:= ) + jit? ( >=virtual/rust-1.58.1 ) + ssl? ( + dev-libs/openssl:0= + ) + 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 + virtual/libcrypt:= + >=app-eselect/eselect-ruby-20221225 +" + +DEPEND="${RDEPEND}" + +BUNDLED_GEMS=" + >=dev-ruby/debug-1.7.1[ruby_targets_ruby32] + >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32] + >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32] + >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32] + >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32] + >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32] + >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32] + >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32] + >=dev-ruby/prime-0.1.2[ruby_targets_ruby32] + >=dev-ruby/rake-13.0.6[ruby_targets_ruby32] + >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32] + >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32] + >=dev-ruby/rss-0.2.9[ruby_targets_ruby32] + >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32] + >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32] +" + +PDEPEND=" + ${BUNDLED_GEMS} + virtual/rubygems[ruby_targets_ruby32] + >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32] + >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32] + >=dev-ruby/json-2.6.1[ruby_targets_ruby32] + rdoc? ( >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32] ) + xemacs? ( app-xemacs/ruby-modes )" + +src_prepare() { + eapply "${FILESDIR}"/"${SLOT}"/010*.patch + + if use elibc_musl ; then + eapply "${FILESDIR}"/3.1/901-musl-*.patch + fi + + einfo "Unbundling gems..." + cd "$S" + # Remove bundled gems that we will install via PDEPEND, bug + # 539700. + rm -fr gems/* || die + touch gems/bundled_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 + + # Remove tests that are known to fail or require a network connection + rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die + rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die + + # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. + rm -rf tool/test/webrick || die + + # Avoid test using the system ruby + sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die + + # Avoid testing against hard-coded blockdev devices that most likely are not available + sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die + + # Avoid tests that require gem downloads + sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die + sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die + + if use prefix ; then + # Fix hardcoded SHELL var in mkmf library + sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die + + if [[ ${CHOST} == *darwin* ]] ; then + # avoid symlink loop on Darwin (?!) + sed -i \ + -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ + configure.ac || die + + # make ar/libtool hack for Darwin work + sed -i \ + -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ + configure.ac || die + fi + fi + + eapply_user + + eautoreconf +} + +src_configure() { + local modules="win32,win32ole" 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} \ + --with-readline-dir="${EPREFIX}"/usr \ + --enable-shared \ + --enable-pthread \ + --disable-rpath \ + --with-out-ext="${modules}" \ + $(use_with jemalloc jemalloc) \ + $(use_enable jit jit-support) \ + $(use_enable jit yjit) \ + $(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() { + export LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" +} + +src_test() { + export LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + emake V=1 check +} + +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. + einfo "Removing default gems before installation" + 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}" + + if [[ ${CHOST} == *darwin* ]] ; then + DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" + export DYLD_LIBRARY_PATH + fi + + 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.md README* + dodoc -r doc +} + +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 +} |