[bug#72009,v2,1/2] gnu: ruby-libxml: Update to 5.0.4.

Message ID cfb8945974fabc2a10b526b2ce6786497d5a5166.1752282873.git.gemmaro.dev@gmail.com
State New
Headers
Series gnu: ruby-libxml: Update to 5.0.4. |

Commit Message

gemmaro July 12, 2025, 1:21 a.m. UTC
* gnu/packages/ruby-xyz.scm (ruby-libxml): Update to 5.0.4.

Change-Id: Iad79f7aeed841efa1c7581714f5eab33c1d19718
---
 gnu/packages/ruby-xyz.scm | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)
  

Patch

diff --git a/gnu/packages/ruby-xyz.scm b/gnu/packages/ruby-xyz.scm
index 4dc42984e2..511a0b1a0f 100644
--- a/gnu/packages/ruby-xyz.scm
+++ b/gnu/packages/ruby-xyz.scm
@@ -2787,26 +2787,51 @@  (define-public ruby-orderedhash
 (define-public ruby-libxml
   (package
     (name "ruby-libxml")
-    (version "3.0.0")
+    (version "5.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "libxml-ruby" version))
        (sha256
         (base32
-         "0xy8wmjwjcnv36zi042678ncjzpxvy351ccbv7mzkns2n3kxfp54"))))
+         "1rkahmh2p3mapmcy5x4b3jf80a9jcvx85yky34k2n3lar03gphvq"))))
     (build-system ruby-build-system)
+    (native-inputs (list ruby-minitest ruby-rake-compiler))
     (inputs
      (list zlib libxml2))
     (arguments
-     '(#:tests? #f ; test suite hangs for unknown reason
-       #:gem-flags
+     '(#:gem-flags
        (list "--no-document"            ; TODO: Re-enable when documentation
                                         ; generation works
              "--"
              (string-append "--with-xml2-include="
                             (assoc-ref %build-inputs "libxml2")
-                            "/include/libxml2" ))))
+                            "/include/libxml2" ))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-failing-tests
+           (lambda _
+             (for-each
+              (lambda (method)
+                (substitute* "test/test_canonicalize.rb"
+                  (((string-append "def " method) def)
+                   (string-append def "; skip \"CR/LF mismatch\";"))))
+              '("test_canonicalize_with_w3c_c14n_3_1"
+                "test_canonicalize_with_w3c_c14n_3_2"
+                "test_canonicalize_with_w3c_c14n_3_3"
+                "test_canonicalize_with_w3c_c14n_3_4"))
+             (substitute* "test/test_schema.rb"
+               (("def test_schema_load_from_uri" def)
+                (string-append def "; skip \"missing XLink schema\";")))))
+         (delete 'check)
+         (add-after 'install 'set-gem-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "GEM_PATH"
+                     (string-append
+                      (getenv "GEM_PATH") ":"
+                      (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))))
+         (add-after 'set-gem-path 'check
+           (assoc-ref %standard-phases 'check)))))
     (synopsis "Ruby bindings for GNOME Libxml2")
     (description "The Libxml-Ruby project provides Ruby language bindings for
 the GNOME Libxml2 XML toolkit.")