# Contributor (Arch): Thomas Dziedzic # Contributor (Arch): Allan McRae # Contributor (Arch): John Proctor # Contributor (Arch): Jeramy Rutley # Maintainer: Omar Vega Ramos # Contributor: Daniel Milewski # Contributor: André Silva # Contributor: Luke Shumaker # Contributor: fauno # 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.5.0 _jsonver=2.1.0 pkgrel=4.parabola1 _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) sha512sums=('c4c9927aeb493b181e95dcdd2e167de66cc855102acda59e4795b7fa974d2005878dbd019cb8380ad2bdf6c67c72990cf84260769ffa57c8033b975f455197a7' '8cafd14d414ee3c16aa94f79072bc6c100262f925dc1300e785846c3fabbbbffc1356b8e2223af5684e3340c55032d41231179ffa948bb12e01dbae0f4131911') 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}-libre.patch) mksha512sums=('55714a33d7661fe8b432f73c34fd67b49699f8b79df1cbd680a74899124d31111ab0f444677672aac1ba725820182940d485efb2db0bf2bc96737c5d40c54578' 'dbfd2517e87571e25fea832f50535e76c07972e15f48050ad7b08b04993c566ae7b5e8b1dd0e3cd65eb6161290026eaa71ff4528e98a92e37983066b4929cfb1' '303172561a4ba54515fddfd9ea7e0c833e550b0ae5e9f331956f178f8c5e20aa0e3c4036251ddfd04312769ef7d71d83fde0afe64f6fa8e9052ca5a294c62927' '6019cc26a0919e4d39ae0bf737b51cd9a474c74a55d25f6931ac04d61826bb810d063190a80a29810e57d7457d1a247acd82fd78de2c4c01acb7d73ee9fde603' '582017bd0f98878c0ac6f4625854422662d83ae6274a34762082a720052023780dceb17694b1f4e18d9a0dcbb525990341176eac31040aa63099a8b3a8d52071') mksource() { # Start with the vanilla version of json cd "$srcdir/json-${_jsonver}" # 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}" } prepare() { cd ruby-${pkgver} # remove bundled gems, we are going to ship them as separate packages rm -rf gems/ } build() { cd ruby-${pkgver} ./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) 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" gemver=${pkgver:0:3}.0 # remove bundled rdoc gem # we are doing it here instead of prepare() because rdoc used doring Ruby build process rm -r "${pkgdir}"/usr/lib/ruby/${gemver}/rdoc/ rm -r "${pkgdir}"/usr/bin/{rdoc,ri} rm -r "${pkgdir}"/usr/lib/ruby/gems/${gemver}/gems/* rm -r "${pkgdir}"/usr/lib/ruby/gems/${gemver}/specifications/default/rdoc-*.gemspec } 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" }