about summary refs log tree commit diff
path: root/pkgs/applications/networking/remote
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/remote')
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix2
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/sources.nix11
-rw-r--r--pkgs/applications/networking/remote/dayon/default.nix6
-rw-r--r--pkgs/applications/networking/remote/freerdp/3.nix9
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix5
-rw-r--r--pkgs/applications/networking/remote/putty/default.nix2
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix32
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix39
-rw-r--r--pkgs/applications/networking/remote/vmware-horizon-client/default.nix7
-rwxr-xr-xpkgs/applications/networking/remote/vmware-horizon-client/update.sh4
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix6
-rw-r--r--pkgs/applications/networking/remote/wayvnc/default.nix3
-rw-r--r--pkgs/applications/networking/remote/xrdp/default.nix49
-rw-r--r--pkgs/applications/networking/remote/xrdp/pulseaudio-module-xrdp/default.nix4
14 files changed, 97 insertions, 82 deletions
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 96074b3fd7da0..aa96c72e400d8 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -150,7 +150,7 @@ stdenv.mkDerivation rec {
         ${lib.optionalString (icaFlag program != null) ''--add-flags "${icaFlag program} $ICAInstDir"''} \
         --set ICAROOT "$ICAInstDir" \
         --prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
-        --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+        --set LD_PRELOAD "${libredirect}/lib/libredirect.so ${lib.getLib pcsclite}/lib/libpcsclite.so" \
         --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
     '';
     wrapLink = program: ''
diff --git a/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 00c1ff878b960..1b0826c4d2bdf 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -44,6 +44,17 @@ let
       x86hash   = "";
       x64suffix = "65";
       x86suffix = "";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest12.html";
+    };
+
+    "24.05.0" = {
+      major     = "24";
+      minor     = "5";
+      patch     = "0";
+      x64hash   = "sha256-pye2JOilSbp8PFCpVXFkrRW98E8klCqoisVSWjR38nE=";
+      x86hash   = "";
+      x64suffix = "76";
+      x86suffix = "";
       homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
   };
diff --git a/pkgs/applications/networking/remote/dayon/default.nix b/pkgs/applications/networking/remote/dayon/default.nix
index ea46ec131fbc5..d183a9256730a 100644
--- a/pkgs/applications/networking/remote/dayon/default.nix
+++ b/pkgs/applications/networking/remote/dayon/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dayon";
-  version = "14.0.0";
+  version = "14.0.2";
 
   src = fetchFromGitHub {
     owner = "RetGal";
     repo = "dayon";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cUaWfOpR0sNq8cRghZVW9mTVhJ5us12/lzucxetiVkg=";
+    hash = "sha256-nRNqubR44ydZwwuQG3q6TRm+MHTRgRbeLI9dsk83wq4=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An easy to use, cross-platform remote desktop assistance solution";
+    description = "Easy to use, cross-platform remote desktop assistance solution";
     homepage = "https://retgal.github.io/Dayon/index.html";
     license = licenses.gpl3Plus; # https://github.com/RetGal/Dayon/issues/59
     mainProgram = "dayon";
diff --git a/pkgs/applications/networking/remote/freerdp/3.nix b/pkgs/applications/networking/remote/freerdp/3.nix
index 45bb8db9d9d89..b25e090bf8b48 100644
--- a/pkgs/applications/networking/remote/freerdp/3.nix
+++ b/pkgs/applications/networking/remote/freerdp/3.nix
@@ -13,7 +13,6 @@
 , glib
 , openh264
 , openssl
-, p11-kit
 , pcre2
 , pkcs11helper
 , uriparser
@@ -69,13 +68,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "freerdp";
-  version = "3.4.0";
+  version = "3.5.1";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = finalAttrs.version;
-    hash = "sha256-ZOYHhldTdV8DrOHoXS42NXB6JHBJMGRswgTczn1S6BE=";
+    hash = "sha256-8yWMnwJbvyUiEuX+2bEim1IeqPx20u9yvNIVe7MC/ZQ=";
   };
 
   postPatch = ''
