summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/ruby')
-rw-r--r--dev-lang/ruby/Manifest6
-rw-r--r--dev-lang/ruby/ruby-2.0.0_p647.ebuild230
-rw-r--r--dev-lang/ruby/ruby-2.1.7.ebuild227
-rw-r--r--dev-lang/ruby/ruby-2.2.3.ebuild238
4 files changed, 701 insertions, 0 deletions
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index 118d600b6e01..7b76b8c01c84 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -1,8 +1,14 @@
DIST ruby-1.9.3-p551.tar.bz2 10049332 SHA256 b0c5e37e3431d58613a160504b39542ec687d473de1d4da983dabcf3c5de771e SHA512 5ea40f8c40cf116030ffdedbe436c1fdbf9a50b7bb44bc890845c9c2a885c34da711bc1a9e9694788c2f4710f7e6e0adc4410aec1ab18a25a27168f25ac3d68c WHIRLPOOL a4de6b7300e1f1cb22b01b1fbe0a73928baf6e5b1d083e8eb239e7696703e13774fdcb52bbb7f4253ea75b597663c43a8fbea2df7b77ed95f3fd8b2512ff1f1e
DIST ruby-2.0.0-p645.tar.xz 8295192 SHA256 875be4f57bdbb2d2be0d64bfd8fc5022f004d55261ead8fd0cdc2e9e415e9f7b SHA512 440f8ea50f51c53f90e42a8dfd7cd41f806b290d5c12c09f84d9159ab9c95e19b036cd8a5dc788844da501b9fcd1fa8ad8352ef7417998debc1b43a61a4ea4dc WHIRLPOOL 6201a39976f793dd3702ba580aafb881ba6e9f5cbc9d544bdddf508ca86dc14fc2970451a386ba495d16f2f68724197ef089ba02e7d1a9423870a0fa5c39cbc8
+DIST ruby-2.0.0-p647.tar.xz 8301008 SHA256 9f793880df1209ea4e5c10ee9d8ef79caa0e73ee769f745f1c191505255e2847 SHA512 38fd2ad631588a0e8adf9a7ae01cb5274eca4fd794c5ed7030e5fae9e53cd8920eaac9d388c73b844a154c7eb56fa6fed8e2ee5df5617efd624b6a568ea4953b WHIRLPOOL c8ec19ed900e6578f1f6e08d1e2a5c015cfa6e81379fb0437a1167ffb8bc56561d02b4b5b35a674039f7adcd2c43b222b89e139cb0ea702e8bfec886872c8e6a
DIST ruby-2.1.6.tar.xz 9381724 SHA256 137b27bffefd795fd97c288fff539d135f42320f8a1afddde99a34e1fbe7314e SHA512 0cf91fe7ae53a3f9c034fa5996eeed91889b942b8e595e84be4e244adc30d79aa3f540cc6f657982715069dfb14af20786557689d9a8fe4bbfc66280e84dd6cf WHIRLPOOL 1881ba54cf751e558f3a321041ed987c4433f64e786078de35227126afc801fabdcff74cf7d882fd07a70988c8a28c95269fd0ed4ccaebb3627931320c697e60
+DIST ruby-2.1.7.tar.xz 9371208 SHA256 225c067d9820fe52fcffbfb91d5b5243708a0b666b9929bea466e9379eb40ad7 SHA512 a4f2a3a684517678442b4ad3bda50433634317c910e8c13c844dffe470532bae5fd8d72b3f83c9a36865f303fe0464703e30854b3e55a558a758252b5e594406 WHIRLPOOL 54fae59b754aebbf1736720e042574ed4a0b4f7c1518742f8215bb396bb7416ee7b50df7d27167337e10eef518f1d488a48d064bfcbfac0065aa8313296fe263
DIST ruby-2.2.2.tar.xz 10463044 SHA256 f033b5d08ab57083e48c1d81bcd7399967578c370b664da90e12a32891424462 SHA512 bd72d0a4c017e2527659f64ef2781bbe8bd540a2302eaa60234a12282fd53c359e04205c56385402c67e81bb9dab3b88de53de82e12bb13e3386c26301043b64 WHIRLPOOL ee9c3a664ac1d67bd9ff4ed8fcc7d4c8e9b6e2f5774c938f876223b22022b498932afc41990890a03b560c65ffe29a039761d18bbeeab46fe13cbfff515bc115
+DIST ruby-2.2.3.tar.xz 10453204 SHA256 c6ec90e9ed018e6d9a578fc93755d8565839908d5796809e1aecd1798c7ea8a7 SHA512 e3ce3333e8d59f4f3bfc84cf9bbbc6f74272470e12913d299fd1d41fc166dee21921eed1789591f50c3f3b6e5fd38fd1b99855c16aff28bdc4ae8fcc680c71bd WHIRLPOOL 3fae4fc3112f24004f0f043d29b2e624e559fa3d53e6b0479af03df910d210aaeb8274c294dfe1ef0602f63790b4cdc31147d5fd92707e38ea29f01fd07e8839
DIST ruby-patches-1.9.3_p551-r1.tar.bz2 3685 SHA256 362d94b77c3408d200c42855868ebb5ddbee287d66bbed8e269255f9cb63418a SHA512 646a1979c1b879ef46cb195204bdcea83215f6407331f92d8caed910e03d1f426bfb203629f4bea307740742757877edae22bf9978b55cbda03921a0c25b8409 WHIRLPOOL 3001b1c6189a882a45125d04b6264e22e0bf2b773c249bf00c2cfc98dec3392ae422913d278aae289767db0aaf8782e1a7dd44e94965aa02893833d5737ad494
DIST ruby-patches-2.0.0_p645.tar.bz2 2947 SHA256 dc173fe94af215fd2c1823f46140e4f11892dec59ce55b10ffad26b622bb6e4e SHA512 423a4fddfc8d7fd4f5b041989da343bc96ce0c3f22a448cab8cec47d4c458f4deeb83b167a0a3ae71d3be57df9b41151d1cafadd191bd3d3e9b08b32732e36cd WHIRLPOOL 9c728e95cf01abdb48afc2ff008dc73d341096b253c664297b6780b32821c1ec406c388ce5860b5dd2ce2de862fb80b2ae45d03750045aaf13c371743f97c92e
+DIST ruby-patches-2.0.0_p647.tar.bz2 2947 SHA256 dc173fe94af215fd2c1823f46140e4f11892dec59ce55b10ffad26b622bb6e4e SHA512 423a4fddfc8d7fd4f5b041989da343bc96ce0c3f22a448cab8cec47d4c458f4deeb83b167a0a3ae71d3be57df9b41151d1cafadd191bd3d3e9b08b32732e36cd WHIRLPOOL 9c728e95cf01abdb48afc2ff008dc73d341096b253c664297b6780b32821c1ec406c388ce5860b5dd2ce2de862fb80b2ae45d03750045aaf13c371743f97c92e
DIST ruby-patches-2.1.6-r1.tar.bz2 2348 SHA256 2c158373217a719f2961c1f2cf2f3494eb43c413dc41ba7f9c1d88c60baca7f7 SHA512 01367d463a3aa72261742ae468d96ca1fb06a2d6b2a7a0cc416e449a7ae602d4478fb2394390636725424f252fa95c5db7d2c8116dc0b1e4477d8d641961980f WHIRLPOOL b39e8b9bdd8d05958b3b4c5884bfdd65c99b9aee2470a48ca748cbf336948bf0bb9f834ce3fec5e9365abaf385de760012f67dec6db257d7cbeff04ce0c5c7fb
+DIST ruby-patches-2.1.7.tar.bz2 1931 SHA256 7e02c1b6a6352693bfd5828c9d1a7633a52baa57d8770df182ed0d8b450a3341 SHA512 85928207db4f76e58925e50d39d73db2d521674385ce3232828377e7d7bb4252aafb9f93d6045d4c159bf094b472af61ef9307203db313bf28918fe35e0f3a21 WHIRLPOOL 17a698b0a09be15f444ea34b33e9aa1d029fbd572c565072a92480bf7b6b21f1b6b88b0da3183a486bae30e7e65f3172cd72b7336be1dc5974b62bd8e2b9ef7a
DIST ruby-patches-2.2.2-r1.tar.bz2 3066 SHA256 65342c7cd5146f0d5025932d31e2ed40e1247355d68356e17a06b0ff728fbef1 SHA512 1c578b868db179bca6dd7800528ac23076b1f44519d93b92fafd724d8e5a158512b05cb3d5f7a4f5ada156692978f98cab7dd5b4282701e57c33d50bcda977de WHIRLPOOL 241622b25acdc8b2a7cb912bac2f6e29a4331798ba67507821b3fb295791d7bea8b7933540f2cd47cc7e8477df14be478286d018b7afe9ae121cd8c49c58dc83
+DIST ruby-patches-2.2.3.tar.bz2 2263 SHA256 a08bfaf193adf8e92e7937c9e8db3ec4a880e80dd9c99a5621a00a9233d4d2cd SHA512 dafbb40254d9703a7ed66314f6d9d0dd4c88485a5cef28ff1e3c7020c28cfaac1561ecfb72a465811b59213dbaf9aece6b52240ae895e47f5be63d7f88bc5543 WHIRLPOOL 54b91871b991d38cd4c573884389aaa4ee81afc14fd918e968f0b82df95264930d71199741be820c816998ca9134c496a028e13d00b93cae3c870981f28c2160
diff --git a/dev-lang/ruby/ruby-2.0.0_p647.ebuild b/dev-lang/ruby/ruby-2.0.0_p647.ebuild
new file mode 100644
index 000000000000..998cc33ee6f9
--- /dev/null
+++ b/dev-lang/ruby/ruby-2.0.0_p647.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+#PATCHSET=1
+
+inherit autotools eutils flag-o-matic multilib versionator
+
+RUBYPL=$(get_version_component_range 4)
+
+MY_P="${PN}-$(get_version_component_range 1-3)-${RUBYPL:-0}"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(get_version_component_range 1-2)
+MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
+RUBYVERSION=2.0.0
+
+if [[ -n ${PATCHSET} ]]; then
+ if [[ ${PVR} == ${PV} ]]; then
+ PATCHSET="${PV}-r0.${PATCHSET}"
+ else
+ PATCHSET="${PVR}.${PATCHSET}"
+ fi
+else
+ PATCHSET="${PVR}"
+fi
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="http://www.ruby-lang.org/"
+SRC_URI="mirror://ruby/2.0/${MY_P}.tar.xz
+ http://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="berkdb debug doc examples gdbm ipv6 +rdoc rubytests socks5 ssl xemacs ncurses +readline cpu_flags_x86_sse2"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm )
+ ssl? ( dev-libs/openssl:0 )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ ncurses? ( sys-libs/ncurses:5= )
+ readline? ( sys-libs/readline:0 )
+ dev-libs/libyaml
+ virtual/libffi
+ sys-libs/zlib
+ >=app-eselect/eselect-ruby-20100402
+ !<dev-ruby/rdoc-3.9.4
+ !<dev-ruby/rubygems-1.8.10-r1"
+
+DEPEND="${RDEPEND}"
+PDEPEND="
+ virtual/rubygems[ruby_targets_ruby20]
+ >=dev-ruby/json-1.7.7[ruby_targets_ruby20]
+ >=dev-ruby/rake-0.9.6[ruby_targets_ruby20]
+ rdoc? ( >=dev-ruby/rdoc-4.0.0[ruby_targets_ruby20] )
+ xemacs? ( app-xemacs/ruby-modes )"
+
+src_prepare() {
+ if use cpu_flags_x86_sse2 ; then
+ excluded_patches="012_no_forced_sse2.patch"
+ fi
+
+ EPATCH_EXCLUDE="${excluded_patches}" EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
+ epatch "${WORKDIR}/patches"
+
+ # We can no longer unbundle all of rake because rubygems now depends
+ # on this. We leave the actual rake code around to bootstrap
+ # rubygems, but remove the bits that would cause a file collision.
+ einfo "Unbundling gems..."
+ cd "$S"
+ rm -r \
+ {bin,lib}/rake lib/rake.rb man/rake.1 \
+ bin/gem || die "removal failed"
+
+ # Fix a hardcoded lib path in configure script
+ sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
+ configure.in || die "sed failed"
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=
+
+ # The Tk module can no longer be built because the module code is no
+ # longer compatible with newer stable versions.
+ # https://bugs.gentoo.org/show_bug.cgi?id=500894
+ local modules="tk"
+
+ # -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
+ # SuperH needs this
+ use sh && append-flags -mieee
+
+ # 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 readline ; then
+ modules="${modules},readline"
+ fi
+ 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 ncurses ; then
+ modules="${modules},curses"
+ fi
+
+ INSTALL="${EPREFIX}/usr/bin/install -c" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --docdir=${EPREFIX}/usr/share/doc/${P} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --with-out-ext="${modules}" \
+ $(use_enable socks5 socks) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable debug) \
+ ${myconf} \
+ --enable-option-checking=no \
+ || die "econf failed"
+}
+
+src_compile() {
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
+}
+
+src_test() {
+ emake -j1 V=1 test || die "make test failed"
+
+ 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="${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ RUBYLIB="${S}:${D}/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 || die "make install failed"
+
+ # Remove installed rubygems copy
+ rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -r "${D}/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
+ insinto /usr/share/doc/${PF}
+ doins -r sample
+ fi
+
+ dodoc ChangeLog NEWS doc/NEWS* README* || die
+
+ if use rubytests; then
+ pushd test
+ insinto /usr/share/${PN}-${SLOT}/test
+ doins -r .
+ popd
+ fi
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${ROOT}"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(19|20|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-2.1.7.ebuild b/dev-lang/ruby/ruby-2.1.7.ebuild
new file mode 100644
index 000000000000..5d2605b794eb
--- /dev/null
+++ b/dev-lang/ruby/ruby-2.1.7.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+#PATCHSET=1
+
+inherit autotools eutils flag-o-matic multilib versionator
+
+RUBYPL=$(get_version_component_range 4)
+
+MY_P="${PN}-$(get_version_component_range 1-3)"
+#MY_P="${PN}-$(get_version_component_range 1-3)-${RUBYPL:-0}"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(get_version_component_range 1-2)
+MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
+RUBYVERSION=2.1.0
+
+if [[ -n ${PATCHSET} ]]; then
+ if [[ ${PVR} == ${PV} ]]; then
+ PATCHSET="${PV}-r0.${PATCHSET}"
+ else
+ PATCHSET="${PVR}.${PATCHSET}"
+ fi
+else
+ PATCHSET="${PVR}"
+fi
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="http://www.ruby-lang.org/"
+SRC_URI="mirror://ruby/2.1/${MY_P}.tar.xz
+ http://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="berkdb debug doc examples gdbm ipv6 +rdoc rubytests socks5 ssl xemacs ncurses +readline"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm )
+ ssl? ( dev-libs/openssl:0 )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ ncurses? ( sys-libs/ncurses:5= )
+ readline? ( sys-libs/readline:0 )
+ dev-libs/libyaml
+ virtual/libffi
+ sys-libs/zlib
+ >=app-eselect/eselect-ruby-20131227
+ !<dev-ruby/rdoc-3.9.4
+ !<dev-ruby/rubygems-1.8.10-r1"
+
+DEPEND="${RDEPEND}"
+PDEPEND="
+ virtual/rubygems[ruby_targets_ruby21]
+ >=dev-ruby/json-1.8.1[ruby_targets_ruby21]
+ >=dev-ruby/rake-0.9.6[ruby_targets_ruby21]
+ rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby21] )
+ xemacs? ( app-xemacs/ruby-modes )"
+
+src_prepare() {
+ EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
+ epatch "${WORKDIR}/patches"
+
+ # We can no longer unbundle all of rake because rubygems now depends
+ # on this. We leave the actual rake code around to bootstrap
+ # rubygems, but remove the bits that would cause a file collision.
+ einfo "Unbundling gems..."
+ cd "$S"
+ rm -r \
+ {bin,lib}/rake lib/rake.rb man/rake.1 \
+ bin/gem || die "removal failed"
+
+ # Fix a hardcoded lib path in configure script
+ sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
+ configure.in || die "sed failed"
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=
+
+ # The Tk module can no longer be built because the module code is no
+ # longer compatible with newer stable versions.
+ # https://bugs.gentoo.org/show_bug.cgi?id=500894
+ local modules="tk"
+
+ # -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
+ # SuperH needs this
+ use sh && append-flags -mieee
+
+ # 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 readline ; then
+ modules="${modules},readline"
+ fi
+ 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 ncurses ; then
+ modules="${modules},curses"
+ fi
+
+ INSTALL="${EPREFIX}/usr/bin/install -c" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --docdir=${EPREFIX}/usr/share/doc/${P} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --with-out-ext="${modules}" \
+ $(use_enable socks5 socks) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable debug) \
+ ${myconf} \
+ --enable-option-checking=no \
+ || die "econf failed"
+}
+
+src_compile() {
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
+}
+
+src_test() {
+ emake -j1 V=1 test || die "make test failed"
+
+ 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="${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ RUBYLIB="${S}:${D}/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 || die "make install failed"
+
+ # Remove installed rubygems copy
+ rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -r "${D}/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
+ insinto /usr/share/doc/${PF}
+ doins -r sample
+ fi
+
+ dodoc ChangeLog NEWS doc/NEWS* README* || die
+
+ if use rubytests; then
+ pushd test
+ insinto /usr/share/${PN}-${SLOT}/test
+ doins -r .
+ popd
+ fi
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${ROOT}"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(19|20|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-2.2.3.ebuild b/dev-lang/ruby/ruby-2.2.3.ebuild
new file mode 100644
index 000000000000..7f0330c4dfb6
--- /dev/null
+++ b/dev-lang/ruby/ruby-2.2.3.ebuild
@@ -0,0 +1,238 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+#PATCHSET=1
+
+inherit autotools eutils flag-o-matic multilib versionator
+
+MY_P="${PN}-$(get_version_component_range 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(get_version_component_range 1-2)
+MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
+RUBYVERSION=2.2.0
+
+if [[ -n ${PATCHSET} ]]; then
+ if [[ ${PVR} == ${PV} ]]; then
+ PATCHSET="${PV}-r0.${PATCHSET}"
+ else
+ PATCHSET="${PVR}.${PATCHSET}"
+ fi
+else
+ PATCHSET="${PVR}"
+fi
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="http://www.ruby-lang.org/"
+SRC_URI="mirror://ruby/2.2/${MY_P}.tar.xz
+ http://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc +rdoc rubytests socks5 ssl xemacs ncurses +readline"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm )
+ jemalloc? ( dev-libs/jemalloc )
+ ssl? ( dev-libs/openssl:0 )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ ncurses? ( sys-libs/ncurses:5= )
+ readline? ( sys-libs/readline:0 )
+ dev-libs/libyaml
+ virtual/libffi
+ sys-libs/zlib
+ >=app-eselect/eselect-ruby-20141227
+ !<dev-ruby/rdoc-3.9.4
+ !<dev-ruby/rubygems-1.8.10-r1"
+
+DEPEND="${RDEPEND}"
+
+BUNDLED_GEMS="
+ >=dev-ruby/minitest-5.4.3[ruby_targets_ruby22]
+ >=dev-ruby/power_assert-0.2.2[ruby_targets_ruby22]
+ >=dev-ruby/test-unit-3.0.8[ruby_targets_ruby22]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby22]
+ >=dev-ruby/json-1.8.1[ruby_targets_ruby22]
+ >=dev-ruby/rake-0.9.6[ruby_targets_ruby22]
+ rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby22] )
+ xemacs? ( app-xemacs/ruby-modes )"
+
+src_prepare() {
+ EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
+ epatch "${WORKDIR}/patches"
+
+ # We can no longer unbundle all of rake because rubygems now depends
+ # on this. We leave the actual rake code around to bootstrap
+ # rubygems, but remove the bits that would cause a file collision.
+ einfo "Unbundling gems..."
+ cd "$S"
+ rm -r \
+ {bin,lib}/rake lib/rake.rb man/rake.1 \
+ bin/gem || die "removal failed"
+ # 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 gems/{minitest-5.4.3,power_assert-0.2.2,test-unit-3.0.8}.gem || die
+
+ # Fix a hardcoded lib path in configure script
+ sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
+ configure.in || die "sed failed"
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=
+
+ # The Tk module can no longer be built because the module code is no
+ # longer compatible with newer stable versions.
+ # https://bugs.gentoo.org/show_bug.cgi?id=500894
+ local modules="tk"
+
+ # -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
+ # SuperH needs this
+ use sh && append-flags -mieee
+
+ # 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 readline ; then
+ modules="${modules},readline"
+ fi
+ 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 ncurses ; then
+ modules="${modules},curses"
+ fi
+
+ INSTALL="${EPREFIX}/usr/bin/install -c" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --docdir=${EPREFIX}/usr/share/doc/${P} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --with-out-ext="${modules}" \
+ $(use_enable jemalloc jemalloc) \
+ $(use_enable socks5 socks) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable debug) \
+ ${myconf} \
+ --enable-option-checking=no \
+ || die "econf failed"
+}
+
+src_compile() {
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
+}
+
+src_test() {
+ emake -j1 V=1 test || die "make test failed"
+
+ 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="${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ RUBYLIB="${S}:${D}/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 || die "make install failed"
+
+ # Remove installed rubygems copy
+ rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -r "${D}/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
+ insinto /usr/share/doc/${PF}
+ doins -r sample
+ fi
+
+ dodoc ChangeLog NEWS doc/NEWS* README* || die
+
+ if use rubytests; then
+ pushd test
+ insinto /usr/share/${PN}-${SLOT}/test
+ doins -r .
+ popd
+ fi
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${ROOT}"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(19|20|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}