diff --git a/nixos/modules/hardware/sheep-net.nix b/nixos/modules/hardware/sheep-net.nix new file mode 100644 index 000000000000..47c64b6a4dbf --- /dev/null +++ b/nixos/modules/hardware/sheep-net.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + ... +}: + +let + cfg = config.hardware.sheep_net; +in +{ + options.hardware.sheep_net = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enables sheep_net udev rules, ensures 'sheep_net' group exists, and adds + sheep-net to boot.kernelModules and boot.extraModulePackages + ''; + }; + }; + config = lib.mkIf cfg.enable { + services.udev.extraRules = '' + KERNEL=="sheep_net", GROUP="sheep_net" + ''; + boot.kernelModules = [ + "sheep_net" + ]; + boot.extraModulePackages = [ + config.boot.kernelPackages.sheep-net + ]; + users.groups.sheep_net = { }; + }; + meta.maintainers = with lib.maintainers; [ matthewcroughan ]; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 0ec81e5bcb7b..c87b80333d81 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -104,6 +104,7 @@ ./hardware/sata.nix ./hardware/sensor/hddtemp.nix ./hardware/sensor/iio.nix + ./hardware/sheep-net.nix ./hardware/steam-hardware.nix ./hardware/system-76.nix ./hardware/tuxedo-drivers.nix diff --git a/pkgs/by-name/ba/basiliskii/package.nix b/pkgs/by-name/ba/basiliskii/package.nix index a6e77d3e5232..b6b5f257f45b 100644 --- a/pkgs/by-name/ba/basiliskii/package.nix +++ b/pkgs/by-name/ba/basiliskii/package.nix @@ -11,13 +11,15 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "basiliskii"; - version = "unstable-2022-09-30"; + version = "unstable-2025-07-16"; + # This src is also used to build pkgs/os-specific/linux/sheep-net + # Therefore changes to it may effect the sheep-net package src = fetchFromGitHub { owner = "kanjitalk755"; repo = "macemu"; - rev = "2fa17a0783cf36ae60b77b5ed930cda4dc1824af"; - sha256 = "+jkns6H2YjlewbUzgoteGSQYWJL+OWVu178aM+BtABM="; + rev = "030599cf8d31cb80afae0e1b086b5706dbdd2eea"; + sha256 = "sha256-gxaj+2ymelH6uWmjMLXi64xMNrToo6HZcJ7RW7sVMzo="; }; sourceRoot = "${finalAttrs.src.name}/BasiliskII/src/Unix"; patches = [ ./remove-redhat-6-workaround-for-scsi-sg.h.patch ]; diff --git a/pkgs/os-specific/linux/sheep-net/default.nix b/pkgs/os-specific/linux/sheep-net/default.nix new file mode 100644 index 000000000000..115e73b1eb35 --- /dev/null +++ b/pkgs/os-specific/linux/sheep-net/default.nix @@ -0,0 +1,31 @@ +{ + kernel, + kernelModuleMakeFlags, + stdenv, + basiliskii, + lib, +}: +stdenv.mkDerivation (finalAttrs: { + name = "sheep_net"; + version = basiliskii.version; + src = basiliskii.src; + sourceRoot = "${finalAttrs.src.name}/BasiliskII/src/Unix/Linux/NetDriver"; + + nativeBuildInputs = kernel.moduleBuildDependencies; + makeFlags = kernelModuleMakeFlags ++ [ + "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}" + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/lib/modules/${kernel.modDirVersion}/drivers/net + install -Dm444 sheep_net.ko $out/lib/modules/${kernel.modDirVersion}/drivers/net/sheep_net.ko + runHook postInstall + ''; + + meta = { + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ matthewcroughan ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 398a0031f13d..055f509b98b2 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -593,6 +593,8 @@ in rr-zen_workaround = callPackage ../development/tools/analysis/rr/zen_workaround.nix { }; + sheep-net = callPackage ../os-specific/linux/sheep-net { }; + shufflecake = callPackage ../os-specific/linux/shufflecake { }; sysdig = callPackage ../os-specific/linux/sysdig { };