diff options
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r-- | gnu/packages/ruby.scm | 176 |
1 files changed, 112 insertions, 64 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 97078741cb..fa7c2f7691 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com> +;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,7 +46,7 @@ (define-public ruby (package (name "ruby") - (version "2.2.4") + (version "2.3.0") (source (origin (method url-fetch) @@ -55,28 +55,33 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj")))) + "15s0dsb5ynf3d2w5gzawnszq5594fqvapv2y7a0qw16przq5l4kh")) + (modules '((guix build utils))) + (snippet `(begin + ;; Remove bundled libffi + (delete-file-recursively + (string-append "ext/fiddle/libffi-3.2.1")) + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" - #:parallel-tests? #f #:phases - (alist-cons-before - 'configure 'replace-bin-sh - (lambda _ - (substitute* '("Makefile.in" - "ext/pty/pty.c" - "io.c" - "lib/mkmf.rb" - "process.c" - "test/rubygems/test_gem_ext_configure_builder.rb" - "test/rdoc/test_rdoc_parser.rb" - "test/ruby/test_rubyoptions.rb" - "test/ruby/test_process.rb" - "test/ruby/test_system.rb" - "tool/rbinstall.rb") - (("/bin/sh") (which "sh")))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'replace-bin-sh-and-remove-libffi + (lambda _ + (substitute* '("Makefile.in" + "ext/pty/pty.c" + "io.c" + "lib/mkmf.rb" + "process.c" + "test/rubygems/test_gem_ext_configure_builder.rb" + "test/rdoc/test_rdoc_parser.rb" + "test/ruby/test_rubyoptions.rb" + "test/ruby/test_process.rb" + "test/ruby/test_system.rb" + "tool/rbinstall.rb") + (("/bin/sh") (which "sh"))) + #t))))) (inputs `(("readline" ,readline) ("openssl" ,openssl) @@ -95,6 +100,25 @@ a focus on simplicity and productivity.") (home-page "https://ruby-lang.org") (license license:ruby))) +(define-public ruby-2.2 + (package (inherit ruby) + (version "2.2.4") + (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 + "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj")) + (modules '((guix build utils))) + (snippet `(begin + ;; Remove bundled libffi + (delete-file-recursively + (string-append "ext/fiddle/libffi-3.2.1")) + #t)))))) + (define-public ruby-2.1 (package (inherit ruby) (version "2.1.8") @@ -1059,13 +1083,13 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.") (define-public ruby-power-assert (package (name "ruby-power-assert") - (version "0.2.6") + (version "0.2.7") (source (origin (method url-fetch) (uri (rubygems-uri "power_assert" version)) (sha256 (base32 - "0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3")))) + "0ka6w71lcan4wgf111xi3pcn9ma9lhakv31jg8w007nwzi0xfjbi")))) (build-system ruby-build-system) (native-inputs `(("bundler" ,bundler))) @@ -1212,15 +1236,18 @@ It allows writing tests, checking results and automated testing in Ruby.") `(#:phases (modify-phases %standard-phases (add-after 'unpack 'add-test-unit-to-search-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Rakefile" - (("t\\.libs << \"test\"" line) - (string-append line "; t.libs << \"" - (assoc-ref inputs "ruby-test-unit") - "/lib/ruby/gems/2.2.0/gems/test-unit-" - ,(package-version ruby-test-unit) - "/lib\""))) - #t))))) + (lambda* (#:key inputs #:allow-other-keys) + (let* ((test-unit (assoc-ref inputs "ruby-test-unit")) + (test-unit-home (gem-home test-unit + ,(package-version ruby)))) + (substitute* "Rakefile" + (("t\\.libs << \"test\"" line) + (string-append line "; t.libs << \"" + test-unit-home + "/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\"")))) + #t))))) (native-inputs `(("bundler" ,bundler) ("ruby-test-unit" ,ruby-test-unit))) @@ -1274,15 +1301,18 @@ as a base class when writing classes that depend upon `(#:phases (modify-phases %standard-phases (add-after 'unpack 'add-test-unit-to-search-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Rakefile" - (("t\\.libs << \"test\"" line) - (string-append line "; t.libs << \"" - (assoc-ref inputs "ruby-test-unit") - "/lib/ruby/gems/2.2.0/gems/test-unit-" - ,(package-version ruby-test-unit) - "/lib\""))) - #t))))) + (lambda* (#:key inputs #:allow-other-keys) + (let* ((test-unit (assoc-ref inputs "ruby-test-unit")) + (test-unit-home (gem-home test-unit ,(package-version + ruby)))) + (substitute* "Rakefile" + (("t\\.libs << \"test\"" line) + (string-append line "; t.libs << \"" + test-unit-home + "/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\"")))) + #t))))) (propagated-inputs `(("ruby-blankslate" ,ruby-blankslate))) (native-inputs @@ -1311,13 +1341,16 @@ knowing anything about the constructor.") (modify-phases %standard-phases (add-after 'unpack 'add-test-unit-to-search-path (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Rakefile" - (("t\\.libs << \"test\"" line) - (string-append line "; t.libs << \"" - (assoc-ref inputs "ruby-test-unit") - "/lib/ruby/gems/2.2.0/gems/test-unit-" - ,(package-version ruby-test-unit) - "/lib\""))) + (let* ((test-unit (assoc-ref inputs "ruby-test-unit")) + (test-unit-home (gem-home test-unit ,(package-version + ruby)))) + (substitute* "Rakefile" + (("t\\.libs << \"test\"" line) + (string-append line "; t.libs << \"" + test-unit-home + "/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\"")))) #t))))) (propagated-inputs `(("ruby-instantiator" ,ruby-instantiator) @@ -1381,13 +1414,16 @@ conversion to (X)HTML.") (modify-phases %standard-phases (add-after 'unpack 'add-test-unit-to-search-path (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Rakefile" - (("t\\.libs << 'test'" line) - (string-append line "; t.libs << \"" - (assoc-ref inputs "ruby-test-unit") - "/lib/ruby/gems/2.2.0/gems/test-unit-" - ,(package-version ruby-test-unit) - "/lib\""))) + (let* ((test-unit (assoc-ref inputs "ruby-test-unit")) + (test-unit-home (gem-home test-unit + ,(package-version ruby)))) + (substitute* "Rakefile" + (("t\\.libs << 'test'" line) + (string-append line "; t.libs << \"" + test-unit-home + "/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\"")))) #t)) (add-before 'check 'use-latest-redcarpet (lambda _ @@ -2202,13 +2238,17 @@ development of Ruby gems.") (modify-phases %standard-phases (add-after 'unpack 'fix-test-include-path (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Rakefile" - (("Hoe\\.add_include_dirs .*") - (string-append "Hoe.add_include_dirs \"" - (assoc-ref inputs "ruby-minitest-4") - "/lib/ruby/gems/2.2.0/gems/minitest-" - ,(package-version ruby-minitest-4) - "/lib" "\""))))) + (let* ((minitest (assoc-ref inputs "ruby-minitest-4")) + (minitest-home (gem-home minitest + ,(package-version ruby)))) + (substitute* "Rakefile" + (("Hoe\\.add_include_dirs .*") + (string-append "Hoe.add_include_dirs \"" + minitest-home + "/gems/minitest-" + ,(package-version ruby-minitest-4) + "/lib" "\"")))) + #t)) (add-before 'check 'fix-test-assumptions (lambda _ ;; The test output includes the file name, so a couple of tests @@ -2931,9 +2971,17 @@ features such as filtering and fine grained logging.") `(#:test-target "specs" #:phases (modify-phases %standard-phases - (add-before 'check 'set-HOME - ;; $HOME needs to be set to somewhere writeable for tests to run - (lambda _ (setenv "HOME" "/tmp") #t))))) + (add-before 'check 'set-HOME-and-disable-failing-test + (lambda _ + ;; $HOME needs to be set to somewhere writeable for tests to run + (setenv "HOME" "/tmp") + ;; Disable tests which fails on Ruby 2.3. See + ;; https://github.com/lsegal/yard/issues/927 + (substitute* "spec/parser/ruby/ruby_parser_spec.rb" + (("comment.type.should == :comment") "") + (("comment.docstring_hash_flag.should be_true") "") + (("comment.docstring.strip.should == .*") "")) + #t))))) (native-inputs `(("ruby-rspec" ,ruby-rspec-2) ("ruby-rack" ,ruby-rack))) |