1{ stdenv, lib, fetchFromGitHub, kernel, kmod, perl, patchutils, perlPackages }:
2let
3
4 media = fetchFromGitHub rec {
5 name = repo;
6 owner = "tbsdtv";
7 repo = "linux_media";
8 rev = "efe31531b77efd3a4c94516504a5823d31cdc776";
9 sha256 = "1533qi3sb91v00289hl5zaj4l35r2sf9fqc6z5ky1vbb7byxgnlr";
10 };
11
12 build = fetchFromGitHub rec {
13 name = repo;
14 owner = "tbsdtv";
15 repo = "media_build";
16 rev = "a0d62eba4d429e0e9d2c2f910fb203e817cac84b";
17 sha256 = "1329s7w9xlqjqwkpaqsd6b5dmzhm97jw0c7c7zzmmbdkl289i4i4";
18 };
19
20in stdenv.mkDerivation {
21 pname = "tbs";
22 version = "2018.04.18-${kernel.version}";
23
24 srcs = [ media build ];
25 sourceRoot = build.name;
26
27 preConfigure = ''
28 make dir DIR=../${media.name}
29 '';
30
31 postPatch = ''
32 patchShebangs .
33
34 sed -i v4l/Makefile \
35 -i v4l/scripts/make_makefile.pl \
36 -e 's,/sbin/depmod,${kmod}/bin/depmod,g' \
37 -e 's,/sbin/lsmod,${kmod}/bin/lsmod,g'
38
39 sed -i v4l/Makefile \
40 -e 's,^OUTDIR ?= /lib/modules,OUTDIR ?= ${kernel.dev}/lib/modules,' \
41 -e 's,^SRCDIR ?= /lib/modules,SRCDIR ?= ${kernel.dev}/lib/modules,'
42 '';
43
44 buildFlags = [ "VER=${kernel.modDirVersion}" ];
45 installFlags = [ "DESTDIR=$(out)" ];
46
47 hardeningDisable = [ "all" ];
48
49 nativeBuildInputs = [ patchutils kmod perl perlPackages.ProcProcessTable ]
50 ++ kernel.moduleBuildDependencies;
51
52 postInstall = ''
53 find $out/lib/modules/${kernel.modDirVersion} -name "*.ko" -exec xz {} \;
54 '';
55
56 meta = with lib; {
57 homepage = "https://www.tbsdtv.com/";
58 description = "Linux driver for TBSDTV cards";
59 license = licenses.gpl2;
60 maintainers = with maintainers; [ ck3d ];
61 priority = -1;
62 broken = true;
63 };
64}