nixpkgs/nixos/modules/services/monitoring/teamviewer.nix

50 lines
1.0 KiB
Nix
Raw Normal View History

2015-04-05 07:19:19 -07:00
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.teamviewer;
in
{
###### interface
options = {
services.teamviewer.enable = mkEnableOption "TeamViewer daemon";
2015-04-05 07:19:19 -07:00
};
###### implementation
config = mkIf (cfg.enable) {
environment.systemPackages = [ pkgs.teamviewer ];
[Backport release-21.05] teamviewer: fix #96633, #44307 and #97148 + 15.15.5 -> 15.18.5 -> 15.22.3 (#141439) * teamviewer: fix issue #96633 Fix teamviewer's breakage post 15.5.3 -> 15.15.5. Teamviewer client was no longer able to connect to its backing server as it now uses dbus to do so. Following changes were required: - add missing dbus and polkit service/policy files to package. - add missing dbus lib to `LD_LIBRARY_PATH`. Changes to the nixos module as a separate changeset. (cherry picked from commit 506966d15658d8a411f364f47bbc0f3f9366dba3) * nixos/teamviewer: fix issue #96633 Add teamviewer package as a dbus package now that the client / server communication depends on dbus. (cherry picked from commit 200e959995fa8088b5722bc8255109c03f2a4f78) * nixos/teamviewer: fix issue #44307 Move to a forefront launch of the daemon. Doing so allowed us to move the service from forking to simple to avoid the missing pid error log. Also: - Make the dbus dependency explicit. (cherry picked from commit 953bbc0d7373102cf89625dc3bb7ab8e91134069) * teamviewer: 15.15.5 -> 15.18.5 Upgrading to the last version still using qt5.14. Later version will be using qt5.15 which is not in 21.05 stable branch. This fixes us the crash observed in 15.15.5 when stopping the service. (cherry picked from commit db889eb9137a859eedfc5b402de84271c0659662) * teamviewer: refactor executable wrapping This centralizes `PATH` and `LD_LIBRARY_PATH`, avoid multiple layers of wrappers. Refactor as suggested by @Artturin in PR provided patch: <https://github.com/NixOS/nixpkgs/pull/140076#issuecomment-934770391>. (cherry picked from commit c55bc5bfd3377d54f5b6153d09c033cceadfcc05) * teamviewer: fix 97148 (busybox installed issue) Simply add `coreutils` as a runtime dependency which will prevent teamviewer from using incomplete busybox implementation of expected gnu binaries. As suggested by @Artturin in PR comment: <https://github.com/NixOS/nixpkgs/pull/140076#issuecomment-934770391>. (cherry picked from commit 4fb188e1d190f2e08053dba3e2e95fff1e29183a) * teamviewer: 15.18.5 -> 15.22.3 Required move from libsForQt514 -> libsForQt515. Note that this changset won't be backportable to 21.05. (cherry picked from commit 975ab7f3a02ac0232afe7920a8f7d78fc22d5ccb) Co-authored-by: Raymond Gauthier <jraygauthier@gmail.com>
2021-10-12 19:17:24 -07:00
services.dbus.packages = [ pkgs.teamviewer ];
2015-04-05 07:19:19 -07:00
systemd.services.teamviewerd = {
description = "TeamViewer remote control daemon";
wantedBy = [ "multi-user.target" ];
[Backport release-21.05] teamviewer: fix #96633, #44307 and #97148 + 15.15.5 -> 15.18.5 -> 15.22.3 (#141439) * teamviewer: fix issue #96633 Fix teamviewer's breakage post 15.5.3 -> 15.15.5. Teamviewer client was no longer able to connect to its backing server as it now uses dbus to do so. Following changes were required: - add missing dbus and polkit service/policy files to package. - add missing dbus lib to `LD_LIBRARY_PATH`. Changes to the nixos module as a separate changeset. (cherry picked from commit 506966d15658d8a411f364f47bbc0f3f9366dba3) * nixos/teamviewer: fix issue #96633 Add teamviewer package as a dbus package now that the client / server communication depends on dbus. (cherry picked from commit 200e959995fa8088b5722bc8255109c03f2a4f78) * nixos/teamviewer: fix issue #44307 Move to a forefront launch of the daemon. Doing so allowed us to move the service from forking to simple to avoid the missing pid error log. Also: - Make the dbus dependency explicit. (cherry picked from commit 953bbc0d7373102cf89625dc3bb7ab8e91134069) * teamviewer: 15.15.5 -> 15.18.5 Upgrading to the last version still using qt5.14. Later version will be using qt5.15 which is not in 21.05 stable branch. This fixes us the crash observed in 15.15.5 when stopping the service. (cherry picked from commit db889eb9137a859eedfc5b402de84271c0659662) * teamviewer: refactor executable wrapping This centralizes `PATH` and `LD_LIBRARY_PATH`, avoid multiple layers of wrappers. Refactor as suggested by @Artturin in PR provided patch: <https://github.com/NixOS/nixpkgs/pull/140076#issuecomment-934770391>. (cherry picked from commit c55bc5bfd3377d54f5b6153d09c033cceadfcc05) * teamviewer: fix 97148 (busybox installed issue) Simply add `coreutils` as a runtime dependency which will prevent teamviewer from using incomplete busybox implementation of expected gnu binaries. As suggested by @Artturin in PR comment: <https://github.com/NixOS/nixpkgs/pull/140076#issuecomment-934770391>. (cherry picked from commit 4fb188e1d190f2e08053dba3e2e95fff1e29183a) * teamviewer: 15.18.5 -> 15.22.3 Required move from libsForQt514 -> libsForQt515. Note that this changset won't be backportable to 21.05. (cherry picked from commit 975ab7f3a02ac0232afe7920a8f7d78fc22d5ccb) Co-authored-by: Raymond Gauthier <jraygauthier@gmail.com>
2021-10-12 19:17:24 -07:00
after = [ "NetworkManager-wait-online.service" "network.target" "dbus.service" ];
requires = [ "dbus.service" ];
preStart = "mkdir -pv /var/lib/teamviewer /var/log/teamviewer";
2015-04-05 07:19:19 -07:00
startLimitIntervalSec = 60;
startLimitBurst = 10;
2015-04-05 07:19:19 -07:00
serviceConfig = {
[Backport release-21.05] teamviewer: fix #96633, #44307 and #97148 + 15.15.5 -> 15.18.5 -> 15.22.3 (#141439) * teamviewer: fix issue #96633 Fix teamviewer's breakage post 15.5.3 -> 15.15.5. Teamviewer client was no longer able to connect to its backing server as it now uses dbus to do so. Following changes were required: - add missing dbus and polkit service/policy files to package. - add missing dbus lib to `LD_LIBRARY_PATH`. Changes to the nixos module as a separate changeset. (cherry picked from commit 506966d15658d8a411f364f47bbc0f3f9366dba3) * nixos/teamviewer: fix issue #96633 Add teamviewer package as a dbus package now that the client / server communication depends on dbus. (cherry picked from commit 200e959995fa8088b5722bc8255109c03f2a4f78) * nixos/teamviewer: fix issue #44307 Move to a forefront launch of the daemon. Doing so allowed us to move the service from forking to simple to avoid the missing pid error log. Also: - Make the dbus dependency explicit. (cherry picked from commit 953bbc0d7373102cf89625dc3bb7ab8e91134069) * teamviewer: 15.15.5 -> 15.18.5 Upgrading to the last version still using qt5.14. Later version will be using qt5.15 which is not in 21.05 stable branch. This fixes us the crash observed in 15.15.5 when stopping the service. (cherry picked from commit db889eb9137a859eedfc5b402de84271c0659662) * teamviewer: refactor executable wrapping This centralizes `PATH` and `LD_LIBRARY_PATH`, avoid multiple layers of wrappers. Refactor as suggested by @Artturin in PR provided patch: <https://github.com/NixOS/nixpkgs/pull/140076#issuecomment-934770391>. (cherry picked from commit c55bc5bfd3377d54f5b6153d09c033cceadfcc05) * teamviewer: fix 97148 (busybox installed issue) Simply add `coreutils` as a runtime dependency which will prevent teamviewer from using incomplete busybox implementation of expected gnu binaries. As suggested by @Artturin in PR comment: <https://github.com/NixOS/nixpkgs/pull/140076#issuecomment-934770391>. (cherry picked from commit 4fb188e1d190f2e08053dba3e2e95fff1e29183a) * teamviewer: 15.18.5 -> 15.22.3 Required move from libsForQt514 -> libsForQt515. Note that this changset won't be backportable to 21.05. (cherry picked from commit 975ab7f3a02ac0232afe7920a8f7d78fc22d5ccb) Co-authored-by: Raymond Gauthier <jraygauthier@gmail.com>
2021-10-12 19:17:24 -07:00
Type = "simple";
ExecStart = "${pkgs.teamviewer}/bin/teamviewerd -f";
2015-04-05 07:19:19 -07:00
PIDFile = "/run/teamviewerd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
Restart = "on-abort";
};
};
};
}