Subject: Re: bug#73030: git send-email missing perl packages

From: Simon Tournier <[email-masked]>
Date: Thu, 05 Sep 2024 04:27:35 +0200

Hi,

Using the fix <https://issues.guix.gnu.org/73034>, I get this error:

--8<---------------cut here---------------start------------->8---
Need MIME::Base64 and Authen::SASL todo auth at /gnu/store/imnyk8h2s6qfwd602n5vqxax8h33j2k5-git-2.45.2-send-email/libexec/git-core/.git-send-email-real line 1655.
--8<---------------cut here---------------end--------------->8---

My bad!

The issue is that ’package-transitive-propagated-inputs’ does not return
the package itself but only the dependent ones.  Hence the explicit
dependents packages themselves are therefore missing.

Here, the snippet that fixes.

--8<---------------cut here---------------start------------->8---
scheme@(guix-user)> ,pp (delete-duplicates
                            (let ((these-inputs
                                   (list (this-package-input "perl-authen-sasl")
                                         (this-package-input "perl-net-smtp-ssl")
                                         (this-package-input "perl-io-socket-ssl"))))
                              (append
                               these-inputs
                               (map last
                                    (append-map
                                     package-transitive-propagated-inputs
                                     these-inputs)))))
$4 = (#<package [email-masked] gnu/packages/web.scm:2476 72f60a906f20>
 #<package [email-masked] gnu/packages/web.scm:4512 72f60a9169a0>
 #<package [email-masked] gnu/packages/web.scm:4206 72f60a90f160>
 #<package [email-masked] gnu/packages/perl.scm:4029 72f60df5e420>
 #<package [email-masked] gnu/packages/web.scm:3527 72f60a90c580>
 #<package [email-masked] gnu/packages/web.scm:4819 72f60a916160>
 #<package [email-masked] gnu/packages/tls.scm:819 72f60a7f3e70>)
--8<---------------cut here---------------end--------------->8---

compared to:

        (assoc-ref inputs "perl-authen-sasl")
        (assoc-ref inputs "perl-net-smtp-ssl")
        (assoc-ref inputs "perl-io-socket-ssl")
        (assoc-ref inputs "perl-gssapi")
        (assoc-ref inputs "perl-digest-hmac")
        (assoc-ref inputs "perl-uri")
        (assoc-ref inputs "perl-net-ssleay")

Therefore, see v2.

Cheers,
simon