mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-12-30 05:42:12 +01:00
175 lines
4.4 KiB
Plaintext
175 lines
4.4 KiB
Plaintext
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Note: This abuild excludes Truffle, because it's still experimental,
|
|
# so it's probably not much usable for regular users.
|
|
pkgname=jruby
|
|
pkgver=9.0.5.0
|
|
pkgrel=1
|
|
pkgdesc="An implementation of Ruby on the JVM"
|
|
url="http://jruby.org"
|
|
arch="noarch"
|
|
license="EPL GPL-2 LGPL-2.1 custom"
|
|
# libc6-compat: https://github.com/jnr/jnr-posix/issues/73
|
|
depends="java-jffi-native>=1.2 libc6-compat>=1.1.12-r5 openjdk8-jre"
|
|
makedepends="openjdk8 zip"
|
|
subpackages="$pkgname-irb $pkgname-maven $pkgname-minitest $pkgname-rake
|
|
$pkgname-rdoc $pkgname-readline $pkgname-testunit $pkgname-libs
|
|
"
|
|
# jruby (launch script): https://github.com/jruby/jruby/pull/1860
|
|
source="https://s3.amazonaws.com/jruby.org/downloads/$pkgver/$pkgname-bin-$pkgver.tar.gz
|
|
jruby
|
|
"
|
|
builddir="$srcdir/$pkgname-$pkgver"
|
|
|
|
_destdir="/usr/share/$pkgname"
|
|
_bindir="$_destdir/bin"
|
|
_rubydir="$_destdir/lib/ruby"
|
|
_gemdir="$_rubydir/gems/shared"
|
|
_stdlibdir="$_rubydir/stdlib"
|
|
|
|
_arch="$CARCH"
|
|
case "$CARCH" in
|
|
arm*) _arch=arm;;
|
|
x86) _arch=i386;;
|
|
esac
|
|
|
|
prepare() {
|
|
cd "$builddir/bin"
|
|
rm *.bat *.dll *.exe
|
|
rm jirb_swing jruby jruby+truffle jruby200.sh jruby.*
|
|
|
|
cd "$builddir/lib/ruby/stdlib"
|
|
rm -r win32 Win32API.rb
|
|
find ./ffi/platform -type d -mindepth 1 ! -name "$_arch-linux" -exec rm -r {} +
|
|
|
|
# Remove useless native binaries from JARs.
|
|
zip -qd jline/jline/*/jline-*.jar META-INF/native/*
|
|
zip -qd "$builddir"/lib/jruby.jar jni/*
|
|
}
|
|
|
|
build() {
|
|
return 0
|
|
}
|
|
|
|
package() {
|
|
depends="$pkgname-libs"
|
|
|
|
cd "$builddir"
|
|
|
|
install -m644 -D "$builddir"/lib/jruby.jar \
|
|
"$pkgdir"$_destdir/lib/jruby.jar || return 1
|
|
|
|
install -m755 -D "$srcdir"/jruby "$pkgdir"$_bindir/jruby || return 1
|
|
|
|
# Some of the below copied files will be moved to subpackages by split functions.
|
|
|
|
install -dm755 "$pkgdir"$_rubydir
|
|
cp -r lib/ruby/.mvn lib/ruby/gems lib/ruby/stdlib \
|
|
"$pkgdir"$_destdir/lib/ruby/ || return 1
|
|
|
|
cp bin/* "$pkgdir"$_bindir/ || return 1
|
|
|
|
install -dm755 "$pkgdir"/usr/bin
|
|
local file; for file in jgem jirb jruby jrubyc; do
|
|
ln -sf $_bindir/$file "$pkgdir"/usr/bin/$file || return 1
|
|
done
|
|
|
|
install -m644 -D COPYING \
|
|
"$pkgdir/usr/share/licenses/$pkgname"/COPYING
|
|
}
|
|
|
|
irb() {
|
|
pkgdesc="Interactive Ruby console"
|
|
depends="$pkgname $pkgname-readline"
|
|
|
|
_mvgem irb
|
|
_mv $_bindir/irb usr/bin/jirb
|
|
}
|
|
|
|
maven() {
|
|
pkgdesc="JRuby wrapper for Maven 3"
|
|
depends="$pkgname maven>=3.3.3"
|
|
|
|
local file; for file in maven/ maven.rb ruby-maven.rb ruby_maven.rb; do
|
|
_mv $_stdlibdir/$file || return 1
|
|
done
|
|
|
|
_mv $_rubydir/.mvn || return 1
|
|
ln -sf /usr/share/java/maven-3 "$subpkgdir"$_rubydir/maven-home
|
|
}
|
|
|
|
minitest() {
|
|
pkgdesc="Ruby testing tool supporting TDD, BDD, mocking, and benchmarking"
|
|
depends="$pkgname"
|
|
|
|
_mvgem minitest
|
|
}
|
|
|
|
rake() {
|
|
pkgdesc="Ruby based make-like utility."
|
|
depends="$pkgname"
|
|
|
|
_mvgem rake || return 1
|
|
_mv $_bindir/rake
|
|
}
|
|
|
|
rdoc() {
|
|
pkgdesc="Ruby documentation tool"
|
|
depends="$pkgname $pkgname-irb"
|
|
|
|
_mvgem rdoc || return 1
|
|
_mv $_bindir/rdoc $_bindir/ri
|
|
}
|
|
|
|
readline() {
|
|
pkgdesc="Readline support for JRuby"
|
|
depends="$pkgname java-jansi-native"
|
|
|
|
_mv $_stdlibdir/jline || return 1
|
|
mv "$pkgdir"$_stdlibdir/readline* "$subpkgdir"$_stdlibdir/
|
|
}
|
|
|
|
testunit() {
|
|
pkgdesc="Legacy xUnit family unit testing framework for Ruby."
|
|
depends="$pkgname"
|
|
|
|
_mvgem test-unit || return 1
|
|
_mv $_stdlibdir/test $_bindir/testrb
|
|
}
|
|
|
|
libs() {
|
|
pkgdesc="JRuby's standard libraries"
|
|
depends=""
|
|
|
|
_mv $_rubydir/gems $_rubydir/stdlib
|
|
}
|
|
|
|
|
|
_mv() {
|
|
local path; for path in "$@"; do
|
|
mkdir -p "$subpkgdir"/${path%/*}
|
|
mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/ || return 1
|
|
done
|
|
}
|
|
|
|
_mvgem() {
|
|
local name="$1"
|
|
local file
|
|
|
|
cd "$pkgdir"
|
|
for file in ./$_stdlibdir/$name.rb \
|
|
./$_stdlibdir/$name \
|
|
./$_gemdir/gems/$name-* \
|
|
./$_gemdir/specifications/default/$name-*; do
|
|
[ -e "$pkgdir"/$file ] || continue
|
|
_mv "$file"
|
|
done
|
|
}
|
|
|
|
md5sums="1d2dc649cbacbe26418ef3ba421018b1 jruby-bin-9.0.5.0.tar.gz
|
|
7e6d8f6168f4a69109ea9d14e3e9f874 jruby"
|
|
sha256sums="9ef392bd859690c9a838f6475040345e0c512f7fcc0b37c809a91cf671f5daf3 jruby-bin-9.0.5.0.tar.gz
|
|
51794ecefb0d8fd3084ffb10867e2feffc9ccfadb45021af68520cf75fe58590 jruby"
|
|
sha512sums="7c61cf010fbae571cd6ba334aefcfd917f6de8224d014026297b840d0b890523e94b2fea20f154c82c25c4f9d5992b9481fb569646a7023e5ddb42db1baf5f34 jruby-bin-9.0.5.0.tar.gz
|
|
d0f19f791274f00f5b35a5e9a5dfe885d58330ebd3fd959f7325e545357497609403b5646988651265d08ac7a08cfec8b88ec260da558bcb0db623d9b8ce5a20 jruby"
|