@@ -196,14 +195,14 @@ stdenv.mkDerivation (finalAttrs: {
   ]);
 
   meta = with lib; {
-    description = "A Remote Desktop Protocol Client";
+    description = "Remote Desktop Protocol Client";
     longDescription = ''
       FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
       following the Microsoft Open Specifications.
     '';
     homepage = "https://www.freerdp.com/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ peterhoeg lheckemann ];
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
   };
 })
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index c47baaf3602f7..e2b974a41e40c 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -199,14 +199,15 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Remote Desktop Protocol Client";
+    description = "Remote Desktop Protocol Client";
     longDescription = ''
       FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
       following the Microsoft Open Specifications.
     '';
     homepage = "https://www.freerdp.com/";
+    changelog = "https://github.com/FreeRDP/FreeRDP/releases/tag/${src.rev}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ peterhoeg lheckemann ];
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/remote/putty/default.nix b/pkgs/applications/networking/remote/putty/default.nix
index df95f5b9d6f74..82f096699b20b 100644
--- a/pkgs/applications/networking/remote/putty/default.nix
+++ b/pkgs/applications/networking/remote/putty/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Free Telnet/SSH Client";
+    description = "Free Telnet/SSH Client";
     longDescription = ''
       PuTTY is a free implementation of Telnet and SSH for Windows and Unix
       platforms, along with an xterm terminal emulator.
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index a2455330c2225..d80850edd4466 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchFromGitLab, cmake, ninja, pkg-config, wrapGAppsHook3
+, curl, fuse3, fetchpatch2
 , desktopToDarwinBundle
 , glib, gtk3, gettext, libxkbfile, libX11, python3
-, freerdp, libssh, libgcrypt, gnutls, vte
+, freerdp3, libssh, libgcrypt, gnutls, vte
 , pcre2, libdbusmenu-gtk3, libappindicator-gtk3
 , libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
 , libsecret, libsoup_3, spice-protocol, spice-gtk, libepoxy, at-spi2-core
