Date: Thursday, September 22, 2022 @ 22:16:48
  Author: segaja
Revision: 1309119

upgpkg: ruby-rdoc 6.4.0-3: restructure stdlib to fit into ruby structure

Modified:
  ruby-rdoc/trunk/PKGBUILD

----------+
 PKGBUILD |   84 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 70 insertions(+), 14 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-09-22 22:02:08 UTC (rev 1309118)
+++ PKGBUILD    2022-09-22 22:16:48 UTC (rev 1309119)
@@ -1,22 +1,78 @@
 # Maintainer: Anatol Pomozov <[email protected]>
-# Contributor: Andreas 'Segaja' Schleifer <segaja at archlinux dot org>
+# Maintainer: Andreas 'Segaja' Schleifer <segaja at archlinux dot org>
 
-_gemname=rdoc
-pkgname=ruby-$_gemname
+_gemname='rdoc'
+pkgname="ruby-${_gemname}"
 pkgver=6.4.0
-pkgrel=2
+pkgrel=3
 pkgdesc='Command-line documentation generator for Ruby projects'
-arch=(any)
+arch=('any')
 url='https://ruby.github.io/rdoc/'
-license=(MIT)
-depends=(ruby ruby-psych)
-options=(!emptydirs)
-source=(https://rubygems.org/downloads/$_gemname-$pkgver.gem)
-noextract=($_gemname-$pkgver.gem)
-sha1sums=('a6e641cb08f8696b323975078eec614812aa2eb5')
+license=('RUBY')
+depends=('ruby' 'ruby-kpeg' 'ruby-psych')
+makedepends=('ruby-racc')
+options=('!emptydirs')
+source=("https://github.com/ruby/rdoc/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz";)
+sha512sums=('6c6a89245ac77abdeedee70327f97f8a9b8bb596c14848a95487ff19039864dd7a5c0f5b501fe2e7b187c671cfb205c1500359c7c203beb89211addaf3ac34f7')
 
+prepare() {
+  cd "${_gemname}-${pkgver}"
+
+  # update gemspec/Gemfile to allow newer version of the dependencies
+  sed --in-place --regexp-extended 's|~>|>=|g' "${_gemname}.gemspec"
+}
+
+build() {
+  cd "${_gemname}-${pkgver}"
+
+  # rake build - can't be used as it requires rubocop: 
https://github.com/ruby/rdoc/blob/v6.4.0/Rakefile#L99-L107
+  rake generate
+  gem build "${_gemname}.gemspec"
+
+  rake rdoc
+}
+
+check() {
+  cd "${_gemname}-${pkgver}"
+
+  rake normal_test
+  rake rubygems_test
+}
+
 package() {
-  local _gemdir="$(ruby -e'puts Gem.default_dir')"
-  gem install --ignore-dependencies --no-user-install --no-document -i 
"$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" $_gemname-$pkgver.gem
-  rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem"
+  cd "${_gemname}-${pkgver}"
+
+  local _gemdir="$(gem env gemdir)"
+  local _platform="$(gem env platform | cut -d':' -f2)"
+  local _extension_api_version="$(ruby -e 'puts Gem.extension_api_version')"
+
+  gem install \
+    --local \
+    --verbose \
+    --ignore-dependencies \
+    --no-user-install \
+    --install-dir "${pkgdir}/${_gemdir}" \
+    --bindir "${pkgdir}/usr/bin" \
+    "${_gemname}-${pkgver}.gem"
+
+  install --verbose --directory --mode=0755 \
+    "${pkgdir}/usr/lib/ruby/${_extension_api_version}/${_platform}" \
+    "${pkgdir}${_gemdir}/specifications/default"
+
+  mv --verbose 
"${pkgdir}${_gemdir}/specifications/${_gemname}-${pkgver}.gemspec" 
"${pkgdir}${_gemdir}/specifications/default/${_gemname}-${pkgver}.gemspec"
+  mv --verbose 
"${pkgdir}${_gemdir}/gems/${_gemname}-${pkgver}/lib/${_gemname}.rb" 
"${pkgdir}/usr/lib/ruby/${_extension_api_version}/${_gemname}.rb"
+  mv --verbose 
"${pkgdir}${_gemdir}/gems/${_gemname}-${pkgver}/lib/${_gemname}" 
"${pkgdir}/usr/lib/ruby/${_extension_api_version}/${_gemname}"
+
+  # remove unrepreducible files
+  rm --force --recursive --verbose \
+    "${pkgdir}${_gemdir}/cache/" \
+    "${pkgdir}${_gemdir}/build_info/" \
+    "${pkgdir}${_gemdir}/extensions/" \
+    
"${pkgdir}${_gemdir}/gems/${_gemname}-${pkgver}/"{.git*,bin,man,*.*,Gemfile,Rakefile}
 \
+    "${pkgdir}${_gemdir}/plugins/" \
+    "${pkgdir}${_gemdir}/doc/${_gemname}-${pkgver}/ri/ext/"
+
+  install --verbose -D --mode=0644 man/ri.1 --target-directory 
"${pkgdir}/usr/share/man/man1"
+  install --verbose -D --mode=0644 LEGAL.rdoc LICENSE.rdoc --target-directory 
"${pkgdir}/usr/share/licenses/${pkgname}"
+  install --verbose -D --mode=0644 *.md *.rdoc --target-directory 
"${pkgdir}/usr/share/doc/${pkgname}"
 }

Reply via email to