diff options
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r-- | gnu/packages/ruby.scm | 168 |
1 files changed, 117 insertions, 51 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a31f177349..7e6df38ad1 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 ng0 <ng0@n0.is> -;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> @@ -19,6 +19,7 @@ ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de> +;;; Copyright © 2019 Brett Gilio <brettg@posteo.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -77,7 +78,7 @@ (define-public ruby (package (name "ruby") - (version "2.5.3") + (version "2.6.5") (source (origin (method url-fetch) @@ -86,7 +87,7 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "0vrhrw7kcz9mg0jkqnihkcxqy5k05v8k1j0y2735z8wfk8sx1j8w")) + "0qhsw2mr04f3lqinkh557msr35pb5rdaqy4vdxcj91flgxqxmmnm")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -95,6 +96,7 @@ (build-system gnu-build-system) (arguments `(#:test-target "test" + #:configure-flags '("--enable-shared") ; dynamic linking #:phases (modify-phases %standard-phases (add-before 'configure 'replace-bin-sh-and-remove-libffi @@ -116,8 +118,9 @@ `(("readline" ,readline) ("openssl" ,openssl) ("libffi" ,libffi) - ("gdbm" ,gdbm) - ("zlib" ,zlib))) + ("gdbm" ,gdbm))) + (propagated-inputs + `(("zlib" ,zlib))) (native-search-paths (list (search-path-specification (variable "GEM_PATH") @@ -128,10 +131,29 @@ a focus on simplicity and productivity.") (home-page "https://www.ruby-lang.org") (license license:ruby))) +(define-public ruby-2.5 + (package + (inherit ruby) + (version "2.5.7") + (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 + "159zka4sbx1p4ayxqi7a5ybbzxvn3n5mivrz4d1damw9ypl70610")) + (modules '((guix build utils))) + (snippet `(begin + ;; Remove bundled libffi + (delete-file-recursively "ext/fiddle/libffi-3.2.1") + #t)))))) + (define-public ruby-2.4 (package (inherit ruby) - (version "2.4.3") + (version "2.4.9") (source (origin (method url-fetch) @@ -140,8 +162,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "0l9bv67dgsphk42lmiskhrnh47hbyj6rfg2rcjx22xivpx07srr3")) - (patches (search-patches "ruby-rubygems-276-for-ruby24.patch")) + "0546ymj2h3iai679fvx17bb2hksrqyhh22llxgz8fwggac100khc")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -297,14 +318,32 @@ a menu system for providing multiple options to the user.") (define-public ruby-hoe (package (name "ruby-hoe") - (version "3.16.2") + (version "3.21.0") (source (origin (method url-fetch) (uri (rubygems-uri "hoe" version)) (sha256 (base32 - "12q6dn2irsfamdbjpqvs0dwl4i1vl7wflxrcg972h9jw0ds38f3a")))) + "0qid0n56mgsjvq5ksxajv0gb92akky8imwgvw22ajms5g4fd6nf4")))) (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; One of the tests fails if the SOURCE_DATE_EPOCH environment + ;; variable is set, so unset it for the duration of the tests. + ;; + ;; TestHoe#test_possibly_better + ;; [/tmp/guix-build-ruby-hoe-3.20.0.drv-0/gem/test/test_hoe.rb:250]: + ;; Expected: 2019-11-12 00:00:00 UTC + ;; Actual: 1970-01-01 00:00:00 UTC + (add-before 'check 'unset-SOURCE-DATE-EPOCH + (lambda _ + (unsetenv "SOURCE_DATE_EPOCH") + #t)) + (add-after 'check 'set-SOURCE-DATE-EPOCH-again + (lambda _ + (setenv "SOURCE_DATE_EPOCH" "1") + #t))))) (synopsis "Ruby project management helper") (description "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage, @@ -1950,6 +1989,40 @@ two hashes.") (home-page "https://github.com/liufengyun/hashdiff") (license license:expat))) +(define-public ruby-hydra + ;; No releases yet. + (let ((commit "5abfa378743756ae4d9306cc134bcc482f5c9525") + (revision "0")) + (package + (name "ruby-hydra") + (version (git-version "0.0" revision commit)) + (home-page "https://github.com/hyphenation/hydra") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cik398l2765y3d9sdhjzki3303hkry58ac6jlkiy7iy62nm529f")))) + (build-system ruby-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #t)) + (replace 'check + (lambda _ + (invoke "rspec")))))) + (native-inputs + `(("ruby-rspec" ,ruby-rspec))) + (propagated-inputs + `(("ruby-byebug" ,ruby-byebug))) + (synopsis "Ruby hyphenation patterns") + (description + "ruby-hydra is a Ruby library for working with hyphenation patterns.") + (license license:expat)))) + (define-public ruby-shindo (package (name "ruby-shindo") @@ -2237,14 +2310,16 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.") (define-public ruby-power-assert (package (name "ruby-power-assert") - (version "0.2.7") + (version "1.1.5") (source (origin (method url-fetch) (uri (rubygems-uri "power_assert" version)) (sha256 (base32 - "0ka6w71lcan4wgf111xi3pcn9ma9lhakv31jg8w007nwzi0xfjbi")))) + "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s")))) (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests (native-inputs `(("bundler" ,bundler))) (synopsis "Assert library with descriptive assertion messages") @@ -4051,6 +4126,16 @@ utilities for Ruby.") (base32 "09dpbrih054mn42flbbcdpzk2727mzfvjrgqb12zdafhx7p9rrzp")))) (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-safe-tests + (lambda _ + (substitute* "test/test_utils.rb" + (("def safe_test\\(options = \\{\\}\\)") + "def safe_test(options = {}) + skip('The Guix build environment has an unsafe load path')")) + #t))))) (propagated-inputs `(("ruby-thread-safe" ,ruby-thread-safe))) (synopsis "Time zone library for Ruby") @@ -4441,13 +4526,13 @@ a native C extension.") (define-public ruby-json-pure (package (name "ruby-json-pure") - (version "2.1.0") + (version "2.2.0") (source (origin (method url-fetch) (uri (rubygems-uri "json_pure" version)) (sha256 (base32 - "12yf9fmhr4c2jm3xl20vf1qyz5i63vc8a6ngz9j0f86nqwhmi2as")))) + "0m0j1mfwv0mvw72kzqisb26xjl236ivqypw1741dkis7s63b8439")))) (build-system ruby-build-system) (arguments `(#:phases @@ -4481,7 +4566,7 @@ a native C extension.") (synopsis "JSON implementation in pure Ruby") (description "This package provides a JSON implementation written in pure Ruby.") - (home-page "https://flori.github.com/json") + (home-page "https://flori.github.com/json/") (license license:ruby))) (define-public ruby-jwt @@ -4547,7 +4632,7 @@ a native C extension.") (define-public ruby-listen (package (name "ruby-listen") - (version "3.1.5") + (version "3.2.0") (source (origin ;; The gem does not include a Rakefile, so fetch from the Git @@ -4559,7 +4644,7 @@ a native C extension.") (file-name (git-file-name name version)) (sha256 (base32 - "1hqmkfa9f2xb5jlvqbafdxjd5ax75jm8gqj5nh3k22xq0kacsvgg")))) + "1hkp1g6hk5clsmbd001gkc12ma6s459x820piajyasv61m87if24")))) (build-system ruby-build-system) (arguments `(#:test-target "spec" @@ -5411,14 +5496,14 @@ It is intended be used by all Cucumber implementations to parse (define-public ruby-aruba (package (name "ruby-aruba") - (version "0.14.8") + (version "0.14.14") (source (origin (method url-fetch) (uri (rubygems-uri "aruba" version)) (sha256 (base32 - "0zdd81l1lp0x78sxa6kkfqclpj5il3xl70nz05wqv2sfzzhqydxh")))) + "0l2mfpdxc03gdrbwc2hv4vdhjhqhfcdp6d02j05j64ncpi9srlqn")))) (build-system ruby-build-system) (arguments '(#:test-target "spec" @@ -5450,11 +5535,7 @@ It is intended be used by all Cucumber implementations to parse ((".*cucumber.*") "\n") ((".*license_finder.*") "\n") ((".*rake.*") "gem 'rake'\n") - ((".*simplecov.*") "\n") ((".*relish.*") "\n")) - (substitute* "spec/spec_helper.rb" - ((".*simplecov.*") "") - (("^SimpleCov.*") "")) (substitute* "aruba.gemspec" (("spec\\.add\\_runtime\\_dependency 'cucumber'.*") "spec.add_runtime_dependency 'cucumber'")) @@ -5464,7 +5545,8 @@ It is intended be used by all Cucumber implementations to parse (native-inputs `(("bundler" ,bundler) ("ruby-rspec" ,ruby-rspec) - ("ruby-fuubar" ,ruby-fuubar))) + ("ruby-fuubar" ,ruby-fuubar) + ("ruby-simplecov" ,ruby-simplecov))) (propagated-inputs `(("ruby-childprocess" ,ruby-childprocess) ("ruby-contracts" ,ruby-contracts) @@ -5756,7 +5838,7 @@ A modified copy of yajl is used, and included in the package.") (define-public ruby-yard (package (name "ruby-yard") - (version "0.9.16") + (version "0.9.20") (source (origin (method git-fetch) @@ -5767,20 +5849,24 @@ A modified copy of yajl is used, and included in the package.") (file-name (git-file-name name version)) (sha256 (base32 - "0a4r1pfs0ms4vlccsf1x2jckx35lqm8b8lh6rdjxqfr5fia5izpf")))) + "1v48zz8hzazrg79jksj9siys21d2axvzijvkxw2j42zh86syi1wi")))) (build-system ruby-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ + ;; Delete the Gemfile to avoid errors relating to it + (delete-file "Gemfile") ;; $HOME needs to be set to somewhere writeable for tests to run (setenv "HOME" "/tmp") ;; Run tests without using 'rake' to avoid dependencies. (invoke "rspec")))))) (native-inputs `(("ruby-rspec" ,ruby-rspec) - ("ruby-rack" ,ruby-rack))) + ("ruby-rack" ,ruby-rack) + ("ruby-redcloth" ,ruby-redcloth) + ("ruby-asciidoc" ,ruby-asciidoctor))) (synopsis "Documentation generation tool for Ruby") (description "YARD is a documentation generation tool for the Ruby programming @@ -6094,13 +6180,6 @@ neither too verbose nor too minimal.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'check 'adjust-failing-test - (lambda _ - ;; XXX: This test fails with SQLite versions >= 3.21. - ;; See <https://github.com/sparklemotion/sqlite3-ruby/issues/226>. - (substitute* "test/test_integration_resultset.rb" - (("\"integer\", \"text\"") "\"INTEGER\", \"text\"")) - #t)) (add-before 'check 'add-gemtest-file ;; This file exists in the repository but is not distributed. (lambda _ (invoke "touch" ".gemtest")))))) @@ -7433,17 +7512,17 @@ in standard Ruby syntax.") (home-page "https://github.com/ruby/rake") (license license:expat))) -(define-public ruby-childprocess-0.6 +(define-public ruby-childprocess (package (name "ruby-childprocess") - (version "0.6.3") + (version "3.0.0") (source (origin (method url-fetch) (uri (rubygems-uri "childprocess" version)) (sha256 (base32 - "1p3f43scdzx9zxmy2kw5zsc3az6v46nq4brwcxmnscjy4w4racbv")))) + "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5")))) (build-system ruby-build-system) (arguments `(#:tests? #f)) @@ -7455,22 +7534,9 @@ in standard Ruby syntax.") (synopsis "Control external programs running in the background, in Ruby") (description "@code{childprocess} provides a gem to control external programs running in the background, in Ruby.") - (home-page "http://github.com/enkessler/childprocess") + (home-page "https://github.com/enkessler/childprocess") (license license:expat))) -(define-public ruby-childprocess - (package - (inherit ruby-childprocess-0.6) - (name "ruby-childprocess") - (version "0.9.0") - (source - (origin - (method url-fetch) - (uri (rubygems-uri "childprocess" version)) - (sha256 - (base32 - "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p")))))) - (define-public ruby-public-suffix (package (name "ruby-public-suffix") |