@@ -16,22 +17,31 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "remmina";
-  version = "1.4.33";
+  version = "1.4.35";
 
   src = fetchFromGitLab {
-    owner  = "Remmina";
-    repo   = "Remmina";
-    rev    = "v.${finalAttrs.version}";
-    sha256 = "sha256-3HyG2PBnTq/fVsvWA81fQ2gCOoAxINWeUDwzKcOuECk=";
+    owner = "Remmina";
+    repo = "Remmina";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-0z2fcBnChCBYPxyFm/xpAW0jHaUGA92NQgjt+lWFUnM=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "add-a-conditional-check-for-darwin-and-NetBSD.patch";
+      url = "https://gitlab.com/Remmina/Remmina/-/commit/3b681398c823e070c7f780166b9d9fc2158e66c1.diff";
+      hash = "sha256-Ovdrsl9bftXiuXV+sqvDP9VGuXQZzC5VKOmkYmBXhNA=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook3 ]
     ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
 
   buildInputs = [
+    curl
     gsettings-desktop-schemas
     glib gtk3 gettext libxkbfile libX11
-    freerdp libssh libgcrypt gnutls
+    freerdp3 libssh libgcrypt gnutls
     pcre2
     libvncserver libpthreadstubs libXdmcp libxkbcommon
     libsoup_3 spice-protocol
@@ -40,21 +50,18 @@ stdenv.mkDerivation (finalAttrs: {
     openssl gnome.adwaita-icon-theme json-glib libsodium
     harfbuzz python3
     wayland
-  ] ++ lib.optionals stdenv.isLinux [ libappindicator-gtk3 libdbusmenu-gtk3 webkitgtk_4_1 ]
+  ] ++ lib.optionals stdenv.isLinux [ fuse3 libappindicator-gtk3 libdbusmenu-gtk3 webkitgtk_4_1 ]
     ++ lib.optionals withLibsecret [ libsecret ]
     ++ lib.optionals withKf5Wallet [ libsForQt5.kwallet ]
     ++ lib.optionals withVte [ vte ];
 
   cmakeFlags = [
+    "-DWITH_FREERDP3=ON"
     "-DWITH_VTE=${if withVte then "ON" else "OFF"}"
     "-DWITH_TELEPATHY=OFF"
     "-DWITH_AVAHI=OFF"
     "-DWITH_KF5WALLET=${if withKf5Wallet then "ON" else "OFF"}"
     "-DWITH_LIBSECRET=${if withLibsecret then "ON" else "OFF"}"
-    "-DFREERDP_LIBRARY=${freerdp}/lib/libfreerdp2${stdenv.hostPlatform.extensions.sharedLibrary}"
-    "-DFREERDP_CLIENT_LIBRARY=${freerdp}/lib/libfreerdp-client2${stdenv.hostPlatform.extensions.sharedLibrary}"
-    "-DFREERDP_WINPR_LIBRARY=${freerdp}/lib/libwinpr2${stdenv.hostPlatform.extensions.sharedLibrary}"
-    "-DWINPR_INCLUDE_DIR=${freerdp}/include/winpr2"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DHAVE_LIBAPPINDICATOR=OFF"
     "-DWITH_CUPS=OFF"
@@ -82,6 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     license = licenses.gpl2Plus;
     homepage = "https://gitlab.com/Remmina/Remmina";
+    changelog = "https://gitlab.com/Remmina/Remmina/-/blob/master/CHANGELOG.md#${lib.replaceStrings ["."] [""] finalAttrs.src.rev}";
     description = "Remote desktop client written in GTK";
     mainProgram = "remmina";
     maintainers = with maintainers; [ bbigras melsigl ryantm ];
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 82a98c0579c7c..edebb68591937 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,10 +6,6 @@
 , makeWrapper
 , xdg-utils
 , dbus
-, qtbase
-, qtwebengine
-, qtx11extras
-, qtquickcontrols2
 , getconf
 , glibc
 , libXrandr
@@ -22,13 +18,15 @@
 , coreutils
 , wrapQtAppsHook
 , icu63
+, nss
+, minizip
 }:
 
 mkDerivation rec {
   pname = "teamviewer";
   # teamviewer itself has not development files but the dev output removes propagated other dev outputs from runtime
   outputs = [ "out" "dev" ];
-  version = "15.49.2";
+  version = "15.54.3";
 
   src =
     let
@@ -37,11 +35,11 @@ mkDerivation rec {
       {
        x86_64-linux = fetchurl {
           url = "${base_url}/teamviewer_${version}_amd64.deb";
-          sha256 = "sha256-Ag41RQD4lp4Sxuz6wZwiFzVxUalV+M3Zwa2Cug4iNSM=";
+          hash = "sha256-41zVX2svomcRKu2ow1A/EeKojBIpABO4o2EZxappzgo=";
        };
        aarch64-linux = fetchurl {
           url = "${base_url}/teamviewer_${version}_arm64.deb";
-          sha256 = "sha256-JGSmFq4q8TQJVIrS6qQxIxZPNKgor+pFetextLJPHtg=";
+          hash = "sha256-wuQYWeYgXW54/5dpiGzJxZ9JZDlUgFgCKq8Z4xV2HlI=";
        };
       }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
@@ -51,7 +49,7 @@ mkDerivation rec {
   '';
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ];
-  buildInputs = [ qtbase qtwebengine qtx11extras qtquickcontrols2 icu63 ];
+  buildInputs = [ minizip icu63 nss ];
 
   installPhase = ''
     mkdir -p $out/share/teamviewer $out/bin $out/share/applications
@@ -59,27 +57,10 @@ mkDerivation rec {
     rm -R \
       $out/share/teamviewer/logfiles \
       $out/share/teamviewer/config \
-      $out/share/teamviewer/tv_bin/xdg-utils \
       $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,tv-delayed-start.sh}
 
-    # Teamviewer packages its own qt library files.
-    # Most of them can be replaced by nixpkgs libraries, but the following need to be used beginning at version 15.35.7
-    # because teamviewer will not start without them, either stalling at startup or even segfaulting. In the logfiles, some missing qt libraries
-    # can be observed, although they are present from nixpkgs. AutoPatchelfHook will automatically choose the included libraries, if present.
-    # See https://github.com/NixOS/nixpkgs/pull/202024
-
-    # delete all library files except "qt" folder
-    find $out/share/teamviewer/tv_bin/RTlib -depth  -maxdepth 1 ! -type d -execdir rm -rf {} +
-
-    # remove all other folders except "qml" and "plugins" from the qml directory
-    find $out/share/teamviewer/tv_bin/RTlib/qt -depth -maxdepth 1 -mindepth 1 -type d ! \( -name "qml" -o -name "plugins" \) -execdir rm -rf {} +
-
-    # keep "QtQuick" and "QtQuick.2" directory
-    find $out/share/teamviewer/tv_bin/RTlib/qt/qml -depth -maxdepth 1 -mindepth 1 -type d ! \( -name "QtQuick" -o -name "QtQuick.2" \) -execdir rm -rf {} +
-
-    # delete all folders except "platforms" from the plugins directory
-    # it contains libqxcb.so from qtbase which seems to be incompatible with our nixpkgs version
-    find $out/share/teamviewer/tv_bin/RTlib/qt/plugins -depth -maxdepth 1 -mindepth 1 -type d ! -name "platforms" -execdir rm -rf {} +
+    # Teamviewer packages its own qt library files. So do not use nixpkgs qt files. These will cause issues
+    # See https://github.com/NixOS/nixpkgs/issues/321333
 
     ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin
     ln -s $out/share/teamviewer/tv_bin/teamviewerd $out/bin
@@ -93,11 +74,11 @@ mkDerivation rec {
     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' \
+      --replace-fail '/opt/teamviewer/tv_bin/TeamViewer' \
         "$out/share/teamviewer/tv_bin/TeamViewer"
     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' \
+      --replace-fail '/opt/teamviewer/tv_bin/TeamViewer_Desktop' \
         "$out/share/teamviewer/tv_bin/TeamViewer_Desktop"
 
     install -d "$out/share/dbus-1/system.d"
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index 6b1630594be0f..5f9ef27201e35 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, buildFHSEnvChroot
+, buildFHSEnv
 , copyDesktopItems
 , fetchurl
 , gsettings-desktop-schemas
@@ -54,6 +54,9 @@ let
       # Deleting the bundled library is the simplest way to force it to use our version.
       rm "$out/lib/vmware/gcc/libstdc++.so.6"
 
+      # This bundled version of libpng causes browser issues, and would prevent web-based sign-on.
+      rm "$out/lib/vmware/libpng16.so.16"
+
       # This opensc library is required to support smartcard authentication during the
       # initial connection to Horizon.
       mkdir $out/lib/vmware/view/pkcs11
@@ -64,7 +67,7 @@ let
     '';
   };
 
-  vmwareFHSUserEnv = name: buildFHSEnvChroot {
+  vmwareFHSUserEnv = name: buildFHSEnv {
     inherit name;
 
     runScript = "${vmwareHorizonClientFiles}/bin/${name}_wrapper";
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
index eec3d1de79e0e..cbac1ab73fa93 100755
--- a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
@@ -2,13 +2,13 @@
 #!nix-shell -p curl -p jq -p common-updater-scripts -i bash
 set -e
 
-entryPointURL='https://customerconnect.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY'
+entryPointURL='https://customerconnect.omnissa.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY'
 
 function getTarballMetaUrl {
     curl "$entryPointURL" | jq -r '
         .dlgEditionsLists | .[] | select(.name | contains("Client for Linux")) |
         .dlgList | .[] | select(.name | contains("tarball version")) |
-        @uri "https://customerconnect.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)"
+        @uri "https://customerconnect.omnissa.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)"
     '
 }
 
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index 8924006e81efa..122f3f6bdf1b5 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "waypipe";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    hash = "sha256-zk5IzZiFff9EeJn24/QmE1ybcBkxpaz6Owp77CfCwV0=";
+    hash = "sha256-4I8ohllhIA3/LNgFAKH5GwwHKO5QKNex0+Be0OOgR14=";
   };
 
   strictDeps = true;
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A network proxy for Wayland clients (applications)";
+    description = "Network proxy for Wayland clients (applications)";
     longDescription = ''
       waypipe is a proxy for Wayland clients. It forwards Wayland messages and
       serializes changes to shared memory buffers over a single socket. This
diff --git a/pkgs/applications/networking/remote/wayvnc/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index 0712e68e324b5..53f993760fc10 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A VNC server for wlroots based Wayland compositors";
+    description = "VNC server for wlroots based Wayland compositors";
     longDescription = ''
       This is a VNC server for wlroots based Wayland compositors. It attaches
       to a running Wayland session, creates virtual input devices and exposes a
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
       headless one, so it is also possible to run wayvnc without a physical
       display attached.
     '';
+    mainProgram = "wayvnc";
     inherit (src.meta) homepage;
     changelog = "https://github.com/any1/wayvnc/releases/tag/v${version}";
     license = licenses.isc;
diff --git a/pkgs/applications/networking/remote/xrdp/default.nix b/pkgs/applications/networking/remote/xrdp/default.nix
index 3d6d1de3d964c..6e2f10ee8e47c 100644
--- a/pkgs/applications/networking/remote/xrdp/default.nix
+++ b/pkgs/applications/networking/remote/xrdp/default.nix
@@ -19,22 +19,11 @@
 , lame
 , pixman
 , libjpeg_turbo
+, _experimental-update-script-combinators
+, gitUpdater
 }:
 
 let
-  version = "0.9.25.1";
-  patchedXrdpSrc = applyPatches {
-    patches = [ ./dynamic_config.patch ];
-    name = "xrdp-patched-${version}";
-    src = fetchFromGitHub {
-      owner = "neutrinolabs";
-      repo = "xrdp";
-      rev = "v${version}";
-      fetchSubmodules = true;
-      hash = "sha256-oAs0oWkCyj3ObdJuHLfT25ZzkTrxNAXDiFU64OOP4Ow=";
-    };
-  };
-
   xorgxrdp = stdenv.mkDerivation rec {
     pname = "xorgxrdp";
     version = "0.9.20";
@@ -62,16 +51,29 @@ let
 
     preConfigure = "./bootstrap";
 
-    configureFlags = [ "XRDP_CFLAGS=-I${patchedXrdpSrc}/common"  ];
+    configureFlags = [ "XRDP_CFLAGS=-I${xrdp.src}/common"  ];
 
     enableParallelBuilding = true;
+
+    passthru.updateScript = gitUpdater { rev-prefix = "v"; };
   };
 
-  xrdp = stdenv.mkDerivation {
-    inherit version;
+  xrdp = stdenv.mkDerivation rec {
     pname = "xrdp";
-
-    src = patchedXrdpSrc;
+    version = "0.9.25.1";
+
+    src = applyPatches {
+      inherit version;
+      patches = [ ./dynamic_config.patch ];
+      name = "xrdp-patched-${version}";
+      src = fetchFromGitHub {
+        owner = "neutrinolabs";
+        repo = "xrdp";
+        rev = "v${version}";
+        fetchSubmodules = true;
+        hash = "sha256-oAs0oWkCyj3ObdJuHLfT25ZzkTrxNAXDiFU64OOP4Ow=";
+      };
+    };
 
     nativeBuildInputs = [ pkg-config autoconf automake which libtool nasm perl ];
 
@@ -150,8 +152,17 @@ let
 
     enableParallelBuilding = true;
 
+    passthru = {
+      inherit xorgxrdp;
+      updateScript = _experimental-update-script-combinators.sequence (map (item: item.command) [
+        (gitUpdater { rev-prefix = "v"; attrPath = "xrdp.src"; ignoredVersions = [ "beta" ]; })
+        { command = ["rm" "update-git-commits.txt"]; }
+        (gitUpdater { rev-prefix = "v"; attrPath = "xrdp.xorgxrdp"; })
+      ]);
+    };
+
     meta = with lib; {
-      description = "An open source RDP server";
+      description = "Open source RDP server";
       homepage = "https://github.com/neutrinolabs/xrdp";
       license = licenses.asl20;
       maintainers = with maintainers; [ chvp lucasew ];
diff --git a/pkgs/applications/networking/remote/xrdp/pulseaudio-module-xrdp/default.nix b/pkgs/applications/networking/remote/xrdp/pulseaudio-module-xrdp/default.nix
index 86dc913b91e38..c83d08fc828f2 100644
--- a/pkgs/applications/networking/remote/xrdp/pulseaudio-module-xrdp/default.nix
+++ b/pkgs/applications/networking/remote/xrdp/pulseaudio-module-xrdp/default.nix
@@ -1,11 +1,11 @@
 { stdenv
 , fetchFromGitHub
 , lib
-, nix-update-script
 , pulseaudio
 , autoreconfHook
 , pkg-config
 , nixosTests
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = nix-update-script { };
+    updateScript = gitUpdater { rev-prefix = "v"; };
     tests = {
       inherit (nixosTests) xrdp-with-audio-pulseaudio;
     };