[arch-commits] Commit in ruby-sinatra/trunk (PKGBUILD)

Andreas Schleifer segaja at gemini.archlinux.org
Sun Aug 14 16:51:58 UTC 2022


    Date: Sunday, August 14, 2022 @ 16:51:57
  Author: segaja
Revision: 1266069

upgpkg: ruby-sinatra 2.2.2-1; build split package for sinatra, sinatra-contrib and rack-protection

Modified:
  ruby-sinatra/trunk/PKGBUILD

----------+
 PKGBUILD |  179 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 149 insertions(+), 30 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-08-14 16:32:51 UTC (rev 1266068)
+++ PKGBUILD	2022-08-14 16:51:57 UTC (rev 1266069)
@@ -1,50 +1,169 @@
 # Maintainer: Tim Meusel <tim at bastelfreak.de>
+# Maintainer: Andreas 'Segaja' Schleifer <segaja at archlinux dot org>
 
-_gemname='sinatra'
-pkgname="ruby-${_gemname}"
-pkgver=2.2.0
+pkgname=(ruby-sinatra ruby-sinatra-contrib ruby-rack-protection)
+pkgver=2.2.2
 pkgrel=1
-pkgdesc='Classy web-development dressed in a DSL'
 arch=('any')
-url='https://github.com/sinatra/sinatra'
+url='https://sinatrarb.com/'
 license=('MIT')
-depends=('ruby' 'ruby-mustermann' 'ruby-rack' 'ruby-rack-protection' 'ruby-tilt')
-makedepends=('ruby-rake')
-checkdepends=('ruby-rspec' 'ruby-minitest' 'ruby-rack-test' 'ruby-activesupport' 'ruby-builder')
+makedepends=('ruby')
+#checkdepends=(
+#    'asciidoctor'
+#    'ruby-activesupport'
+#    'ruby-builder'
+#    'ruby-erubi'
+#    'ruby-kramdown'
+#    'ruby-maruku'
+#    'ruby-mustermann'
+#    'ruby-nokogiri'
+#    'ruby-rack'
+#    'ruby-rack-protection'
+#    'ruby-rack-test'
+#    'ruby-rake'
+#    'ruby-rdiscount'
+#    'ruby-rspec'
+#    'ruby-sass'
+#    'ruby-sinatra-contrib'
+#    'ruby-tilt'
+#    # ruby-sinatra - integration tests
+#    #'ruby-puma'
+#    #'ruby-thin'
+#    #'ruby-webrick'
+#)
 options=('!emptydirs')
