# Maintainer (Arch): Thomas Dziedzic # Contributor (Arch): Allan McRae # Contributor (Arch): John Proctor # Contributor (Arch): Jeramy Rutley # Maintainer: fauno # Contributor: Daniel Milewski # Contributor: André Silva # Contributor: Luke Shumaker # Rationale for inclusion in [libre]: Problematic license of # generator.c in bundled json extension. # # https://labs.parabola.nu/issues/674 # https://bugs.ruby-lang.org/issues/11844 # https://github.com/flori/json/issues/277 pkgname=(ruby ruby-docs) pkgver=2.4.1 _jsonver=2.0.2 pkgrel=3.parabola3 _srcrel=2 # increment this to rebuild the sourceball without bumping pkgver arch=(i686 x86_64 armv7h) url='http://www.ruby-lang.org/en/' license=(BSD2 custom) makedepends=(gdbm openssl libffi doxygen graphviz libyaml ttf-dejavu tk) options=(!emptydirs) source=(https://repo.parabola.nu/other/ruby-libre/ruby-${pkgver}-libre${_srcrel}.tar.gz gemrc) sha1sums=('ca7ca50c2e96200062afe081bf82c2cfaa3d18a1' 'dc536754c8fac2c3d82965c5a708cd8f79562d98') mkdepends=('ruby') # for 'gem build' mksource=(https://cache.ruby-lang.org/pub/ruby/${pkgver:0:3}/ruby-${pkgver}.tar.xz ruby-${pkgver}-remove-json-ext.patch ruby-${pkgver}-add-json_pure.patch json-${_jsonver}.tar.gz::https://github.com/flori/json/archive/v${_jsonver}.tar.gz json-${_jsonver}-ruby-${pkgver}-backports.patch json-${_jsonver}-libre.patch) mksha512sums=('e6fd290b6edd166348b70f0f1c56f7ed9d956c4c1eb91d97d0548041ca4196b9b75ec1ad35c745bdbfd4de195899093e7205d7f02b014ecf1c48e6f31cf25903' 'a7b6a5a6da4861ee51f3e9a9064c39ef1e5f2efb7d969f20f93028acfa0eed0264c336fce2eb1c6a3bdcdc595ef2cf3441b5db7cd4eebf5f24e5cb4a19a7d915' '29185acc7ea3ad48e805945e53717bfd8483a0581236eb49e63eb8e9f467ddcede38a606d089aa35e5fb73099a1ebdb253fc4c51a7933b900fc36918a43628b8' '405f09681808c108ec4a889f7628ede4aec15122c8a6848b5a7ec99a17bd8d72bf410152461164acd0f17d92a460732bf525c26a17b319b94dc940dccf6d3ebf' '1882619e98fa4b6cc2738c25ebf0ba957499f6b20f6837f23379b90700a6a751d0a9be85032f1c9e1d98f8d839784a3caa611266ad68e311dd3747cb0396b817' '53459f8971e87a3a5dfff3e72be5d27460a624eff06ccabb57bef1fd039c77d67f0f9eecdc03661c929d9eda9bff8f86383c9b16b15602a874bcf1914aecf633') mksource() { # Start with the vanilla version of json cd "$srcdir/json-${_jsonver}" # Apply changes made to it for the ruby distribution patch -p1 -i ../json-${_jsonver}-ruby-${pkgver}-backports.patch # Modify it so that 'json' doesn't try to load (non-free!) 'json/ext' rm -rf -- json.gemspec ext lib/json/ext* patch -p1 -i ../json-${_jsonver}-libre.patch # Now modify the ruby sources to include the json_pure lib instead # of the json ext cd "$srcdir/ruby-${pkgver}" # remove the json ext rm -rv ext/json test/json patch -p1 -i ../ruby-${pkgver}-remove-json-ext.patch # and insert the json_pure lib cp -r ../json-${_jsonver}/lib/* -t lib/ cp ../json-${_jsonver}/json_pure.gemspec -t lib/json/ cp -rT ../json-${_jsonver}/tests test/json patch -p1 -i ../ruby-${pkgver}-add-json_pure.patch # Clean up the original json sources cd "$srcdir" rm -rf "json-${_jsonver}" } build() { cd ruby-${pkgver} PKG_CONFIG=/usr/bin/pkg-config ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --sharedstatedir=/var/lib \ --libexecdir=/usr/lib/ruby \ --enable-shared \ --disable-rpath \ --with-dbm-type=gdbm_compat make } check() { cd ruby-${pkgver} make test } package_ruby() { pkgdesc='An object-oriented language for quick and easy programming' depends=(gdbm openssl libffi libyaml gmp zlib) optdepends=( 'ruby-docs: Ruby documentation' 'tk: for Ruby/TK' ) provides=(rubygems rake) conflicts=(rake) backup=(etc/gemrc) install=ruby.install cd ruby-${pkgver} make DESTDIR="${pkgdir}" install-nodoc install -D -m644 ${srcdir}/gemrc "${pkgdir}/etc/gemrc" install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby/LICENSE" install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby/BSDL" } package_ruby-docs() { pkgdesc='Documentation files for ruby' cd ruby-${pkgver} make DESTDIR="${pkgdir}" install-doc install-capi install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby-docs/LICENSE" install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby-docs/BSDL" # sometimes it installs ruby/capi/doxygen_objdb_XXXXXXX.tmp; # otherwise /usr/share/doc is empty rm -rf "$pkgdir/usr/share/doc" }