summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/jruby')
-rw-r--r--dev-java/jruby/ChangeLog10
-rw-r--r--dev-java/jruby/Manifest15
-rw-r--r--dev-java/jruby/files/jruby-1.6.8-bash-launcher.patch180
-rw-r--r--dev-java/jruby/jruby-1.6.8.ebuild198
4 files changed, 393 insertions, 10 deletions
diff --git a/dev-java/jruby/ChangeLog b/dev-java/jruby/ChangeLog
index 61cc0ca2a883..2e31707be657 100644
--- a/dev-java/jruby/ChangeLog
+++ b/dev-java/jruby/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-java/jruby
-# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-java/jruby/ChangeLog,v 1.87 2012/08/20 02:32:48 ottxor Exp $
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-java/jruby/ChangeLog,v 1.88 2013/06/03 19:25:43 graaff Exp $
+
+*jruby-1.6.8 (03 Jun 2013)
+
+ 03 Jun 2013; Hans de Graaff <graaff@gentoo.org> +jruby-1.6.8.ebuild,
+ +files/jruby-1.6.8-bash-launcher.patch:
+ Version bump.
20 Aug 2012; Christoph Junghans <ottxor@gentoo.org> jruby-1.6.7.2.ebuild:
added prefix keywords
diff --git a/dev-java/jruby/Manifest b/dev-java/jruby/Manifest
index 1d08df126d0b..0a9ae653f7a8 100644
--- a/dev-java/jruby/Manifest
+++ b/dev-java/jruby/Manifest
@@ -11,26 +11,25 @@ AUX jruby-1.4.0-bindir.patch 743 SHA256 27352afbc6a3898c50e3628911062c01090209d0
AUX jruby-1.4.0-system-jars-r2.patch 8332 SHA256 92f67d30f0be4ff029d3045e9446b5191da474fe0280269e4b1dc5b026e51556 SHA512 09dfc2a7f6584ee2c38334da3f321c01fc7ce0cf9397acf1bc7f7304e9a8ae3ce112b6fdaec4b57e0015571cc4cb3b6ed37bb3351d303b66261d9f950a226185 WHIRLPOOL 4a3aff44f6011bd5db2ec908dc14f281337f0f9155e57b6b74de7a2ff86ae5a73ee807be13293115a2bd7f08037f18cd62b9df5bbf8a27872c95579d18e0603b
AUX jruby-1.5.0-system-jars.patch 8113 SHA256 8c386f1d0e08b75a9f986e317d822c393231316d46eca0030ed67fe40dfbe3b5 SHA512 2847200766063fc256bcca1d7b86488fb2f8ddef9ae54004b91d45427e08cec10748acb1684be399fff99fb8b7192fdda509f68e0635e3cc9d34a551abc4bdeb WHIRLPOOL ba7318be5684bd597c2ec94b617809f311440a724bf41cc17d7ee46ce12cc130c7fc29686118006a942d9eaf7957b8af396861d4fcbbb514b8429db30193046e
AUX jruby-1.5.6-rubygems-1.8.x.patch 815 SHA256 cb003cceee89149074c422c53cfaf7b49341bff8f2faf7aa70173fc954ccddd2 SHA512 eca0008b7ad1f26dfb6558d163c11e6f4ca21923f70c787ba21de59a3a7f56f7e8c7cbe6fb6a572a01ec6df4d7b28ad3645101496081bc2920d40aa7af4ba5a1 WHIRLPOOL d6dc9b651fa4df8d71be92a1259e75eec60e4595945265399231e59443c183ed465b1de7004f264d867980ea421b08cf3ae5773c078be58d67c5bfb414976afd
+AUX jruby-1.6.8-bash-launcher.patch 5524 SHA256 cc58b2031adac2dbe849e39a1c910b40596c581b36405865a510777aceaab86f SHA512 aeb088f8ebef122515efe6a3e6e8f76ba87f145d7f67bb016d875b61f02a772fd3678cbf62d7e28a552ded7fe2c49e5f0f9746a4cb8edccb14c97491f053a4d1 WHIRLPOOL f44a6899e92b54fafab01cfdf69215038f42f8e8317bebbec5a65acd6f69b88740ab6b4a32d71ad9eb9ef4b442b0e17de3629192d36cbfa159968587685b27b9
AUX jruby-bash-launcher.patch 5505 SHA256 e0997049a7bb829c06178cbbab4c5281ec9dac2e1ee8f018613cf9ddc35aea3e SHA512 d03a4eb7cba95da9da93696ef76dc452606f199c91da703da4d23bf048eb495db5ce6c2bd079d33a7428955379217b642af8924acab231fc087caf46ba0a6cd8 WHIRLPOOL e6b0f6ff6ec7c2f0cd6436262f7d6f931535d8aaf87327ea7e0e432600c046a9ced97d5774c6be46888856dd9fba8458eff9d5197b2cffde39ed2b38ce4b75f7
AUX user-test-fixes.patch 5147 SHA256 f21469d41de9f9b5fb1682596f64899a71c92332db24bf27e8c50dbb1896a92e SHA512 7e5a0342d42abe8af6b7e98edc9e2d1d52dfe1dc3852704931d67ff29bc1e499ba88be19dedee57173571311b7549ded43f39f9edca559e3706ef5e99d0e3cbd WHIRLPOOL cc00358195398194db2c7b678147fee36f54be5c3edff5dcc348ba357ed46131e858166819f2e2fae93385ec8398fa9efb32d2a07ae40164ab243dfac55cc1d1
DIST jruby-src-1.4.1.tar.gz 12351374 SHA256 685e6ba0a4709e06fab1158ef6e4d2b246ab91a770fe8b5c1b642d55d22c725a SHA512 b72602387bd61b5dff36b384c345b015256ee79d16991b795914d22786c997b3baed503ea64e51a0ad4d7bafb3ca061acb3776556ddf6f8eb807fd2b0ec1d579 WHIRLPOOL f573010cf1a4ac4746e691e8631cf76729f06131ba88c5ff4d1f017f5903f17834ff0d183c65e4c5993b78d95283fa6d0e32547ba2d9b92a83bc4c917e86a4f1
DIST jruby-src-1.5.6.tar.gz 11166177 SHA256 c0217d6852a1fbf8edd55c1ec866af623e7aaf5f7b0be7abfaf1baf365655efa SHA512 61902a0da786dc238048c62eb1cfc816b2796c96f06ef0b9f2913cdb4dcea98d49ef60fed749c80aa2eff695359960a37ab28e42bb117c788680b890b2575f84 WHIRLPOOL 4a786611cb63ffa0603d302f475c989131dd85c1af62095b33b4295a5f4aa919c19eee125f7d2c6a4a6ab41b20bf4a942dfd2c4d3faee57a2d969130ad088584
DIST jruby-src-1.6.5.1.tar.gz 14284770 SHA256 1126f29b888b5427c2d416042a6c010849ab1d29ee9be97e592caf6859921be5 SHA512 f777e8c09e1f3e2be42a2043cf189496f826158769c0fd82a4bc6912fdbc63905905a4a32534adc156efe0c3cbb4e198077c61262fad0463b42515b8e2f96821 WHIRLPOOL 440c2a36c9862819956afbefc2e1c6af060526bf80fd31c5551cb4ab3d74f366eb95af19fd2e40208527d8d66382ea9dd80f16c165d48f3924cd8de5a850a82b
DIST jruby-src-1.6.7.2.tar.gz 14701511 SHA256 d3308652136a20883184860ea7b3373e8474f2b6df533518d02590e3f10dbca7 SHA512 a33b2dca4cb02f7bc4e9d5be4c428bf79af4347ed157c1e10da9f3c467ab9a5181a01e99a502678af816494e52703ec0421e29769994afa5e74df86fd5599635 WHIRLPOOL e67808c5bf486a2aa33ca13dc713a3d1cee85f0193eb7a2e44ca06b92aa347faeec09b3ca2475d660a390d50ccee515c93b6c34f64daf6cd24c172be4dc1b576
+DIST jruby-src-1.6.8.tar.gz 14709528 SHA256 7832053682bf791de7a5b062b5c8a3521ad5d6468141238551a9959649df973a SHA512 924114149bd7ce81b15c71e80cf53f4b50eb8d5220098e5ead2b447b96a6a405d93a219fb19fb7a0b9e4dc6798fd99b547b2352aabe4f84b5a694fe6760fd24d WHIRLPOOL 1f21b0899ac6c37b1e3e94aa7ef0927a720092f3a8687ba476cc70d8cd58228dbfdf1e2ea3e29414c14c329f1b6f61178ae34dd40bdf8a4c39cae5251849ac6c
EBUILD jruby-1.4.1.ebuild 5998 SHA256 7d3171a7b8b4faaa4917d692dfedcb5196c3e3c282f72cf5f43c3c9346e13237 SHA512 04f07f0a459ea82379a3d5f203c0eed383b51fcf6dc54d3e780373aa4b87f21f642b52d950f74a57349e6bdcaad43bfe6a018a72e4ed7055bd70471b7d82a055 WHIRLPOOL 917d3f3aae5066e5113ba9fb115166edcd05bf68f87dc27808bc1b5bdba8bd85e3892bf0a85bf1c962283de238b353e8288c3cdf54a19ad6f6de3d62c7cf6974
EBUILD jruby-1.5.6.ebuild 6175 SHA256 740bccc78a4130e3824678e06c46e8f8c665e41ee1cc077f01e70da3ce354613 SHA512 e08541a08b81499ea1eaa76d4d82bf92a0596949270ee4686b787988209598025650117eb959945b6f18b89e1ef9f5d537e53ae2e786f8bc865783e39c62565a WHIRLPOOL 884881bfaae055ad6a6d001d9786bed3ae2dc7ce91c293befdc4061f2ebfba38d4cf8b78b037c60479adbdcc33f4bc31c25c40938035743368a30485bc927e04
EBUILD jruby-1.6.5.1.ebuild 6169 SHA256 a18f03300b26e65673ede85d281f82101af8b433ae1a85f8661465a086d5ea8b SHA512 f95371cb4d47698f8bd7bd5c9fde2f81adf23b4a3a6f915b43b2de6716da58d06dfee0e7d333535594be73bbe966e27b11182545f047a80bb9bbb2fa41e0b964 WHIRLPOOL 82206f9712a2e7fb207b708e539cc0bf3d33be3871047b7c5178fa1fc514a270eab90c34737af853bb7aeef33aa57c3a48027c8d41a0dc40f8e3b25663ed95bc
EBUILD jruby-1.6.7.2.ebuild 6270 SHA256 db1c3b6a5a9fcfb34cdb7d3984e74455b5ade2dfdb1c8907ef71c096553a1b40 SHA512 2277324d0655bc2f354553b856ef01d352d0d6ed63e978ea442ba6310a07218f0dbaaec2b430bf042bff48b8d812d4b0aa139ee76a6c7d868e2056f5bcc4c757 WHIRLPOOL 258ef3a6d9a186f788472671b014bec054403a1c12f3668575d6bc82760e7e7b2ac719c1807b0c5af0d74ac5ca069ee80eb0f9b4186a1c0421ee5e2f6e84fd71
-MISC ChangeLog 15783 SHA256 c3c199df57b997e9fb1864440abd9b3e55e2c991f07e82516ef7a31a139a0968 SHA512 5125ba573869799811919afdbb674d06c51aac307efda690ffa21c80e67b51b60297e99577fa3cc9f437d2bd832600fd87d8f5273484f579107eec1a4b2f9d71 WHIRLPOOL f453b08da53c15b45b82c0bd29541501d778102c024612a46444ee1cc3dcdbcf639c5825dce259dea6fb8048172599223dbf5ad46dfc7e7452f2789ce21adc02
+EBUILD jruby-1.6.8.ebuild 6244 SHA256 625abf45c2a396bd423d727dc10d2ecc184deb16ea63afaf4599e238366ffe5a SHA512 5f335c813ac3d66e283e23c854ed4b9c3b5b8715da9fe84b21fbe0bee530a248c6f3ae78108806c6afff72adf96f58276c4240822db34cf7f8af096c0ded2523 WHIRLPOOL 7153be7f10587f0198ace7f2b5a1fe5754618b10cd777a004a8cfac198a3194f1c75fa35a02b2b34d5a379ab673393d806e42203eff180766dccd951fef9cd72
+MISC ChangeLog 15941 SHA256 dd399b736e91ec248d95b53cfac1d1048e2d4987647aa1ce664b2aa557246cbb SHA512 31c86520c66a13c81626e5329d1992b07677bee9d456cabde925a6e2e1f305e7030a93d59b326cdac960edda6e91e29bb1336d95e180eac9651a83af7469927e WHIRLPOOL 30aed0f568d36abe35410f52ab519226b7e472d437d0f909ca85d3025217327502343d5adf5165effd57dba0092d99ab522c391e9e3af08264449c72518c9cf2
MISC metadata.xml 179 SHA256 0df27adc265ef6596f973641d25b64b7291c87f1b114d6895f69d222049bed1b SHA512 d6f0a7b7511f9d016fa3464817f8921b958ba50a25eb834c453a9ab937d0f12f7ca418fb70c3c847568da1e48aecb10f7e0fa2898bb956e9cd9b60886033725c WHIRLPOOL d6f2832d5f7db39b2ca75bacd4c3b1b9d854c3404d1ad405f9befe8e34c86a155cb6dda3eb1b93b30d8d35b83accf4567079f4d13c1a1a06e19078afe2e81ea5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iQEcBAEBCAAGBQJQMaHWAAoJEOeBhlrCAAWGsZMIALxF6z2LmPnKPAqWcC7+D7lH
-aIrwif5oqpio+a5ia8QJOQvC7IDpsQy3moiRcFY7ebJyDDiCAZt2Fupzd+BcyxWz
-LfFyFRtyQEcWgO9r1G++g49BDheCr7rwkjvY2Li9/GsqzBJxfN2CeMVvhL0J+If6
-2bSQeRXOZPzokcP3KXBDViKDaIUiq9iYWL1UlgfHLXTo+RFMiy//tiDQsx1Pwr5R
-J8CzEB78epHkosIZORAQNY65vc2ef2noKwIsSuKoD7TCs7TAOZf4hhTaGrWAVYGY
-bwoo8RatRq0GFHH+n7QHCPLGpYdTQPN3xYbQSoA0anZuGYesdIs5/EGUykw0Cqw=
-=O70n
+iF4EAREIAAYFAlGs7cwACgkQiIP6VqMIqNc4HgEAl+hNaNA+Baxh0hSebJmA+S8T
+d57CiDDRYDcB/hZVaRoA/1KBJHT2LpIF8lo6Gnfhjxx29gZEC/PtCqG/PXRmykjo
+=1XfF
-----END PGP SIGNATURE-----
diff --git a/dev-java/jruby/files/jruby-1.6.8-bash-launcher.patch b/dev-java/jruby/files/jruby-1.6.8-bash-launcher.patch
new file mode 100644
index 000000000000..521f23515494
--- /dev/null
+++ b/dev-java/jruby/files/jruby-1.6.8-bash-launcher.patch
@@ -0,0 +1,180 @@
+Author: Ralph Sennhauser <sera@gentoo.org>
+
+Set JRUBY_HOME, JRUBY_CP, CP and JAVACMD as appropriate for Gentoo.
+Remove JFFI_OPTS as the system jar knows where to look for the native lib.
+
+diff --git a/bin/jruby.bash b/bin/jruby.bash
+index 731f85e..8299557 100755
+--- a/bin/jruby.bash
++++ b/bin/jruby.bash
+@@ -25,31 +25,7 @@ if [ -z "$JAVA_VM" ]; then
+ JAVA_VM=-client
+ fi
+
+-## resolve links - $0 may be a link to home
+-PRG=$0
+-progname=`basename "$0"`
+-
+-while [ -h "$PRG" ] ; do
+- ls=`ls -ld "$PRG"`
+- link=`expr "$ls" : '.*-> \(.*\)$'`
+- if expr "$link" : '.*/.*' > /dev/null; then
+- if expr "$link" : '/' > /dev/null; then
+- PRG="$link"
+- else
+- PRG="`dirname ${PRG}`/${link}"
+- fi
+- else
+- PRG="`dirname $PRG`/$link"
+- fi
+-done
+-
+-JRUBY_HOME_1=`dirname "$PRG"` # the ./bin dir
+-if [ "$JRUBY_HOME_1" = '.' ] ; then
+- cwd=`pwd`
+- JRUBY_HOME=`dirname $cwd` # JRUBY-2699
+-else
+- JRUBY_HOME=`dirname "$JRUBY_HOME_1"` # the . dir
+-fi
++JRUBY_HOME="${JRUBY_HOME:-/usr/share/jruby}"
+
+ if [ -z "$JRUBY_OPTS" ] ; then
+ JRUBY_OPTS=""
+@@ -81,17 +57,7 @@ for opt in ${JRUBY_OPTS[@]}; do
+ done
+ JRUBY_OPTS=${JRUBY_OPTS_TEMP}
+
+-if [ -z "$JAVACMD" ] ; then
+- if [ -z "$JAVA_HOME" ] ; then
+- JAVACMD='java'
+- else
+- if $cygwin; then
+- JAVACMD="`cygpath -u "$JAVA_HOME"`/bin/java"
+- else
+- JAVACMD="$JAVA_HOME/bin/java"
+- fi
+- fi
+-fi
++JAVACMD=java
+
+ if [ -z "$JAVA_MEM" ] ; then
+ JAVA_MEM=-Xmx500m
+@@ -132,21 +98,7 @@ JRUBY_SHELL=/bin/sh
+
+ CP_DELIMITER=":"
+
+-# add main jruby jar to the bootclasspath
+-for j in "$JRUBY_HOME"/lib/jruby.jar "$JRUBY_HOME"/lib/jruby-complete.jar; do
+- if [ ! -e "$j" ]; then
+- continue
+- fi
+- if [ "$JRUBY_CP" ]; then
+- JRUBY_CP="$JRUBY_CP$CP_DELIMITER$j"
+- else
+- JRUBY_CP="$j"
+- fi
+- if [ $JRUBY_ALREADY_ADDED ]; then
+- echo "WARNING: more than one JRuby JAR found in lib directory"
+- fi
+- JRUBY_ALREADY_ADDED=true
+-done
++JRUBY_CP="$(java-config-2 -d -p jruby)"
+
+ if $cygwin; then
+ JRUBY_CP=`cygpath -p -w "$JRUBY_CP"`
+@@ -154,29 +106,7 @@ fi
+
+ # ----- Set Up The System Classpath -------------------------------------------
+
+-if [ "$JRUBY_PARENT_CLASSPATH" != "" ]; then
+- # Use same classpath propagated from parent jruby
+- CP=$JRUBY_PARENT_CLASSPATH
+-else
+- # add other jars in lib to CP for command-line execution
+- for j in "$JRUBY_HOME"/lib/*.jar; do
+- if [ "$j" == "$JRUBY_HOME"/lib/jruby.jar ]; then
+- continue
+- fi
+- if [ "$j" == "$JRUBY_HOME"/lib/jruby-complete.jar ]; then
+- continue
+- fi
+- if [ "$CP" ]; then
+- CP="$CP$CP_DELIMITER$j"
+- else
+- CP="$j"
+- fi
+- done
+-
+- if [ "$CP" != "" ] && $cygwin; then
+- CP=`cygpath -p -w "$CP"`
+- fi
+-fi
++CP="${JRUBY_PARENT_CLASSPATH}"
+
+ if $cygwin; then
+ # switch delimiter only after building Unix style classpaths
+@@ -254,15 +184,7 @@ do
+ java_args=("${java_args[@]}" "-Djava.awt.headless=true") ;;
+ # Run under JDB
+ --jdb)
+- if [ -z "$JAVA_HOME" ] ; then
+- JAVACMD='jdb'
+- else
+- if $cygwin; then
+- JAVACMD="`cygpath -u "$JAVA_HOME"`/bin/jdb"
+- else
+- JAVACMD="$JAVA_HOME/bin/jdb"
+- fi
+- fi
++ JAVACMD='jdb'
+ java_args=("${java_args[@]}" "-sourcepath" "$JRUBY_HOME/lib/ruby/1.8:.")
+ JRUBY_OPTS=("${JRUBY_OPTS[@]}" "-X+C") ;;
+ --client)
+@@ -310,18 +232,6 @@ set -- "${ruby_args[@]}"
+
+ JAVA_OPTS="$JAVA_OPTS $JAVA_MEM $JAVA_MEM_MIN $JAVA_STACK"
+
+-JFFI_BOOT=""
+-if [ -d "$JRUBY_HOME/lib/native/" ]; then
+- for d in $JRUBY_HOME/lib/native/*`uname -s`; do
+- if [ -z "$JFFI_BOOT" ]; then
+- JFFI_BOOT="$d"
+- else
+- JFFI_BOOT="$JFFI_BOOT:$d"
+- fi
+- done
+-fi
+-JFFI_OPTS="-Djffi.boot.library.path=$JFFI_BOOT"
+-
+ if $cygwin; then
+ JRUBY_HOME=`cygpath --mixed "$JRUBY_HOME"`
+ JRUBY_SHELL=`cygpath --mixed "$JRUBY_SHELL"`
+@@ -354,7 +264,8 @@ if [ "$VERIFY_JRUBY" != "" ]; then
+ echo "Running with instrumented profiler"
+ fi
+
+- "$JAVACMD" $PROFILE_ARGS $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMITER$CP$CP_DELIMITER$CLASSPATH" \
++ "$JAVACMD" $PROFILE_ARGS $JAVA_OPTS "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMITER$CP$CP_DELIMITER$CLASSPATH" \
+ "-Djruby.home=$JRUBY_HOME" \
++ "-Djruby.bindir=/usr/bin" \
+ "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
+ "-Djruby.shell=$JRUBY_SHELL" \
+@@ -377,7 +287,7 @@ if [ "$VERIFY_JRUBY" != "" ]; then
+ else
+ if $cygwin; then
+ # exec doed not work correctly with cygwin bash
+- "$JAVACMD" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
++ "$JAVACMD" $JAVA_OPTS "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
+ "-Djruby.home=$JRUBY_HOME" \
+ "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
+ "-Djruby.shell=$JRUBY_SHELL" \
+@@ -390,7 +300,8 @@ else
+
+ exit $JRUBY_STATUS
+ else
+- exec "$JAVACMD" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
++ exec "$JAVACMD" $JAVA_OPTS "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
+ "-Djruby.home=$JRUBY_HOME" \
++ "-Djruby.bindir=/usr/bin" \
+ "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
+ "-Djruby.shell=$JRUBY_SHELL" \
diff --git a/dev-java/jruby/jruby-1.6.8.ebuild b/dev-java/jruby/jruby-1.6.8.ebuild
new file mode 100644
index 000000000000..2504eb57f1a5
--- /dev/null
+++ b/dev-java/jruby/jruby-1.6.8.ebuild
@@ -0,0 +1,198 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-java/jruby/jruby-1.6.8.ebuild,v 1.1 2013/06/03 19:25:43 graaff Exp $
+
+EAPI="4"
+JAVA_PKG_IUSE="doc source test"
+inherit eutils java-pkg-2 java-ant-2
+
+MY_PV="${PV/_rc1/RC1}"
+
+DESCRIPTION="Java-based Ruby interpreter implementation"
+HOMEPAGE="http://jruby.codehaus.org/"
+SRC_URI="http://jruby.org.s3.amazonaws.com/downloads/${PV}/${PN}-src-${PV}.tar.gz"
+LICENSE="|| ( CPL-1.0 GPL-2 LGPL-2.1 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE="bsf ssl"
+
+# jffi still needed? Or do we call that jnr-ffi?
+# jnr-ffi depends on jffi which depends on libffi
+CDEPEND=">=dev-java/bytelist-1.0.8:0
+ >=dev-java/jline-1.0:0
+ >=dev-java/joni-1.1.3:0
+ >=dev-java/jnr-netdb-1.0:0
+ >=dev-java/asm-3.3.1:3
+ >=dev-java/jcodings-1.0.5:0
+ dev-java/jffi:1.0
+ dev-java/jnr-constants:0
+ dev-java/jnr-ffi:0.5
+ dev-java/jnr-posix:1.1
+ >=dev-java/joda-time-1.6:0
+ dev-util/jay:0[java]
+ dev-java/nailgun:0
+ dev-java/jgrapht:0
+ dev-java/ant-core:0
+ dev-java/bsf:2.3
+ dev-java/osgi-core-api:0
+ >=dev-java/snakeyaml-1.9:0
+ dev-java/jzlib:1.1"
+
+RDEPEND="${CDEPEND}
+ >=virtual/jre-1.6"
+
+# Is jna-posix still needed? Or has that been renamed to jnr-posix?
+# jna-posix is the original project name which was abononed years ago.
+# jnr-posix < 1.1.8 are from the original fork
+# later jnr-posix are from the jnr umbrella project.
+DEPEND="${CDEPEND}
+ >=virtual/jdk-1.6
+ test? (
+ dev-java/ant-junit4:0
+ dev-java/ant-trax:0
+ dev-java/junit:4
+ java-virtuals/jdk-with-com-sun
+ dev-java/commons-logging:0
+ dev-java/xalan:0
+ )
+ !!<dev-ruby/jruby-1.3.1-r1"
+
+PDEPEND="ssl? ( dev-ruby/jruby-openssl )"
+
+# Tests fail.
+# Need to stop injecting jar's into classpath.
+RESTRICT="test"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+RUBY_HOME=/usr/share/${PN}/lib/ruby
+SITE_RUBY=${RUBY_HOME}/site_ruby
+GEMS=${RUBY_HOME}/gems
+
+JAVA_ANT_REWRITE_CLASSPATH="true"
+JAVA_ANT_IGNORE_SYSTEM_CLASSES="true"
+EANT_GENTOO_CLASSPATH="ant-core asm-3 bsf-2.3 bytelist jnr-constants jay \
+jcodings jffi-1.0 jline \
+joda-time joni jnr-ffi-0.5 jnr-posix-1.1 jnr-netdb jvyamlb nailgun jgrapht osgi-core-api \
+snakeyaml jzlib-1.1"
+EANT_NEEDS_TOOLS="true"
+
+pkg_setup() {
+ unset RUBYOPT
+ java-pkg-2_pkg_setup
+
+ local fail
+
+ for directory in "${GEMS}" "${SITE_RUBY}"; do
+ if [[ -L ${directory} ]]; then
+ eerror "${directory} is a symlink. Please do the following to resolve the situation:"
+ echo 'emerge -an app-portage/gentoolkit'
+ echo 'equery -qC b '"${directory}"' | sort | uniq | sed s/^/=/ > ~/jruby.fix'
+ echo 'emerge -1C $(< ~/jruby.fix)'
+ echo "rm ${directory}"
+ echo 'emerge -1 $(< ~/jruby.fix)'
+ echo 'rm ~/jruby.fix'
+
+ eerror "For more information, please see http://bugs.gentoo.org/show_bug.cgi?id=302187"
+ fail="true"
+ fi
+ done
+
+ if [[ -n ${fail} ]]; then
+ die "Please address the above errors, then run emerge --resume"
+ fi
+}
+
+java_prepare() {
+ epatch "${FILESDIR}"/${P}-bash-launcher.patch
+ epatch "${FILESDIR}/1.5.1/build.xml.patch"
+
+ # We don't need to use Retroweaver. There is a jarjar and a regular jar
+ # target but even with jarjarclean, both are a pain. The latter target
+ # is slightly easier so go with this one.
+ sed -r -i \
+ -e 's/maxmemory="128m"/maxmemory="192m"/' \
+ -e "/RetroWeaverTask/d" \
+ -e "/yecht/! { /<zipfileset .+\/>/d }" \
+ build.xml || die
+
+ sed -i -e '/Arndt/d' src/org/jruby/RubyBigDecimal.java
+
+ # Delete the bundled JARs but keep invokedynamic.jar.
+ # No source is available and it's only a dummy anyway.
+ find build_lib -name "*.jar" ! -name "jsr292-mock.jar" ! -name "yecht.jar" ! -name 'coro-mock-1.0-SNAPSHOT.jar' -delete || die
+}
+
+src_compile() {
+ # Avoid generating the ri cache since that currently fails.
+ local flags="-Dgenerate-ri-cache.hasrun=true"
+ #local flags=""
+ use bsf && flags="-Dbsf.present=true"
+
+ export RUBYOPT=""
+ einfo $RUBYOPT
+ #eant jar $(use_doc apidocs) -Djdk1.5+=true ${flags}
+ eant -Djdk1.5+=true ${flags}
+}
+
+src_test() {
+ if [ ${UID} == 0 ] ; then
+ ewarn 'The tests will fail if run as root so skipping them.'
+ ewarn 'Enable FEATURES="userpriv" if you want to run them.'
+ return
+ fi
+ # Our jruby.jar is unbundled so we need to add the classpath to this test.
+ sed -i "s:java -jar:java -Xbootclasspath/a\:#{ENV['JRUBY_CP']} -jar:g" test/test_load_compiled_ruby_class_from_classpath.rb || die
+ sed -i "s@:refid => 'build.classpath'@:path =>\"#{ENV['JRUBY_CP']}:lib/jruby.jar\"@g" \
+ rakelib/commands.rake || die
+ #sed -i "s@:refid => 'test.class.path'@:path => \"#{ENV['JRUBY_CP']}@g" \
+ # rakelib/commands.rake || die
+
+ #bsf optionally depends on jruby, which means that the previously
+ #installed jruby will be added to classpath, nasty things will happen.
+ local cpath=`java-pkg_getjars ${EANT_GENTOO_CLASSPATH// /,},junit-4`
+ cpath="$(echo ${cpath} | sed -e "s_${EROOT}/usr/share/jruby/lib/jruby.jar:__g")"
+ cpath="${cpath}:$(java-pkg_getjars --build-only commons-logging,xalan)"
+ EANT_GENTOO_CLASSPATH=""
+
+ local flags=""
+ use bsf && flags="-Dbsf.present=true"
+
+ #Clear RUBYOPT
+ export RUBYOPT=""
+ export JRUBY_CP="${cpath}"
+ ANT_TASKS="ant-junit4 ant-trax" \
+ JRUBY_OPTS="" eant test -Djdk1.5+=true -Djruby.bindir=bin \
+ -Dgentoo.classpath="${cpath}" ${flags}
+}
+
+src_install() {
+ java-pkg_dojar lib/${PN}.jar
+ dodoc README docs/{*.txt,README.*} || die
+
+ use doc && java-pkg_dojavadoc docs/api
+ use source && java-pkg_dosrc src/org
+
+# Use the bash based launcher to preserve whitespace in arguments.
+# Ie allow >jruby -e "puts 'hello'"< to work otherwise
+# >jruby -e "\"puts 'hello'\""< is needed.
+#
+# # We run the sed here in install so that we don't get the wrong
+# # data during the test phase!
+# sed \
+# -e '/++ebuild-cut-here++/, /--ebuild-cut-here--/ d' \
+# -e '/^JRUBY_HOME=/s:=:=/usr/share/jruby:' \
+# bin/jruby.sh > "${T}"/jruby
+
+ newbin bin/jruby.bash jruby
+ dobin bin/j{irb{,_swing},rubyc}
+
+ insinto "${RUBY_HOME}"
+ doins -r "${S}"/lib/ruby/{1.8,1.9,site_ruby}
+
+ # Remove all the references to RubyGems as we're just going to
+ # install it through dev-ruby/rubygems.
+ find "${ED}${RUBY_HOME}" -type f \
+ '(' '(' -path '*rubygems*' -not -name 'jruby.rb' ')' -or -name 'ubygems.rb' -or -name 'datadir.rb' ')' \
+ -delete || die
+}