{ stdenv, lib, fetchFromGitHub, fetchpatch2, kernel, }: stdenv.mkDerivation rec { pname = "gasket"; version = "1.0-18-unstable-2024-04-25"; src = fetchFromGitHub { owner = "google"; repo = "gasket-driver"; rev = "5815ee3908a46a415aac616ac7b9aedcb98a504c"; sha256 = "O17+msok1fY5tdX1DvqYVw6plkUDF25i8sqwd6mxYf8="; }; patches = [ (fetchpatch2 { # https://github.com/google/gasket-driver/issues/36 # https://github.com/google/gasket-driver/pull/35 name = "linux-6.12-compat.patch"; url = "https://github.com/google/gasket-driver/commit/4b2a1464f3b619daaf0f6c664c954a42c4b7ce00.patch"; hash = "sha256-UOoOSEnpUMa4QXWVFpGFxBoF5szXaLEfcWtfKatO5XY="; }) ]; postPatch = '' cd src ''; makeFlags = kernel.makeFlags ++ [ "-C" "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "M=$(PWD)" ]; buildFlags = [ "modules" ]; installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; installTargets = [ "modules_install" ]; hardeningDisable = [ "pic" "format" ]; nativeBuildInputs = kernel.moduleBuildDependencies; meta = with lib; { description = "Coral Gasket Driver allows usage of the Coral EdgeTPU on Linux systems"; homepage = "https://github.com/google/gasket-driver"; license = licenses.gpl2Only; maintainers = [ lib.maintainers.kylehendricks ]; platforms = platforms.linux; broken = versionOlder kernel.version "5.15"; }; }