aboutsummaryrefslogblamecommitdiffstats
path: root/community/jruby/APKBUILD
blob: 6e5e899cfc0b7f1499fccedcef0604ae6c4897ef (plain) (tree)
1
2
3
4
5
6
7
8
9




                                                                      
              
        

                                              
                                           
                 

                                                          
                                                                                       
                          
                                                                       
                                                          

                                                                                        
              







                                   


                 
                   















                                                                                       
           









                                                                                         
                                                                                    







                                                                         
                                                                              









                                            































































                                                                                  
                                       


            
                                                                   
                                        
                                                                                                      
                                                                        
                                                                                                                                                                      
                                                                                                                                        
# 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.1.2.0
pkgrel=1
pkgdesc="An implementation of Ruby on the JVM"
url="http://jruby.org"
# openjdk8 is currently built only for x86*
arch="x86 x86_64"
license="EPL GPL-2 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-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"

case "$CARCH" in
arm*) _arch=arm;;
x86) _arch=i386;;
*) _arch="$CARCH";;
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/*
}

package() {
	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/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
}

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" || return 1
	done
}

md5sums="749bb917dde9666e365e12bbe776a5c2  jruby-bin-9.1.2.0.tar.gz
88df7ddd5bcd2ecec3ad526c6efd884d  jruby"
sha256sums="60598a465883ab4c933f805de4a7f280052bddc793b95735465619c03ca43f35  jruby-bin-9.1.2.0.tar.gz
0585f49f8712c3fea68ab3dca2b3939f6fe9a1a940cbdd3fc8462e25fd312cb1  jruby"
sha512sums="cc6b1e1a2907c128dd04edf9da11933a54bbed5e861ab6f0208505bca5aa2aa9d9acdd04bfde65824346fbb435584081fc8ec2e2e9a3aeea1bef8047915e0c61  jruby-bin-9.1.2.0.tar.gz
f2906a0136f437eaa119eae26d93b1a8e3411bc4ccee9453debf7a5d57bce767100b36a660db42184fd8398ff258455c3f2a8ef1082c907285b48d1b9b218bc2  jruby"