tvheadend: init at 4.0.4

wip/yesman
Simon Vandel Sillesen 9 years ago
parent 5ee8b66a68
commit 9dab1a840c
  1. 1
      lib/maintainers.nix
  2. 1
      nixos/doc/manual/release-notes/rl-unstable.xml
  3. 2
      nixos/modules/misc/ids.nix
  4. 1
      nixos/modules/module-list.nix
  5. 61
      nixos/modules/services/networking/tvheadend.nix
  6. 31
      pkgs/servers/tvheadend/default.nix
  7. 2
      pkgs/top-level/all-packages.nix

@ -212,6 +212,7 @@
shell = "Shell Turner <cam.turn@gmail.com>";
shlevy = "Shea Levy <shea@shealevy.com>";
simons = "Peter Simons <simons@cryp.to>";
simonvandel = "Simon Vandel Sillesen <simon.vandel@gmail.com>";
sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
skeidel = "Sven Keidel <svenkeidel@gmail.com>";

@ -41,6 +41,7 @@
<itemizedlist>
<listitem><para><literal>brltty</literal></para></listitem>
<listitem><para><literal>marathon</literal></para></listitem>
<listitem><para><literal>Tvheadend</literal></para></listitem>
</itemizedlist>
</para>

@ -221,6 +221,7 @@
skydns = 197;
ripple-rest = 198;
nix-serve = 199;
tvheadend = 200;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -420,6 +421,7 @@
#skydns = 197; #unused
#ripple-rest = 198; #unused
#nix-serve = 199; #unused
#tvheadend = 200; #unused
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal

@ -333,6 +333,7 @@
./services/networking/tftpd.nix
./services/networking/tlsdated.nix
./services/networking/tox-bootstrapd.nix
./services/networking/tvheadend.nix
./services/networking/unbound.nix
./services/networking/unifi.nix
./services/networking/vsftpd.nix

@ -0,0 +1,61 @@
{ config, coreutils, lib, pkgs, ... }:
with lib;
let cfg = config.services.tvheadend;
pidFile = "${config.users.extraUsers.tvheadend.home}/tvheadend.pid";
in
{
options = {
services.tvheadend = {
enable = mkEnableOption "Tvheadend";
httpPort = mkOption {
type = types.int;
default = 9981;
description = "Port to bind HTTP to.";
};
htspPort = mkOption {
type = types.int;
default = 9982;
description = "Port to bind HTSP to.";
};
};
};
config = mkIf cfg.enable {
users.extraUsers.tvheadend = {
description = "Tvheadend Service user";
home = "/var/lib/tvheadend";
createHome = true;
uid = config.ids.uids.tvheadend;
};
systemd.services.tvheadend = {
description = "Tvheadend TV streaming server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "forking";
PIDFile = pidFile;
Restart = "always";
RestartSec = 5;
User = "tvheadend";
Group = "video";
ExecStart = ''
${pkgs.tvheadend}/bin/tvheadend \
--http_port ${toString cfg.httpPort} \
--htsp_port ${toString cfg.htspPort} \
-f \
-C \
-p ${pidFile} \
-u tvheadend \
-g video
'';
ExecStop = "${pkgs.coreutils}/bin/rm ${pidFile}";
};
};
};
}

@ -0,0 +1,31 @@
{avahi, dbus, fetchurl, git, gzip, libav, libiconv, openssl, pkgconfig, python, stdenv, which, zlib}:
let version = "4.0.4";
pkgName = "tvheadend"; in
stdenv.mkDerivation rec {
name = "${pkgName}-${version}";
src = fetchurl {
url = "https://github.com/tvheadend/tvheadend/archive/v${version}.tar.gz";
sha256 = "acc5c852bccb32d6a281f523e78a1cceb4d41987fe015aba3f66e1898b02c168";
};
enableParallelBuilding = true;
buildInputs = [ avahi dbus git gzip libav libiconv openssl pkgconfig python which zlib];
preConfigure = "patchShebangs ./configure";
meta = {
description = "TV steaming 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 = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.simonvandel ];
};
}

@ -14775,6 +14775,8 @@ let
tup = callPackage ../development/tools/build-managers/tup { };
tvheadend = callPackage ../servers/tvheadend { };
utf8proc = callPackage ../development/libraries/utf8proc { };
vbam = callPackage ../misc/emulators/vbam {

Loading…
Cancel
Save