summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/jruby/jruby-1.0.0.ebuild')
-rw-r--r--dev-java/jruby/jruby-1.0.0.ebuild156
1 files changed, 156 insertions, 0 deletions
diff --git a/dev-java/jruby/jruby-1.0.0.ebuild b/dev-java/jruby/jruby-1.0.0.ebuild
new file mode 100644
index 000000000000..060c969847bc
--- /dev/null
+++ b/dev-java/jruby/jruby-1.0.0.ebuild
@@ -0,0 +1,156 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-java/jruby/jruby-1.0.0.ebuild,v 1.1 2007/06/13 12:42:44 nichoj Exp $
+
+JAVA_PKG_IUSE="doc source test"
+inherit eutils java-pkg-2 java-ant-2
+
+# 1.0 < 1.0.0_rcX
+# so, we'll pretend 1.0 is actually 1.0.0
+# remove this for next release
+# TODO complain to upstream
+MY_PV="1.0"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Java based ruby interpreter implementation"
+HOMEPAGE="http://jruby.codehaus.org/"
+SRC_URI="http://dist.codehaus.org/${PN}/${PN}-src-${MY_PV}.tar.gz"
+
+LICENSE="|| ( CPL-1.0 GPL-2 LGPL-2.1 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="bsf"
+
+COMMON_DEPEND=">=dev-java/jline-0.9.91
+ =dev-java/asm-2.2*
+ dev-java/backport-util-concurrent
+ !<dev-java/jruby-1.0.0_rc2-r1"
+RDEPEND=">=virtual/jre-1.4
+ ${COMMON_DEPEND}"
+# FIXME doesn't quite compile correctly with 1.6
+DEPEND="|| ( =virtual/jdk-1.5* =virtual/jdk-1.4* )
+ bsf? ( >=dev-java/bsf-2.3 )
+ test? (
+ =dev-java/junit-3*
+ dev-java/ant-junit
+ dev-java/ant-trax
+ )
+ ${COMMON_DEPEND}"
+PDEPEND="dev-ruby/rubygems
+ >=dev-ruby/rake-0.7.3
+ >=dev-ruby/rspec-1.0.4"
+
+S="${WORKDIR}/${MY_P}"
+
+RUBY_HOME=/usr/share/${PN}/lib/ruby
+SITE_RUBY=${RUBY_HOME}/site_ruby
+GEMS=${RUBY_HOME}/gems
+
+pkg_setup() {
+ java-pkg-2_pkg_setup
+
+ if [[ -d ${SITE_RUBY} && ! -L ${SITE_RUBY} ]]; then
+ ewarn "dev-java/jruby now uses dev-lang/ruby's site_ruby directory by creating symlinks."
+ ewarn "${SITE_RUBY} is a directory right now, which will cause problems when being merged onto the filesystem."
+ fi
+ if [[ -d ${GEMS} && ! -L ${GEMS} ]]; then
+ ewarn "dev-java/jruby now uses dev-lang/ruby's gems directory by creating symlinks."
+ ewarn "${GEMS} is a directory right now, which will cause problems when being merged onto the filesystem."
+ fi
+
+ # only use javac, see http://jira.codehaus.org/browse/JRUBY-675
+ java-pkg_force-compiler javac
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ # prevents /root/.jruby being created at build time with
+ # FEATURES="-userpriv"
+ # see http://bugs.gentoo.org/show_bug.cgi?id=170058
+ epatch ${FILESDIR}/${PN}-0.9.8-sandbox.patch
+ # search only lib, kills jdk1.4+ property which we set manually
+ java-ant_ignore-system-classes
+
+ cd ${S}/lib
+ rm -v *.jar || die
+
+ java-pkg_jar-from --build-only ant-core ant.jar
+ java-pkg_jar-from asm-2.2 asm.jar
+ java-pkg_jar-from asm-2.2 asm-commons.jar
+ java-pkg_jar-from jline
+ java-pkg_jar-from backport-util-concurrent
+ use test && java-pkg_jar-from --build-only junit
+
+ # build-only because it's just BSF adapter classes and won't be used
+ # unless invoked from bsf itself, so no need to pollute classpath
+ if use bsf; then
+ java-pkg_jar-from --build-only bsf-2.3
+ else
+ cd ${S}
+ # testcases depending on bsf
+ rm test/org/jruby/test/TestAdoptedThreading.java || die
+ rm test/org/jruby/javasupport/test/TestBSF.java || die
+ sed -i -e '/TestBSF.class/d' \
+ test/org/jruby/javasupport/test/JavaSupportTestSuite.java || die
+ sed -i -e '/TestAdoptedThreading.class/d' \
+ test/org/jruby/test/MainTestSuite.java || die
+ fi
+}
+
+src_compile() {
+ eant jar $(use_doc create-apidocs) -Djruby.home=${T}/.jruby -Djdk1.4+=true
+}
+
+src_test() {
+ # needs bsf's runtime deps to work
+ use bsf && java-pkg_jar-from --into lib --with-dependencies bsf-2.3
+ ANT_TASKS="ant-junit ant-trax" eant test -Djdk1.4+=true
+}
+
+src_install() {
+ java-pkg_dojar lib/${PN}.jar
+
+ dodoc README docs/{*.txt,README.*,BeanScriptingFramework} || die
+ dohtml docs/getting_involved.html || die
+
+ if use doc; then
+ java-pkg_dojavadoc docs/api
+ fi
+ use source && java-pkg_dosrc src/org
+ java-pkg_dolauncher ${PN} \
+ --main 'org.jruby.Main' \
+ --java_args '-Djruby.base=/usr/share/jruby -Djruby.home=/usr/share/jruby -Djruby.lib=/usr/share/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh'
+ dobin ${S}/bin/jirb
+
+ dodir "/usr/share/${PN}/lib"
+ insinto "/usr/share/${PN}/lib"
+ doins -r "${S}/lib/ruby"
+
+ # Share gems with regular ruby
+ rm -r ${D}/usr/share/${PN}/lib/ruby/gems || die
+ dosym /usr/lib/ruby/gems /usr/share/${PN}/lib/ruby/gems || die
+
+ # Share site_ruby with regular ruby
+ rm -r ${D}/usr/share/${PN}/lib/ruby/site_ruby || die
+ dosym /usr/lib/ruby/site_ruby /usr/share/${PN}/lib/ruby/site_ruby || die
+}
+
+pkg_preinst() {
+ local bad_directory=0
+
+ if [[ -d ${SITE_RUBY} && ! -L ${SITE_RUBY} ]]; then
+ eerror "${SITE_RUBY} is a directory. Please move this directory out of the way, and then emerge --resume."
+ bad_directory=1
+ fi
+
+ if [[ -d ${GEMS} && ! -L ${GEMS} ]]; then
+ eerror "${GEMS} is a directory. Please move this directory out of the way, and then emerge --resume."
+ bad_directory=1
+ fi
+
+ if [[ ! ${bad_directory} ]]; then
+ die "Please address the above errors, then emerge --resume."
+ fi
+}
+