about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/tvheadend/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/tvheadend/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/tvheadend/default.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/tvheadend/default.nix b/nixpkgs/pkgs/servers/tvheadend/default.nix
new file mode 100644
index 000000000000..f97935a4ce39
--- /dev/null
+++ b/nixpkgs/pkgs/servers/tvheadend/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig
+, avahi, dbus, gettext, git, gnutar, gzip, bzip2, ffmpeg_3, libiconv, openssl, python
+, which, zlib }:
+
+let
+  version = "4.2.8";
+
+in stdenv.mkDerivation {
+  pname = "tvheadend";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner  = "tvheadend";
+    repo   = "tvheadend";
+    rev    = "v${version}";
+    sha256 = "1xq059r2bplaa0nd0wkhw80jfwd962x0h5hgd7fz2yp6largw34m";
+  };
+
+  buildInputs = [
+    avahi dbus gettext git gnutar gzip bzip2 ffmpeg_3 libiconv openssl python
+    which zlib
+  ];
+
+  nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=format-truncation" "-Wno-error=stringop-truncation" ];
+
+  # disable dvbscan, as having it enabled causes a network download which
+  # cannot happen during build.
+  configureFlags = [
+    "--disable-dvbscan"
+    "--disable-bintray_cache"
+    "--disable-ffmpeg_static"
+    "--disable-hdhomerun_client"
+    "--disable-hdhomerun_static"
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  preConfigure = ''
+    patchShebangs ./configure
+
+    substituteInPlace src/config.c \
+      --replace /usr/bin/tar ${gnutar}/bin/tar
+
+    # the version detection script `support/version` reads this file if it
+    # exists, so let's just use that
+    echo ${version} > rpm/version
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/tvheadend \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ bzip2 ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "TV streaming server";
+    longDescription = ''
+	Tvheadend is a TV streaming server and recorder for Linux, FreeBSD and Android
+        supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, SAT>IP and HDHomeRun as input sources.
+	Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming.'';
+    homepage = "https://tvheadend.org";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ simonvandel ];
+  };
+}