From 53c8cd6af820e96057065f33d37edf630e1dd4a3 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Sun, 2 Oct 2022 18:03:41 -0700 Subject: [PATCH] zfs.meta.platforms: restrict to upstream-supported $TARGET_CPUs --- pkgs/os-specific/linux/zfs/generic.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/zfs/generic.nix b/pkgs/os-specific/linux/zfs/generic.nix index 88838e8cabac..50010a55a90a 100644 --- a/pkgs/os-specific/linux/zfs/generic.nix +++ b/pkgs/os-specific/linux/zfs/generic.nix @@ -212,7 +212,17 @@ stdenv'.mkDerivation { homepage = "https://github.com/openzfs/zfs"; changelog = "https://github.com/openzfs/zfs/releases/tag/zfs-${version}"; license = lib.licenses.cddl; - platforms = lib.platforms.linux; + + # The case-block for TARGET_CPU has branches for only five CPU families, + # which prevents ZFS from building on any other platform. Since the NixOS + # `boot.zfs.enabled` property is `readOnly`, excluding platforms where ZFS + # does not build is the only way to produce a NixOS installer on such + # platforms. + # https://github.com/openzfs/zfs/blob/6a6bd493988c75331deab06e5352a9bed035a87d/config/always-arch.m4#L16 + platforms = + with lib.systems.inspect.patterns; + map (p: p // isLinux) [ isx86_32 isx86_64 isPower isAarch64 isSparc ]; + maintainers = with lib.maintainers; [ jcumming jonringer globin raitobezarius ]; mainProgram = "zfs"; # If your Linux kernel version is not yet supported by zfs, try zfsUnstable.