aboutsummaryrefslogblamecommitdiffstats
path: root/main/ruby/APKBUILD
blob: c386ec5bdeeef42d3db3f36a92b019446648a413 (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.3.1
_pkgver=${pkgver/_/-}
pkgrel=1

_abi=2.3.0

pkgdesc="An object-oriented language for quick and easy programming"
url="http://www.ruby-lang.org/en/"
arch="all"
license="Ruby"
depends=""
depends_dev="gmp-dev"
makedepends="$depends_dev zlib-dev libressl-dev gdbm-dev db-dev libedit-dev
	libffi-dev coreutils yaml-dev linux-headers autoconf"
subpackages="$pkgname-doc $pkgname-dev $pkgname-irb
	$pkgname-rdoc $pkgname-rake $pkgname-bigdecimal
	$pkgname-io-console:io_console $pkgname-minitest
	$pkgname-json $pkgname-libs
	"
patches="
	"
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"
	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"
	export CPPFLAGS="$CPPFLAGS -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
}

_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 ruby-json"
	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
}

json() {
	pkgdesc="JSON implementation as a Ruby extension in C"
	depends=ruby
	_mvgem json
}

libs() {
	pkgdesc="Libraries necessary to run Ruby"
	depends=""
	mkdir -p "$subpkgdir"/usr
	mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
}

md5sums="c194281f63d7fcd816747fe78474be5e  ruby-2.3.1.tar.bz2"
sha256sums="4a7c5f52f205203ea0328ca8e1963a7a88cf1f7f0e246f857d595b209eac0a4d  ruby-2.3.1.tar.bz2"
sha512sums="a8659b96a3a481a3dbdbb6997eb18ff1f8cd926a9707a90d071e937315c21d372c89252f0d44732ae5007d2678fda8c8fbceafa4e4b4ff500d236fb796284d8d  ruby-2.3.1.tar.bz2"