blob: 18d9bf8d8755b59f4eca1b7ca2965f6b9ea0f97c (
plain) (
tree)
|
|
# 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
# 2.5.3-r0:
# - CVE-2018-16395
# - CVE-2018-16396
#
pkgname=ruby
pkgver=2.5.3
_abiver="${pkgver%.*}.0"
pkgrel=1
pkgdesc="An object-oriented language for quick and easy programming"
url="https://www.ruby-lang.org/"
arch="all"
license="Ruby AND BSD-2-Clause"
depends="ca-certificates"
depends_dev="ruby=$pkgver-r$pkgrel 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
fix-get_main_stack.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="6dcae0e8d0bacdb2cbde636e2030596308b5af53f2eb85d3adccb67b02e6f8f9751e8117d12f8484829fdd9d995f6e327f701d9b433bcf94f1f59d13a1fd7518 ruby-2.5.3.tar.xz
cfdc5ea3b2e2ea69c51f38e8e2180cb1dc27008ca55cc6301f142ebafdbab31c3379b3b6bba9ff543153876dd98ed2ad194df3255b7ea77a62e931c935f80538 rubygems-avoid-platform-specific-gems.patch
814fe6359505b70d8ff680adf22f20a74b4dbd3fecc9a63a6c2456ee9824257815929917b6df5394ed069a6869511b8c6dce5b95b4acbbb7867c1f3a975a0150 test_insns-lower-recursion-depth.patch
8d730f02f76e53799f1c220eb23e3d2305940bb31216a7ab1e42d3256149c0721c7d173cdbfe505023b1af2f5cb3faa233dcc1b5d560fa8f980c17c2d29a9d81 fix-get_main_stack.patch"
|