2025-03-29 14:27:50 +00:00

154 lines
3.4 KiB
Plaintext

# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=jruby
pkgver=9.3.15.0
pkgrel=0
pkgdesc="An implementation of Ruby on the JVM"
url="https://www.jruby.org/"
# s390x: JVM crash
# others blocked by openjdk11
arch="noarch !x86 !armhf !armv7 !riscv64 !s390x"
license="EPL-2.0 OR GPL-2.0-or-later OR LGPL-2.1-or-later AND Ruby"
# libc6-compat: https://github.com/jnr/jnr-posix/issues/73
depends="$pkgname-libs=$pkgver-r$pkgrel
gcompat
java-jffi-native>=1.2
java-jre-headless
"
makedepends="openjdk11 zip"
subpackages="
$pkgname-irb
$pkgname-rake
$pkgname-rdoc
$pkgname-readline
$pkgname-webrick::noarch
$pkgname-libs
"
# jruby (launch script): https://github.com/jruby/jruby/pull/1860
source="https://s3.amazonaws.com/jruby.org/downloads/$pkgver/jruby-bin-$pkgver.tar.gz
jruby
"
_destdir="/usr/share/$pkgname"
_bindir="$_destdir/bin"
_rubydir="$_destdir/lib/ruby"
_gemdir="$_rubydir/gems/shared"
_stdlibdir="$_rubydir/stdlib"
prepare() {
cd "$builddir"/bin
rm ./*.bat ./*.dll ./*.exe
rm jirb_swing jruby jruby.*
cd "$builddir"/lib/ruby/stdlib
rm -r jruby/win32ole win32 win32ole.rb win32api.rb
# Remove useless native binaries from JARs.
zip -qd jline/jline/*/jline-*.jar META-INF/native/*
zip -qd "$builddir"/lib/jruby.jar jni/*
default_prepare
}
check() (
cd "$srcdir"
export JRUBY_HOME="$builddir"
sh jruby --version
sh jruby -e 'puts "Hello, world!"'
)
package() {
install -m644 -D "$builddir"/lib/jruby.jar \
"$pkgdir"$_destdir/lib/jruby.jar
install -m755 -D "$srcdir"/jruby "$pkgdir"$_bindir/jruby
# Some of the below copied files will be moved to subpackages by split functions.
install -dm755 "$pkgdir"$_rubydir
cp -r lib/ruby/gems lib/ruby/stdlib "$pkgdir"$_destdir/lib/ruby/
cp bin/* "$pkgdir"$_bindir/
install -dm755 "$pkgdir"/usr/bin
local file; for file in jgem jirb jruby jrubyc; do
ln -sf $_bindir/$file "$pkgdir"/usr/bin/$file
done
install -m644 -D COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
irb() {
pkgdesc="Interactive JRuby console"
depends="$pkgname $pkgname-readline"
_mvgem irb
_mv $_bindir/irb usr/bin/jirb
}
rake() {
pkgdesc="Ruby based make-like utility."
depends="$pkgname"
_mvgem rake
_mv $_bindir/rake
}
rdoc() {
pkgdesc="Ruby documentation tool"
depends="$pkgname $pkgname-irb"
_mvgem rdoc
_mv $_bindir/rdoc $_bindir/ri
}
readline() {
pkgdesc="Readline support for JRuby"
depends="$pkgname"
_mvgem jruby-readline
_mv $_stdlibdir/jline
mv "$pkgdir"$_stdlibdir/readline* "$subpkgdir"$_stdlibdir/
}
webrick() {
pkgdesc="HTTP server toolkit for JRuby"
depends="$pkgname"
_mvgem webrick
}
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%/*}/
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
}
sha512sums="
e41521ebf453d6b6a9de937556fcaa972c60268285d0af4a41bfb95aad790eb47dd507e182958ca6f4889a0e03eedee0fa4bbc58e3d0407a2b6ba64a8b87a21a jruby-bin-9.3.15.0.tar.gz
836a73b46b9ea107b3ab51da9fea73cecd8664b7d72c4024c491c67312e6c094c215aa9d22d1e3f9f2402816bc0200dd4060d1895f4ba28424228d6cdbac8a9d jruby
"