File jruby.spec of Package jruby

#
# spec file for "jruby-9_3_8_0"
#
# Copyright (c) 2017 kkaempf
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

%define java_version 11
%define srcname jruby
Name:           jruby-9_3_8_0
Version:        9.3.8.0
Release:        1
License:        Ruby
Summary:        JRuby is a 100% Java implementation of the Ruby programming language
Url:            https://github.com/jruby/jruby
Group:          Development/Libraries/Java
Source0:        https://github.com/%{srcname}/%{srcname}/archive/%{version}/%{srcname}-%{version}.tar.gz
Source1:        %{srcname}-rpmlintrc
Patch1:         0001-please-autorequires.patch

%define jrubydir %{_datadir}/jruby

BuildRoot:      %{_tmppath}/%{srcname}-%{version}-build

BuildRequires:  ant
BuildRequires:  fdupes
BuildRequires:  java-devel = %{java_version}
BuildRequires:  maven
BuildRequires:  %{name}-kit = %{version}
BuildRequires:  xz

Provides:       jruby = %{version}
Provides:       mvn(org.jruby:core) = %{version}
Provides:       mvn(org.jruby:lib) = %{version}
Requires:       java = %{java_version}
Requires:       ca-certificates-mozilla

%description
JRuby is the effort to recreate the Ruby (http://www.ruby-lang.org) interpreter in Java

%prep
%setup -q -c -n src
cp -Rf %{_datadir}/tetra/kit ..
cd %{srcname}-%{version}
%patch -P1 -p1

%build
cd ..
export NO_BRP_CHECK_BYTECODE_VERSION=true
export PROJECT_PREFIX=`readlink -e .`
#export LANG=en_US.UTF-8
export LANG=en_US.ISO-8859-1
cd src/jruby-%{version}
mvn \
  -Dmaven.repo.local=$PROJECT_PREFIX/kit/m2 \
  --strict-checksums \
  -o \
  package
cd maven/jruby-complete
mvn \
  -Dmaven.repo.local=$PROJECT_PREFIX/kit/m2 \
  --strict-checksums \
  -o \
  package

%install
cd ..
export NO_BRP_CHECK_BYTECODE_VERSION=true
export PROJECT_PREFIX=`readlink -e .`
#export LANG=en_US.UTF-8
export LANG=en_US.ISO-8859-1
cd src/jruby-%{version}
mvn \
  -Dmaven.repo.local=$PROJECT_PREFIX/kit/m2 \
  --strict-checksums \
  -o \
  install
cd maven/jruby-complete
mvn \
  -Dmaven.repo.local=$PROJECT_PREFIX/kit/m2 \
  --strict-checksums \
  -o \
  install
#cd ../../maven/jruby-jars
#mvn \
#  -Dmaven.repo.local=$PROJECT_PREFIX/kit/m2 \
#  --settings $PROJECT_PREFIX/kit/m2/settings.xml \
#  --strict-checksums \
#  -o \
#  install
cd ../..
# jruby
mkdir -p %{buildroot}%{jrubydir}/lib

install -m 644 VERSION %{buildroot}%{jrubydir}

# main .jar

install -m 644 lib/jruby.jar %{buildroot}%{jrubydir}/lib

# complete .jar

install -m 644 maven/jruby-complete/target/jruby-complete-%{version}.jar %{buildroot}%{jrubydir}/lib

# stdlib
install -m 644 lib/target/*.jar %{buildroot}%{jrubydir}/lib

# jruby/bin
mkdir -p %{buildroot}%{jrubydir}/bin
install -m 755 bin/* %{buildroot}%{jrubydir}/bin
rm -f %{buildroot}%{jrubydir}/bin/*.exe
rm -f %{buildroot}%{jrubydir}/bin/*.bat
rm -f %{buildroot}%{jrubydir}/bin/*.dll
rm -f %{buildroot}%{jrubydir}/bin/*.sh

# /usr/bin
mkdir -p %{buildroot}%{_bindir}
# should use update-alternatives instead
ln -s %{jrubydir}/bin/jruby.bash %{buildroot}%{_bindir}/jruby
ln -s %{jrubydir}/bin/rake %{buildroot}%{_bindir}/jrake
ln -s %{jrubydir}/bin/jgem %{buildroot}%{_bindir}/jgem

# jruby/ruby

rm -rf lib/ruby/truffle
cp -a lib %{buildroot}%{jrubydir}

# drop lib/target
rm -rf %{buildroot}%{jrubydir}/lib/target

# clean up ffi ..
rm -rf %{buildroot}%{jrubydir}/lib/ruby/stdlib/ffi/platform/*-*
cp -a lib/ruby/stdlib/ffi/platform/%{_arch}-linux %{buildroot}%{jrubydir}/lib/ruby/stdlib/ffi/platform
# ..  and jni
rm -rf %{buildroot}%{jrubydir}/lib/jni
mkdir -p %{buildroot}%{_libdir}/jni
cp lib/jni/%{_arch}-Linux/* %{buildroot}%{_libdir}/jni
ln -s %{_libdir}/jni %{buildroot}%{jrubydir}/lib

find %{buildroot}%{jrubydir} -name .document | xargs rm -rf

%fdupes %{buildroot}%{jrubydir}

%files
%defattr(-,root,root)
%doc jruby-%{version}/BSDL
%doc jruby-%{version}/COPYING
%doc jruby-%{version}/LEGAL
%doc jruby-%{version}/LICENSE.RUBY
%doc jruby-%{version}/README.md

%{_bindir}/*
%dir %{jrubydir}
%{jrubydir}
%dir %{_libdir}/jni
%{_libdir}/jni

%changelog
openSUSE Build Service is sponsored by