aboutsummaryrefslogblamecommitdiffstats
path: root/main/ruby/APKBUILD
blob: 943a313ab5523f10301d6c4d671fd0f0c2e009ba (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                     
                                                   
            
                 
                     
        
 
          
 

                                                                    
          
              

                                                                           
                                               
                                                   
                                                       
                                                        


                     
                     


                                                                                   
              
                    
 


                                                            

                                       

                                  

              
                 
    
 

                       
                                     




                                                     

 
         
                       
 




                                                                            

                                                   
                     
 


                                                       
                        
                      





                                                                            
                     

                                 
                               


                                           
                                                           
                                                                                   
                                  
                                 


                                    
                        
                             



                       
                                                  







                                                                

                                                                             

                   

 









                                                                   

                                          
                                                              
                                                
                                                                     




                                               



                                          
                                                              
                                                
                                                                     




                                                         


                                              
                     







                                      
                     







                                         
                     







                                                                            
                     







                                                
                                                           

 


                                                  
                     




                                                 
                  



                                              





                                                                                                                                                                     
# 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"