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.scm581
1 files changed, 312 insertions, 269 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a567f530a9..55520f7b1a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1,12 +1,12 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
-;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@@ -95,7 +95,7 @@
license:gpl2+
license:gpl3+))
-(define-public ruby
+(define-public ruby-2.6
(package
(name "ruby")
(version "2.6.5")
@@ -153,11 +153,11 @@ a focus on simplicity and productivity.")
(define-public ruby-2.7
(package
- (inherit ruby)
+ (inherit ruby-2.6)
(version "2.7.4")
(source
(origin
- (inherit (package-source ruby))
+ (inherit (package-source ruby-2.6))
(uri (string-append "https://cache.ruby-lang.org/pub/ruby/"
(version-major+minor version)
"/ruby-" version ".tar.gz"))
@@ -205,7 +205,7 @@ a focus on simplicity and productivity.")
(define-public ruby-2.5
(package
- (inherit ruby)
+ (inherit ruby-2.6)
(version "2.5.9")
(source
(origin
@@ -219,7 +219,7 @@ a focus on simplicity and productivity.")
(define-public ruby-2.4
(package
- (inherit ruby)
+ (inherit ruby-2.6)
(version "2.4.10")
(source
(origin
@@ -236,6 +236,8 @@ a focus on simplicity and productivity.")
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
#t))))))
+(define-public ruby ruby-2.7)
+
(define-public mruby
(package
(name "mruby")
@@ -1155,8 +1157,7 @@ structure. Supports custom object formatting via plugins.")
(modify-phases %standard-phases
(add-after 'unpack 'patch-pandoc-path
(lambda* (#:key inputs #:allow-other-keys)
- (let ((pandoc (string-append (assoc-ref inputs "pandoc")
- "/bin/pandoc")))
+ (let ((pandoc (search-input-file inputs "/bin/pandoc")))
(substitute* "lib/pandoc-ruby.rb"
(("@@pandoc_path = 'pandoc'")
(format #f "@@pandoc_path = '~a'" pandoc)))
@@ -1164,14 +1165,18 @@ structure. Supports custom object formatting via plugins.")
(("('|\")pandoc" _ quote)
(string-append quote pandoc))
(("\\^pandoc")
- ".*pandoc"))
- #t)))
+ ".*pandoc")))))
+ (add-after 'unpack 'adjust-tests
+ ;; The tests expect filenames with spaces. Because they don't have
+ ;; spaces the quotes around the output are dropped automatically.
+ (lambda _
+ (substitute* "test/test_pandoc_ruby.rb"
+ (("\\\\\"#\\{file\\.path\\}\\\\\"") "#{file.path}"))))
(add-after 'extract-gemspec 'remove-Gemfile.lock
(lambda _
(delete-file "Gemfile.lock")
(substitute* "pandoc-ruby.gemspec"
- (("Gemfile\\.lock") ""))
- #t)))))
+ (("Gemfile\\.lock") "")))))))
(native-inputs
`(("ruby-mocha" ,ruby-mocha)))
(inputs
@@ -1262,7 +1267,7 @@ syntax to the minimum while remaining clear.")
(define-public ruby-asciidoctor
(package
(name "ruby-asciidoctor")
- (version "2.0.10")
+ (version "2.0.16")
(source
(origin
(method git-fetch) ;the gem release lacks a Rakefile
@@ -1272,20 +1277,12 @@ syntax to the minimum while remaining clear.")
(file-name (git-file-name name version))
(sha256
(base32
- "0jaxpnsdnx3qyjw5p2lsx1swny12q1i2vxw2kgdp4vlsyjv95z95"))))
+ "086i17v9rxx0sxac26xp8c5v75jqba6rqjlk57x94qjvrh8vzyw2"))))
(build-system ruby-build-system)
(arguments
`(#:test-target "test:all"
#:phases
(modify-phases %standard-phases
- (replace 'replace-git-ls-files
- (lambda _
- ;; TODO: Remove after the fix of using 'cut' to better mimic the
- ;; git ls-files output is merged in ruby-build-system.
- (substitute* "asciidoctor.gemspec"
- (("`git ls-files -z`")
- "`find . -type f -print0 |sort -z|cut -zc3-`"))
- #t))
(add-after 'extract-gemspec 'strip-version-requirements
(lambda _
(delete-file "Gemfile")
@@ -1294,7 +1291,8 @@ syntax to the minimum while remaining clear.")
(string-append stripped "\n")))
#t)))))
(native-inputs
- `(("ruby-erubis" ,ruby-erubis)
+ `(("ruby-erubi" ,ruby-erubi)
+ ("ruby-erubis" ,ruby-erubis)
("ruby-minitest" ,ruby-minitest)
("ruby-nokogiri" ,ruby-nokogiri)
("ruby-asciimath" ,ruby-asciimath)
@@ -1484,17 +1482,7 @@ loader for the file type associated with a filename extension, and it augments
"1dmk94z6ivhrz5hsq68vl5vgydhkz89n394rha1ymddw3rymbfcv"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "spec"
- #:phases
- (modify-phases %standard-phases
- (replace 'replace-git-ls-files
- (lambda _
- ;; TODO: Remove after the fix of using 'cut' to better mimic the
- ;; git ls-files output is merged in ruby-build-system.
- (substitute* "treetop.gemspec"
- (("`git ls-files -z`")
- "`find . -type f -print0 |sort -z|cut -zc3-`"))
- #t)))))
+ `(#:test-target "spec"))
(native-inputs
`(("ruby-activesupport" ,ruby-activesupport)
("ruby-rr" ,ruby-rr)
@@ -1717,15 +1705,6 @@ only what they care about.")
(lambda _
(delete-file "Gemfile")
(delete-file "Gemfile.lock")
- #t))
- (replace 'replace-git-ls-files
- (lambda _
- ;; TODO: Remove after the fix of using 'cut' to better mimic the
- ;; git ls-files output is merged in ruby-build-system.
- (substitute* "standard.gemspec"
- (("`git ls-files -z`")
- "`find . -type f -not -regex '.*\\.gem$' -print0 \
-|sort -z|cut -zc3-`"))
#t)))))
(native-inputs
`(("ruby-gimme" ,ruby-gimme)
@@ -1767,14 +1746,6 @@ to save time in the following ways:
(lambda _
(substitute* (find-files "." "\\.rb$")
(("require.*bundler/setup.*") ""))
- #t))
- (replace 'replace-git-ls-files
- (lambda _
- ;; TODO: Remove after the fix of using 'cut' to better mimic the
- ;; git ls-files output is merged in ruby-build-system.
- (substitute* "chunky_png.gemspec"
- (("`git ls-files`")
- "`find . -type f -not -regex '.*\\.gem$' |sort |cut -c3-`"))
#t)))))
(native-inputs
`(("bundler" ,bundler)
@@ -1860,85 +1831,69 @@ web pages.")
(license license:expat)))
(define-public ruby-asciidoctor-pdf
- ;; Use the latest commit, as the last tag doesn't build with the
- ;; latest Ruby dependencies in Guix.
- (let ((revision "1")
- (commit "d257440df895d1595a3825ef58b32e4b290ba1c3"))
- (package
- (name "ruby-asciidoctor-pdf")
- (version (git-version "1.5.3" revision commit))
- (source
- (origin
- (method git-fetch) ;no test suite in the distributed gem
- (uri (git-reference
- (url "https://github.com/asciidoctor/asciidoctor-pdf")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1563d11ghzsrsg4inwfwj6b9hb5sk5b429f49fwq5qg3sq76kgjj"))))
- (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")
- #t))
- (add-after 'extract-gemspec 'strip-version-requirements
- (lambda _
- (substitute* "asciidoctor-pdf.gemspec"
- (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
- (string-append stripped "\n")))
- #t))
- (replace 'replace-git-ls-files
- ;; TODO: Remove after the fix of using 'cut' to better mimic the
- ;; git ls-files output is merged in ruby-build-system.
- (lambda _
- (substitute* "asciidoctor-pdf.gemspec"
- (("`git ls-files -z`")
- "`find . -type f -not -regex '.*\\.gem$' -print0 \
-|sort -z|cut -zc3-`"))
- #t))
- ;; 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"))
- #t))))))
- (native-inputs
- `(("ruby-chunky-png" ,ruby-chunky-png)
- ("ruby-coderay" ,ruby-coderay)
- ("ruby-pdf-inspector" ,ruby-pdf-inspector)
- ("ruby-rouge" ,ruby-rouge)
- ("ruby-rspec" ,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)))
- (synopsis"AsciiDoc to Portable Document Format (PDF)} converter")
- (description "Asciidoctor PDF is an extension for Asciidoctor that
+ (package
+ (name "ruby-asciidoctor-pdf")
+ (version "1.6.1")
+ (source
+ (origin
+ (method git-fetch) ;no test suite in the distributed gem
+ (uri (git-reference
+ (url "https://github.com/asciidoctor/asciidoctor-pdf")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1iyfy6n9d3rkyrfjmnnfb44c76mq1larmkv1x8n6p5nbm33wb9sf"))))
+ (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"))))))))
+ (native-inputs
+ `(("ruby-chunky-png" ,ruby-chunky-png)
+ ("ruby-coderay" ,ruby-coderay)
+ ("ruby-pdf-inspector" ,ruby-pdf-inspector)
+ ("ruby-rouge" ,ruby-rouge)
+ ("ruby-rspec" ,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)))
+ (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
PDF library. It has features such as:
@itemize
@@ -1961,13 +1916,13 @@ PDF library. It has features such as:
@item Custom TrueType (TTF) fonts
@item Double-sided printing mode (margins alternate on recto and verso pages)
@end itemize")
- (home-page "https://asciidoctor.org/docs/asciidoctor-pdf")
- (license license:expat))))
+ (home-page "https://asciidoctor.org/docs/asciidoctor-pdf")
+ (license license:expat)))
(define-public ruby-ast
(package
(name "ruby-ast")
- (version "2.4.1")
+ (version "2.4.2")
(source
(origin
(method git-fetch) ;no test included in gem from v2.4.1
@@ -1977,7 +1932,7 @@ PDF library. It has features such as:
(file-name (git-file-name name version))
(sha256
(base32
- "0k8vya256chimy473g818gim06m5rjgh6mz5sc5g8xz3csh3rysi"))))
+ "0vm94yml8rknr7z034vg6s3fpx6lml2prz9fn3hr67cx0143bb4h"))))
(build-system ruby-build-system)
(arguments
'(#:phases
@@ -1989,24 +1944,25 @@ PDF library. It has features such as:
(("Coveralls::SimpleCov::Formatter") ""))
#t))
(add-after 'extract-gemspec 'remove-unnecessary-requirements
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(substitute* "ast.gemspec"
((".*coveralls.*") "\n")
(("%q<rest-client>.*") "%q<rest-client>.freeze, [\">= 0\"])\n")
(("%q<mime-types>.*") "%q<mime-types>.freeze, [\">= 0\"])\n")
- (("%q<rake>.*") "%q<rake>.freeze, [\">= 0\"])\n"))
+ (("%q<rake>.*") "%q<rake>.freeze, [\">= 0\"])\n")
+ (("12\\.3") "13.0"))
#t)))))
(native-inputs
`(("bundler" ,bundler)
- ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-bacon" ,ruby-bacon)
+ ("ruby-bacon-colored-output" ,ruby-bacon-colored-output)
("ruby-json-pure" ,ruby-json-pure)
- ("ruby-mime-times" ,ruby-mime-types)
- ("ruby-yard" ,ruby-yard)
("ruby-kramdown" ,ruby-kramdown)
+ ("ruby-mime-types" ,ruby-mime-types)
+ ("ruby-racc" ,ruby-racc)
("ruby-rest-client" ,ruby-rest-client)
- ("ruby-bacon" ,ruby-bacon)
- ("ruby-bacon-colored-output" ,ruby-bacon-colored-output)
- ("ruby-racc" ,ruby-racc)))
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-yard" ,ruby-yard)))
(synopsis "Library for working with Abstract Syntax Trees")
(description
"@code{ast} is a Ruby library for working with Abstract Syntax Trees.
@@ -2129,8 +2085,6 @@ value is found.")
(invoke "ruby" "-Ilib" "-Itest" "-rrubygems" file))
(find-files "test" ".*rb$")))
#t)))))
- (propagated-inputs
- `(("ruby-rexml" ,ruby-rexml)))
(synopsis "Simple JSON and XML parsing for Ruby")
(description
"@code{crack} provides really simple JSON and XML parsing, extracted from
@@ -3780,13 +3734,13 @@ temporary files and directories during tests.")
(define-public ruby-test-unit
(package
(name "ruby-test-unit")
- (version "3.2.5")
+ (version "3.4.4")
(source (origin
(method url-fetch)
(uri (rubygems-uri "test-unit" version))
(sha256
(base32
- "05bx36fw01iqz0xqhvjfrwjgnj1zx3b2vn6w1fzp19rchd7zqc52"))))
+ "15isy7vhppbfd0032klirj9gxp65ygkzjdwrmm28xpirlcsk6qpd"))))
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-power-assert" ,ruby-power-assert)))
@@ -4349,7 +4303,7 @@ number, support for interrupted tests, better backtraces, and more.")
(description
"Mocha is a mocking and stubbing library with JMock/SchMock syntax, which
allows mocking and stubbing of methods on real (non-mock) classes.")
- (home-page "https://mocha.jamesmead.org")
+ (home-page "https://mocha.jamesmead.org/")
;; Mocha can be used with either license at the users choice.
(license (list license:expat license:ruby))))
@@ -4429,13 +4383,13 @@ client protocol.")
(define-public ruby-minitest
(package
(name "ruby-minitest")
- (version "5.12.2")
+ (version "5.14.4")
(source (origin
(method url-fetch)
(uri (rubygems-uri "minitest" version))
(sha256
(base32
- "0zjm24aiz42i9n37mcw8lydd7n0y7wfk27by06jx77ypcld3qvkw"))))
+ "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"))))
(build-system ruby-build-system)
(native-inputs
`(("ruby-hoe" ,ruby-hoe)))
@@ -4653,7 +4607,8 @@ MiniTest @code{Object#stub} with a global @code{stub} method.")
"1hbq9jk904xkz868yha1bqcm6azm7kmjsll2k4pn2nrcib508h2a"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
+ `(#:tests? #f ; Test suite has bitrotted.
+ #:phases
(modify-phases %standard-phases
(add-before 'check 'clean-dependencies
(lambda _
@@ -4781,7 +4736,10 @@ minitest 5.12, and is planned to be removed from minitest 6.")
"05z8r6sw3fz4s44fs1150ndlcmcy82vlxmhps5nncg8vk59k3gmf"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "spec"))
+ '(#:test-target "spec"
+ ;; Test suite is incompatible with ruby-2.7.
+ ;; https://github.com/jeremyevans/minitest-hooks/issues/19
+ #:tests? #f))
(native-inputs
`(("ruby-sequel" ,ruby-sequel)
("ruby-sqlite3" ,ruby-sqlite3)))
@@ -4874,8 +4832,7 @@ you to merge elements inside a hash together recursively.")
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make the default git binary an absolute path to the
;; store.
- (let ((git (string-append (assoc-ref inputs "git")
- "/bin/git"))
+ (let ((git (search-input-file inputs "/bin/git"))
(config (string-append
(assoc-ref outputs "out")
"/lib/ruby/vendor_ruby/gems/git-"
@@ -4996,7 +4953,7 @@ net/http library.")
(define-public ruby-multi-json
(package
(name "ruby-multi-json")
- (version "1.13.1")
+ (version "1.15.0")
(source
(origin
(method git-fetch)
@@ -5008,20 +4965,17 @@ net/http library.")
(file-name (git-file-name name version))
(sha256
(base32
- "18wpb6p01rrkl4v33byh70vxj2a5jxkfxzv3pz8z6pssy4ymwkm4"))))
+ "0mkdvy6i00yyksjvnv6znh7wf89j9506qzzjq6bsbmbkyqrszp4d"))))
(build-system ruby-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'remove-signing-key-reference
+ (add-before 'check 'pre-check
(lambda _
- (substitute* "multi_json.gemspec"
- ((".*spec.signing_key.*") ""))
- #t)))))
+ ;; As seen in the .travis.yml file.
+ (setenv "SKIP_ADAPTERS" "gson,jr_jackson,nsjsonserialization"))))))
(native-inputs
- `(("bundler" ,bundler)
- ("ruby-rspec" ,ruby-rspec)
- ("ruby-yard" ,ruby-yard)
+ `(("ruby-rspec" ,ruby-rspec)
("ruby-json-pure" ,ruby-json-pure)
("ruby-oj" ,ruby-oj)
("ruby-yajl-ruby" ,ruby-yajl-ruby)))
@@ -5160,7 +5114,10 @@ to reproduce user environments.")
(base32
"15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"))))))
-(define-public ruby-nokogiri
+;; TODO: In the next rebuild cycle, provide texlive a version of ruby-hydra
+;; that does not depend on byebug and rspec, so that their dependencies can
+;; be updated more freely. For now pin this version to avoid rebuilds.
+(define-public ruby-nokogiri-1.10
(package
(name "ruby-nokogiri")
(version "1.10.9")
@@ -5209,6 +5166,38 @@ 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-nokogiri
+ (package
+ (inherit ruby-nokogiri-1.10)
+ (version "1.12.5")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "nokogiri" version))
+ (sha256
+ (base32
+ "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b"))))
+ (arguments
+ '(#:tests? #f ;XXX: no tests in rubygem
+ #:gem-flags (list "--" "--use-system-libraries"
+ (string-append "--with-xml2-include="
+ (assoc-ref %build-inputs "libxml2")
+ "/include/libxml2"))))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs ruby-nokogiri-1.10)
+ (replace "ruby-mini-portile" ruby-mini-portile-2.6.1)))))
+
(define-public ruby-method-source
(package
(name "ruby-method-source")
@@ -5997,13 +5986,13 @@ documentation for Ruby code.")
(define-public ruby-tins
(package
(name "ruby-tins")
- (version "1.15.0")
+ (version "1.29.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "tins" version))
(sha256
(base32
- "09whix5a7ics6787zrkwjmp16kqyh6560p9f317syks785805f7s"))))
+ "0nzp88y19rqlcizp1nw8m44fvfxs9g3bhjpscz44dwfawfrmr0cb"))))
(build-system ruby-build-system)
;; This gem needs gem-hadar at development time, but gem-hadar needs tins
;; at runtime. To avoid the dependency on gem-hadar we disable rebuilding
@@ -6019,6 +6008,8 @@ documentation for Ruby code.")
(substitute* "tins.gemspec"
(("\"lib/spruz\", ") ""))
(invoke "gem" "build" "tins.gemspec"))))))
+ (propagated-inputs
+ `(("ruby-sync" ,ruby-sync)))
(synopsis "Assorted tools for Ruby")
(description "Tins is a Ruby library providing assorted tools.")
(home-page "https://github.com/flori/tins")
@@ -6254,13 +6245,13 @@ a native C extension.")
(define-public ruby-json-pure
(package
(name "ruby-json-pure")
- (version "2.2.0")
+ (version "2.3.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "json_pure" version))
(sha256
(base32
- "0m0j1mfwv0mvw72kzqisb26xjl236ivqypw1741dkis7s63b8439"))))
+ "00pziwkfqwk8vj19s65sdki31q1wvmf5v9b3sfglxm94qfvas1lx"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -6269,28 +6260,13 @@ a native C extension.")
(lambda _
(substitute* "Rakefile"
;; Since this is not a git repository, do not call 'git'.
- (("`git ls-files`") "`find . -type f |sort`")
- ;; Loosen dependency constraint.
- (("'test-unit', '~> 2.0'") "'test-unit', '>= 2.0'"))
- #t))
- (add-after 'replace-git-ls-files 'regenerate-gemspec
- (lambda _
- ;; Regenerate gemspec so loosened dependency constraints are
- ;; propagated.
- (invoke "rake" "gemspec")))
- (add-after 'regenerate-gemspec 'fix-json-java.gemspec
- (lambda _
- ;; This gemspec doesn't look to be generated by the above
- ;; command, so patch it separately.
- (substitute* "json-java.gemspec"
- (("%q<test-unit>\\.freeze, \\[\"~> 2\\.0\"\\]")
- "%q<test-unit>.freeze, [\">= 2.0\"]"))
- #t)))))
+ (("`git ls-files`") "`find . -type f |sort`")))))))
(native-inputs
`(("bundler" ,bundler)
("ragel" ,ragel)
("ruby-simplecov" ,ruby-simplecov)
- ("ruby-test-unit" ,ruby-test-unit)))
+ ("ruby-test-unit" ,ruby-test-unit)
+ ("which" ,which)))
(synopsis "JSON implementation in pure Ruby")
(description
"This package provides a JSON implementation written in pure Ruby.")
@@ -6410,28 +6386,22 @@ you about the changes.")
(define-public ruby-loofah
(package
(name "ruby-loofah")
- (version "2.3.1")
+ (version "2.13.0")
+ (home-page "https://github.com/flavorjones/loofah")
(source
(origin
- (method url-fetch)
- (uri (rubygems-uri "loofah" version))
+ ;; Build from git because the gem lacks tests.
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0npqav026zd7r4qdidq9x5nxcp2dzg71bnp421xxx7sngbxf2xbd"))))
+ "0rmsm7mckiq0gslfqdl02yvn500n42v84gq28qjqn4yq9jwfs9ga"))))
(build-system ruby-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-unnecessary-dependencies
- (lambda _
- ;; concourse is a development tool which is unused, so remove it
- ;; so it's not required.
- (substitute* "Rakefile"
- (("require \"concourse\"") "")
- (("Concourse\\.new.*") "task :concourse do\n"))
- #t)))))
(native-inputs
`(("ruby-hoe" ,ruby-hoe)
+ ("ruby-hoe-markdown" ,ruby-hoe-markdown)
("ruby-rr" ,ruby-rr)))
(propagated-inputs
`(("ruby-nokogiri" ,ruby-nokogiri)
@@ -6440,7 +6410,6 @@ you about the changes.")
(description
"Loofah is a general library for manipulating and transforming HTML/XML
documents and fragments. It's built on top of Nokogiri and libxml2.")
- (home-page "https://github.com/flavorjones/loofah")
(license license:expat)))
(define-public ruby-activesupport
@@ -6557,6 +6526,24 @@ acceptable elements, attributes, and CSS properties, Sanitize will remove all
unacceptable HTML and/or CSS from a string.")
(license license:expat)))
+(define-public ruby-sync
+ (package
+ (name "ruby-sync")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sync" version))
+ (sha256
+ (base32
+ "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6"))))
+ (build-system ruby-build-system)
+ (synopsis "Ruby module with a two-phase lock and counter")
+ (description "This package provides a Ruby module that provides a two-phase
+lock with a counter.")
+ (home-page "https://github.com/ruby/sync")
+ (license license:bsd-2)))
+
(define-public ruby-oj
(package
(name "ruby-oj")
@@ -6678,31 +6665,6 @@ with PostgreSQL 9.0 and later.")
(define-public ruby-byebug
(package
(name "ruby-byebug")
- (version "9.0.6")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "byebug" version))
- (sha256
- (base32
- "1kbfcn65rgdhi72n8x9l393b89rvi5z542459k7d1ggchpb0idb0"))))
- (build-system ruby-build-system)
- (arguments
- '(#:tests? #f)) ; no tests
- (synopsis "Debugger for Ruby 2")
- (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
-TracePoint C API for execution control and the Debug Inspector C API for call
-stack navigation. The core component provides support that front-ends can
-build on. It provides breakpoint handling and bindings for stack frames among
-other things and it comes with a command line interface.")
- (home-page "https://github.com/deivid-rodriguez/byebug")
- (license license:bsd-2)))
-
-;;; TODO: Make it the default byebug in core-updates.
-(define-public ruby-byebug-11
- (package
- (inherit ruby-byebug)
- (name "ruby-byebug")
(version "11.1.3")
(source
(origin
@@ -6726,9 +6688,9 @@ other things and it comes with a command line interface.")
(("load File\\.expand_path\\(\"bundle\".*") "")
(("require \"bundler/setup\".*") "")))
#t))))
+ (build-system ruby-build-system)
(arguments
- `(#:tests? #t
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-tmp-path-sensitive-test
(lambda _
@@ -6739,6 +6701,12 @@ other things and it comes with a command line interface.")
(add-before 'build 'compile
(lambda _
(invoke "rake" "compile")))
+ (add-before 'check 'disable-misbehaving-test
+ ;; Expects 5, gets 162. From a file containing ~10 lines.
+ (lambda _
+ (substitute* "test/commands/finish_test.rb"
+ (("test_finish_inside_autoloaded_files")
+ "finish_inside_autoloaded_files"))))
(add-before 'check 'set-home
(lambda _
(setenv "HOME" (getcwd))
@@ -6750,7 +6718,15 @@ other things and it comes with a command line interface.")
("ruby-pry" ,ruby-pry)
("ruby-rake-compiler" ,ruby-rake-compiler)
("ruby-rubocop" ,ruby-rubocop)
- ("ruby-yard" ,ruby-yard)))))
+ ("ruby-yard" ,ruby-yard)))
+ (synopsis "Debugger for Ruby 2")
+ (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
+TracePoint C API for execution control and the Debug Inspector C API for call
+stack navigation. The core component provides support that front-ends can
+build on. It provides breakpoint handling and bindings for stack frames among
+other things and it comes with a command line interface.")
+ (home-page "https://github.com/deivid-rodriguez/byebug")
+ (license license:bsd-2)))
(define-public ruby-netrc
(package
@@ -6772,8 +6748,11 @@ other things and it comes with a command line interface.")
(lambda _
(for-each (lambda (file)
(invoke "ruby" "-Itest" file))
- (find-files "./test" "test_.*\\.rb"))
- #t)))))
+ (find-files "./test" "test_.*\\.rb"))))
+ (add-before 'check 'patch-tests-for-newer-ruby
+ (lambda _
+ (substitute* "test/test_netrc.rb"
+ (("Dir.pwd, '.netrc'") "Netrc.home_path, '.netrc'")))))))
(native-inputs
`(("ruby-minitest" ,ruby-minitest)))
(synopsis "Library to read and update netrc files")
@@ -6861,7 +6840,8 @@ tree-like structures. It is similar to Ruby's built-in @code{TSort} module.")
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-tdiff" ,ruby-tdiff)
- ("ruby-nokogiri" ,ruby-nokogiri)))
+ ;; Use a fixed version to prevent rebuilds; see ruby-nokogiri TODO.
+ ("ruby-nokogiri" ,ruby-nokogiri-1.10)))
(native-inputs
`(("ruby-rspec" ,ruby-rspec)
("ruby-yard" ,ruby-yard)
@@ -6876,15 +6856,17 @@ differences (added or removed nodes) between two XML/HTML documents.")
(define-public ruby-racc
(package
(name "ruby-racc")
- (version "1.4.14")
+ (version "1.5.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "racc" version))
(sha256
(base32
- "00yhs2ag7yy5v83mqvkbnhk9bvsh6mx3808k53n61ddzx446v1zl"))))
+ "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"))))
(build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ; Fails while parsing test instructions.
(native-inputs
`(("ruby-hoe" ,ruby-hoe)
("ruby-rake-compiler" ,ruby-rake-compiler)))
@@ -7251,35 +7233,38 @@ following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.")
(license license:expat)))
(define-public ruby-regexp-property-values
- (package
- (name "ruby-regexp-property-values")
- (version "1.0.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference ;no test suite in distributed gem
- (url "https://github.com/jaynetics/regexp_property_values")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0l3fjmscg1wxn7kc6bl022cc6k5d91pwb7daq1b5w36kvsx52w1j"))))
- (build-system ruby-build-system)
- (arguments
- '(#:test-target "default"))
- (native-inputs
- `(("ruby-character-set" ,ruby-character-set)
- ("ruby-rake-compiler" ,ruby-rake-compiler)
- ("ruby-range-compressor" ,ruby-range-compressor)
- ("ruby-rspec" ,ruby-rspec)))
- (synopsis "Inspect Ruby's regex engine property values")
- (description "This small library lets you see which property values are
+ (let ((commit "03007a66c912949a7130b973cc0eca109c20811f")
+ (revision "1"))
+ (package
+ (name "ruby-regexp-property-values")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference ;no test suite in distributed gem
+ (url "https://github.com/jaynetics/regexp_property_values")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zsax784p16zdkf60lyq9z924zvsafhx9ckxx9srsgkyiqrifi1s"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "default"))
+ (native-inputs
+ `(("ruby-character-set" ,ruby-character-set)
+ ("ruby-rake" ,ruby-rake)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)
+ ("ruby-range-compressor" ,ruby-range-compressor)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Inspect Ruby's regex engine property values")
+ (description "This small library lets you see which property values are
supported by the regular expression engine of the Ruby version you are running
and can directly read out their code point ranges. In other words, it
determines all supported values for @code{\\p{value}} expressions and what
they match.")
- (home-page "https://github.com/jaynetics/regexp_property_values")
- (license license:expat)))
+ (home-page "https://github.com/jaynetics/regexp_property_values")
+ (license license:expat))))
(define-public ruby-regexp-parser
(package
@@ -7410,7 +7395,6 @@ run.")
("ruby-parser" ,ruby-parser)
("ruby-rainbow" ,ruby-rainbow)
("ruby-regexp-parser" ,ruby-regexp-parser)
- ("ruby-rexml" ,ruby-rexml)
("ruby-rubocop-ast" ,ruby-rubocop-ast)
("ruby-progressbar" ,ruby-progressbar)
("ruby-unicode-display-width" ,ruby-unicode-display-width)))
@@ -7691,7 +7675,7 @@ notes.")
("ruby-rubocop" ,ruby-rubocop)
("ruby-simplecov" ,ruby-simplecov)))
(propagated-inputs
- `(("ruby-byebug" ,ruby-byebug-11)
+ `(("ruby-byebug" ,ruby-byebug)
("ruby-pry" ,ruby-pry)))
(synopsis "Step-by-step debugging and stack navigation in Pry")
(description "This package adds step-by-step debugging and stack
@@ -7800,14 +7784,14 @@ variable length integers (varint) in Ruby Protocol Buffers.")
(define-public ruby-ruby-prof
(package
(name "ruby-ruby-prof")
- (version "1.4.1")
+ (version "1.4.3")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "ruby-prof" version))
(sha256
(base32
- "12cd91m08ih0imfpy4k87618hd4mhyz291a6bx2hcskza4nf6d27"))))
+ "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -9978,17 +9962,50 @@ generation.")
(home-page "https://github.com/jbarnette/hoe-git")
(license license:expat)))
+(define-public ruby-hoe-markdown
+ (package
+ (name "ruby-hoe-markdown")
+ (version "1.4.0")
+ (home-page "https://github.com/flavorjones/hoe-markdown")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wb0yjdx9gx9r0cahpx42pblvglgh1i9pdfxjavq7f40nan2g076"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'disable-bundler-dependency
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ (("require.*bundler/setup.*")
+ "")))))))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)))
+ (propagated-inputs
+ `(("ruby-rake" ,ruby-rake)))
+ (synopsis "Hoe plugin with Markdown helpers")
+ (description
+ "This package provides a Hoe plugin with various Markdown helpers, which
+can be used to e.g. hyperlink Markdown documentation between project files.")
+ (license license:expat)))
+
(define-public ruby-sequel
(package
(name "ruby-sequel")
- (version "4.49.0")
+ (version "5.47.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "sequel" version))
(sha256
(base32
- "010p4a60npppvgbyw7pq5xia8aydpgxdlhh3qjm2615kwjsw3fl8"))))
+ "03pmhj4kc3ga75wy397l57bvd18jxxmrk3qsznjw93b993qgvj3z"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks.
@@ -10696,7 +10713,8 @@ the @file{spec} directory.")
`(("ruby-sass-listen" ,ruby-sass-listen)))
(native-inputs
`(("ruby-sass-spec" ,ruby-sass-spec)
- ("ruby-mathn" ,ruby-mathn)))
+ ("ruby-mathn" ,ruby-mathn)
+ ("ruby-cmath" ,ruby-cmath)))
(home-page "https://sass-lang.com/")
(synopsis "CSS extension language")
(description "Sass is a CSS extension language. It extends CSS with
@@ -11233,13 +11251,13 @@ implementation.")
(define-public ruby-rouge
(package
(name "ruby-rouge")
- (version "3.21.0")
+ (version "3.26.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "rouge" version))
(sha256
(base32
- "1agrrmj88k9jkk36ra1ml2c1jffpp595pkxmcla74ac9ia09vn3s"))))
+ "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf"))))
(build-system ruby-build-system)
(arguments `(#:tests? #f)); No rakefile
(home-page "http://rouge.jneen.net/")
@@ -12482,3 +12500,28 @@ resource assignment, cost and revenue planning, risk and communication
management, status tracking and reporting.")
(home-page "https://taskjuggler.org")
(license license:gpl2)))
+
+(define-public ruby-cmath
+ (package
+ (name "ruby-cmath")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "cmath" version))
+ (sha256
+ (base32
+ "1xkz6xyhpkjbdvpdib8450w62rls1mjryz0gzbbnadxkxn82nb8m"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #false))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)))
+ (synopsis "Trigonometric functions for complex numbers")
+ (description
+ "This gem is a library that provides trigonometric and transcendental
+functions for complex numbers. The functions in this module accept integers,
+floating-point numbers or complex numbers as arguments.")
+ (home-page "https://github.com/ruby/cmath")
+ (license license:bsd-2)))