about summary refs log tree commit diff
path: root/nixos/modules/apple-silicon-support/packages/linux-asahi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/apple-silicon-support/packages/linux-asahi/default.nix')
-rw-r--r--nixos/modules/apple-silicon-support/packages/linux-asahi/default.nix118
1 files changed, 0 insertions, 118 deletions
diff --git a/nixos/modules/apple-silicon-support/packages/linux-asahi/default.nix b/nixos/modules/apple-silicon-support/packages/linux-asahi/default.nix
deleted file mode 100644
index 4f00f3b..0000000
--- a/nixos/modules/apple-silicon-support/packages/linux-asahi/default.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-{ lib
-, pkgs
-, callPackage
-, writeShellScriptBin
-, writeText
-, linuxPackagesFor
-, _4KBuild ? false
-, withRust ? false
-, kernelPatches ? [ ]
-}:
-
-let
-  # TODO: use a pure nix regex parser instead of an IFD, and remove this workaround
-  localPkgs = if builtins ? currentSystem
-    then import (pkgs.path) {
-      crossSystem.system = builtins.currentSystem;
-      localSystem.system = builtins.currentSystem;
-    }
-    else pkgs;
-
-  inherit (localPkgs) runCommand;
-
-  parseExtraConfig = cfg: let
-    lines = builtins.filter (s: s != "") (lib.strings.splitString "\n" cfg);
-    perLine = line: let
-      kv = lib.strings.splitString " " line;
-    in assert (builtins.length kv == 2);
-       "CONFIG_${builtins.elemAt kv 0}=${builtins.elemAt kv 1}";
-    in lib.strings.concatMapStringsSep "\n" perLine lines;
-
-  readConfig = configfile: import (runCommand "config.nix" { } ''
-    echo "{ } // " > "$out"
-    while IFS='=' read key val; do
-      [ "x''${key#CONFIG_}" != "x$key" ] || continue
-      no_firstquote="''${val#\"}";
-      echo '{  "'"$key"'" = "'"''${no_firstquote%\"}"'"; } //' >> "$out"
-    done < "${configfile}"
-    echo "{ }" >> $out
-  '').outPath;
-
-  linux-asahi-pkg = { stdenv, lib, fetchFromGitHub, fetchpatch, linuxKernel,
-      rustPlatform, rustfmt, rust-bindgen, ... } @ args:
-    let
-      configfile = if kernelPatches == [ ] then ./config else
-        writeText "config" ''
-          ${builtins.readFile ./config}
-
-          # Patches
-          ${lib.strings.concatMapStringsSep "\n" ({extraConfig ? "", ...}: parseExtraConfig extraConfig) kernelPatches}
-        '';
-
-      _kernelPatches = kernelPatches;
-    in
-    (linuxKernel.manualConfig rec {
-      inherit stdenv lib;
-
-      version = "6.1.0-asahi";
-      modDirVersion = version;
-
-      src = fetchFromGitHub {
-        # tracking: https://github.com/AsahiLinux/PKGBUILDs/blob/stable/linux-asahi/PKGBUILD
-        owner = "AsahiLinux";
-        repo = "linux";
-        rev = "asahi-6.1-2";
-        hash = "sha256-grQytmYoAlPxRI8mYQjZFduD3BH7PA7rz1hyInJb4JA=";
-      };
-
-      kernelPatches = [
-      ] ++ lib.optionals _4KBuild [
-        # thanks to Sven Peter
-        # https://lore.kernel.org/linux-iommu/20211019163737.46269-1-sven@svenpeter.dev/
-        { name = "sven-iommu-4k";
-          patch = ./sven-iommu-4k.patch;
-        }
-      ] ++ lib.optionals (!_4KBuild) [
-        # patch the kernel to set the default size to 16k instead of modifying
-        # the config so we don't need to convert our config to the nixos
-        # infrastructure or patch it and thus introduce a dependency on the host
-        # system architecture
-        { name = "default-pagesize-16k";
-          patch = ./default-pagesize-16k.patch;
-        }
-      ] ++ _kernelPatches;
-
-      inherit configfile;
-      config = readConfig configfile;
-
-      extraMeta.branch = "6.1";
-    } // (args.argsOverride or {})).overrideAttrs (old: if withRust then {
-      nativeBuildInputs = (old.nativeBuildInputs or []) ++ [
-        rust-bindgen
-        rustfmt
-        # rustc 1.66.x has problems relating to the sad old aarch64 GCC9.
-        # we need it to pass -lgcc to gcc through the nix machinery but only when rustc
-        # is running, so we give the kernel build a rustc that wraps the real rustc
-        # while setting the appropriate environment variable during its execution.
-        # https://github.com/NixOS/nixpkgs/pull/209113
-        (writeShellScriptBin "rustc" ''
-          NIX_LDFLAGS=-lgcc ${rustPlatform.rust.rustc}/bin/rustc "$@"
-        '')
-      ];
-      RUST_LIB_SRC = rustPlatform.rustLibSrc;
-
-      preConfigure = ''
-        # Fixes for Rust 1.66.x
-        sed -i -e 's/rustc_allocator_nounwind/rustc_nounwind/g' rust/alloc/alloc.rs
-        sed -i -e 's/const Unpin/Unpin/' rust/alloc/boxed.rs
-        sed -i -e '/^pub unsafe trait RawDeviceId/i #[const_trait]' rust/kernel/driver.rs
-
-        # Fixes for rust-bindgen 0.63.0
-        sed -i -e 's/blacklist/blocklist/g' rust/Makefile
-        sed -i -e 's/whitelist/allowlist/g' rust/Makefile
-      '';
-    } else {});
-
-  linux-asahi = (callPackage linux-asahi-pkg { });
-in lib.recurseIntoAttrs (linuxPackagesFor linux-asahi)
-