blob: e608e4637d309ed38411da6a781c79ccdeaae3a5 (
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
# 2.5.3-r2:
# - CVE-2019-8320
# - CVE-2019-8321
# - CVE-2019-8322
# - CVE-2019-8323
# - CVE-2019-8324
# - CVE-2019-8325
#
pkgname=ruby
pkgver=2.5.5
_abiver="${pkgver%.*}.0"
pkgrel=2
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-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
libedit-compat.patch
"
replaces="ruby-etc ruby-gems"
_gemdir="/usr/lib/ruby/gems/$_abiver"
_rubydir="/usr/lib/ruby/$_abiver"
_chost="$(printf '%s' "$CHOST" | sed 's/-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
autoconf
}
build() {
# -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() {
make test
}
package() {
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
}
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 ruby-io-console"
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="06b1d58536ebfacb7b56c1e6ed4b8ab816fadc4f48c845a452554cd262e7908199a30e5793f3cbaec2db56a8803aa5c6089abf7bf06c8fc47867e97870b7dfec ruby-2.5.5.tar.xz
20e7e5ee9936a93872fe1ad836dd1fde001fe4a0e7ed54c26727ad83da3ceb0e6247681d9dd4f98a69e1b0250703ed8fc682d44075780d5f47faa1d5f58d2bdb rubygems-avoid-platform-specific-gems.patch
814fe6359505b70d8ff680adf22f20a74b4dbd3fecc9a63a6c2456ee9824257815929917b6df5394ed069a6869511b8c6dce5b95b4acbbb7867c1f3a975a0150 test_insns-lower-recursion-depth.patch
e99b36940fa8fdd445d82738c70b8fc042cab042a4662cab156578aad2dac9673a96da22b6676aa36beac08070e92a7798c60d6f36eeb169216c4c51864ce2fe fix-get_main_stack.patch
6b88fccce164db1d8beb16adeffdd7effd077e9842b7f61deddebeb39afcf9b839192b68a43ce66a1ff0c9aeaacc4f13a0ee56184c22e822cd8b10a07a1c87b2 libedit-compat.patch"
|