From 6fa5767e07221bbc6fdfda24904b994becc10e7f Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 21 Aug 2024 20:56:34 +0100 Subject: [PATCH 1/2] tvheadend: drop Closes: #332259 --- .../manual/release-notes/rl-2411.section.md | 6 + nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 1 + .../modules/services/networking/tvheadend.nix | 63 -------- pkgs/servers/tvheadend/default.nix | 134 ------------------ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 7 files changed, 8 insertions(+), 200 deletions(-) delete mode 100644 nixos/modules/services/networking/tvheadend.nix delete mode 100644 pkgs/servers/tvheadend/default.nix diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 800bbd03566dd..25a9beb55e80f 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -334,6 +334,12 @@ were not used by any other package. External users are encouraged to migrate to OpenCV 4. +- The `tvheadend` package and the `services.tvheadend` module have been + removed as nobody was willing to maintain them and they were stuck on + an unmaintained version that required FFmpeg 4; please see [pull + request #332259](https://github.com/NixOS/nixpkgs/pull/332259) if you + are interested in maintaining a newer version. + ## Other Notable Changes {#sec-release-24.11-notable-changes} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index cf79c8b4792b6..812179b6962a3 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1239,7 +1239,6 @@ ./services/networking/tox-node.nix ./services/networking/toxvpn.nix ./services/networking/trickster.nix - ./services/networking/tvheadend.nix ./services/networking/twingate.nix ./services/networking/ucarp.nix ./services/networking/unbound.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 374d127198d0d..71a4da5419e1a 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -94,6 +94,7 @@ in the program being unmaintained. The options `programs.msmtp.*` can be used instead. '') + (mkRemovedOptionModule [ "services" "tvheadend" ] "The tvheadend package and the corresponding module have been removed as nobody was willing to maintain them and they were stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version.") (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.") (mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces..wakeOnLan") (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.") diff --git a/nixos/modules/services/networking/tvheadend.nix b/nixos/modules/services/networking/tvheadend.nix deleted file mode 100644 index 19a10a03bd9b6..0000000000000 --- a/nixos/modules/services/networking/tvheadend.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let cfg = config.services.tvheadend; - pidFile = "${config.users.users.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.users.tvheadend = { - description = "Tvheadend Service user"; - home = "/var/lib/tvheadend"; - createHome = true; - isSystemUser = true; - group = "tvheadend"; - }; - users.groups.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}"; - }; - }; - }; -} diff --git a/pkgs/servers/tvheadend/default.nix b/pkgs/servers/tvheadend/default.nix deleted file mode 100644 index 499a046663aef..0000000000000 --- a/pkgs/servers/tvheadend/default.nix +++ /dev/null @@ -1,134 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch - -# buildtime -, makeWrapper -, pkg-config -, python3 -, which - -# runtime -, avahi -, bzip2 -, dbus -, dtv-scan-tables -, ffmpeg_4 -, gettext -, gnutar -, gzip -, libiconv -, openssl -, uriparser -, zlib -}: - -let - version = "4.2.8"; -in stdenv.mkDerivation { - pname = "tvheadend"; - inherit version; - - src = fetchFromGitHub { - owner = "tvheadend"; - repo = "tvheadend"; - rev = "v${version}"; - sha256 = "1xq059r2bplaa0nd0wkhw80jfwd962x0h5hgd7fz2yp6largw34m"; - }; - - outputs = [ - "out" - "man" - ]; - - patches = [ - # Pull upstream fix for -fno-common toolchain - # https://github.com/tvheadend/tvheadend/pull/1342 - # TODO: can be removed with 4.3 release. - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/tvheadend/tvheadend/commit/bd92f1389f1aacdd08e913b0383a0ca9dc223153.patch"; - sha256 = "17bsx6mnv4pjiayvx1d57dphva0kvlppvnmmaym06dh4524pnly1"; - }) - ]; - - nativeBuildInputs = [ - makeWrapper - pkg-config - python3 - which - ]; - - buildInputs = [ - avahi - bzip2 - dbus - ffmpeg_4 # depends on libav - gettext - gzip - libiconv - openssl - uriparser - zlib - ]; - - enableParallelBuilding = true; - - env.NIX_CFLAGS_COMPILE = toString ([ - "-Wno-error=format-truncation" - "-Wno-error=stringop-truncation" - ] ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12") [ - # Needed with GCC 12 but unrecognized with GCC 9 - "-Wno-error=use-after-free" - ]); - - configureFlags = [ - # disable dvbscan, as having it enabled causes a network download which - # cannot happen during build. We now include the dtv-scan-tables ourselves - "--disable-dvbscan" - "--disable-bintray_cache" - "--disable-ffmpeg_static" - # incompatible with our libhdhomerun version - "--disable-hdhomerun_client" - "--disable-hdhomerun_static" - "--disable-libx264_static" - "--disable-libx265_static" - "--disable-libvpx_static" - "--disable-libtheora_static" - "--disable-libvorbis_static" - "--disable-libfdkaac_static" - "--disable-libmfx_static" - ]; - - preConfigure = '' - substituteInPlace src/config.c \ - --replace /usr/bin/tar ${gnutar}/bin/tar - - substituteInPlace src/input/mpegts/scanfile.c \ - --replace /usr/share/dvb ${dtv-scan-tables}/share/dvbv5 - - # 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 : ${lib.makeBinPath [ bzip2 ]} - ''; - - meta = with lib; { - description = "TV streaming server and digital video recorder"; - longDescription = '' - Tvheadend is a TV streaming server for Linux supporting DVB-S, - DVB-S2, DVB-C, DVB-T, ATSC, IPTV,SAT>IP and other formats - through the unix pipe as input sources. - ''; - homepage = "https://tvheadend.org"; - license = licenses.gpl3Only; - platforms = platforms.unix; - maintainers = with maintainers; [ simonvandel ]; - mainProgram = "tvheadend"; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 9194ba9b4c88b..b71bd5483295b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1494,6 +1494,7 @@ mapAliases ({ trustedGrub-for-HP = throw "trustedGrub-for-HP has been removed, because it is not maintained upstream anymore"; # Added 2023-05-10 tumpa = throw "tumpa has been removed, as it is broken"; # Added 2024-07-15 tvbrowser-bin = tvbrowser; # Added 2023-03-02 + tvheadend = throw "tvheadend has been removed as it nobody was willing to maintain it and it was stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version"; # Added 2024-08-21 typst-fmt = typstfmt; # Added 2023-07-15 typst-preview = throw "The features of 'typst-preview' have been consolidated to 'tinymist', an all-in-one language server for typst"; # Added 2024-07-07 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8f04392e84002..ca628fe80bf33 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -39115,8 +39115,6 @@ with pkgs; tvbrowser = callPackage ../applications/misc/tvbrowser { }; - tvheadend = callPackage ../servers/tvheadend { }; - twitch-cli = callPackage ../development/tools/twitch-cli { }; uacme = callPackage ../tools/admin/uacme { }; From a565cfeac35939ec55cb0bd20d1414ffd10e0685 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 21 Aug 2024 20:58:01 +0100 Subject: [PATCH 2/2] antennas: drop --- .../manual/release-notes/rl-2411.section.md | 3 + nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 1 + .../modules/services/networking/antennas.nix | 77 ------------------- pkgs/servers/antennas/default.nix | 38 --------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 7 files changed, 5 insertions(+), 118 deletions(-) delete mode 100644 nixos/modules/services/networking/antennas.nix delete mode 100644 pkgs/servers/antennas/default.nix diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 25a9beb55e80f..7d6e3e5be5011 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -340,6 +340,9 @@ request #332259](https://github.com/NixOS/nixpkgs/pull/332259) if you are interested in maintaining a newer version. +- The `antennas` package and the `services.antennas` module have been + removed as they only work with `tvheadend` (see above). + ## Other Notable Changes {#sec-release-24.11-notable-changes} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 812179b6962a3..3f06bcfdf8596 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -968,7 +968,6 @@ ./services/networking/adguardhome.nix ./services/networking/alice-lg.nix ./services/networking/amuled.nix - ./services/networking/antennas.nix ./services/networking/aria2.nix ./services/networking/asterisk.nix ./services/networking/atftpd.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 71a4da5419e1a..91ef9b43cd3e1 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -51,6 +51,7 @@ in The hidepid module was removed, since the underlying machinery is broken when using cgroups-v2. '') + (mkRemovedOptionModule [ "services" "antennas" ] "The antennas package and the corresponding module have been removed as they only work with tvheadend, which nobody was willing to maintain and was stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version.") (mkRemovedOptionModule [ "services" "baget" "enable" ] "The baget module was removed due to the upstream package being unmaintained.") (mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed") (mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed") diff --git a/nixos/modules/services/networking/antennas.nix b/nixos/modules/services/networking/antennas.nix deleted file mode 100644 index e98b81588044e..0000000000000 --- a/nixos/modules/services/networking/antennas.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let cfg = config.services.antennas; -in - -{ - options = { - services.antennas = { - enable = mkEnableOption "Antennas"; - - tvheadendUrl = mkOption { - type = types.str; - default = "http://localhost:9981"; - description = "URL of Tvheadend."; - }; - - antennasUrl = mkOption { - type = types.str; - default = "http://127.0.0.1:5004"; - description = "URL of Antennas."; - }; - - tunerCount = mkOption { - type = types.int; - default = 6; - description = "Numbers of tuners in tvheadend."; - }; - - deviceUUID = mkOption { - type = types.str; - default = "2f70c0d7-90a3-4429-8275-cbeeee9cd605"; - description = "Device tuner UUID. Change this if you are running multiple instances."; - }; - }; - }; - - config = mkIf cfg.enable { - systemd.services.antennas = { - description = "Antennas HDHomeRun emulator for Tvheadend."; - wantedBy = [ "multi-user.target" ]; - - # Config - environment = { - TVHEADEND_URL = cfg.tvheadendUrl; - ANTENNAS_URL = cfg.antennasUrl; - TUNER_COUNT = toString cfg.tunerCount; - DEVICE_UUID = cfg.deviceUUID; - }; - - serviceConfig = { - ExecStart = "${pkgs.antennas}/bin/antennas"; - - # Hardening - CapabilityBoundingSet = [ "" ]; - DynamicUser = true; - LockPersonality = true; - ProcSubset = "pid"; - PrivateDevices = true; - PrivateUsers = true; - PrivateTmp = true; - ProtectClock = true; - ProtectControlGroups = true; - ProtectHome = true; - ProtectHostname = true; - ProtectKernelLogs = true; - ProtectKernelModules = true; - ProtectKernelTunables = true; - ProtectProc = "invisible"; - ProtectSystem = "strict"; - RestrictNamespaces = true; - RestrictRealtime = true; - }; - }; - }; -} diff --git a/pkgs/servers/antennas/default.nix b/pkgs/servers/antennas/default.nix deleted file mode 100644 index f9db26ab93e44..0000000000000 --- a/pkgs/servers/antennas/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, buildNpmPackage -, fetchFromGitHub -}: - -buildNpmPackage rec { - pname = "antennas"; - version = "4.2.0"; - - src = fetchFromGitHub { - owner = "jfarseneau"; - repo = "antennas"; - rev = "v${version}"; - hash = "sha256-UQ+wvm7+x/evmtGwzCkUkrrDMCIZzUL4iSkLmYKJ3Mc="; - }; - - npmDepsHash = "sha256-D5ss7nCDY3ogZy64iFqLVKbmibAg7C/A+rEHJaE9c2U="; - - dontNpmBuild = true; - - doCheck = true; - - checkPhase = '' - runHook preCheck - - npm run test - - runHook postCheck - ''; - - meta = { - description = "HDHomeRun emulator for Plex DVR to connect to Tvheadend"; - homepage = "https://github.com/jfarseneau/antennas"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ bachp ]; - mainProgram = "antennas"; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index b71bd5483295b..5ba24464de62f 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -110,6 +110,7 @@ mapAliases ({ ansible_2_12 = throw "Ansible 2.12 goes end of life in 2023/05 and can't be supported throughout the 23.05 release cycle"; # Added 2023-05-16 ansible_2_13 = throw "Ansible 2.13 goes end of life in 2023/11"; # Added 2023-12-30 ansible_2_14 = throw "Ansible 2.14 goes end of life in 2024/05 and can't be supported throughout the 24.05 release cycle"; # Added 2024-04-11 + antennas = throw "antennas has been removed as it only works with tvheadend, which nobody was willing to maintain and was stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version"; # Added 2024-08-21 androidndkPkgs_23b = lib.warn "The package set `androidndkPkgs_23b` has been renamed to `androidndkPkgs_23`." androidndkPkgs_23; # Added 2024-07-21 apacheAnt_1_9 = throw "Ant 1.9 has been removed since it's not used in nixpkgs anymore"; # Added 2023-11-12 apacheKafka_2_8 = throw "apacheKafka_2_8 through _3_5 have been removed from nixpkgs as outdated"; # Added 2024-02-12 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ca628fe80bf33..6ef13babfd59c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3379,8 +3379,6 @@ with pkgs; httpServer = true; }; - antennas = callPackage ../servers/antennas { }; - apg = callPackage ../tools/security/apg { }; apt-dater = callPackage ../tools/package-management/apt-dater {