Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 86 lines 2.0 kB view raw
1{ 2 stdenv, 3 lib, 4 fetchFromGitHub, 5 kernel, 6 kmod, 7 patchutils, 8 perlPackages, 9}: 10let 11 12 media = fetchFromGitHub rec { 13 name = repo; 14 owner = "tbsdtv"; 15 repo = "linux_media"; 16 rev = "3f1faba3930568fd2d472a2fe8c57af8d7084672"; 17 hash = "sha256-tq92yqJVJgAYy7PTY/nk0Q6sWJ0kdSrw38JEOOhfwGQ="; 18 }; 19 20 build = fetchFromGitHub rec { 21 name = repo; 22 owner = "tbsdtv"; 23 repo = "media_build"; 24 rev = "bc02baf59046b02e3eb71653d8aa8d98e79dc4e1"; 25 hash = "sha256-P0ASmWro3j3dk7LZQbUKXcGL+2c9fdjM7RgEfk0iDMs="; 26 }; 27 28in 29stdenv.mkDerivation { 30 pname = "tbs"; 31 version = "20250510-${kernel.version}"; 32 33 srcs = [ 34 media 35 build 36 ]; 37 sourceRoot = build.name; 38 39 # https://github.com/tbsdtv/linux_media/wiki 40 preConfigure = '' 41 make dir DIR=../${media.name} 42 make allyesconfig 43 sed --regexp-extended --in-place v4l/.config \ 44 -e 's/(^CONFIG.*_RC.*=)./\1n/g' \ 45 -e 's/(^CONFIG.*_IR.*=)./\1n/g' \ 46 -e 's/(^CONFIG_VIDEO_VIA_CAMERA=)./\1n/g' 47 ''; 48 49 postPatch = '' 50 patchShebangs . 51 52 sed -i v4l/Makefile \ 53 -i v4l/scripts/make_makefile.pl \ 54 -e 's,/sbin/depmod,${kmod}/bin/depmod,g' \ 55 -e 's,/sbin/lsmod,${kmod}/bin/lsmod,g' 56 57 sed -i v4l/Makefile \ 58 -e 's,^OUTDIR ?= /lib/modules,OUTDIR ?= ${kernel.dev}/lib/modules,' \ 59 -e 's,^SRCDIR ?= /lib/modules,SRCDIR ?= ${kernel.dev}/lib/modules,' 60 ''; 61 62 buildFlags = [ "VER=${kernel.modDirVersion}" ]; 63 installFlags = [ "DESTDIR=$(out)" ]; 64 65 hardeningDisable = [ "pic" ]; 66 67 nativeBuildInputs = [ 68 patchutils 69 kmod 70 perlPackages.ProcProcessTable 71 ] 72 ++ kernel.moduleBuildDependencies; 73 74 postInstall = '' 75 find $out/lib/modules/${kernel.modDirVersion} -name "*.ko" -exec xz {} \; 76 ''; 77 78 meta = { 79 homepage = "https://www.tbsdtv.com/"; 80 description = "Linux driver for TBSDTV cards"; 81 license = lib.licenses.gpl2Only; 82 maintainers = with lib.maintainers; [ ck3d ]; 83 priority = -1; 84 broken = kernel.kernelOlder "4.19" || kernel.kernelAtLeast "6.15"; 85 }; 86}