diff --git a/pkgs/os-specific/linux/amneziawg/default.nix b/pkgs/os-specific/linux/amneziawg/default.nix new file mode 100644 index 000000000000..9137bf18de9e --- /dev/null +++ b/pkgs/os-specific/linux/amneziawg/default.nix @@ -0,0 +1,51 @@ +{ + lib, + stdenv, + fetchFromGitHub, + srcOnly, + kernel, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "amneziawg"; + version = "1.0.20240711"; + + src = fetchFromGitHub { + owner = "amnezia-vpn"; + repo = "amneziawg-linux-kernel-module"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-WOcBTxetVz2Sr62c+2aGNyohG2ydi+R+az+4qHbKprI="; + }; + + sourceRoot = "${finalAttrs.src.name}/src"; + hardeningDisable = [ "pic" ]; + nativeBuildInputs = kernel.moduleBuildDependencies; + + buildFlags = [ + "apply-patches" + "module" + ]; + + makeFlags = + kernel.makeFlags + ++ [ "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ] + ++ lib.optional (lib.versionAtLeast kernel.version "5.6") "KERNEL_SOURCE_DIR=${srcOnly kernel}"; + + enableParallelBuilding = true; + + installFlags = [ + "DEPMOD=true" + "INSTALL_MOD_PATH=${placeholder "out"}" + ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Kernel module for the AmneziaWG"; + homepage = "https://amnezia.org"; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ averyanalex ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index f7ac0ea95cde..82ffe09e97e4 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -315,6 +315,8 @@ in { akvcam = callPackage ../os-specific/linux/akvcam { }; + amneziawg = callPackage ../os-specific/linux/amneziawg { }; + apfs = callPackage ../os-specific/linux/apfs { }; ax99100 = callPackage ../os-specific/linux/ax99100 {};