Subject: [bug#45692] [PATCH 0/4] Even Better ZFS Support on Guix

From: Ludovic Courtès <[email-masked]>
Date: Wed, 10 Feb 2021 16:44:49 +0100

Hi,

raid5atemyhomework <[email-masked]> skribis:

>>>From 4beb73c62995cf236b402dad8e1c36016027c781 Mon Sep 17 00:00:00 2001
> From: raid5atemyhomework <[email-masked]>
> Date: Tue, 5 Jan 2021 22:27:56 +0800
> Subject: [PATCH 1/4] gnu: Allow services to install kernel-loadable modules.
>
> * gnu/system.scm (operating-system-directory-base-entries): Remove code
> to handle generation of "kernel" and "hurd".
> (operating-system-default-essential-services): Instantiate
> kernel-loadable-module-service.
> (hurd-default-essential-services): Instantiate
> kernel-loadable-module-service.
> (package-for-kernel): Move ...
> * gnu/services.scm: ... to here.
> (kernel-loadable-module-service-type): New variable.
> (kernel-loadable-module-service): New procedure.
> * gnu/tests/linux-modules.scm (run-loadable-kernel-modules-test): Move
> code to ...
> (run-loadable-kernel-modules-test-base): ... new procedure here.
> (run-loadable-kernel-modules-service-test): New procedure.
> (%test-loadable-kernel-modules-service-0): New variable.
> (%test-loadable-kernel-modules-service-1): New variable.
> (%test-loadable-kernel-modules-service-2): New variable.
> * doc/guix.texi: Document kernel-loadable-module-service-type.

[…]

> +@defvr {Scheme Variable} kernel-loadable-module-service-type
> +Type of the service that collects lists of packages containing
> +kernel-loadable modules, and adds them to the set of kernel-loadable
> +modules.
> +@end defvr

Would be nice to expound a bit here, in particular by adding an example
(along the lines of those used in system tests maybe?).  Otherwise it
can be hard to fathom how this is meant to be used.

> +;; Configuration for the kernel builder.
> +(define-record-type* <kernel-builder-configuration> kernel-builder-configuration
> +  make-kernel-builder-configuration
> +  kernel-builder-configuration?
> +  this-kernel-builder-configuration
> +
> +  (kernel   kernel-builder-configuration-kernel   (default #f))
> +  (hurd     kernel-builder-configuration-hurd     (default #f))
> +  (modules  kernel-builder-configuration-modules  (default '())))

How about <linux-build-configuration> instead?

In general, throughout the project, we do not use “kernel” and “Linux”
interchangeably.  Since this is a Linux-only feature, let’s call it that
way and remove the ‘hurd’ field (the Hurd has no notion of in-kernel
modules since pretty much everything happens in user-space.)

> +(define kernel-loadable-module-service-type
> +  (service-type (name 'kernel-loadable-modules)

Same here: ‘linux-loadable-module-service-type’.

But… it’s not clear at first sight how this differs from the existing
‘kernel-module-loader’.  Perhaps ‘linux-build-service-type’ would be
more accurate?  Or am I missing something?

Thanks,
Ludo’.