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