mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-27 03:22:12 +01:00
367 lines
8.2 KiB
Plaintext
367 lines
8.2 KiB
Plaintext
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
|
#
|
|
# secfixes:
|
|
# 2.6.5-r0:
|
|
# - CVE-2019-16255
|
|
# - CVE-2019-16254
|
|
# - CVE-2019-15845
|
|
# - CVE-2019-16201
|
|
# 2.5.2-r0:
|
|
# - CVE-2018-16395
|
|
# - CVE-2018-16396
|
|
# 2.5.1-r0:
|
|
# - CVE-2017-17742
|
|
# - CVE-2018-6914
|
|
# - CVE-2018-8777
|
|
# - CVE-2018-8778
|
|
# - CVE-2018-8779
|
|
# - CVE-2018-8780
|
|
# 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
|
|
#
|
|
pkgname=ruby
|
|
pkgver=2.6.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 BSD-2-Clause"
|
|
depends="ca-certificates"
|
|
depends_dev="$pkgname=$pkgver-r$pkgrel gmp-dev"
|
|
makedepends="$depends_dev zlib-dev openssl-dev gdbm-dev db-dev readline-dev
|
|
libffi-dev coreutils yaml-dev linux-headers autoconf"
|
|
install="$pkgname.post-upgrade"
|
|
subpackages="$pkgname-doc $pkgname-dev
|
|
$pkgname-bigdecimal
|
|
$pkgname-dbm
|
|
$pkgname-did_you_mean::noarch
|
|
$pkgname-etc
|
|
$pkgname-fiddle
|
|
$pkgname-gdbm
|
|
$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/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.gz
|
|
rubygems-avoid-platform-specific-gems.patch
|
|
test_insns-lower-recursion-depth.patch
|
|
fix-get_main_stack.patch
|
|
avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch
|
|
openssl-config-support-include-directive.patch
|
|
"
|
|
replaces="ruby-gems"
|
|
builddir="$srcdir/$pkgname-$pkgver"
|
|
|
|
_gemdir="/usr/lib/ruby/gems/$_abiver"
|
|
_rubydir="/usr/lib/ruby/$_abiver"
|
|
_chost="${CHOST/-alpine-/-}"
|
|
|
|
case "$CARCH" in
|
|
x86) _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"
|
|
|
|
# XXX: Fix broken symlinks pointing to nowhere.
|
|
rm tool/config.sub tool/config.guess
|
|
touch tool/config.sub tool/config.guess
|
|
update_config_sub
|
|
update_config_guess
|
|
|
|
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
|
|
|
|
# Remove bundled gem bundler; it's provided by a separate aport/package
|
|
# ruby-bundler.
|
|
subpkgdir=".trash" _mvgem bundler && rm -Rf .trash
|
|
rm usr/bin/bundle usr/bin/bundler
|
|
|
|
# Remove bundled CA certificates; they are provided by ca-certificates.
|
|
rm "$pkgdir"/$_rubydir/rubygems/ssl_certs/*/*.pem
|
|
rmdir "$pkgdir"/$_rubydir/rubygems/ssl_certs/* || true
|
|
|
|
rm -Rf "$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
|
|
}
|
|
|
|
dbm() {
|
|
pkgdesc="A Ruby wrapper for the UNIX-style Database Manager Library"
|
|
license="BSD-2-Clause"
|
|
depends=""
|
|
|
|
_mvgem dbm
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
gdbm() {
|
|
pkgdesc="Ruby extension for GNU dbm"
|
|
license="BSD-2-Clause"
|
|
depends=""
|
|
|
|
_mvgem gdbm
|
|
}
|
|
|
|
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"
|
|
_mvgem irb
|
|
_mv usr/bin/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"
|
|
# bundler is bundled since Ruby 2.6, so include it in ruby-full despite
|
|
# that it's provided by a seprate aport/package.
|
|
depends="ruby $_bundled_gems ruby-bundler"
|
|
|
|
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="7ab7a0cdaf4863152efc86dbcfada7f10ab3fe33590eee3b6ab7b26fc27835a8a0ded4ec02b58e9969175582a2be5410da3dc9f8694a3cd2db97708bd72773e1 ruby-2.6.5.tar.gz
|
|
cfdc5ea3b2e2ea69c51f38e8e2180cb1dc27008ca55cc6301f142ebafdbab31c3379b3b6bba9ff543153876dd98ed2ad194df3255b7ea77a62e931c935f80538 rubygems-avoid-platform-specific-gems.patch
|
|
814fe6359505b70d8ff680adf22f20a74b4dbd3fecc9a63a6c2456ee9824257815929917b6df5394ed069a6869511b8c6dce5b95b4acbbb7867c1f3a975a0150 test_insns-lower-recursion-depth.patch
|
|
8d730f02f76e53799f1c220eb23e3d2305940bb31216a7ab1e42d3256149c0721c7d173cdbfe505023b1af2f5cb3faa233dcc1b5d560fa8f980c17c2d29a9d81 fix-get_main_stack.patch
|
|
cc6acabcf8d237ba75309f7c3b5fbe6bd68b2e355d2c4a656a50dea6dda4ab8153db90399b23d301ee463d56274f629aa40b2958646122f71925b4e2e602304d avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch
|
|
a67813d7aa3553ed336f04b17461c5129546afb71a2a7cca6d1b1c860f8dd5839ca2f7695c971369f295aced3580687a28881ccd6c305f6dbdfe6b0ecf584d0e openssl-config-support-include-directive.patch"
|