mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-12-26 11:52:25 +01:00
204 lines
4.6 KiB
Plaintext
204 lines
4.6 KiB
Plaintext
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
|
|
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
|
pkgname=ruby
|
|
pkgver=2.0.0_p481
|
|
_pkgver=${pkgver/_/-}
|
|
pkgrel=0
|
|
|
|
_abi=2.0.0
|
|
|
|
pkgdesc="An object-oriented language for quick and easy programming"
|
|
url="http://www.ruby-lang.org/en/"
|
|
arch="all"
|
|
license="Ruby"
|
|
depends=""
|
|
makedepends="zlib-dev openssl-dev libiconv-dev gdbm-dev db-dev readline-dev
|
|
libffi-dev coreutils yaml-dev autoconf"
|
|
subpackages="$pkgname-doc $pkgname-dev $pkgname-irb
|
|
$pkgname-rdoc $pkgname-rake $pkgname-bigdecimal
|
|
$pkgname-io-console:io_console $pkgname-minitest
|
|
$pkgname-libs
|
|
"
|
|
patches="
|
|
ruby-io.patch
|
|
"
|
|
source="ftp://ftp.ruby-lang.org/pub/ruby/${pkgver%.*}/${pkgname}-${_pkgver}.tar.bz2
|
|
$patches"
|
|
options="!fhs"
|
|
replaces="ruby-gems"
|
|
|
|
#
|
|
# maybe its a good idea to split dep libs to seperate pkg's.
|
|
#
|
|
|
|
_builddir="$srcdir/$pkgname-${_pkgver}"
|
|
_gemdir="/usr/lib/ruby/gems/$_abi"
|
|
_rubydir="/usr/lib/ruby/$_abi"
|
|
_arch=$CARCH
|
|
case $CARCH in
|
|
x86) _arch=i386;;
|
|
esac
|
|
|
|
prepare() {
|
|
cd "$_builddir"
|
|
update_config_sub || return 1
|
|
for i in $patches; do
|
|
msg $i
|
|
patch -p1 -i "$srcdir"/$i || return 1
|
|
done
|
|
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"
|
|
|
|
# turn off distcc/ccache
|
|
# http://bugs.alpinelinux.org/issues/show/1
|
|
# export CC=gcc
|
|
|
|
# ruby saves path to install. we want use $PATH
|
|
export INSTALL=install
|
|
|
|
case "$CLIBC" in
|
|
uclibc | musl)
|
|
# the configure script does not detect isnan/isinf as macros
|
|
export ac_cv_func_isnan=yes
|
|
export ac_cv_func_isinf=yes
|
|
;;
|
|
esac
|
|
|
|
./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 \
|
|
|| return 1
|
|
make || return 1
|
|
make test || return 1
|
|
}
|
|
|
|
package() {
|
|
cd "$_builddir"
|
|
make DESTDIR="$pkgdir" install || return 1
|
|
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
|
|
fi
|
|
install -Dm644 COPYING \
|
|
"${pkgdir}/usr/share/licenses/${pkgname}"/COPYING || return 1
|
|
# unbundle
|
|
_rmgem json
|
|
}
|
|
|
|
_mv() {
|
|
local i
|
|
for i in "$@"; do
|
|
mkdir -p "$subpkgdir"/${i%/*}
|
|
mv "$pkgdir"/${i} "$subpkgdir"/${i%/*}/ || return 1
|
|
done
|
|
}
|
|
|
|
_mvgem() {
|
|
cd "$pkgdir"
|
|
for i in ./$_rubydir/${1}.rb \
|
|
./$_rubydir/${1} \
|
|
./$_rubydir/${CHOST/-alpine-/-}/${1} \
|
|
./$_gemdir/gems/${1}-* \
|
|
./$_gemdir/specifications/default/${1}-* ; do
|
|
[ -e "$pkgdir"/$i ] || continue
|
|
_mv "$i"
|
|
done
|
|
}
|
|
|
|
_rmgem() {
|
|
cd "$pkgdir"
|
|
for i in ./$_rubydir/${1}.rb \
|
|
./$_rubydir/${1} \
|
|
./$_rubydir/${CHOST/-alpine-/-}/${1} \
|
|
./$_gemdir/gems/${1}-* \
|
|
./$_gemdir/specifications/default/${1}-* ; do
|
|
[ -e "$pkgdir"/$i ] && rm -r "$pkgdir/$i"
|
|
done
|
|
return 0
|
|
}
|
|
|
|
rake() {
|
|
pkgdesc="Ruby based make-like utility"
|
|
depends="ruby"
|
|
arch="noarch"
|
|
_mvgem rake || return 1
|
|
_mv usr/bin/rake
|
|
}
|
|
|
|
irb() {
|
|
pkgdesc="The Interactive Ruby"
|
|
replaces="ruby"
|
|
depends="ruby"
|
|
arch="noarch"
|
|
cd "$pkgdir"
|
|
_mv usr/bin/irb \
|
|
usr/lib/ruby/$_abi/irb*
|
|
}
|
|
|
|
rdoc() {
|
|
pkgdesc="Ruby documentation tool"
|
|
depends="ruby"
|
|
arch="noarch"
|
|
_mvgem rdoc || return 1
|
|
_mv usr/bin/ri \
|
|
usr/bin/rdoc
|
|
}
|
|
|
|
bigdecimal() {
|
|
pkgdesc="Ruby arbitrary-precision floating point decimal arithmetic"
|
|
depends="ruby"
|
|
arch="noarch"
|
|
_mvgem bigdecimal
|
|
}
|
|
|
|
io_console() {
|
|
pkgdesc="Ruby simple console IO library"
|
|
depends="ruby"
|
|
_mvgem io-console
|
|
_mv $_rubydir/io \
|
|
$_rubydir/${CHOST/-alpine-/-}/io/console.so
|
|
}
|
|
|
|
minitest() {
|
|
pkgdesc="Ruby suite of testing facilities"
|
|
depends="ruby"
|
|
arch="noarch"
|
|
_mvgem minitest
|
|
}
|
|
|
|
libs() {
|
|
pkgdesc="Libraries necessary to run Ruby"
|
|
depends=""
|
|
mkdir -p "$subpkgdir"/usr
|
|
mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
|
|
}
|
|
|
|
md5sums="ea406a8d415a1a5d8365596d4288f3da ruby-2.0.0-p481.tar.bz2
|
|
7a4d86c7bf1ddad97f1cde52d849202f ruby-io.patch"
|
|
sha256sums="0762dad7e96d8091bdf33b3e3176c2066fbf3dc09dfe85fbf40e74e83c63d8e2 ruby-2.0.0-p481.tar.bz2
|
|
f8822c378f94ecce7214c370703db74723e2b3ce9efa956840036b1ffd8f32e1 ruby-io.patch"
|
|
sha512sums="23d662b7cdc92f06161ea648505c156c7e88e86b226baa03fa3ec7c2177e052b0c9ccb95479873dc2ddd3642f58bd7b874fdce95b54d3212db57c3645c67a0de ruby-2.0.0-p481.tar.bz2
|
|
af001e5540e65e3a042d193a56cb46c3983de1c77ca89869406816561021480741b856996d252a97913fb882cb739949f6dbb6754790e54258b58a9d861be1ba ruby-io.patch"
|