summary refs log tree commit diff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm140
1 files changed, 78 insertions, 62 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 414b38c4fe..02cc6e6fde 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -49,6 +49,7 @@
 (define-public ruby
   (package
     (name "ruby")
+    (replacement ruby-2.4.1)
     (version "2.4.0")
     (source
      (origin
@@ -102,6 +103,26 @@ a focus on simplicity and productivity.")
     (home-page "https://ruby-lang.org")
     (license license:ruby)))
 
+(define-public ruby-2.4.1
+  (package
+    (inherit ruby)
+    (name "ruby")
+    (version "2.4.1")
+    (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
+         "0m763zf2v0jhrha3cx21g4dif6vc9gm714invs8h3sg35ncskj2g"))
+       (modules '((guix build utils)))
+       (snippet `(begin
+                   ;; Remove bundled libffi
+                   (delete-file-recursively "ext/fiddle/libffi-3.2.1")
+                   #t))))))
+
 (define-public ruby-2.3
   (package
     (inherit ruby)
@@ -2544,14 +2565,14 @@ you about the changes.")
 (define-public ruby-activesupport
   (package
     (name "ruby-activesupport")
-    (version "5.0.0")
+    (version "5.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "activesupport" version))
        (sha256
         (base32
-         "0k7zhnz0aw1ym8phs10r85f91ja45vsd058fm9v0h2k0igw12cpf"))))
+         "16r18n6b1nlky0xx2lw8c1f15gr2vm34xz5g4byjcxf88m1s07xh"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -2857,51 +2878,61 @@ including comments and whitespace.")
     (license license:expat)))
 
 (define-public ruby-tdiff
-  (package
-    (name "ruby-tdiff")
-    (version "0.3.3")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "tdiff" version))
-              (sha256
-               (base32
-                "0k41jbvn8qq4mgrixnhlk742b971d136i8wpbcv2cczvi22xpc86"))))
-    (build-system ruby-build-system)
-    (native-inputs
-     `(("ruby-rspec-2" ,ruby-rspec-2)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
-    (synopsis "Calculate the differences between two tree-like structures")
-    (description
-     "This library provides functions to calculate the differences between two
+  ;; Use a newer than released snapshot so that rspec-2 is not required.
+  (let ((commit "b662a6048f08abc45c1a834e5f34dd1c662935e2"))
+    (package
+      (name "ruby-tdiff")
+      (version (string-append "0.3.3-1." (string-take commit 8)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/postmodern/tdiff.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0n3gq8rx49f7ln6zqlshqfg2mgqyy30rsdjlnki5mv307ykc7ad4"))))
+      (build-system ruby-build-system)
+      (native-inputs
+       `(("ruby-rspec" ,ruby-rspec)
+         ("ruby-yard" ,ruby-yard)
+         ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
+      (synopsis "Calculate the differences between two tree-like structures")
+      (description
+       "This library provides functions to calculate the differences between two
 tree-like structures.  It is similar to Ruby's built-in @code{TSort} module.")
-    (home-page "https://github.com/postmodern/tdiff")
-    (license license:expat)))
+      (home-page "https://github.com/postmodern/tdiff")
+      (license license:expat))))
 
 (define-public ruby-nokogiri-diff
-  (package
-    (name "ruby-nokogiri-diff")
-    (version "0.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "nokogiri-diff" version))
-              (sha256
-               (base32
-                "0njr1s42war0bj1axb2psjvk49l74a8wzr799wckqqdcb6n51lc1"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-tdiff" ,ruby-tdiff)
-       ("ruby-nokogiri" ,ruby-nokogiri)))
-    (native-inputs
-     `(("ruby-rspec-2" ,ruby-rspec-2)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
-    (synopsis "Calculate the differences between two XML/HTML documents")
-    (description
-     "@code{Nokogiri::Diff} adds the ability to calculate the
+  ;; Use a newer than released snapshot so that rspec-2 is not required.
+  (let ((commit "a38491e4d8709b7406f2cae11a50226d927d06f5"))
+    (package
+      (name "ruby-nokogiri-diff")
+      (version (string-append "0.2.0-1." (string-take commit 8)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/postmodern/nokogiri-diff.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1ah2sfjh9n1p0ln2wkqzfl448ml7j4zfy6dhp1qgzq2m41php6rf"))))
+      (build-system ruby-build-system)
+      (propagated-inputs
+       `(("ruby-tdiff" ,ruby-tdiff)
+         ("ruby-nokogiri" ,ruby-nokogiri)))
+      (native-inputs
+       `(("ruby-rspec" ,ruby-rspec)
+         ("ruby-yard" ,ruby-yard)
+         ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
+      (synopsis "Calculate the differences between two XML/HTML documents")
+      (description
+       "@code{Nokogiri::Diff} adds the ability to calculate the
 differences (added or removed nodes) between two XML/HTML documents.")
-    (home-page "https://github.com/postmodern/nokogiri-diff")
-    (license license:expat)))
+      (home-page "https://github.com/postmodern/nokogiri-diff")
+      (license license:expat))))
 
 (define-public ruby-rack
   (package
@@ -3998,7 +4029,7 @@ part of the Prawn PDF generator.")
 (define-public ruby-puma
   (package
     (name "ruby-puma")
-    (version "3.6.0")
+    (version "3.9.1")
     (source
      (origin
        (method url-fetch)
@@ -4008,32 +4039,17 @@ part of the Prawn PDF generator.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "08aws79n9slcr50d9lwm011cp1pxvr1409c2jmyjxywvrc0a30v1"))
-       ;; Ignore broken tests reported upstream.
-       ;; https://github.com/puma/puma/issues/995
-       ;; https://github.com/puma/puma/issues/1044
-       (patches (search-patches "ruby-puma-ignore-broken-test.patch"))))
+         "03pifga841h17brh4vgia8i2ybh3cmsyg0dbybzdf6dq51wzcxdx"))))
     (build-system ruby-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f ; Tests require an out-dated version of minitest.
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'delete-integration-tests
-           (lambda _
-             ;; One broken test in this file cannot be easily removed in
-             ;; isolation, it probably causes race conditions.  So we delete
-             ;; the entire file.
-             (delete-file "test/test_integration.rb")
-             #t))
          (add-before 'build 'fix-gemspec
            (lambda _
              (substitute* "puma.gemspec"
                (("git ls-files") "find * |sort"))
              #t)))))
-    (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-hoe-git" ,ruby-hoe-git)
-       ("ruby-rack" ,ruby-rack)))
     (synopsis "Simple, concurrent HTTP server for Ruby/Rack")
     (description
      "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server