diff mbox series

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

Message ID 20210630144423.3014514-1-eu@euandre.org
State New
Headers show
Series [bug#49294] gnu: po4a: Add perl-yaml-tiny to PERL5LIB | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

EuAndreh June 30, 2021, 2:44 p.m. UTC
* 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(-)

Comments

M April 3, 2022, 10:43 a.m. UTC | #1
EuAndreh via Guix-patches via schreef op wo 30-06-2021 om 11:44 [-
0300]:
> ---
> 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:

Adding it to PERL5LIB and moving it from native-inputs to non-native
inputs looks reasonable to me.  However: does it need to be propagated,
or is adding it to PERL5LIB sufficient?

Also, how many dependents are there (try "guix refresh -l")?  Maybe it
needs to be on core-updates.  Additionally, ca 'perl-yaml-tiny' now be
removed from 'kicad-doc' and 'qgis'?

Greetings,
Maxime.
Jelle Licht May 29, 2023, 11:52 a.m. UTC | #2
EuAndreh <eu@euandre.org> 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.
EuAndreh June 2, 2023, 12:46 p.m. UTC | #3
ACK, makes sense.  Thanks.
diff mbox series

Patch

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