%define javahome /usr/lib/jvm/jdk-sun Name: java-ruby Version: 1.4.0 Release: 2mamba Summary: A Java implementation of the Ruby language Group: Development/Languages Vendor: openmamba Distribution: openmamba Packager: gil URL: http://jruby.org/ #Source: http://dist.codehaus.org/jruby/current/jruby-src-%{version}.tar.gz #Source: http://dist.codehaus.org/jruby/%{version}/jruby-src-%{version}.tar.gz Source: http://jruby.kenai.com/downloads/%{version}/jruby-src-%{version}.tar.gz # set up classpath using build-classpath. Patch0: java-ruby-1.3.0-fix-jruby-start-script.patch Patch1: java-ruby-1.4.0-dont-include-dependencies-in-jar.patch Patch2: java-ruby-1.4.0-define-jar-complete.patch Patch3: java-ruby-1.4.0-define-home.patch License: Apache Software License Version 1.1, Common Pubblic License Version 1.0, GPL, LGPL, MIT BuildRequires: apache-ant BuildRequires: apache-ant-junit #BuildRequires: aqute-bnd BuildRequires: jakarta-bcel BuildRequires: jakarta-bsf24 BuildRequires: jakarta-commons-logging BuildRequires: java-apt-mirror-api BuildRequires: java-backport-util-concurrent BuildRequires: java-bytelist BuildRequires: java-dynalang BuildRequires: java-emma BuildRequires: java-grapht BuildRequires: java-indy-mock BuildRequires: java-jaffl BuildRequires: java-jarjar1 BuildRequires: java-jcodings BuildRequires: java-jffi BuildRequires: java-jline BuildRequires: java-jay BuildRequires: java-jiprof BuildRequires: java-jna BuildRequires: java-jna-posix BuildRequires: java-jnr-constants BuildRequires: java-joda-time BuildRequires: java-joni BuildRequires: java-junit48 BuildRequires: java-jvyamlb BuildRequires: java-nailgun BuildRequires: java-retroweaver BuildRequires: java-ruby-embed BuildRequires: java-yecht BuildRequires: jpackage-utils BuildRequires: objectweb-asm == 3.2 BuildRequires: ruby Requires: jakarta-bcel Requires: jakarta-bsf24 Requires: java-bytelist Requires: java-jcodings Requires: java-jiprof Requires: java-jline Requires: java-jna Requires: java-jna-posix Requires: java-jnr-constants Requires: java-joni Requires: java-jvyamlb Requires: java-yecht Requires: jpackage-utils Requires: objectweb-asm == 3.2 # java-jffi #build_lib/jffi-Darwin.jar #build_lib/jffi-amd64-Linux.jar #build_lib/jffi-amd64-SunOS.jar #build_lib/jffi-i386-Linux.jar #build_lib/jffi-ppc-AIX.jar #build_lib/jffi-sparc-SunOS.jar #build_lib/jffi-sparcv9-SunOS.jar #build_lib/jffi-x86-SunOS.jar #build_lib/jffi.jar # Build process: #build_lib/backport-util-concurrent.jar #build_lib/emma_ant.jar #build_lib/emma.jar #build_lib/jarjar-1.0rc8.jar #build_lib/junit.jar #build_lib/retroweaver-2.0.5.jar #build_lib/retroweaver-rt-2.0.5.jar # Build-Depending on the following packages: #objectweb-asm #java-jline #java-jna #java-joda-time #jakarta-bsf? #build_lib/jffi.jar #build_lib/jgrapht.jar #build_lib/jaffl.jar #and Build-Depending only on the following: # java-junit? # java-emma # java-jarjar? # java-jay # java-nailgun # profile.jar java-jiprof # nailgun-0.7.1.jar java-nailgun # build_lib/apt-mirror-api.jar java-apt-mirror-api # build_lib/dynalang-0.3.jar java-dynalang BuildRoot: %{_tmppath}/%{name}-%{version}-root # TODO remove all the references to RubyGems as we're just going to install it through system rubygems. %description JRuby is the effort to recreate the Ruby (http://www.ruby-lang.org) interpreter in Java. The Java version is tightly integrated with Java to allow both to script any Java class and to embed the interpreter into any Java application. See the 'docs' directory for more information. Features * A 1.8.6 compatible Ruby interpreter written in 100% pure Java * Most builtin Ruby classes provided * Support for interacting with and defining java classes from within ruby * Bean Scripting Framework (BSF) support %package javadoc Group: Documentation Summary: Javadoc for %{name} %description javadoc JRuby is an 100% pure-Java implementation of the Ruby programming language. This package contains javadoc for %{name}. %prep %setup -q -n jruby-%{version} %patch0 -p1 sed -i "s|jcodings constantine|jcodings jnr-constants|" bin/jruby %patch1 %patch2 %patch3 sed -i "s|__JAVA__HOME__|%{javahome}|" bin/jruby sed -i "s|__JRUBY__HOME__|%{_libdir}/jruby|" bin/jruby mv build_lib/bnd-0.0.249.jar build_lib/bnd-0.0.249.jar-no rm -f build_lib/*.jar # there are non-binaries in lib/ as well; leave them alone mv build_lib/bnd-0.0.249.jar-no build_lib/bnd-0.0.249.jar rm -f lib/bsf.jar rm -f lib/profile.{jar,properties} find lib/ruby/ -name '*.document' -exec rm -f '{}' \; build-jar-repository -s -p build_lib emma emma_ant \ joni jna-posix bytelist jcodings jaffl ln -sf $(build-classpath jnr-constants) build_lib/constantine.jar ln -sf $(build-classpath jffi) build_lib/jffi.jar ln -sf $(build-classpath objectweb-asm/asm) build_lib/asm-3.2.jar ln -sf $(build-classpath objectweb-asm/asm-analysis) build_lib/asm-analysis-3.2.jar ln -sf $(build-classpath objectweb-asm/asm-commons) build_lib/asm-commons-3.2.jar ln -sf $(build-classpath objectweb-asm/asm-tree) build_lib/asm-tree-3.2.jar ln -sf $(build-classpath objectweb-asm/asm-util) build_lib/asm-util-3.2.jar ln -sf $(build-classpath bsf24) build_lib/bsf.jar ln -sf $(build-classpath commons-logging) build_lib/commons-logging-1.1.1.jar ln -sf $(build-classpath dynalang) build_lib/dynalang-0.3.jar ln -sf $(build-classpath jay/yydebug) build_lib/yydebug.jar ln -sf $(build-classpath jarjar1) build_lib/jarjar-1.0rc8.jar ln -sf $(build-classpath jline) build_lib/jline-0.9.93.jar ln -sf $(build-classpath joda-time) build_lib/joda-time-1.6.jar ln -sf $(build-classpath junit48) build_lib/junit.jar ln -sf $(build-classpath jvyamlb) build_lib/jvyamlb-0.2.5.jar ln -sf $(build-classpath nailgun) build_lib/nailgun-0.7.1.jar ln -sf $(build-classpath retroweaver) build_lib/retroweaver-2.0.5.jar ln -sf $(build-classpath retroweaver-rt) build_lib/retroweaver-rt-2.0.5.jar ln -sf $(build-classpath jna-3.0.9) build_lib/jna.jar ln -sf $(build-classpath jgrapht) build_lib/jgrapht-jdk1.5.jar ln -sf $(build-classpath jruby-embed) build_lib/jruby-embed.jar ln -sf $(build-classpath indy_mock) build_lib/jsr292-mock.jar rm -rf lib/native/ ln -sf $(build-classpath yecht-ruby) lib/ruby/site_ruby/shared/yecht.jar find lib/ruby/ -name '*.rb' -exec sed --in-place "s|^#!/usr/local/bin/ruby|#!/usr/bin/env jruby|" '{}' \; rm -f lib//gems/1.8/gems/rspec-*/spec/spec/runner/{empty_file.txt,resources/a_{foo,bar}.rb} mkdir lib/ruby/site_ruby/1.8/java # jsr292-mock #rm src/org/jruby/runtime/invokedynamic/InvokeDynamicSupport.java #rm src/org/jruby/compiler/impl/InvokeDynamicInvocationCompiler.java %build LD_LIBRARY_PATH="%{_libdir}/jna" ant jar jar-complete export CLASSPATH=$(build-classpath objectweb-asm/asm junit48 jnr-constants bytelist jcodings joda-time joni):/lib/jruby.jar ant \ -Dbuild.lib.dir=build_lib \ apidocs pushd tool/nailgun rm -rf ng.exe ./configure && make popd %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" install -p -d -m 755 %{buildroot}%{_libdir}/jruby cp -ar samples/ %{buildroot}%{_libdir}/jruby/ rm -rf lib/ruby/site_ruby/shared/yecht.jar cp -ar lib/ %{buildroot}%{_libdir}/jruby/ ln -sf $(build-classpath yecht-ruby) %{buildroot}%{_libdir}/jruby/lib/ruby/site_ruby/shared/yecht.jar ln -sf $(build-classpath bsf24) %{buildroot}%{_libdir}/jruby/lib/bsf.jar ln -sf %{_javadir}/jiprof/profile.jar %{buildroot}%{_libdir}/jruby/lib/profile.jar mkdir -p %{buildroot}%{_libdir}/jruby/tool rm -rf tool/nailgun/Makefile* rm -rf tool/nailgun/README.txt rm -rf tool/nailgun/config* rm -rf tool/nailgun/src cp -ar tool/* %{buildroot}%{_libdir}/jruby/tool/ chmod 755 %{buildroot}%{_libdir}/jruby/tool/nailgun/ng ln -sf $(build-classpath nailgun) %{buildroot}%{_libdir}/jruby/tool/nailgun/nailgun.jar rm -rf bin/*.{exe,dll,bat} cp -ar bin/ %{buildroot}%{_libdir}/jruby/ install -d -m 755 %{buildroot}%{_javadir} ln -s ../../lib/jruby/lib/jruby.jar \ %{buildroot}%{_javadir}/jruby.jar ln -s ../../lib/jruby/lib/jruby.jar \ %{buildroot}%{_javadir}/jruby-%{version}.jar ln -s ../../lib/jruby/lib/jruby.jar \ %{buildroot}%{_javadir}/jruby-complete.jar ln -s ../../lib/jruby/lib/jruby.jar \ %{buildroot}%{_javadir}/jruby-complete-%{version}.jar install -d -m 755 %{buildroot}%{_bindir} ln -s ../lib/jruby/bin/jruby %{buildroot}%{_bindir}/jruby ln -s ../lib/jruby/bin/jirb %{buildroot}%{_bindir}/jirb mkdir -p %{buildroot}%{_javadocdir}/jruby-%{version} cp -a docs/api/* %{buildroot}%{_javadocdir}/jruby-%{version} ln -sf jruby-%{version} %{buildroot}%{_javadocdir}/jruby %check # skip tests as they fail now for some weird reason .. #export CLASSPATH=$(build-classpath objectweb-asm/asm junit45 joni constantine jcodings joda-time joni ant-1.7.1):/lib/jruby.jar #ant test-all %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %files %defattr(-,root,root) %attr(0755,root,root) %{_bindir}/jirb %attr(0755,root,root) %{_bindir}/jruby %dir %{_libdir}/jruby %{_libdir}/jruby/bin %{_libdir}/jruby/lib %{_libdir}/jruby/tool %{_javadir}/jruby-complete-%{version}.jar %{_javadir}/jruby-complete.jar %{_javadir}/jruby-%{version}.jar %{_javadir}/jruby.jar #%{_libdir}/jruby/lib/jruby.jar %{_libdir}/jruby/samples %doc COPYING* README %doc docs/CodeConventions.txt docs/README.test %files javadoc %defattr(-,root,root) %{_javadocdir}/jruby-%{version} %{_javadocdir}/jruby %changelog * Fri Dec 10 2010 gil 1.4.0-2mamba - rebuilt devel * Fri Dec 18 2009 gil 1.4.0-1mamba - update to 1.4.0 * Thu Sep 24 2009 gil 1.3.1-1mamba - update to 1.3.1 * Sun Jun 14 2009 gil 1.3.0-2mamba - correct binary scripts * Wed Jun 10 2009 gil 1.3.0-1mamba - package created by autospec