Hi all, Sorry for the excessive number of patches. This patchset contains 4 patches, two that add new features to Guix and do not involve ZFS at all, one bugfix of the ZFS package, and one which makes installing ZFS on Guix easy. * Patch 1: Create an extensible service type that installs kernel-loadable modules into the kernel. * This allows a ZFS service to add the ZFS module to the kernel. * Patch 2: Make the `file-systems` shepherd service an extensible target, so that other services can add more requirements for `file-systems`. * This allows a ZFS service to make `file-systems` wait for the ZFS automount at startup, which is necessary in any case in order to ensure that ZFS has scanned for ZFS pools installed in the hardware. * Patch 3: Fix the ZFS package definition. * Patch 4: Add a ZFS service type that installs everything needed for basic ZFS usage! I've tested the ZFS functionality in about a half-dozen VMs already, including checking that the ZFS setup persists across reboots of the VM: * No ZFS installed. * With ZFS installed but without any ZFS pools. * With ZFS pool that is automounted. * With ZFS pool in legacy mode (needs manual `mount -t zfs poolname /mountpoint`). * Encrypted ZFS dataset (prompts passphrase at boot to mount). * Encrypted ZFS dataseet as `/home` (prompts passphrase at boot to mount, user `/home` directories are created and maintained). Other bits of ZFS functionality would be *nice* but aren't in this patchset yet (and at least for my purposes are not really necessary, except perhaps the auto-scrubbing, I just need to wrap my head around `mcron`...): * Auto-scrubbing of ZFS pools to ensure no data corruption. * Auto-snapshotting of ZFS datasets to protect against user error. * `/` on ZFS. * `/boot` on ZFS. * Managing ZFS "legacy" mountpoints on `(file-system ...)` declarations. * Managing ZFS pool setup in the `operating-system` declaration somehow (not sure how to do this). Thanks raid5atemyhomework