Subject: bug#40272: linux-module-build-system don't support an inferior package as a kernel

From: Ludovic Courtès <[email-masked]>
Date: Sun, 01 Aug 2021 18:46:00 +0200

Hi,

Brice Waegeneire <[email-masked]> skribis:

> In guix/build-system/linux-module.scm:
>    132:22  3 (lower "ddcci-driver-linux-0.3.3" #:source _ #:inputs _ #:native-inputs _ #:outputs _ #:system _ #:target _ #:linux _ . _)
> In ice-9/boot-9.scm:
>   1685:16  2 (raise-exception _ #:continuable? _)
>   1685:16  1 (raise-exception _ #:continuable? _)
>   1685:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> In procedure %package-native-inputs-real: Wrong type argument: #<inferior-package [email-masked] 7f4ddef23bd0>

In this case, the problem is that (@ (guix build-system linux-module)
lower) assumes that ‘linux’ is a <package>:

    (build-inputs `(,@(if source
                          `(("source" ,source))
                          '())
                    ,@native-inputs
                    ;; TODO: Remove "gmp", "mpfr", "mpc" since they are
                    ;; only needed to compile the gcc plugins.  Maybe
                    ;; remove "flex", "bison", "elfutils", "perl",
                    ;; "openssl".  That leaves very little ("bc", "gcc",
                    ;; "kmod").
                    ,@(package-native-inputs linux)   ;<----- HERE

I suppose you could add a special-case for (inferior-package? linux).
Not pretty, but it’d do the job.

If we want to go further, we’ll have to end up with GOOPS…

HTH!

Ludo’.