-source=("${url}/archive/v${pkgver}/${_gemname}-v${pkgver}.tar.gz")
-sha512sums=('be9432a8efa93578accc836cd0fecca128e56989d8596f1b3d33d2d956e90acd80244b98473fff2adae13ed4a1e933c41e73c80755a6f3418a65cdf33c011145')
+source=("https://github.com/sinatra/sinatra/archive/v${pkgver}/sinatra-v${pkgver}.tar.gz")
+sha512sums=('e69a36738a7c1095968a343113ddba414ff685e941a8b55575e4b2ffa5a8e7394d874966d5532643cdfec997ac4c825c293185f6688c715006e37159eedd2be8')
 
 prepare() {
-  cd "${srcdir}/${_gemname}-${pkgver}"
-  # allow latest dependencies
-  sed --in-place 's|~>|>=|g' "${_gemname}.gemspec"
+  cd "sinatra-${pkgver}"
+
+  # update gemspec to allow newer version of the dependencies
+  sed --in-place --regexp-extended 's|~>|>=|g' sinatra.gemspec */*.gemspec
 }
 
 build() {
-  cd "${srcdir}/${_gemname}-${pkgver}"
-  gem build "${_gemname}.gemspec"
+  cd "sinatra-${pkgver}"
+
+  gem build sinatra.gemspec
+
+  (cd sinatra-contrib
+    gem build sinatra-contrib.gemspec
+  )
+
+  (cd rack-protection
+    gem build rack-protection.gemspec
+  )
 }
 
-check() {
-  cd "${srcdir}/${_gemname}-${pkgver}"
-  # tests currently don't pass because a few tools are missing in our repo
-  # cannot load such file -- coffee-script: skipping coffee tests
-  # cannot load such file -- creole: skipping creole tests
-  # cannot load such file -- erubi: skipping erubi tests
-  # cannot load such file -- erubis: skipping erubis tests
-  # cannot load such file -- haml: skipping haml tests
-  #rake spec
+#check() {
+#  cd "sinatra-${pkgver}"
+#
+#  # cannot load such file -- coffee-script: skipping coffee tests
+#  # cannot load such file -- creole: skipping creole tests
+#  # cannot load such file -- erubis: skipping erubis tests
+#  # cannot load such file -- haml: skipping haml tests
+#  # rainbows is not installed, skipping integration tests
+#  # rainbows is not installed, skipping integration tests
+#  # reel is not installed, skipping integration tests
+#  # HTTP is not installed, skipping integration tests
+#  # cannot load such file -- less: skipping less tests
+#  # cannot load such file -- liquid: skipping liquid tests
+#  # cannot load such file -- markaby: skipping markaby tests
+#  # cannot load such file -- pandoc-ruby: skipping markdown tests with Tilt::PandocTemplate
+#  # cannot load such file -- commonmarker: skipping markdown tests with Tilt::CommonMarkerTemplate
+#  # cannot load such file -- redcarpet: skipping markdown tests with Tilt::RedcarpetTemplate
+#  # cannot load such file -- bluecloth: skipping markdown tests with Tilt::BlueClothTemplate
+#  # cannot load such file -- wikicloth: skipping mediawiki tests
+#  # cannot load such file -- rabl: skipping rabl tests
+#  # cannot load such file -- radius: skipping radius tests
+#  # cannot load such file -- slim: skipping slim tests
+#  # cannot load such file -- stylus: skipping stylus tests
+#  # cannot load such file -- redcloth: skipping textile tests
+#  # cannot load such file -- wlang: skipping wlang tests
+#  # cannot load such file -- yajl: skipping yajl tests
+#  echo "sinatra"
+#  rake spec
+#
+#  # disabled as it requires hamlit
+#  #(cd sinatra-contrib
+#  #  echo "sinatra"
+#  #  rake spec
+#  #)
+#
+#  (cd rack-protection
+#    echo "rack-protection"
+#    rake spec
+#  )
+#}
+
+package_ruby-sinatra() {
+  pkgdesc='Classy web-development dressed in a DSL'
+  depends=('ruby' 'ruby-mustermann' 'ruby-rack' 'ruby-rack-protection' 'ruby-tilt')
+
+  _package "sinatra" "LICENSE"
 }
 
-package() {
-cd "${srcdir}/${_gemname}-${pkgver}"
+package_ruby-sinatra-contrib() {
+  pkgdesc='Collection of useful Sinatra extensions'
+  depends=('ruby' 'ruby-multi_json' 'ruby-mustermann' 'ruby-rack-protection' 'ruby-sinatra' 'ruby-tilt')
+
+  _package "sinatra-contrib" "LICENSE"
+}
+
+package_ruby-rack-protection() {
+  pkgdesc='Protect against typical web attacks, works with all Rack apps, including Rails'
+  depends=('ruby' 'ruby-rack')
+
+  _package "rack-protection" "License"
+}
+
+_package() {
   local _gemdir="$(gem env gemdir)"
-  gem install --verbose --ignore-dependencies --no-user-install --install-dir "${pkgdir}/${_gemdir}" --bindir "${pkgdir}/usr/bin" "${_gemname}-${pkgver}.gem"
+  local _gemname="${1}"
+  local _licensefile="${2}"
 
-  install -Dm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}/"
+  cd "sinatra-${pkgver}"
 
-  install -Dm 644 README.md RELEASING.md README.zh.md README.ru.md README.pt-pt.md README.pt-br.md README.malayalam.md README.ko.md README.ja.md README.hu.md README.fr.md README.es.md README.de.md MAINTENANCE.md CONTRIBUTING.md CHANGELOG.md AUTHORS.md -t "${pkgdir}/usr/share/doc/${pkgname}"
+  if [ "${_gemname}" != "sinatra" ]; then
+    cd "${_gemname}"
+  fi
 
-  rm -rf "${pkgdir}/${_gemdir}/cache"
+  gem install \
+    --local \
+    --verbose \
+    --ignore-dependencies \
+    --no-user-install \
+    --install-dir "${pkgdir}/${_gemdir}" \
+    --bindir "${pkgdir}/usr/bin" \
+    "${_gemname}-${pkgver}.gem"
+
+  # remove unrepreducible files
+  rm -frv \
+    "${pkgdir}/${_gemdir}/cache/" \
+    "${pkgdir}/${_gemdir}/gems/${_gemname}-${pkgver}/vendor/" \
+    "${pkgdir}/${_gemdir}/doc/${_gemname}-${pkgver}/ri/ext/"
+
+  find "${pkgdir}/${_gemdir}/gems/" \
+    -type f \
+    \( \
+      -iname "*.o" -o \
+      -iname "*.c" -o \
+      -iname "*.so" -o \
+      -iname "*.time" -o \
+      -iname "gem.build_complete" -o \
+      -iname "Makefile" \
+    \) \
+    -delete
+
+  find "${pkgdir}/${_gemdir}/extensions/" \
+    -type f \
+    \( \
+      -iname "mkmf.log" -o \
+      -iname "gem_make.out" \
+    \) \
+    -delete
+
+  install -Dm 644 "${_licensefile}" --target-directory "${pkgdir}/usr/share/licenses/ruby-${_gemname}/"
+  install -Dm 644 *.md --target-directory "${pkgdir}/usr/share/doc/ruby-${_gemname}"
 }



More information about the arch-commits mailing list