Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

teamviewer: fix #96633, #44307 and #97148 + 15.15.5 -> 15.18.5 -> 15.22.3 #140076

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions nixos/modules/services/monitoring/teamviewer.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,21 @@ in

environment.systemPackages = [ pkgs.teamviewer ];

services.dbus.packages = [ pkgs.teamviewer ];

systemd.services.teamviewerd = {
description = "TeamViewer remote control daemon";

wantedBy = [ "multi-user.target" ];
after = [ "NetworkManager-wait-online.service" "network.target" ];
after = [ "NetworkManager-wait-online.service" "network.target" "dbus.service" ];
requires = [ "dbus.service" ];
preStart = "mkdir -pv /var/lib/teamviewer /var/log/teamviewer";

startLimitIntervalSec = 60;
startLimitBurst = 10;
serviceConfig = {
Type = "forking";
ExecStart = "${pkgs.teamviewer}/bin/teamviewerd -d";
Type = "simple";
ExecStart = "${pkgs.teamviewer}/bin/teamviewerd -f";
PIDFile = "/run/teamviewerd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
Restart = "on-abort";
Expand Down
52 changes: 40 additions & 12 deletions pkgs/applications/networking/remote/teamviewer/default.nix
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{ mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg-utils, dbus
, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc
, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes
, qtbase, qtwebkit, qtwebengine, qtx11extras, qtquickcontrols, getconf, glibc
, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes, coreutils
, wrapQtAppsHook
}:

mkDerivation rec {
pname = "teamviewer";
version = "15.15.5";
version = "15.22.3";

src = fetchurl {
url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
sha256 = "sha256-H/CSc2RcjI+Fm8awYcXm3ioAJpbSNEMwGVrTozMux3A=";
sha256 = "15fvzhdq7mnx2l2w4byvij8ww16qwdlkbadal60rm66yzv79mv9w";
};

unpackPhase = ''
Expand All @@ -19,7 +19,7 @@ mkDerivation rec {
'';

nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ];
buildInputs = [ dbus qtbase qtwebkit qtx11extras libX11 ];
buildInputs = [ dbus getconf qtbase qtwebkit qtwebengine qtx11extras libX11 ];
propagatedBuildInputs = [ qtquickcontrols ];

installPhase = ''
Expand All @@ -28,6 +28,7 @@ mkDerivation rec {
rm -R \
$out/share/teamviewer/logfiles \
$out/share/teamviewer/config \
$out/share/teamviewer/tv_bin/RTlib \
$out/share/teamviewer/tv_bin/xdg-utils \
$out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh}
Expand All @@ -38,6 +39,27 @@ mkDerivation rec {
ln -s /var/log/teamviewer $out/share/teamviewer/logfiles
ln -s ${xdg-utils}/bin $out/share/teamviewer/tv_bin/xdg-utils
declare in_script_dir="./opt/teamviewer/tv_bin/script"
jraygauthier marked this conversation as resolved.
Show resolved Hide resolved
install -d "$out/share/dbus-1/services"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.service" "$out/share/dbus-1/services"
substituteInPlace "$out/share/dbus-1/services/com.teamviewer.TeamViewer.service" \
--replace '/opt/teamviewer/tv_bin/TeamViewer' \
"$out/share/teamviewer/tv_bin/TeamViewer"
jraygauthier marked this conversation as resolved.
Show resolved Hide resolved
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.Desktop.service" "$out/share/dbus-1/services"
substituteInPlace "$out/share/dbus-1/services/com.teamviewer.TeamViewer.Desktop.service" \
--replace '/opt/teamviewer/tv_bin/TeamViewer_Desktop' \
"$out/share/teamviewer/tv_bin/TeamViewer_Desktop"
jraygauthier marked this conversation as resolved.
Show resolved Hide resolved
install -d "$out/share/dbus-1/system.d"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.Daemon.conf" "$out/share/dbus-1/system.d"
install -d "$out/share/polkit-1/actions"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.policy" "$out/share/polkit-1/actions"
substituteInPlace "$out/share/polkit-1/actions/com.teamviewer.TeamViewer.policy" \
--replace '/opt/teamviewer/tv_bin/script/execscript' \
"$out/share/teamviewer/tv_bin/script/execscript"
jraygauthier marked this conversation as resolved.
Show resolved Hide resolved
for i in 16 20 24 32 48 256; do
size=$i"x"$i
Expand All @@ -51,24 +73,30 @@ mkDerivation rec {
--replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2'
substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \
--replace '/var/run/' '/run/'
'';

wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
wrapProgram $out/share/teamviewer/tv_bin/TeamViewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libXrandr libX11 libXext libXdamage libXtst libSM libXfixes ]}"
makeWrapperArgs = [
"--prefix PATH : ${lib.makeBinPath [ getconf coreutils ]}"
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libXrandr libX11 libXext libXdamage libXtst libSM libXfixes dbus ]}"
];

wrapQtApp $out/share/teamviewer/tv_bin/script/teamviewer
wrapQtApp $out/bin/teamviewer
postFixup = ''
wrapProgram $out/share/teamviewer/tv_bin/teamviewerd ''${makeWrapperArgs[@]}
# tv_bin/script/teamviewer runs tvw_main which runs tv_bin/TeamViewer
wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
wrapProgram $out/share/teamviewer/tv_bin/teamviewer-config ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
'';

dontStrip = true;
dontWrapQtApps = true;
preferLocalBuild = true;

meta = with lib; {
homepage = "http://www.teamviewer.com";
jraygauthier marked this conversation as resolved.
Show resolved Hide resolved
license = licenses.unfree;
description = "Desktop sharing application, providing remote support and online meetings";
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ jagajaga dasuxullebt ];
maintainers = with maintainers; [ jagajaga dasuxullebt jraygauthier ];
};
}
2 changes: 1 addition & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9583,7 +9583,7 @@ with pkgs;

ted = callPackage ../tools/typesetting/ted { };

teamviewer = libsForQt514.callPackage ../applications/networking/remote/teamviewer { };
teamviewer = libsForQt515.callPackage ../applications/networking/remote/teamviewer { };
jraygauthier marked this conversation as resolved.
Show resolved Hide resolved

teleconsole = callPackage ../tools/misc/teleconsole { };

Expand Down