diff options
Diffstat (limited to 'system/ruby/APKBUILD')
-rw-r--r-- | system/ruby/APKBUILD | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/system/ruby/APKBUILD b/system/ruby/APKBUILD new file mode 100644 index 000000000..b6547468f --- /dev/null +++ b/system/ruby/APKBUILD @@ -0,0 +1,315 @@ +# Contributor: Carlo Landmeter <clandmeter@gmail.com> +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +# +# 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 +# 2.4.3-r0: +# - CVE-2017-17405 +# 2.5.1-r0: +# - CVE-2017-17742 +# - CVE-2018-6914 +# - CVE-2018-8777 +# - CVE-2018-8778 +# - CVE-2018-8779 +# - CVE-2018-8780 +# +pkgname=ruby +pkgver=2.5.1 +_abiver="${pkgver%.*}.0" +pkgrel=0 +pkgdesc="An object-oriented language for quick and easy programming" +url="http://www.ruby-lang.org/" +arch="all" +license="Ruby AND BSD-2-Clause" +depends="ca-certificates" +depends_dev="gmp-dev" +makedepends="$depends_dev zlib-dev openssl-dev db-dev libedit-dev + libffi-dev coreutils yaml-dev linux-headers autoconf" +install="$pkgname.post-upgrade" +subpackages="$pkgname-doc $pkgname-dev + $pkgname-bigdecimal + $pkgname-did_you_mean::noarch + $pkgname-etc + $pkgname-fiddle + $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-sdbm + $pkgname-test-unit:test_unit:noarch + $pkgname-webrick::noarch + $pkgname-xmlrpc::noarch + $pkgname-libs + $pkgname-full::noarch + " +source="https://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/$pkgname-$pkgver.tar.xz + rubygems-avoid-platform-specific-gems.patch + test_insns-lower-recursion-depth.patch" +replaces="ruby-gems" + +_gemdir="/usr/lib/ruby/gems/$_abiver" +_rubydir="/usr/lib/ruby/$_abiver" +_chost="${CHOST/-foxkit-/-}" + +case "$CARCH" in + x86 | pmmx) _arch="i386";; + *) _arch="$CARCH";; +esac + +_bundled_gems="" +for _i in $subpackages; do + case "$_i" in + *-dev | *-doc | *-libs | *-full:*) continue;; + *) _bundled_gems="$_bundled_gems ${_i%%:*}";; + esac +done + +prepare() { + default_prepare + + cd "$builddir" + 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" + 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 +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + + make DESTDIR="$pkgdir" install + + install -m 644 -D COPYING \ + "$pkgdir"/usr/share/licenses/$pkgname/COPYING + + rm -R "$pkgdir"$_gemdir/cache/* + + 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 + rm -r "$pkgdir"/usr/local + fi +} + +bigdecimal() { + pkgdesc="Ruby arbitrary-precision floating point decimal arithmetic" + license="Ruby" + depends="$pkgname-libs" + + _mvgem bigdecimal +} + +did_you_mean() { + pkgdesc="Did you mean? experience in Ruby" + license="MIT" + depends="$pkgname-libs" + + _mvgem did_you_mean +} + +etc() { + pkgdesc="Provides access to information typically stored in UNIX /etc directory" + license="BSD-2-Clause" + depends="" + + _mvgem etc +} + +fiddle() { + pkgdesc="A libffi wrapper for Ruby" + license="BSD-2-Clause" + depends="" + + _mvgem fiddle +} + +io_console() { + pkgdesc="Ruby simple console IO library" + license="BSD-2-Clause" + depends="" + + _mvgem io-console + _mv $_rubydir/io \ + $_rubydir/$_chost/io/console.so +} + +irb() { + pkgdesc="The Interactive Ruby" + replaces="$pkgname" + depends="$pkgname" + + cd "$pkgdir" + _mv usr/bin/irb \ + usr/lib/ruby/$_abiver/irb* +} + +json() { + pkgdesc="JSON implementation as a Ruby extension in C" + license="Ruby" + depends="" + + _mvgem json +} + +minitest() { + pkgdesc="Ruby suite of testing facilities" + license="MIT" + depends="$pkgname" + + _mvgem minitest +} + +net_telnet() { + pkgdesc="Telnet client functionality for Ruby" + depends="$pkgname-libs" + + _mvgem net-telnet +} + +power_assert() { + pkgdesc="Power Assert for Ruby" + depends="$pkgname-libs" + + _mvgem power_assert +} + +rake() { + pkgdesc="Ruby based make-like utility" + license="MIT" + depends="$pkgname" + + _mvgem rake + _mv usr/bin/rake +} + +rdoc() { + pkgdesc="Ruby documentation tool" + license="Ruby" + depends="$pkgname $pkgname-json $pkgname-io-console" + + _mvgem rdoc + _mv usr/bin/ri \ + usr/bin/rdoc +} + +sdbm() { + pkgdesc="A simple file-based key-value store with String keys and values for Ruby" + license="BSD-2-Clause" + depends="" + + _mvgem sdbm +} + +test_unit() { + pkgdesc="An xUnit family unit testing framework for Ruby" + license="Ruby PSFL" + depends="$pkgname $pkgname-power_assert" + + _mvgem test-unit +} + +webrick() { + pkgdesc="HTTP server toolkit for Ruby" + license="BSD-2-Clause" + depends="$pkgname" + + _mvgem webrick +} + +xmlrpc() { + pkgdesc="XMLRPC library for Ruby" + license="Ruby" + depends="$pkgname-libs" + + _mvgem xmlrpc +} + +libs() { + pkgdesc="Libraries necessary to run Ruby" + depends="" + + mkdir -p "$subpkgdir"/usr + mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ +} + +full() { + pkgdesc="Ruby with all bundled gems" + depends="ruby $_bundled_gems" + + mkdir -p "$subpkgdir" +} + +_mv() { + local i; for i in "$@"; do + mkdir -p "$subpkgdir"/${i%/*} + mv "$pkgdir"/${i} "$subpkgdir"/${i%/*}/ + done +} + +_mvgem() { + cd "$pkgdir" + local path; for path in ./$_rubydir/${1}.rb \ + ./$_rubydir/${1} \ + ./$_rubydir/$_chost/${1} \ + ./$_rubydir/$_chost/${1}.so \ + ./$_gemdir/gems/${1}-* \ + ./$_gemdir/specifications/${1}-* \ + ./$_gemdir/specifications/default/${1}-* ; do + [ ! -e "$pkgdir/$path" ] || _mv "$path" + done +} + +sha512sums="31bacf58469953282cd5d8b51862dcf4b84dedb927c1871bc3fca32fc157fe49187631575a70838705fe246f4555647577a7ecc26894445a7d64de5503dc11b4 ruby-2.5.1.tar.xz +cfdc5ea3b2e2ea69c51f38e8e2180cb1dc27008ca55cc6301f142ebafdbab31c3379b3b6bba9ff543153876dd98ed2ad194df3255b7ea77a62e931c935f80538 rubygems-avoid-platform-specific-gems.patch +814fe6359505b70d8ff680adf22f20a74b4dbd3fecc9a63a6c2456ee9824257815929917b6df5394ed069a6869511b8c6dce5b95b4acbbb7867c1f3a975a0150 test_insns-lower-recursion-depth.patch" |