Sophie

Sophie

distrib > Mageia > 2 > i586 > media > core-release-src > by-pkgid > 3e38807b7017674dd5804a1c388603a0 > files > 9

jruby-1.4.0-3.mga2.src.rpm

%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