# Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka pkgname=jruby pkgver=9.2.0.0 pkgrel=0 pkgdesc="An implementation of Ruby on the JVM" url="http://jruby.org" arch="noarch" license="EPL GPL-2.0 LGPL-2.1 custom" # libc6-compat: https://github.com/jnr/jnr-posix/issues/73 depends="$pkgname-libs java-jffi-native>=1.2 libc6-compat>=1.1.12-r5 openjdk8-jre-base" makedepends="openjdk8 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/$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" prepare() { cd "$builddir"/bin rm *.bat *.dll *.exe rm jirb_swing jruby jruby200.sh jruby.* testrb cd "$builddir"/lib/ruby/stdlib rm -r win32 Win32API.rb # Remove useless native binaries from JARs. zip -qd jline/jline/*/jline-*.jar META-INF/native/* zip -qd "$builddir"/lib/jruby.jar jni/* } check() ( cd "$srcdir" export JRUBY_HOME="$builddir" sh jruby --version sh jruby -e 'puts "Hello, world!"' ) package() { cd "$builddir" 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 java-jansi-native" _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="79f5e8674089d2f6b260e033e3ceb4571f54cb5cedbca74ba76b52dd7cb30085a8c6c2676e9be57a8ecd9e962fbcb3682a8de38e1cdde2dc6e05bd179556edc3 jruby-bin-9.2.0.0.tar.gz 836a73b46b9ea107b3ab51da9fea73cecd8664b7d72c4024c491c67312e6c094c215aa9d22d1e3f9f2402816bc0200dd4060d1895f4ba28424228d6cdbac8a9d jruby"