summaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm619
1 files changed, 341 insertions, 278 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e1b71a0a1a..5c8b7eba7a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -20,7 +20,7 @@
;;; Copyright © 2019 Collin J. Doering <[email protected]>
;;; Copyright © 2019 Diego N. Barbato <[email protected]>
;;; Copyright © 2019 Brett Gilio <[email protected]>
-;;; Copyright © 2020 Maxim Cournoyer <[email protected]>
+;;; Copyright © 2020, 2023 Maxim Cournoyer <[email protected]>
;;; Copyright © 2020, 2021 Nicolas Goaziou <[email protected]>
;;; Copyright © 2020 Michael Rohleder <[email protected]>
;;; Copyright © 2020 Holgr Peters <[email protected]>
@@ -81,6 +81,7 @@
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages serialization)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -190,10 +191,24 @@ a focus on simplicity and productivity.")
(native-inputs
(list autoconf))))
+(define ruby-2.7-fixed
+ (package
+ (inherit ruby-2.7)
+ (version "2.7.7")
+ (source
+ (origin
+ (inherit (package-source ruby-2.7))
+ (uri (string-append "https://cache.ruby-lang.org/pub/ruby/"
+ (version-major+minor version)
+ "/ruby-" version ".tar.gz"))
+ (sha256
+ (base32
+ "143vih5jzmrd2r5h94pa3qzml0ldii0qzs6g09jg6zqxd7djf0g1"))))))
+
(define-public ruby-3.0
(package
(inherit ruby-2.7)
- (version "3.0.4")
+ (version "3.0.5")
(source
(origin
(method url-fetch)
@@ -202,7 +217,7 @@ a focus on simplicity and productivity.")
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "1w7jpq3flnm007z5kj8kixgm8l4smb80w8ak4993a12j0irzq8lf"))))
+ "1pnxbdkkh2miq9nqfq2qscvh76nprzg0r620d9ckdzih42xbaz6g"))))
(inputs
(modify-inputs (package-inputs ruby-2.7)
(replace "openssl" openssl)))))
@@ -210,7 +225,7 @@ a focus on simplicity and productivity.")
(define-public ruby-3.1
(package
(inherit ruby-3.0)
- (version "3.1.2")
+ (version "3.1.3")
(source
(origin
(method url-fetch)
@@ -219,7 +234,24 @@ a focus on simplicity and productivity.")
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "0amzqczgvr51ilcqfgw0n41hrfanzi0wh8k6am3x5dm1z0bx046a"))))))
+ "06ipqz45qcs0y1273gk2gwslxwd7jgighz3mzbddzg16k29n3qaf"))))))
+
+(define-public ruby-3.2
+ (package
+ (inherit ruby-3.1)
+ (version "3.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+ (version-major+minor version)
+ "/ruby-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1d18ifvdbf21cncpany948vc2gjw3qa36ck9b4i97pg60rrmgx6j"))))
+ (inputs
+ (modify-inputs (package-inputs ruby-3.1)
+ (prepend libyaml)))))
(define-public ruby ruby-2.7)
@@ -1228,7 +1260,7 @@ syntax to the minimum while remaining clear.")
(define-public ruby-asciidoctor
(package
(name "ruby-asciidoctor")
- (version "2.0.16")
+ (version "2.0.18")
(source
(origin
(method git-fetch) ;the gem release lacks a Rakefile
@@ -1238,44 +1270,52 @@ syntax to the minimum while remaining clear.")
(file-name (git-file-name name version))
(sha256
(base32
- "086i17v9rxx0sxac26xp8c5v75jqba6rqjlk57x94qjvrh8vzyw2"))))
+ "1mpk3y69lqz9ywfkjmr40dm3mkabrnf92bb011qq1axj73yyrajv"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "test:all"
- #:phases
- (modify-phases %standard-phases
- (add-after 'extract-gemspec 'strip-version-requirements
- (lambda _
- (delete-file "Gemfile")
- (substitute* "asciidoctor.gemspec"
- (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
- (string-append stripped "\n")))
- #t)))))
- (native-inputs
- (list ruby-erubi
- ruby-erubis
- ruby-minitest
- ruby-nokogiri
- ruby-asciimath
+ (list
+ #:test-target "test:all"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'strip-version-requirements
+ (lambda _
+ (delete-file "Gemfile")
+ (substitute* "asciidoctor.gemspec"
+ (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
+ (string-append stripped "\n")))))
+ (add-after 'install 'install-man-page
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file (search-input-file
+ outputs (string-append "lib/ruby/vendor_ruby/"
+ "gems/asciidoctor-"
+ #$version
+ "/man/asciidoctor.1"))
+ (string-append #$output "/share/man/man1")))))))
+ (native-inputs
+ (list ruby-asciimath
ruby-coderay
ruby-cucumber
+ ruby-erubis
ruby-haml
+ ruby-minitest
+ ruby-nokogiri
+ ruby-open-uri-cached
ruby-rouge
ruby-rspec-expectations
ruby-simplecov
ruby-slim
- ruby-tilt))
+ ruby-tilt
+ ruby-erubi))
(synopsis "Converter from AsciiDoc content to other formats")
(description "Asciidoctor is a text processor and publishing toolchain for
-converting AsciiDoc content to HTML5, DocBook 5 (or 4.5), PDF, and other
-formats.")
+converting AsciiDoc content to HTML5, DocBook 5, PDF, and other formats.")
(home-page "https://asciidoctor.org")
(license license:expat)))
(define-public ruby-asciidoctor-multipage
(package
(name "ruby-asciidoctor-multipage")
- (version "0.0.15")
+ (version "0.0.16")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1284,7 +1324,7 @@ formats.")
(file-name (git-file-name name version))
(sha256
(base32
- "01qqkf00cp4sj82brz8kl02pjirydafwgld3z166slysiq78d1c5"))))
+ "0rnz7qxdw5qbi3qjplihhk468kv690njdi06yllgylc75k62ar1p"))))
(propagated-inputs (list ruby-asciidoctor ruby-slim))
(build-system ruby-build-system)
(arguments
@@ -1294,8 +1334,7 @@ formats.")
(delete-file "Gemfile")
(substitute* "asciidoctor-multipage.gemspec"
(("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
- (string-append stripped "
-"))) #t)))))
+ (string-append stripped "\n"))))))))
(synopsis
"Asciidoctor extension for generating HTML output using multiple pages")
(description
@@ -1308,14 +1347,14 @@ configurable levels.")
(define-public ruby-prawn-icon
(package
(name "ruby-prawn-icon")
- (version "2.5.0")
+ (version "3.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "prawn-icon" version))
(sha256
(base32
- "1ivkdf8rdf92hhy97vbmc2a4w97vcvqd58jcj4z9hz3hfsb1526w"))))
+ "049k42bqy4iq9hddf7jah83b6qr8ka63w1d63illh1mf4f4dihdk"))))
(build-system ruby-build-system)
(arguments
`(#:test-target "spec"
@@ -1325,8 +1364,7 @@ configurable levels.")
(substitute* '("Rakefile" "spec/spec_helper.rb")
((".*[Bb]undler.*") "")
(("^require 'rubocop.*") "")
- (("^RuboCop.*") ""))
- #t)))))
+ (("^RuboCop.*") "")))))))
(native-inputs
(list ruby-pdf-inspector ruby-pdf-reader ruby-rspec ruby-simplecov))
(propagated-inputs
@@ -1362,31 +1400,27 @@ Style Sheets (CSS) rule sets in Ruby.")
(define-public ruby-prawn-svg
(package
(name "ruby-prawn-svg")
- (version "0.30.0")
+ (version "0.32.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "prawn-svg" version))
(sha256
(base32
- "0df3l49cy3xpwi0b73hmi2ykbjg9kjwrvhk0k3z7qhh5ghmmrn77"))))
+ "0mbxzw7r7hv43db9422flc24ib9d8bdy1nasbni2h998jc5a5lb6"))))
(build-system ruby-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'do-not-use-bundler
(lambda _
(substitute* "spec/spec_helper.rb"
- ((".*[Bb]undler.*") ""))
- #t))
+ ((".*[Bb]undler.*") ""))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (invoke "rspec" "-Ilib" "-rprawn-svg"))
- #t)))))
- (native-inputs
- (list ruby-rspec))
- (propagated-inputs
- (list ruby-css-parser ruby-prawn))
+ (invoke "rspec" "-Ilib" "-rprawn-svg")))))))
+ (native-inputs (list ruby-rspec))
+ (propagated-inputs (list ruby-css-parser ruby-prawn))
(synopsis "SVG renderer for the Prawn PDF library")
(description "This library allows rendering Scalable Vector Graphics (SVG)
graphics directly into a Portable Document Format (PDF) document using the
@@ -1783,14 +1817,14 @@ system by Donald E. Knuth.")
(define-public ruby-open-uri-cached
(package
(name "ruby-open-uri-cached")
- (version "0.0.5")
+ (version "1.0.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "open-uri-cached" version))
(sha256
(base32
- "13xy2vhrgz9mdxhklw5fszhamsdxh8ysf3l40g92hqm4hm288wap"))))
+ "03v0if3jlvbclnd6jgjk94fbhf0h2fq1wxr0mbx7018sxzm0biwr"))))
(build-system ruby-build-system)
(arguments
`(#:tests? #f)) ;no test suite
@@ -1804,7 +1838,7 @@ web pages.")
(define-public ruby-asciidoctor-pdf
(package
(name "ruby-asciidoctor-pdf")
- (version "1.6.1")
+ (version "2.3.4")
(source
(origin
(method git-fetch) ;no test suite in the distributed gem
@@ -1814,52 +1848,49 @@ web pages.")
(file-name (git-file-name name version))
(sha256
(base32
- "1iyfy6n9d3rkyrfjmnnfb44c76mq1larmkv1x8n6p5nbm33wb9sf"))))
+ "07krhpj2ylz7h7hy8vg0js8yv828qxh3mkhx0bsrfh0p24xwbjrm"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "spec"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-failing-tests
- ;; Two tests module fail for unknown reasons, *only* when
- ;; ran in the build container (see:
- ;; https://github.com/asciidoctor/asciidoctor-pdf/issues/1725#issuecomment-658777965).
- (lambda _
- (delete-file "spec/audio_spec.rb")
- (delete-file "spec/video_spec.rb")))
- (add-after 'extract-gemspec 'strip-version-requirements
- (lambda _
- (substitute* "asciidoctor-pdf.gemspec"
- (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
- (string-append stripped "\n")))))
- ;; The tests rely on the Gem being installed, so move the check phase
- ;; after the install phase.
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key outputs tests? #:allow-other-keys)
- (let ((new-gem (string-append (assoc-ref outputs "out")
- "/lib/ruby/vendor_ruby")))
- (setenv "GEM_PATH"
- (string-append (getenv "GEM_PATH") ":" new-gem))
- (when tests?
- (invoke "rspec" "-t" "~visual" "-t" "~cli" "-t" "~network"))))))))
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'strip-version-requirements
+ (lambda _
+ (substitute* "asciidoctor-pdf.gemspec"
+ (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
+ (string-append stripped "\n")))))
+ ;; The tests rely on the Gem being installed, so move the check
+ ;; phase after the install phase.
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby"))
+ (when tests?
+ (invoke "rspec" "-t" "~visual" "-t" "~cli"
+ "-t" "~network")))))))
(native-inputs
- (list ruby-chunky-png ruby-coderay ruby-pdf-inspector ruby-rouge
+ (list ruby-chunky-png
+ ruby-coderay
+ ruby-pdf-inspector
+ ruby-rouge
ruby-rspec))
(propagated-inputs
- `(("ruby-asciidoctor" ,ruby-asciidoctor)
- ("ruby-concurrent-ruby" ,ruby-concurrent)
- ("ruby-open-uri-cached" ,ruby-open-uri-cached)
- ("ruby-prawn" ,ruby-prawn)
- ("ruby-prawn-icon" ,ruby-prawn-icon)
- ("ruby-prawn-svg" ,ruby-prawn-svg)
- ("ruby-prawn-table" ,ruby-prawn-table)
- ("ruby-prawn-templates" ,ruby-prawn-templates)
- ("ruby-safe-yaml" ,ruby-safe-yaml)
- ("ruby-text-hyphen" ,ruby-text-hyphen)
- ("ruby-thread-safe" ,ruby-thread-safe)
- ("ruby-treetop" ,ruby-treetop)
- ("ruby-ttfunk" ,ruby-ttfunk)))
+ (list ruby-asciidoctor
+ ruby-concurrent
+ ruby-open-uri-cached
+ ruby-prawn
+ ruby-prawn-icon
+ ruby-prawn-svg
+ ruby-prawn-table
+ ruby-prawn-templates
+ ruby-safe-yaml
+ ruby-text-hyphen
+ ruby-thread-safe
+ ruby-treetop
+ ruby-ttfunk))
(synopsis"AsciiDoc to Portable Document Format (PDF)} converter")
(description "Asciidoctor PDF is an extension for Asciidoctor that
converts AsciiDoc documents to Portable Document Format (PDF) using the Prawn
@@ -4291,25 +4322,37 @@ client protocol.")
(define-public ruby-minitest
(package
(name "ruby-minitest")
- (version "5.14.4")
+ (version "5.17.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "minitest" version))
(sha256
(base32
- "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"))))
+ "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0"))))
(build-system ruby-build-system)
- (native-inputs
- (list ruby-hoe))
+ (native-inputs (list ruby-hoe))
+ (home-page "https://github.com/seattlerb/minitest")
(synopsis "Small test suite library for Ruby")
(description "Minitest provides a complete suite of Ruby testing
facilities supporting TDD, BDD, mocking, and benchmarking.")
- (home-page "https://github.com/seattlerb/minitest")
(license license:expat)))
+(define-public ruby-minitest-5.14
+ (package
+ (inherit ruby-minitest)
+ (name "ruby-minitest-5.14")
+ (version "")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest" version))
+ (sha256
+ (base32
+ "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"))))))
+
;; This is the last release of Minitest 4, which is used by some packages.
(define-public ruby-minitest-4
- (package (inherit ruby-minitest)
+ (package
+ (inherit ruby-minitest)
(version "4.7.5")
(source (origin
(method url-fetch)
@@ -4321,16 +4364,14 @@ facilities supporting TDD, BDD, mocking, and benchmarking.")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-unsupported-method
- (lambda _
- (substitute* "Rakefile"
- (("self\\.rubyforge_name = .*") ""))
- #t))
+ (lambda _
+ (substitute* "Rakefile"
+ (("self\\.rubyforge_name = .*") ""))))
(add-after 'build 'exclude-failing-tests
(lambda _
;; Some tests are failing on Ruby 2.4 due to the deprecation of
;; Fixnum.
- (delete-file "test/minitest/test_minitest_spec.rb")
- #t)))))))
+ (delete-file "test/minitest/test_minitest_spec.rb"))))))))
(define-public ruby-minitest-around
(package
@@ -4996,58 +5037,52 @@ to reproduce user environments.")
(license license:expat)))
(define-public ruby-mini-portile-2
- (package (inherit ruby-mini-portile)
- (version "2.4.0")
+ (package
+ (inherit ruby-mini-portile)
+ (version "2.8.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "mini_portile2" version))
(sha256
(base32
- "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"))))))
+ "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp"))))))
(define-public ruby-nokogiri
(package
(name "ruby-nokogiri")
- (version "1.12.5")
+ (version "1.13.10")
(source (origin
(method url-fetch)
(uri (rubygems-uri "nokogiri" version))
(sha256
(base32
- "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b"))))
+ "0n79k78c5vdcyl0m3y3l5x9kxl6xf5lgriwi2vd665qmdkr01vnk"))))
(build-system ruby-build-system)
(arguments
;; Tests fail because Nokogiri can only test with an installed extension,
;; and also because many test framework dependencies are missing.
- `(#:tests? #f
- #:gem-flags (list "--" "--use-system-libraries"
- (string-append "--with-xml2-include="
- (assoc-ref %build-inputs "libxml2")
- "/include/libxml2" ))))
- (native-inputs
- (list ruby-hoe))
- (inputs
- (list zlib libxml2 libxslt))
- (propagated-inputs
- (list ruby-mini-portile-2.6.1 ruby-pkg-config))
+ (list
+ #:tests? #f
+ #:gem-flags #~(list "--" "--use-system-libraries"
+ (string-append "--with-xml2-include="
+ #$(this-package-input "libxml2")
+ "/include/libxml2" ))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'delete-mkmf.log
+ (lambda _
+ ;; This build log captures non-deterministic file names (see:
+ ;; https://github.com/sparklemotion/nokogiri/issues/2755).
+ (for-each delete-file (find-files #$output "^mkmf\\.log$")))))))
+ (native-inputs (list ruby-hoe))
+ (inputs (list zlib libxml2 libxslt))
+ (propagated-inputs (list ruby-mini-portile-2 ruby-pkg-config))
(synopsis "HTML, XML, SAX, and Reader parser for Ruby")
(description "Nokogiri (鋸) parses and searches XML/HTML, and features
both CSS3 selector and XPath 1.0 support.")
(home-page "http://www.nokogiri.org/")
(license license:expat)))
-;; nokogiri requires this version exactly.
-(define-public ruby-mini-portile-2.6.1
- (package
- (inherit ruby-mini-portile)
- (version "2.6.1")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "mini_portile2" version))
- (sha256
- (base32
- "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq"))))))
-
(define-public ruby-method-source
(package
(name "ruby-method-source")
@@ -6322,39 +6357,14 @@ multibyte strings, internationalization, time zones, and testing.")
"Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.")
(license license:expat)))
+;;; The ruby-nokogumbo package has been absorbed into ruby-nokogiri.
(define-public ruby-nokogumbo
- (package
- (name "ruby-nokogumbo")
- (version "2.0.2")
- (source (origin
- ;; We use the git reference, because there's no Rakefile in the
- ;; published gem and the tarball on Github is outdated.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/rubys/nokogumbo")
- (commit (string-append "v" version))))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1qg0iyw450lw6d0j1ghzg79a6l60nm1m4qmrzwzybi585861jxcx"))))
- (build-system ruby-build-system)
- (native-inputs
- (list ruby-rake-compiler))
- (inputs
- (list gumbo-parser))
- (propagated-inputs
- (list ruby-nokogiri))
- (synopsis "Ruby bindings to the Gumbo HTML5 parser")
- (description
- "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and
-access the result as a Nokogiri parsed document.")
- (home-page "https://github.com/rubys/nokogumbo/")
- (license license:asl2.0)))
+ (deprecated-package "ruby-nokogumbo" ruby-nokogiri))
(define-public ruby-sanitize
(package
(name "ruby-sanitize")
- (version "5.1.0")
+ (version "6.0.0")
(home-page "https://github.com/rgrove/sanitize")
(source (origin
(method git-fetch)
@@ -6364,15 +6374,12 @@ access the result as a Nokogiri parsed document.")
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
- (patches (search-patches "ruby-sanitize-system-libxml.patch"))
(sha256
(base32
- "0lj0q9yhjp0q0in5majkshnki07mw8m2vxgndx4m5na6232aszl0"))))
+ "0p1a28vx95vscy9xzzyyddzgb9496x42a5i2ka39cpxbl5f3gkl0"))))
(build-system ruby-build-system)
- (propagated-inputs
- (list ruby-crass ruby-nokogiri ruby-nokogumbo))
- (native-inputs
- (list ruby-minitest))
+ (propagated-inputs (list ruby-crass ruby-nokogiri))
+ (native-inputs (list ruby-minitest))
(synopsis "Whitelist-based HTML and CSS sanitizer")
(description
"Sanitize is a whitelist-based HTML and CSS sanitizer. Given a list of
@@ -6567,8 +6574,7 @@ with PostgreSQL 9.0 and later.")
;; provided.
(substitute* "minitest"
(("load File\\.expand_path\\(\"bundle\".*") "")
- (("require \"bundler/setup\".*") "")))
- #t))))
+ (("require \"bundler/setup\".*") "")))))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -6577,8 +6583,7 @@ with PostgreSQL 9.0 and later.")
(lambda _
(substitute* "test/commands/where_test.rb"
(("unless /cygwin\\|mswin\\|mingw\\|darwin/.*")
- "unless true\n"))
- #t))
+ "unless true\n"))))
(add-before 'build 'compile
(lambda _
(invoke "rake" "compile")))
@@ -6590,12 +6595,15 @@ with PostgreSQL 9.0 and later.")
"finish_inside_autoloaded_files"))))
(add-before 'check 'set-home
(lambda _
- (setenv "HOME" (getcwd))
- #t)))))
+ (setenv "HOME" (getcwd)))))))
(native-inputs
(list bundler
ruby-chandler
- ruby-minitest
+ ;; Using minitest 5.17 would cause 5 new bug failures. This is
+ ;; probably related to
+ ;; https://github.com/deivid-rodriguez/byebug/pull/837. Use
+ ;; minitest 5.14 until this is resolved and released.
+ ruby-minitest-5.14
ruby-pry
ruby-rake-compiler
ruby-rubocop
@@ -7643,40 +7651,32 @@ variable length integers (varint) in Ruby Protocol Buffers.")
(define-public ruby-ruby-prof
(package
(name "ruby-ruby-prof")
- (version "1.4.3")
+ (version "1.4.5")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "ruby-prof" version))
(sha256
(base32
- "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m"))))
+ "09n13bzm1p956z318xx1v7ikqdp2i971v7p3kwf3170axz368ccy"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
+ ;; FIXME: Investigate why the tests fail on i686-linux.
+ `(#:tests? ,(not (or (%current-target-system)
+ (target-x86-32?)))
+ #:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch-rakefile
- ;; This fixes the following error: "NameError: uninitialized
- ;; constant Bundler::GemHelper" (see:
- ;; https://github.com/ruby-prof/ruby-prof/issues/274).
- (lambda _
- (substitute* "Rakefile"
- ((".*require \"bundler/setup\".*" all)
- (string-append all " require 'bundler/gem_tasks'\n")))
- #t))
;; The LineNumbersTest test fails non-deterministically (see:
;; https://github.com/ruby-prof/ruby-prof/issues/276).
(add-after 'extract-gemspec 'delete-flaky-test
(lambda _
(delete-file "test/line_number_test.rb")
(substitute* "ruby-prof.gemspec"
- (("\"test/line_number_test\\.rb\"\\.freeze, ") ""))
- #t))
+ (("\"test/line_number_test\\.rb\"\\.freeze, ") ""))))
(add-before 'check 'compile
(lambda _
(invoke "rake" "compile"))))))
- (native-inputs
- (list bundler ruby-minitest ruby-rake-compiler ruby-rdoc))
+ (native-inputs (list bundler ruby-minitest ruby-rake-compiler ruby-rdoc))
(synopsis "Fast code profiler for Ruby")
(description "RubyProf is a fast code profiler for Ruby. Its features
include:
@@ -9665,40 +9665,30 @@ binary-to-text encoding. The main modern use of Ascii85 is in PostScript and
(define-public ruby-ttfunk
(package
(name "ruby-ttfunk")
- (version "1.6.2.1")
+ (version "1.7.0")
(source
(origin
(method git-fetch)
- ;; fetch from github as the gem does not contain testing code
+ ;; Fetch from github as the gem does not contain testing code.
(uri (git-reference
- (url "https://github.com/prawnpdf/ttfunk")
- (commit version)))
+ (url "https://github.com/prawnpdf/ttfunk")
+ (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0rsf4j6s97wbcnjbvmmh6xrc7imw4g9lrlcvn945wh400lc8r53z"))))
+ "1jyxn928mpyb1sikjd93s3v8fmh33232pq41ziaph513j7am6fi5"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "spec"
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'remove-ssh
- (lambda _
- ;; remove dependency on an ssh key pair that doesn't exist
- (substitute* "ttfunk.gemspec"
- (("spec.signing_key.*") ""))
- #t))
- (add-before 'check 'remove-rubocop
- (lambda _
- ;; remove rubocop as a dependency as not needed for testing
- (substitute* "ttfunk.gemspec"
- (("spec.add_development_dependency\\('rubocop'.*") ""))
- (substitute* "Rakefile"
- (("require 'rubocop/rake_task'") "")
- (("RuboCop::RakeTask.new") ""))
- #t)))))
- (native-inputs
- (list ruby-rspec ruby-yard bundler))
+ (list #:test-target "spec" ;avoid the rubocop target
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-missing-key-directive
+ ;; This seem to be a common problem in Ruby projects (see:
+ ;; https://github.com/prawnpdf/ttfunk/issues/99).
+ (lambda _
+ (substitute* "ttfunk.gemspec"
+ ((".*spec.signing_key.*") "")))))))
+ (native-inputs (list ruby-prawn-dev))
(synopsis "Font metrics parser for the Prawn PDF generator")
(description
"TTFunk is a TrueType font parser written in pure Ruby. It is used as
@@ -10815,13 +10805,13 @@ support the tests found in Prawn, a pure Ruby PDF generation library.")
(define-public ruby-pdf-core
(package
(name "ruby-pdf-core")
- (version "0.8.1")
+ (version "0.9.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "pdf-core" version))
(sha256
(base32
- "15d6m99bc8bbzlkcg13qfpjjzphfg5x905pjbfygvpcxsm8gnsvg"))))
+ "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg"))))
(build-system ruby-build-system)
(arguments
; No test target
@@ -10832,49 +10822,86 @@ support the tests found in Prawn, a pure Ruby PDF generation library.")
functionality from Prawn.")
(license license:gpl3+)))
+(define-public ruby-prawn-dev
+ (package
+ (name "ruby-prawn-dev")
+ (version "0.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "prawn-dev" version))
+ (sha256
+ (base32
+ "1hbzzgm0nwc6h8pyv8h9xx068bf676rispxcz4a0sm8nykz54z4x"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'drop-rubocop-dependency
+ ;; Rubocop depends on Prawn. Remove it to avoid the
+ ;; dependency cycle when using this tool to build
+ ;; Prawn components.
+ (lambda _
+ (substitute* "lib/prawn/dev/tasks.rb"
+ (("require 'rubocop/rake_task'")
+ "")
+ (("RuboCop::RakeTask.new")
+ ""))
+ (substitute* ".gemspec"
+ ((".*add.*dependency.*(rubocop|simplecov).*")
+ "")))))))
+ (propagated-inputs (list ruby-rake ruby-rspec ruby-yard))
+ (synopsis "Shared tools for Prawn projects development")
+ (description "Prawn-dev contains tools to aid the development of the
+various Prawn projects.")
+ (home-page "https://prawnpdf.org/")
+ (license license:expat)))
+
(define-public ruby-prawn
;; There hasn't been a new release since 2017/03/17.
- (let ((revision "1")
- (commit "d980247be8a00e7c59cd4e5785e3aa98f9856db1"))
- (package
- (name "ruby-prawn")
- (version (git-version "2.2.2" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/prawnpdf/prawn")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0mcmvf22h8il93yq48v9f31qpy27pvjxgv9172p0f4x9lqy0imwr"))))
- (build-system ruby-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'build 'drop-signing-key-requirement
- (lambda _
- (substitute* "prawn.gemspec"
- (("spec.signing_key =.*")
- "spec.signing_key = nil"))
- #t))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- ;; The Prawn manual test fails (see:
- ;; https://github.com/prawnpdf/prawn/issues/1163), so exclude
- ;; it.
- (invoke "rspec" "--exclude-pattern" "prawn_manual_spec.rb"))
- #t)))))
- (propagated-inputs
- (list ruby-pdf-core ruby-ttfunk))
- (native-inputs
- (list ruby-pdf-inspector ruby-prawn-manual-builder ruby-rspec
- ruby-simplecov ruby-yard))
- (home-page "https://prawnpdf.org/api-docs/2.0/")
- (synopsis "PDF generation for Ruby")
- (description "Prawn is a pure Ruby PDF generation library.")
- (license %prawn-project-licenses))))
+ (package
+ (name "ruby-prawn")
+ (version "2.4.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/prawnpdf/prawn")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h1gww12wcdscij0lnd21p9zcbwrwc3miini5ppannc2birmj9ja"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'drop-signing-key-requirement
+ (lambda _
+ (substitute* "prawn.gemspec"
+ (("spec.signing_key =.*")
+ "spec.signing_key = nil"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; The Prawn manual test fails (see:
+ ;; https://github.com/prawnpdf/prawn/issues/1163), so exclude
+ ;; it.
+ (invoke "rspec"
+ "--exclude-pattern" "prawn_manual_spec.rb")))))))
+ (propagated-inputs
+ (list ruby-matrix
+ ruby-pdf-core
+ ruby-ttfunk))
+ (native-inputs
+ (list ruby-pdf-inspector
+ ruby-prawn-manual-builder
+ ruby-prawn-dev))
+ (home-page "https://prawnpdf.org/api-docs/2.0/")
+ (synopsis "PDF generation for Ruby")
+ (description "Prawn is a pure Ruby PDF generation library.")
+ (license %prawn-project-licenses)))
(define-public ruby-prawn-table
(package
@@ -11153,6 +11180,31 @@ Ruby yaml library.")
(home-page "https://github.com/Pryz/yaml-lint")
(license license:expat)))
+(define-public ruby-matrix
+ (package
+ (name "ruby-matrix")
+ (version "0.4.2")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/matrix")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1asxr0jzh39lk5f8a9wm5avykrcy0v2wgd1bl3cszjczh99xy5k2"))))
+ (build-system ruby-build-system)
+ (synopsis "@code{Matrix} and @code{Vector} classes implementation for Ruby")
+ (description "This Ruby library provides an implementation of the
+@code{Matrix} and @code{Vector} classes. The @code{Matrix} class represents a
+mathematical matrix. It provides methods for creating matrices, operating on
+them arithmetically and algebraically, and determining their mathematical
+properties (trace, rank, inverse, determinant, eigensystem, etc.). The
+@code{Vector} class represents a mathematical vector, which is useful in its
+own right, and also constitutes a row or column of a @code{Matrix}.")
+ (home-page "https://github.com/ruby/matrix")
+ (license license:bsd-2)))
+
(define-public ruby-mercenary
(package
(name "ruby-mercenary")
@@ -11474,7 +11526,7 @@ serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
(lambda* (#:key inputs #:allow-other-keys)
(invoke "patch" "-p1" "--batch" "-i"
(assoc-ref inputs "test-patch")))))))
- (synopsis "framework-agnostic way to render logic-free views")
+ (synopsis "Framework-agnostic way to render logic-free views")
(description
"Mustache is a framework-agnostic way to render logic-free views.
Think of Mustache as a replacement for your views. Instead of views
@@ -11509,7 +11561,7 @@ characteristics.")
(define-public ruby-html-proofer
(package
(name "ruby-html-proofer")
- (version "3.18.5")
+ (version "5.0.3")
(source
(origin
(method git-fetch)
@@ -11519,22 +11571,35 @@ characteristics.")
(file-name (git-file-name name version))
(sha256
(base32
- "1pxb0fajb3l3lm7sqj548qwl7vx6sx3jy7n4cns9d4lqx7s9r9xb"))))
+ "01ksss3ikppc45z2q33bx8bb9785bqlp1rdqascaqg9mhs392adk"))))
(build-system ruby-build-system)
(arguments
- `(;; FIXME: Tests depend on rubocop-standard.
- #:tests? #f))
- (native-inputs
- (list ruby-awesome-print
- ruby-redcarpet
- ruby-rspec
- ruby-rubocop
- ruby-rubocop-performance
- ruby-pry-byebug))
+ (list
+ ;; Tests require vcr, which is under the Hippocratic license, which is
+ ;; not a free software license (see:
+ ;; https://www.gnu.org/licenses/license-list.html#hippocratic).
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (substitute* "html-proofer.gemspec"
+ (("required_ruby_version = \\[\">= 3.1\"")
+ "required_ruby_version = [\">= 2.6\""))))
+ (replace 'replace-git-ls-files
+ (lambda _
+ ;; The html-proofer.gemspec file contains 'all_files = %x(git
+ ;; ls-files -z).split("\x0")', but the original phase matches on
+ ;; `git ls-files -z`.
+ ;; TODO: Improve ruby-build-system patterns on core-updates.
+ (substitute* "html-proofer.gemspec"
+ (("git ls-files -z")
+ "find . -type f -not -regex '.*\\.gem$' -print0 \
+| sort -z | cut -zc3-")))))))
(propagated-inputs
(list ruby-addressable
ruby-mercenary
- ruby-nokogumbo
+ ruby-nokogiri
ruby-parallel
ruby-rainbow
ruby-typhoeus
@@ -13265,23 +13330,21 @@ export/conversion to formats such as YAML, JSON, CSL, and XML (BibTeXML).")
(define-public ruby-unicode-scripts
(package
(name "ruby-unicode-scripts")
- (version "1.7.0")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "unicode-scripts" version))
(sha256
(base32
- "1k7kbfk806zam129bp7pdiqkfb5hn51x149irzvjhs4xf22m4yvi"))))
+ "0rl6mn908yryhrg8j3mmna54gnrid2nph2kym00lbz6jwdih2a1b"))))
(build-system ruby-build-system)
- (native-inputs
- (list ruby-minitest))
- (arguments
- (list #:test-target "spec"))
+ (native-inputs (list ruby-minitest))
+ (arguments (list #:test-target "spec"))
(home-page "https://github.com/janlelis/unicode-scripts")
(synopsis "Unicode script classification library")
- (description
- "This gem provides a simple interface for classifying Ruby strings using
-the Unicode @code{Script} and @code{Script_Extensions} properties.")
+ (description "This gem provides a simple interface for classifying Ruby
+strings using the Unicode @code{Script} and @code{Script_Extensions}
+properties.")
(license license:expat)))
(define-public ruby-citeproc
@@ -13580,15 +13643,15 @@ though the later has not yet been packaged for Guix.")
(define-public anystyle
(package
(name "anystyle")
- (version "1.3.1")
+ (version "1.3.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/inukshuk/anystyle-cli")
- (commit version)))
+ (commit (string-append "v" version))))
(sha256
(base32
- "1bazzms04cra8516q7vydmcm31yd0a7si1pxk4waffqy7lh0pksg"))
+ "0yigfyn0n255nc53nx40yqak11dm4fva46hx5db177jh7mnksjd6"))
(file-name (git-file-name name version))))
(build-system ruby-build-system)
(propagated-inputs