Subject: bug#43508: [email-masked] has duplicate ‘gcc-mesboot1’ input

From: Ludovic Courtès <[email-masked]>
Date: Mon, 21 Sep 2020 15:51:03 +0200

Ludovic Courtès <[email-masked]> skribis:

> The [email-masked] package has the same ‘gcc-mesboot1’ input twice:
>
> $ guix describe
> Generacio 159	Sep 18 2020 08:55:27	(nuna)
>   guix 98b89f4
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 98b89f432103b66efacee0bcba41a94148b8e870
> $ cat $(guix gc --references $(guix build -e '(@@ (gnu packages commencement) gcc-mesboot)' -d) |grep gcc-mesboot-4.9.4-guile-builder)
>   […]
>   (define %build-inputs
>     (quote
>      (("source" . "/gnu/store/56km255bk1s880yn6rxw4wj3crm2pshk-gcc-4.9.4.tar.xz")
>       ("gcc-wrapper" . "/gnu/store/w527yvvbn3m8m243x7q9h6bal035ry9h-gcc-mesboot1-wrapper-4.6.4")
>       ("gcc" . "/gnu/store/q7f07gpd9sq9krc68gxa73vbqmk06y0a-gcc-mesboot1-4.6.4")   ; ⇐
>       ("headers" . "/gnu/store/aj9plwk7k9ma17bbcwd7l8f48z1bim66-glibc-headers-mesboot-2.16.0")
>       ("libc" . "/gnu/store/wgb70ir475v4vhg4bcjzv4h2kaa93qj7-glibc-mesboot-2.16.0")
>       ("binutils" . "/gnu/store/mza1k0mgr8ab407yzavwwz07ly7221wy-binutils-mesboot-2.20.1a")
>       ("xz" . "/gnu/store/r1zsxj7wlvw1aa1ifv3nyrrjag44pc9s-xz-mesboot-5.0.0")
>       ("gcc" . "/gnu/store/q7f07gpd9sq9krc68gxa73vbqmk06y0a-gcc-mesboot1-4.6.4")   ; ⇐

Fixed in 18fa433bf5c420868562b9f4b017c5c97251a44b on ‘core-updates’.

> I noticed it while trying to address
> <https://issues.guix.gnu.org/38100>: it prevents the simple solution of
> using (delete-duplicates input-drvs) in ‘bag->derivation’.  (Apart from
> that this issue is harmless, but I think we’d better be strict about
> this sort of things deep down in the graph.)

There are other similar situations that prevent this solution on
‘master’ anyway.

In particular, any package that has the same dependency both in ‘inputs’
and in ‘native-inputs’ ends up with duplicates in ‘%build-inputs’.  This
is the case, for example, of ‘help2man’, where Perl is both in
‘native-inputs’ and in ‘inputs’.

Ludo’.