# Contributor: Carlo Landmeter # Contributor: Jakub Jirutka # Maintainer: Natanael Copa # # secfixes: # 2.4.2-r0: # - CVE-2017-0898 # - CVE-2017-10784 # - CVE-2017-14033 # - CVE-2017-14064 # - CVE-2017-0899 # - CVE-2017-0900 # - CVE-2017-0901 # - CVE-2017-0902 # setvar pkgname = 'ruby' setvar pkgver = '2.4.2' setvar _abiver = ""${pkgver%.*}.0"" setvar pkgrel = '0' setvar pkgdesc = ""An object-oriented language for quick and easy programming"" setvar url = ""http://www.ruby-lang.org/en/"" setvar arch = ""all"" setvar license = ""Ruby"" setvar depends = ""ca-certificates"" setvar depends_dev = ""gmp-dev"" setvar makedepends = ""$depends_dev zlib-dev libressl-dev gdbm-dev db-dev readline-dev libffi-dev coreutils yaml-dev linux-headers autoconf"" setvar subpackages = ""$pkgname-doc $pkgname-dev $pkgname-bigdecimal::noarch $pkgname-did_you_mean::noarch $pkgname-io-console:io_console $pkgname-irb::noarch $pkgname-json $pkgname-minitest::noarch $pkgname-net-telnet:net_telnet:noarch $pkgname-power_assert::noarch $pkgname-rake::noarch $pkgname-rdoc::noarch $pkgname-test-unit:test_unit:noarch $pkgname-xmlrpc::noarch $pkgname-libs "" setvar source = ""ftp://ftp.ruby-lang.org/pub/ruby/${pkgver%.*}/$pkgname-$pkgver.tar.bz2 rubygems-avoid-platform-specific-gems.patch"" setvar options = ""!fhs"" setvar replaces = ""ruby-gems"" setvar builddir = ""$srcdir/$pkgname-$pkgver"" setvar _gemdir = ""/usr/lib/ruby/gems/$_abiver"" setvar _rubydir = ""/usr/lib/ruby/$_abiver"" setvar _chost = "${CHOST/-alpine-/-}" case (CARCH) { x86 { setvar _arch = ""i386""} * { setvar _arch = "$CARCH"} } proc prepare { default_prepare cd $builddir autoconf } proc 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" export CPPFLAGS="$CPPFLAGS -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 make } proc check { cd $builddir make test } proc package { cd $builddir make DESTDIR="$pkgdir" install install -m 644 -D COPYING \ "$pkgdir"/usr/share/licenses/$pkgname/COPYING rm -R "$pkgdir"$_gemdir/cache/* # Remove bundled CA certificates. rm -R "$pkgdir"$_rubydir/rubygems/ssl_certs/*.pem || true if test -d "$pkgdir"/usr/local { local f=$(cd "$pkgdir" ; find usr/local -type f) if test -n $f { error "Found files in /usr/local:" echo $f return 1 } } } proc bigdecimal { setvar pkgdesc = ""Ruby arbitrary-precision floating point decimal arithmetic"" setvar depends = "$pkgname" _mvgem bigdecimal } proc did_you_mean { setvar pkgdesc = ""Did you mean? experience in Ruby"" setvar depends = "$pkgname" _mvgem did_you_mean } proc io_console { setvar pkgdesc = ""Ruby simple console IO library"" setvar depends = "$pkgname" _mvgem io-console _mv $_rubydir/io \ $_rubydir/$_chost/io/console.so } proc irb { setvar pkgdesc = ""The Interactive Ruby"" setvar replaces = "$pkgname" setvar depends = "$pkgname" cd $pkgdir _mv usr/bin/irb \ usr/lib/ruby/$_abiver/irb* } proc json { setvar pkgdesc = ""JSON implementation as a Ruby extension in C"" setvar depends = "$pkgname" _mvgem json } proc minitest { setvar pkgdesc = ""Ruby suite of testing facilities"" setvar depends = "$pkgname" _mvgem minitest } proc net_telnet { setvar pkgdesc = ""Telnet client functionality for Ruby"" setvar depends = "$pkgname" _mvgem net-telnet } proc power_assert { setvar pkgdesc = ""Power Assert for Ruby"" setvar depends = "$pkgname" _mvgem power_assert } proc rake { setvar pkgdesc = ""Ruby based make-like utility"" setvar depends = "$pkgname" _mvgem rake || return 1 _mv usr/bin/rake } proc rdoc { setvar pkgdesc = ""Ruby documentation tool"" setvar depends = ""$pkgname $pkgname-json $pkgname-io-console"" _mvgem rdoc || return 1 _mv usr/bin/ri \ usr/bin/rdoc } proc test_unit { setvar pkgdesc = ""An xUnit family unit testing framework for Ruby"" setvar depends = ""$pkgname $pkgname-power_assert"" _mvgem test-unit } proc xmlrpc { setvar pkgdesc = ""XMLRPC library for Ruby"" setvar depends = "$pkgname" _mvgem xmlrpc } proc libs { setvar pkgdesc = ""Libraries necessary to run Ruby"" setvar depends = """" mkdir -p "$subpkgdir"/usr mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ } proc _mv { local i; for i in "$@" { mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/${i} "$subpkgdir"/${i%/*}/ || return 1 } } proc _mvgem { cd $pkgdir local path; for path in ./$_rubydir/${1}.rb \ ./$_rubydir/${1} \ ./$_rubydir/$_chost/${1} \ ./$_gemdir/gems/${1}-* \ ./$_gemdir/specifications/${1}-* \ ./$_gemdir/specifications/default/${1}-* { test ! -e "$pkgdir/$path" || _mv $path } } setvar sha512sums = ""1a5302d2558089a6b91b815fff9b75a29e690f10861de5fdd48211f3f45025a70dad7495f216e6af9c62d72e69ed316f1a52fada704bdc7e6d8c094d141ea77c ruby-2.4.2.tar.bz2 cfdc5ea3b2e2ea69c51f38e8e2180cb1dc27008ca55cc6301f142ebafdbab31c3379b3b6bba9ff543153876dd98ed2ad194df3255b7ea77a62e931c935f80538 rubygems-avoid-platform-specific-gems.patch""