diff mbox series

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

Message ID 96fc8bfd1055a3202fde32beaadfda8d10fff19a.1720534195.git.gemmaro.dev@gmail.com
State New
Headers show
Series gnu: ruby-libxml: Update to 5.0.3. | expand

Commit Message

gemmaro July 9, 2024, 2:18 p.m. UTC
* gnu/packages/ruby.scm (ruby-libxml): Update to 5.0.3.
[native-inputs]: Add ruby-minitest and ruby-rake-compiler.
[arguments]<#:tests?>: Remove to turn on tests.
<#:phases>: Add skip-failing-tests and set-gem-path phase.
Move check phase after set-gem-path in order to use compiled and installed
extension files.

Change-Id: Id9a3670bd84bc31b886748336aeb6b850a5b1b5d
---
 gnu/packages/ruby.scm | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9547481caf..74877ac4a9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3211,26 +3211,51 @@  (define-public ruby-orderedhash
 (define-public ruby-libxml
   (package
     (name "ruby-libxml")
-    (version "3.0.0")
+    (version "5.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "libxml-ruby" version))
        (sha256
         (base32
-         "0xy8wmjwjcnv36zi042678ncjzpxvy351ccbv7mzkns2n3kxfp54"))))
+         "1pib5bfwg684f1sczrhf3lzk9hb24dhsw5cmlnxm4rq66sx0slss"))))
     (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.")