Subject: bug#52411: [core-updates-frozen] kmod-29 build fails, cross-compiled for i586-pc-gnu

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 17 Dec 2021 23:11:48 -0500

Hi Maxime,

Maxime Devos <[email-masked]> writes:

> Maxime Devos schreef op vr 10-12-2021 om 17:48 [+0000]:
>> Maxim Cournoyer schreef op vr 10-12-2021 om 07:55 [-0500]:
>> > Hello Guix!
>> >
>> > I haven't been able to deploy core-updates-frozen on one of my
>> > machine,
>> > because it has the childhurd service which needs kmod-29 which
>> > fails
>> > building, like so:
>>
>> kmod is a linux-only thing, it's for doing things with linux kernel
>> modules, so the childhurd service shouldn't be using kmod. Perhaps
>> look
>> at why kmod is being built in the first place?
>
> I think I might have found the issue. The following commit made the
> existence/absence 'kmod' input of pciutils depend on %current-
> system/%current-target-system:
>
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=22ee7209797c023b95e22ced156df62cbff90184
>
> but it forgot to keep in mind that nix systems != triplets.
> Instead of %current-target-system, the 'current-target-nix-system'
> from ‘https://issues.guix.gnu.org/49672#3’ needs to be used
> (or the hurd-target? procedure).

Looking more closely, I don't see an issue with the current conditional
seleciting kmod?  nix systems != triplets, but in this case, the
conditional is seldom dealing with nix systems, it seems.  Am I missing
something?

*** time passes ... reads sources ***

Ah!  per (guix utils), it seems like %current-system is a nix system,
while %current-target-system is a GNU triplet.  Confusing!

So, I've now made the following change:

--8<---------------cut here---------------start------------->8---
     (native-inputs
      (list which pkg-config))
     (inputs
-     `(,@(if (member (or (%current-target-system)
-                         (%current-system))
-                     (package-supported-systems kmod))
+     `(,@(if (not (hurd-target?))
              `(("kmod" ,kmod))
              '())
--8<---------------cut here---------------end--------------->8---

I'll push it to version-1.4.0 as it causes a big rebuild.  I'm still
curious that this doesn't appear triggered on every guix deploy I've
made though...

Thanks!

Maxim