diff options
Diffstat (limited to 'pkgs/os-specific/linux/tbs/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/tbs/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/tbs/default.nix b/pkgs/os-specific/linux/tbs/default.nix new file mode 100644 index 000000000000..291666c0b450 --- /dev/null +++ b/pkgs/os-specific/linux/tbs/default.nix @@ -0,0 +1,63 @@ +{ stdenv, lib, fetchFromGitHub, kernel, kmod, perl, patchutils, perlPackages, libelf }: +let + + media = fetchFromGitHub rec { + name = repo; + owner = "tbsdtv"; + repo = "linux_media"; + rev = "efe31531b77efd3a4c94516504a5823d31cdc776"; + sha256 = "1533qi3sb91v00289hl5zaj4l35r2sf9fqc6z5ky1vbb7byxgnlr"; + }; + + build = fetchFromGitHub rec { + name = repo; + owner = "tbsdtv"; + repo = "media_build"; + rev = "a0d62eba4d429e0e9d2c2f910fb203e817cac84b"; + sha256 = "1329s7w9xlqjqwkpaqsd6b5dmzhm97jw0c7c7zzmmbdkl289i4i4"; + }; + +in stdenv.mkDerivation { + name = "tbs-2018.04.18-${kernel.version}"; + + srcs = [ media build ]; + sourceRoot = "${build.name}"; + + preConfigure = '' + make dir DIR=../${media.name} + ''; + + postPatch = '' + patchShebangs . + + sed -i v4l/Makefile \ + -i v4l/scripts/make_makefile.pl \ + -e 's,/sbin/depmod,${kmod}/bin/depmod,g' \ + -e 's,/sbin/lsmod,${kmod}/bin/lsmod,g' + + sed -i v4l/Makefile \ + -e 's,^OUTDIR ?= /lib/modules,OUTDIR ?= ${kernel.dev}/lib/modules,' \ + -e 's,^SRCDIR ?= /lib/modules,SRCDIR ?= ${kernel.dev}/lib/modules,' + ''; + + buildFlags = [ "VER=${kernel.modDirVersion}" ]; + installFlags = [ "DESTDIR=$(out)" ]; + + hardeningDisable = [ "all" ]; + + nativeBuildInputs = [ patchutils kmod perl perlPackages.ProcProcessTable ] + ++ kernel.moduleBuildDependencies; + + postInstall = '' + xz $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/media/dvb-core/dvb-core.ko + xz $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/media/v4l2-core/videodev.ko + ''; + + meta = with lib; { + homepage = https://www.tbsdtv.com/; + description = "Linux driver for TBSDTV cards"; + license = licenses.gpl2; + maintainers = with maintainers; [ ck3d ]; + priority = -1; + }; +} |