[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