1{ stdenv, lib, fetchFromGitHub, fetchpatch, kernel }:
2
3stdenv.mkDerivation rec {
4 # linux kernel above 5.7 comes with its own exfat implementation https://github.com/arter97/exfat-linux/issues/27
5 # Assertion moved here due to some tests unintenionally triggering it,
6 # e.g. nixosTests.kernel-latest; it's unclear how/why so far.
7 assertion = assert lib.versionOlder kernel.version "5.8"; null;
8
9 name = "exfat-nofuse-${version}-${kernel.version}";
10 version = "2020-04-15";
11
12 src = fetchFromGitHub {
13 owner = "barrybingo";
14 repo = "exfat-nofuse";
15 rev = "297a5739cd4a942a1d814d05a9cd9b542e7b8fc8";
16 sha256 = "14jahy7n6pr482fjfrlf9ck3f2rkr5ds0n5r85xdfsla37ria26d";
17 };
18
19 hardeningDisable = [ "pic" ];
20
21 nativeBuildInputs = kernel.moduleBuildDependencies;
22
23 makeFlags = [
24 "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
25 "ARCH=${stdenv.hostPlatform.linuxArch}"
26 ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
27 "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
28 ];
29
30 installPhase = ''
31 install -m644 -b -D exfat.ko $out/lib/modules/${kernel.modDirVersion}/kernel/fs/exfat/exfat.ko
32 '';
33
34 meta = {
35 description = "exfat kernel module";
36 inherit (src.meta) homepage;
37 license = lib.licenses.gpl2;
38 maintainers = with lib.maintainers; [ makefu ];
39 platforms = lib.platforms.linux;
40 broken = true;
41 };
42}