# Contributor: Carlo Landmeter # Maintainer: Jakub Jirutka # # secfixes: # 2.2.8-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 # setglobal pkgname = 'ruby2.2' setglobal _pkgname = 'ruby' setglobal _majorver = $(pkgname#ruby) setglobal pkgver = ""$_majorver.8"" setglobal _pkgver = $(pkgver/_/-) setglobal _abiver = ""$_majorver.0"" setglobal pkgrel = '0' setglobal pkgdesc = '"An object-oriented language for quick and easy programming'" setglobal url = '"http://www.ruby-lang.org/en/'" setglobal arch = '"all'" setglobal license = '"Ruby'" setglobal depends = ''"" setglobal depends_dev = '"gmp-dev'" setglobal makedepends = ""$depends_dev zlib-dev libressl-dev gdbm-dev db-dev readline-dev libffi-dev coreutils yaml-dev autoconf"" setglobal subpackages = ""$pkgname-doc $pkgname-dev $pkgname-irb::noarch $pkgname-rdoc::noarch $pkgname-rake::noarch $pkgname-bigdecimal::noarch $pkgname-io-console:io_console $pkgname-minitest::noarch $pkgname-json $pkgname-libs "" setglobal source = ""ftp://ftp.ruby-lang.org/pub/ruby/$(pkgver%.*)/$_pkgname-$_pkgver.tar.bz2"" setglobal options = '"!fhs'" setglobal builddir = ""$srcdir/$_pkgname-$_pkgver"" setglobal _gemdir = ""/usr/lib/ruby/gems/$_abiver"" setglobal _rubydir = ""/usr/lib/ruby/$_abiver"" setglobal _chost = $(CHOST/-alpine-/-) match $CARCH { with x86 setglobal _arch = '"i386'" with * setglobal _arch = $CARCH } proc prepare { default_prepare || return 1 cd $builddir autoconf } proc 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 \ --program-suffix=$_majorver \ --with-soname=$pkgname \ || return 1 make || return 1 make test } proc package { cd $builddir make DESTDIR="$pkgdir" install || return 1 if test -d "$pkgdir"/usr/local { local f=$[cd $pkgdir ; find usr/local -type f] if test -n $f { error "Found files in /usr/local:" echo $f return 1 } } install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING } proc rake { setglobal pkgdesc = '"Ruby based make-like utility'" setglobal depends = $pkgname _mvgem rake || return 1 _mv usr/bin/rake$_majorver } proc irb { setglobal pkgdesc = '"The Interactive Ruby'" setglobal replaces = $pkgname setglobal depends = $pkgname cd $pkgdir _mv usr/bin/irb$_majorver \ usr/lib/ruby/$_abiver/irb* } proc rdoc { setglobal pkgdesc = '"Ruby documentation tool'" setglobal depends = ""$pkgname $pkgname-json $pkgname-io-console"" _mvgem rdoc || return 1 _mv usr/bin/ri$_majorver \ usr/bin/rdoc$_majorver } proc bigdecimal { setglobal pkgdesc = '"Ruby arbitrary-precision floating point decimal arithmetic'" setglobal depends = $pkgname _mvgem bigdecimal } proc io_console { setglobal pkgdesc = '"Ruby simple console IO library'" setglobal depends = $pkgname _mvgem io-console _mv $_rubydir/io \ $_rubydir/$_chost/io/console.so } proc minitest { setglobal pkgdesc = '"Ruby suite of testing facilities'" setglobal depends = $pkgname _mvgem minitest } proc json { setglobal pkgdesc = '"JSON implementation as a Ruby extension in C'" setglobal depends = $pkgname _mvgem json } proc libs { setglobal pkgdesc = '"Libraries necessary to run Ruby'" setglobal depends = ''"" mkdir -p "$subpkgdir"/usr mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ } proc _mv { local i; for i in [@Argv] { mkdir -p "$subpkgdir"/$(i%/*) mv "$pkgdir"/$(i) "$subpkgdir"/$(i%/*)/ || return 1 } } proc _mvgem { cd $pkgdir local path; for path in [./$_rubydir/$(1).rb \ ./$_rubydir/$(1) \ ./$_rubydir/$_chost/$(1) \ ./$_gemdir/gems/$(1)-* \ ./$_gemdir/specifications/$(1)-* \ ./$_gemdir/specifications/default/$(1)-*] { test ! -e "$pkgdir/$path" || _mv $path } } setglobal sha512sums = '"aa1c65f76a51a57d9059a38a13a823112b53850a9e7d6f72c3f3e38d381412014521049f7065c1b00877501b3b554235135d0f308045c2a9da133c766f5b9e46 ruby-2.2.8.tar.bz2'"