From b34d6aea25c20c3d8c4170079d2ebea32c840961 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Fri, 5 Jan 2018 22:02:32 +0000 Subject: [PATCH] added community/ruby2.4 --- ...e-only-unsigned-long-for-rb_serial_t.patch | 24 +++++++ community/ruby2.4/PKGBUILD | 72 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 community/ruby2.4/0002-Use-only-unsigned-long-for-rb_serial_t.patch create mode 100644 community/ruby2.4/PKGBUILD diff --git a/community/ruby2.4/0002-Use-only-unsigned-long-for-rb_serial_t.patch b/community/ruby2.4/0002-Use-only-unsigned-long-for-rb_serial_t.patch new file mode 100644 index 000000000..1e1dd0781 --- /dev/null +++ b/community/ruby2.4/0002-Use-only-unsigned-long-for-rb_serial_t.patch @@ -0,0 +1,24 @@ +diff --git a/internal.h b/internal.h +index 40916a5..785be49 100644 +--- a/internal.h ++++ b/internal.h +@@ -250,16 +250,8 @@ struct rb_subclass_entry { + rb_subclass_entry_t *next; + }; + +-#if defined(HAVE_LONG_LONG) +-typedef unsigned LONG_LONG rb_serial_t; +-#define SERIALT2NUM ULL2NUM +-#elif defined(HAVE_UINT64_T) +-typedef uint64_t rb_serial_t; +-#define SERIALT2NUM SIZET2NUM +-#else + typedef unsigned long rb_serial_t; + #define SERIALT2NUM ULONG2NUM +-#endif + + struct rb_classext_struct { + struct st_table *iv_index_tbl; +-- +1.9.0 + diff --git a/community/ruby2.4/PKGBUILD b/community/ruby2.4/PKGBUILD new file mode 100644 index 000000000..1d7162530 --- /dev/null +++ b/community/ruby2.4/PKGBUILD @@ -0,0 +1,72 @@ +# Maintainer: Sven-Hendrik Haase +# Contributor: Sergey Shatunov +# Contributor: Jonne Haß +# Contributor: Thomas Dziedzic +# Contributor: Allan McRae +# Contributor: John Proctor +# Contributor: Jeramy Rutley + +# ALARM: Kevin Mihelich +# - patch to fix running ruby on v5 (#705) + +_rubyver=2.4 +pkgname=ruby2.4 +pkgver=${_rubyver}.3 +pkgdesc='An object-oriented language for quick and easy programming' +pkgrel=1 +arch=(x86_64) +url='http://www.ruby-lang.org/en/' +license=(BSD custom) +depends=(gdbm openssl libffi libyaml gmp zlib) +optdepends=('tk: for Ruby/TK') +makedepends=(doxygen graphviz ttf-dejavu tk) +options=(!emptydirs) +source=(https://cache.ruby-lang.org/pub/ruby/${pkgver:0:3}/ruby-${pkgver}.tar.xz + 0002-Use-only-unsigned-long-for-rb_serial_t.patch) +sha512sums=('8bcf60c994a96787da5d743c66f5609a5a6d834d6d61243cdea7fd059197c3b10da43c99e5649be85e2f2329eedcbb1dd76e89ce3ac586be9056348f7449ed09' + '5b3a73b66ed35eb25997109076ec3146ff5f7f843b2e39e7a15b32349c3b38c6035668e8b5d6dd94d97030dea52187e481e8ccdcb6bfc7a79bb12043a322711e') + +build() { + cd ruby-${pkgver} + + # fixes https://bugs.ruby-lang.org/issues/9507 + [[ $CARCH == 'arm' ]] && patch -Np1 -i ../0002-Use-only-unsigned-long-for-rb_serial_t.patch + + PKG_CONFIG=/usr/bin/pkg-config ./configure \ + --prefix=/opt/ruby${_rubyver} \ + --program-suffix=-${_rubyver} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --sharedstatedir=/var/lib \ + --libexecdir=/usr/lib/ruby \ + --enable-shared \ + --disable-rpath \ + --with-dbm-type=gdbm_compat + + make ruby +} + +check() { + cd ruby-${pkgver} + + make test +} + +package() { + cd ruby-${pkgver} + + make DESTDIR="${pkgdir}" install-nodoc + + install -dm755 $pkgdir/usr/bin + install -dm755 $pkgdir/usr/lib + + for i in erb irb rdoc ri ruby testrb rake gem; do + ln -s /opt/$pkgname/bin/$i-${_rubyver} $pkgdir/usr/bin/$i-${_rubyver} + ln -s /opt/$pkgname/bin/$i-${_rubyver} $pkgdir/opt/$pkgname/bin/$i + done + + ln -s /opt/$pkgname/lib/libruby.so.${_rubyver} $pkgdir/usr/lib/libruby.so.${_rubyver} + + install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE" + install -D -m644 BSDL "${pkgdir}/usr/share/licenses/$pkgname/BSDL" +}