From a143dbf9d16961b113b00bf7f721097a64bea858 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sun, 2 Oct 2022 18:36:16 +0200 Subject: added a ruby-bootstrap --- build-support/ruby-bootstrap/PKGBUILD | 153 ++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 build-support/ruby-bootstrap/PKGBUILD (limited to 'build-support/ruby-bootstrap') diff --git a/build-support/ruby-bootstrap/PKGBUILD b/build-support/ruby-bootstrap/PKGBUILD new file mode 100644 index 00000000..7d0fa9b1 --- /dev/null +++ b/build-support/ruby-bootstrap/PKGBUILD @@ -0,0 +1,153 @@ +# Maintainer: Anatol Pomozov +# Maintainer: Andreas 'Segaja' Schleifer +# Maintainer: Tim Meusel +# Contributor: Thomas Dziedzic +# Contributor: Allan McRae +# Contributor: John Proctor +# Contributor: Jeramy Rutley + +pkgname=(ruby-bootstrap ruby-stdlib-bootstrap ruby-bundledgems-bootstrap) +pkgver=3.0.4 +pkgrel=9 +arch=(i486 i686 pentium4 x86_64) +url='https://www.ruby-lang.org/en/' +license=(BSD custom) +makedepends=(gdbm openssl libffi doxygen graphviz libyaml ttf-dejavu tk) +options=(debug !emptydirs !lto) # Disable LTO until fixes for https://bugs.ruby-lang.org/issues/18062 released +source=(https://cache.ruby-lang.org/pub/ruby/${pkgver:0:3}/ruby-${pkgver}.tar.xz) +sha512sums=('53bf7dd403b0c68af9691882ad8ed7422c8d1f496627428fb4c3caf0b0313715524b744c5f453aced2d49e16e55f3f45b46b9a77aa3097dbfcae7caa0208194b') + +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-bootstrap() { + pkgdesc='An object-oriented language for quick and easy programming' + depends=(gdbm openssl libffi libyaml libxcrypt gmp zlib rubygems ruby-stdlib ruby-bundledgems) + optdepends=( + 'ruby-docs: Ruby documentation' + 'tk: for Ruby/TK' + ) + provides=('ruby') + conflicts=('ruby') + + cd ruby-${pkgver} + + make DESTDIR="${pkgdir}" install-nodoc + + install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby/LICENSE" + install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby/BSDL" + + rubyver=${pkgver:0:3}.0 + + # remove rubygems as it shipped as a separate package + rm -r "${pkgdir}"/usr/lib/ruby/${rubyver}/{rubygems,rubygems.rb} + rm "${pkgdir}"/usr/bin/gem + + # remove bundler as it shipped as a separate package + rm -r "${pkgdir}"/usr/lib/ruby/${rubyver}/{bundler,bundler.rb} + rm "${pkgdir}"/usr/bin/{bundle,bundler} + + # remove bundled rdoc gem + rm -r "${pkgdir}"/usr/lib/ruby/${rubyver}/{rdoc,rdoc.rb} + rm "${pkgdir}"/usr/bin/{rdoc,ri} + rm "${pkgdir}"/usr/share/man/man1/ri.1 + + # remove irb as it is a separate package now + rm -r "${pkgdir}"/usr/lib/ruby/${rubyver}/{irb,irb.rb} + rm "${pkgdir}"/usr/bin/irb + rm "${pkgdir}"/usr/share/man/man1/irb.1 + + # remove other binaries that are shipped as separate packages + rm "${pkgdir}"/usr/bin/{rake,rbs,typeprof,erb,racc} + rm "${pkgdir}"/usr/share/man/man1/erb.1 + + # remove all bundled gems to avoid conflicts with ruby-* Arch packages + rm -r "${pkgdir}"/usr/lib/ruby/gems/${rubyver}/gems/* + rm "${pkgdir}"/usr/lib/ruby/gems/${rubyver}/specifications/*.gemspec + rm "${pkgdir}"/usr/lib/ruby/gems/${rubyver}/cache/*.gem + + # remove already packaged stdlib gems (needs to be as dependency in ruby-stdlib) + local stdlib_gems=( + abbrev + base64 + benchmark + bigdecimal + bundler + cgi + csv + date + delegate + did_you_mean + digest + drb + english + erb + etc + fcntl + fiddle + fileutils + find + forwardable + getoptlong + io-console + io-nonblock + io-wait + ipaddr + irb + json + logger + mutex_m + net-http + open-uri + psych + rdoc + reline + stringio + time + tmpdir + uri + ) + + for stdlib_gem in "${stdlib_gems[@]}"; do + rm -v "${pkgdir}"/usr/lib/ruby/gems/${rubyver}/specifications/default/${stdlib_gem}-*.gemspec + done +} + +package_ruby-stdlib-bootstrap() { + # upstream list of gems contained in stdlib ( https://github.com/ruby/ruby/tree/master/{ext,lib} ) + pkgdesc='A vast collection of classes and modules that you can require in your code for additional features' + provides=('ruby-stdlib') + conflicts=('ruby-stdlib') + + depends=( + ) +} + +package_ruby-bundledgems-bootstrap() { + # upstream list of bundled gems ( https://github.com/ruby/ruby/blob/master/gems/bundled_gems ) + pkgdesc='Ruby Gems (third-party libraries) that are installed by default when Ruby is installed' + provides=('ruby-bundledgems') + conflicts=('ruby-bundledgems') + + depends=( + ) +} -- cgit v1.2.3-70-g09d2