# Contributor: Carlo Landmeter # Maintainer: Jakub Jirutka pkgname=ruby2.2 _pkgname=ruby pkgver=2.2.5 _pkgver=${pkgver/_/-} _suffix=${pkgname#ruby} _abi=2.2.0 pkgrel=0 pkgdesc="An object-oriented language for quick and easy programming" url="http://www.ruby-lang.org/en/" arch="all" license="Ruby" depends="" depends_dev="gmp-dev" makedepends="$depends_dev zlib-dev openssl-dev gdbm-dev db-dev libedit-dev libffi-dev coreutils yaml-dev autoconf" subpackages="$pkgname-doc $pkgname-dev $pkgname-irb $pkgname-rdoc $pkgname-rake $pkgname-bigdecimal $pkgname-io-console:io_console $pkgname-minitest $pkgname-json $pkgname-libs " source="ftp://ftp.ruby-lang.org/pub/ruby/${pkgver%.*}/$_pkgname-$_pkgver.tar.bz2" options="!fhs" builddir="$srcdir/$_pkgname-$_pkgver" _gemdir="/usr/lib/ruby/gems/$_abi" _rubydir="/usr/lib/ruby/$_abi" _arch=$CARCH case $CARCH in x86) _arch=i386;; esac prepare() { cd "$builddir" default_prepare || return 1 autoconf } build() { cd "$builddir" # -fomit-frame-pointer makes ruby segfault, see gentoo bug #150413 # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. export CFLAGS="$CFLAGS -fno-omit-frame-pointer -fno-strict-aliasing" # ruby saves path to install. we want use $PATH export INSTALL=install # the configure script does not detect isnan/isinf as macros export ac_cv_func_isnan=yes export ac_cv_func_isinf=yes ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --with-sitedir='/usr/local/lib/site_ruby' \ --with-search-path="/usr/lib/site_ruby/\$(ruby_ver)/$_arch-linux" \ --enable-pthread \ --disable-rpath \ --enable-shared \ --with-mantype=man \ --program-suffix=$_suffix \ --with-soname=$pkgname \ || return 1 make || return 1 make test } package() { cd "$builddir" make DESTDIR="$pkgdir" install || return 1 if [ -d "$pkgdir"/usr/local ]; then local f=$(cd "$pkgdir" ; find usr/local -type f) if [ -n "$f" ]; then error "Found files in /usr/local:" echo "$f" return 1 fi fi install -Dm644 COPYING \ "${pkgdir}/usr/share/licenses/$pkgname"/COPYING } _mv() { local i for i in "$@"; do mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/${i} "$subpkgdir"/${i%/*}/ || return 1 done } _mvgem() { cd "$pkgdir" for i in ./$_rubydir/${1}.rb \ ./$_rubydir/${1} \ ./$_rubydir/${CHOST/-alpine-/-}/${1} \ ./$_gemdir/gems/${1}-* \ ./$_gemdir/specifications/default/${1}-* ; do [ -e "$pkgdir"/$i ] || continue _mv "$i" done } _rmgem() { cd "$pkgdir" for i in ./$_rubydir/${1}.rb \ ./$_rubydir/${1} \ ./$_rubydir/${CHOST/-alpine-/-}/${1} \ ./$_gemdir/gems/${1}-* \ ./$_gemdir/specifications/default/${1}-* ; do [ -e "$pkgdir"/$i ] && rm -r "$pkgdir/$i" done return 0 } rake() { pkgdesc="Ruby based make-like utility" depends="$pkgname" arch="noarch" _mvgem rake || return 1 _mv usr/bin/rake$_suffix } irb() { pkgdesc="The Interactive Ruby" replaces="$pkgname" depends="$pkgname" arch="noarch" cd "$pkgdir" _mv usr/bin/irb$_suffix \ usr/lib/ruby/$_abi/irb* } rdoc() { pkgdesc="Ruby documentation tool" depends="$pkgname $pkgname-json" arch="noarch" _mvgem rdoc || return 1 _mv usr/bin/ri$_suffix \ usr/bin/rdoc$_suffix } bigdecimal() { pkgdesc="Ruby arbitrary-precision floating point decimal arithmetic" depends="$pkgname" arch="noarch" _mvgem bigdecimal } io_console() { pkgdesc="Ruby simple console IO library" depends="$pkgname" _mvgem io-console _mv $_rubydir/io \ $_rubydir/${CHOST/-alpine-/-}/io/console.so } minitest() { pkgdesc="Ruby suite of testing facilities" depends="$pkgname" arch="noarch" _mvgem minitest } json() { pkgdesc="JSON implementation as a Ruby extension in C" depends="$pkgname" _mvgem json } libs() { pkgdesc="Libraries necessary to run Ruby" depends="" mkdir -p "$subpkgdir"/usr mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ } md5sums="0c7edd1ff3650c3b74da2efaf641bf34 ruby-2.2.5.tar.bz2" sha256sums="22f0c6f34c0024e0bcaaa8e6831b7c0041e1ef6120c781618b833bde29626700 ruby-2.2.5.tar.bz2" sha512sums="d3224814361c297bc36646c2e40f63c461ccf5a77fea5a3acdcb2c7ad1705bb229ac6abbd7ad1ae61cbe0fefd7a008c6102568d11366ad3107179302cd3e734e ruby-2.2.5.tar.bz2"