Subject: bug#49294: closed (Re: bug#49294: [PATCH] gnu: po4a: Add perl-yaml-tiny to PERL5LIB)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 29 May 2023 11:53:01 +0000

Your bug report

#49294: [PATCH] gnu: po4a: Add perl-yaml-tiny to PERL5LIB

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
49294: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49294
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#49294: [PATCH] gnu: po4a: Add perl-yaml-tiny to PERL5LIB
From: Jelle Licht <[email-masked]>
To: EuAndreh <[email-masked]>
Cc: [email-masked]
Date: Mon, 29 May 2023 13:52:41 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

EuAndreh <[email-masked]> writes:

> * gnu/packages/gettext.scm (po4a): Include perl-yaml-tiny dependency in
>   PERL5LIB search path of executables.
>   [native-inputs]: Remove perl-yaml-tiny.
>   [propagated-inputs]: Add perl-yaml-tiny.
[snip]

Superseded by commit a1f9eba892784069e34338e01237a74b8a3bd8a2. Closing.

Subject: [PATCH] gnu: po4a: Add perl-yaml-tiny to PERL5LIB
From: EuAndreh <[email-masked]>
To: [email-masked]
Cc: EuAndreh <[email-masked]>
Date: Wed, 30 Jun 2021 11:44:23 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/gettext.scm (po4a): Include perl-yaml-tiny dependency in
  PERL5LIB search path of executables.
  [native-inputs]: Remove perl-yaml-tiny.
  [propagated-inputs]: Add perl-yaml-tiny.

---
The "use YAML::Tiny;" [0] statement is failing, because the library was
included in the list of dependencies, but was not being propagated and
not put in PERL5LIB, and resulted in an error:

```
$ po4a-updatepo -f text -m f.txt -p l.po -v
Unknown format type: text.
po4a::chooser: Module loading error: Can't locate YAML/Tiny.pm in @INC (you may need to install the YAML::Tiny module) (@INC contains: /gnu/store/6ba47ndbbaf1h8qrsss9lfji0xvmh8px-po4a-0.61/lib/perl5/site_perl/5.30.2/x86_64-linux-thread-multi /gnu/store/6ba47ndbbaf1h8qrsss9lfji0xvmh8px-po4a-0.61/lib/perl5/site_perl/5.30.2 /gnu/store/6ba47ndbbaf1h8qrsss9lfji0xvmh8px-po4a-0.61/lib/perl5/site_perl /gnu/store/8zvc5mvk0xm3ygrxsgpyy5ilxb5rzjry-perl-5.30.2/lib/perl5/site_perl/5.30.2/x86_64-linux-thread-multi /gnu/store/8zvc5mvk0xm3ygrxsgpyy5ilxb5rzjry-perl-5.30.2/lib/perl5/site_perl/5.30.2 /gnu/store/8zvc5mvk0xm3ygrxsgpyy5ilxb5rzjry-perl-5.30.2/lib/perl5/5.30.2/x86_64-linux-thread-multi /gnu/store/8zvc5mvk0xm3ygrxsgpyy5ilxb5rzjry-perl-5.30.2/lib/perl5/5.30.2) at /gnu/store/6ba47ndbbaf1h8qrsss9lfji0xvmh8px-po4a-0.61/lib/perl5/site_perl/5.30.2/Locale/Po4a/Text.pm line 60.
BEGIN failed--compilation aborted at /gnu/store/6ba47ndbbaf1h8qrsss9lfji0xvmh8px-po4a-0.61/lib/perl5/site_perl/5.30.2/Locale/Po4a/Text.pm line 60.
Compilation failed in require at (eval 22) line 1.
BEGIN failed--compilation aborted at (eval 22) line 1.
```

This patch addresses that, and now the use statement works as expected.

[0]: https://github.com/mquinson/po4a/blob/a69b48eda3ebd66eec30a34a377c7a00c6f8e36c/lib/Locale/Po4a/Text.pm#L60

 gnu/packages/gettext.scm | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 21228694d7..e4cd139393 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -238,17 +238,19 @@ from Markdown files.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-programs
-          (lambda* (#:key outputs #:allow-other-keys)
+          (lambda* (#:key outputs inputs #:allow-other-keys)
             ;; Make sure all executables in "bin" find the Perl modules
             ;; provided by this package at runtime.
-            (let* ((out  (assoc-ref outputs "out"))
-                   (bin  (string-append out "/bin/"))
-                   (path (string-append out "/lib/perl5/site_perl")))
+            (let* ((out       (assoc-ref outputs "out"))
+                   (bin       (string-append out "/bin/"))
+                   (path      (string-append out "/lib/perl5/site_perl"))
+                   (deps-path (string-append (assoc-ref inputs "perl-yaml-tiny")
+                                             "/lib/perl5/site_perl")))
               (for-each (lambda (file)
                           (wrap-program file
-                            `("PERL5LIB" ":" prefix (,path))))
-                        (find-files bin "\\.*$"))
-              #t)))
+                            `("PERL5LIB" ":" prefix (,path
+                                                     ,deps-path))))
+                        (find-files bin "\\.*$")))))
          (add-before 'reset-gzip-timestamps 'make-compressed-files-writable
            (lambda* (#:key outputs #:allow-other-keys)
              (for-each make-file-writable
@@ -284,8 +286,9 @@ from Markdown files.")
        ;; For tests.
        ("docbook-xml" ,docbook-xml-4.1.2)
        ("perl-test-pod" ,perl-test-pod)
-       ("perl-yaml-tiny" ,perl-yaml-tiny)
        ("texlive" ,texlive-tiny)))
+    (propagated-inputs
+     `(("perl-yaml-tiny" ,perl-yaml-tiny)))
     (home-page "https://po4a.org/")
     (synopsis "Scripts to ease maintenance of translations")
     (description
-- 
2.31.1