%define javahome %{_jvmdir}/java %define with_jruby_embed 0 %define with_jar_complete 1 # Prevent brp-java-repack-jars from being run. %define __jar_repack %{nil} %define javadir usr/share/java Name: jruby Version: 1.4.0 Release: %mkrel 3 Summary: A Java implementation of the Ruby language Group: Development/Ruby License: ASL, CPL, GPL, LGPL, MIT Url: http://jruby.org/ Source0: http://jruby.kenai.com/downloads/%{version}/jruby-src-%{version}.tar.gz # from http://repo.typesafe.com/typesafe/list/codehaus/org/jruby/ ... and modified Source1: jruby-shared-%{version}.pom Source2: jruby-%{version}.pom Source3: jruby-complete-%{version}.pom Patch0: jruby-1.4.0-fix-jruby-start-script.patch Patch1: jruby-1.4.0-dont-include-dependencies-in-jar.patch Patch2: jruby-1.4.0-define-jar-complete.patch Patch3: jruby-1.4.0-define-home.patch BuildRequires: ant BuildRequires: ant-junit BuildRequires: apache-commons-logging BuildRequires: apt-mirror-api #BuildRequires: aqute-bndlib BuildRequires: backport-util-concurrent BuildRequires: bcel BuildRequires: bsf BuildRequires: bytelist BuildRequires: dynalang BuildRequires: emma BuildRequires: glibc-devel BuildRequires: indy_mock BuildRequires: jaffl BuildRequires: jarjar BuildRequires: jcodings BuildRequires: jffi BuildRequires: jgrapht BuildRequires: jiprof BuildRequires: jline BuildRequires: jna BuildRequires: jna-posix BuildRequires: jnr-constants BuildRequires: joda-time BuildRequires: joni BuildRequires: junit4 BuildRequires: jvyamlb BuildRequires: libjay-java BuildRequires: nailgun %if %with_jruby_embed BuildRequires: jruby-embed %endif BuildRequires: yecht BuildRequires: jpackage-utils BuildRequires: objectweb-asm BuildRequires: ruby BuildRequires: ruby-RubyGems Requires: bcel Requires: bsf Requires: bytelist Requires: jcodings Requires: jiprof Requires: jline Requires: jna Requires: jna-posix Requires: jnr-constants Requires: joni Requires: jvyamlb Requires: jpackage-utils Requires: objectweb-asm Requires: yecht # 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-Depending on the following packages: #objectweb-asm # jline # jna # joda-time # bsf #build_lib/jffi.jar #build_lib/jgrapht.jar #build_lib/jaffl.jar #and Build-Depending only on the following: # junit # emma # jarjar # jay # nailgun %description JRuby is the effort to recreate the Ruby 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: Development/Ruby 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 -p0 %patch1 -p0 %patch2 -p0 %patch3 -p0 sed -i "s|__JAVA__HOME__|%{javahome}|" bin/jruby sed -i "s|__JRUBY__HOME__|%{_libdir}/jruby|" bin/jruby mv build_lib/jruby-embed.jar build_lib/jruby-embed.jar.no mv build_lib/bnd-0.0.249.jar build_lib/bnd-0.0.249.jar.no rm build_lib/*.jar %if %with_jar_complete %if %with_jruby_embed ln -sf $(build-classpath jruby-embed) build_lib/jruby-embed.jar %else mv build_lib/jruby-embed.jar.no build_lib/jruby-embed.jar %endif %endif rm -f lib/bsf.jar rm -f lib/profile.{jar,properties} rm -f lib/ruby/gems/1.8/gems/rake-0.8.4/doc/example/*.c find . -name '*.exe' -exec rm -f '{}' \; find . -name '*.dll' -exec rm -f '{}' \; find . -name '*.bat' -exec rm -f '{}' \; find lib/ruby/ -name '*.document' -exec rm -f '{}' \; build-jar-repository -s -p build_lib apt-mirror-api bsf bytelist emma emma_ant jaffl jcodings jffi jna-posix jna joni 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 commons-logging) build_lib/commons-logging-1.1.1.jar #ln -sf $(build-classpath aqute-bndlib) build_lib/bnd-0.0.249.jar mv build_lib/bnd-0.0.249.jar.no build_lib/bnd-0.0.249.jar ln -sf $(build-classpath jnr-constants) build_lib/constantine.jar ln -sf $(build-classpath dynalang) build_lib/dynalang-0.3.jar ln -sf $(build-classpath jarjar) build_lib/jarjar-1.0rc8.jar ln -sf $(build-classpath jgrapht) build_lib/jgrapht-jdk1.5.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 indy_mock) build_lib/jsr292-mock.jar ln -sf $(build-classpath junit4) build_lib/junit.jar ln -sf $(build-classpath nailgun) build_lib/nailgun-0.7.1.jar ln -sf $(build-classpath jay/yydebug) build_lib/yydebug.jar ln -sf $(build-classpath jvyamlb) build_lib/jvyamlb-0.2.5.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 build-ng %if %with_jar_complete LD_LIBRARY_PATH="%{_libdir}/jna" ant jar-complete %endif export CLASSPATH=$(build-classpath objectweb-asm/asm junit4 jnr-constants bytelist jcodings joda-time joni):$PWD/lib/jruby.jar ant -Dbuild.lib.dir=build_lib apidocs %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 bsf) %{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}%{_bindir} pushd "%{buildroot}%{_bindir}" for f in jgem jirb jirb_swing jruby jrubyc; do ln -sf "%{_libdir}/jruby/bin/$f" "$f" done popd install -d -m 755 %{buildroot}%{_javadir} pushd %{buildroot} ln -s %_libdir/jruby/lib/jruby.jar \ %{javadir}/jruby.jar ln -s %_libdir/jruby/lib/jruby.jar\ %{javadir}/jruby-%{version}.jar %if %with_jar_complete ln -s %_libdir/jruby/lib/jruby-complete.jar \ %{javadir}/jruby-complete.jar ln -s %_libdir/jruby/lib/jruby-complete.jar \ %{javadir}/jruby-complete-%{version}.jar popd mkdir -p %{buildroot}%{_mavenpomdir} %add_to_maven_depmap org.jruby shared %{version} JPP jruby-shared install -pm 644 %{SOURCE1} %{buildroot}%{_mavenpomdir}/JPP-jruby-shared.pom %add_to_maven_depmap org.jruby jruby %{version} JPP jruby install -pm 644 %{SOURCE2} %{buildroot}%{_mavenpomdir}/JPP-jruby.pom %add_to_maven_depmap org.jruby jruby-complete %{version} JPP jruby-complete install -pm 644 %{SOURCE3} %{buildroot}%{_mavenpomdir}/JPP-jruby-complete.pom %endif 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 %if %with_jar_complete %post %update_maven_depmap %postun %update_maven_depmap %endif %files %attr(0755,root,root) %{_bindir}/jirb %attr(0755,root,root) %{_bindir}/jruby %{_bindir}/jgem %{_bindir}/jirb_swing %{_bindir}/jrubyc %dir %{_libdir}/jruby %{_libdir}/jruby/bin %{_libdir}/jruby/lib %{_libdir}/jruby/tool %{_javadir}/jruby-%{version}.jar %{_javadir}/jruby.jar %{_libdir}/jruby/samples %if %with_jar_complete %{_javadir}/jruby-complete-%{version}.jar %{_javadir}/jruby-complete.jar %{_mavenpomdir}/* %{_mavendepmapfragdir}/* %endif %doc COPYING* README %doc docs/CodeConventions.txt docs/README.test %files javadoc %{_javadocdir}/jruby-%{version} %{_javadocdir}/jruby %changelog * Tue Aug 02 2011 dmorgan <dmorgan> 1.4.0-3.mga2 + Revision: 131354 - Propre fix for links - More fix for java link - Fix jar files link - Fix groups - Try to fix buildrequires - Bootstrap by removing jruby_embed deps - Clean spec file + gil <gil> - imported package jruby