diff options
Diffstat (limited to 'dev-java/jruby')
-rw-r--r-- | dev-java/jruby/ChangeLog | 10 | ||||
-rw-r--r-- | dev-java/jruby/Manifest | 15 | ||||
-rw-r--r-- | dev-java/jruby/files/jruby-1.6.8-bash-launcher.patch | 180 | ||||
-rw-r--r-- | dev-java/jruby/jruby-1.6.8.ebuild | 198 |
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 +} |