Subject: [bug#60448] [PATCH 5/6] gnu: po4a: Update to 0.68

From: gemmaro <[email-masked]>
Date: Sat, 31 Dec 2022 23:05:00 +0900

The phase do-not-override-PERL5LIB is removed since it was fixed in po4a v0.63.
https://github.com/mquinson/po4a/blob/0ab1670e50f0a72781e3d1de6ab9da0c2d71c646/NEWS#L366

bash-minimal is added to inputs since the wrap-program function is used.
See also https://issues.guix.gnu.org/49327#80

The only regrettable thing is that only the SGML test failed, but I could not
find the cause...  Nevertheless, some previously failed tests are now passing.
---
 gnu/packages/gettext.scm | 48 +++++++++++++++++++++++-----------------
 1 file changed, 28 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 5df30c4be3..04fc20e7bf 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -36,6 +36,7 @@ (define-module (gnu packages gettext)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages emacs)
@@ -239,14 +240,14 @@ (define-public mdpo
 (define-public po4a
   (package
     (name "po4a")
-    (version "0.63")
+    (version "0.68")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
                                   version "/po4a-" version ".tar.gz"))
               (sha256
                (base32
-                "1kmlfpdl1i1wrcdn0k1frh44fq10sfwswi3azvibli2lakpf66z2"))))
+                "045i8izp2dqmkdzvnxyy5sy27ffrwl85dk8n6cmg1804ikk28qdg"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -257,9 +258,21 @@ (define-public po4a
             ;; required by this package at runtime.
             (let* ((out  (assoc-ref outputs "out"))
                    (bin  (string-append out "/bin/"))
-                   (Pod::Parser (assoc-ref inputs "perl-pod-parser"))
                    (path (string-append out "/lib/perl5/site_perl:"
-                                        Pod::Parser "/lib/perl5/site_perl")))
+                                        (string-join
+                                         (map (lambda (name)
+                                                (string-append (assoc-ref inputs name)
+                                                               "/lib/perl5/site_perl"))
+                                              (list "perl-gettext"
+                                                    "perl-pod-parser"
+                                                    "perl-sgmls"
+                                                    "perl-syntax-keyword-try"
+                                                    "perl-xs-parse-keyword"
+                                                    "perl-term-readkey"
+                                                    "perl-text-wrapi18n"
+                                                    "perl-unicode-linebreak"
+                                                    "perl-yaml-tiny"))
+                                         ":"))))
               (for-each (lambda (file)
                           (wrap-program file
                             `("PERL5LIB" ":" prefix (,path))))
@@ -272,23 +285,10 @@ (define-public po4a
                 (string-append (assoc-ref inputs "docbook-xml")
                                "/xml/dtd/docbook/")))
              #t))
-         (add-before 'build 'do-not-override-PERL5LIB
-           (lambda _
-             ;; Don't hard-code PERL5LIB to include just the build directory
-             ;; so that the build script finds modules from inputs.
-             (substitute* "Po4aBuilder.pm"
-               (("PERL5LIB=lib") ""))
-             (setenv "PERL5LIB" (string-append (getenv "PERL5LIB") ":lib"))))
          (add-before 'check 'disable-failing-tests
            (lambda _
-             ;; FIXME: these tests require SGMLS.pm.
-             (delete-file "t/01-classes.t")
-
-             (delete-file "t/add.t")
-             (delete-file "t/core-porefs.t")
-             (delete-file "t/fmt-asciidoc.t")
+             ;; FIXME: fails despite of importing SGMLS
              (delete-file "t/fmt-sgml.t")
-
              #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -300,10 +300,18 @@ (define-public po4a
        ;; For tests.
        ("docbook-xml" ,docbook-xml-4.1.2)
        ("perl-test-pod" ,perl-test-pod)
-       ("perl-yaml-tiny" ,perl-yaml-tiny)
        ("texlive" ,texlive-tiny)))
     (inputs
-     (list perl-pod-parser))
+     (list bash-minimal
+           perl-gettext
+           perl-pod-parser
+           perl-sgmls
+           perl-syntax-keyword-try
+           perl-xs-parse-keyword
+           perl-term-readkey
+           perl-text-wrapi18n
+           perl-unicode-linebreak
+           perl-yaml-tiny))
     (home-page "https://po4a.org/")
     (synopsis "Scripts to ease maintenance of translations")
     (description
-- 
2.38.1