citrix_workspace: 26.01.0.150 -> 26.04.0.73 (#529980)

This commit is contained in:
Austin Horstman
2026-06-18 00:32:56 +00:00
committed by GitHub
5 changed files with 39 additions and 121 deletions
@@ -1,13 +0,0 @@
{ lib, callPackage }:
# For detailed information about the Citrix source-tarball, please refer to the OEM
# reference guide: https://developer-docs.citrix.com/en-us/citrix-workspace-app-for-linux/citrix-workspace-app-for-linux-oem-reference-guide
let
supportedVersions = callPackage ./sources.nix { };
toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}";
in
lib.mapAttrs' (
attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo)
) supportedVersions
@@ -1,43 +0,0 @@
{ stdenv, lib }:
let
mkVersionInfo =
_:
{
major,
minor,
patch,
hash,
suffix,
homepage,
}:
{
inherit hash homepage;
version = "${major}.${minor}.${patch}.${suffix}";
};
# Attribute-set with all actively supported versions of the Citrix workspace app
# for Linux.
#
# The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
supportedVersions = lib.mapAttrs mkVersionInfo {
"26.01.0" = {
major = "26";
minor = "01";
patch = "0";
hash = "0avrf9jpqhijvp6w4jgs7xgp4gg1q2mdzak9h9klkqrbsgrvjr3p";
suffix = "150";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
};
"25.08.10" = {
major = "25";
minor = "08";
patch = "10";
hash = "06hdwi5rd8z43nlpvym6yrw3snfz8jh6ic3g4pihn9ji22bw5pbd";
suffix = "111";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
};
};
in
supportedVersions
@@ -46,7 +46,7 @@
libredirect,
libseccomp,
libsecret,
# libsoup_2_4,
libsoup_3,
libvorbis,
libxml2_13,
libxslt,
@@ -55,10 +55,8 @@
nspr,
nss,
opencv4,
openssl,
pango,
pcsclite,
perl,
sane-backends,
speex,
symlinkJoin,
@@ -66,6 +64,7 @@
tzdata,
which,
woff2,
webkitgtk_4_1,
libxtst,
libxscrnsaver,
libxrender,
@@ -81,10 +80,6 @@
x264,
zlib,
homepage,
version,
hash,
extraCerts ? [ ],
}:
@@ -105,27 +100,15 @@ let
name = "fuse3-backwards-compat";
paths = [ (lib.getLib fuse3) ];
postBuild = ''
ln -sf $out/lib/libfuse3.so.3.17.4 $out/lib/libfuse3.so.3
'';
};
openssl' = symlinkJoin {
name = "openssl-backwards-compat";
nativeBuildInputs = [ makeWrapper ];
paths = [ (lib.getLib openssl) ];
postBuild = ''
ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
ln -sf $out/lib/libfuse3.so.3.* $out/lib/libfuse3.so.3
'';
};
opencv4' = symlinkJoin {
name = "opencv4-compat";
nativeBuildInputs = [ makeWrapper ];
paths = [ opencv4 ];
postBuild = ''
for so in ${opencv4}/lib/*.so; do
ln -s "$so" $out/lib/$(basename "$so").407 || true
ln -s "$so" $out/lib/$(basename "$so").410 || true
done
'';
@@ -135,17 +118,17 @@ in
stdenv.mkDerivation rec {
pname = "citrix-workspace";
inherit version;
version = "26.04.0.73";
src = requireFile rec {
name = "linuxx64-${version}.tar.gz";
sha256 = hash;
sha256 = "1hp6ax0ix3id94njd43a35af3ydlb6sqwvbbabd5xp8d511m695f";
message = ''
In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
the 64-bit binaries, .tar.gz from:
${homepage}
https://www.citrix.com/downloads/workspace-app/betas-and-tech-previews/workspace-app-tp-gcc11-for-linux.html
(if you do not find version ${version} there, try at
https://www.citrix.com/downloads/workspace-app/)
@@ -210,7 +193,7 @@ stdenv.mkDerivation rec {
libpulseaudio
libseccomp
libsecret
# libsoup_2_4
libsoup_3
libvorbis
libxml2_13
libxslt
@@ -218,7 +201,6 @@ stdenv.mkDerivation rec {
nspr
nss
opencv4'
openssl'
pango
pcsclite
sane-backends
@@ -226,6 +208,7 @@ stdenv.mkDerivation rec {
stdenv.cc.cc
(lib.getLib systemd)
woff2
webkitgtk_4_1
libxscrnsaver
libxaw
libxmu
@@ -275,8 +258,7 @@ stdenv.mkDerivation rec {
lib.optional (isWfica program) "$ICAInstDir"
++ [
"$ICAInstDir/lib"
"$ICAInstDir/usr/lib/x86_64-linux-gnu"
"$ICAInstDir/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/injected-bundle"
"${lib.getLib webkitgtk_4_1}/lib/webkit2gtk-4.1/injected-bundle"
# HdxRtcEngine loads libpulse.so.0 with dlopen, so autoPatchelf
# cannot discover it from ELF dependencies.
"${lib.getLib libpulseaudio}/lib"
@@ -297,7 +279,7 @@ stdenv.mkDerivation rec {
''--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "${gstPluginPath}"''
''--prefix LD_LIBRARY_PATH : "${ldLibraryPath program}"''
''--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:/usr/lib/x86_64-linux-gnu=$ICAInstDir/usr/lib/x86_64-linux-gnu"''
''--set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"''
]
);
@@ -328,6 +310,7 @@ stdenv.mkDerivation rec {
"util/configmgr"
"util/conncenter"
"util/ctx_rehash"
"util/ctxwebhelper"
];
in
''
@@ -349,11 +332,9 @@ stdenv.mkDerivation rec {
source_date=$(date --utc --date=@$SOURCE_DATE_EPOCH "+%F %T")
faketime -f "$source_date" ${stdenv.shell} linuxx64/hinst CDROM "$(pwd)"
mkdir -p "$ICAInstDir/usr"
tar -xzf ./linuxx64/linuxx64.cor/Webkit2gtk4.0/webkit2gtk-4.0.tar.gz \
--strip-components=2 \
-C "$ICAInstDir/usr" \
webkit2gtk-4.0-package/usr/lib
# The GCC 11 package line links against libsoup 3 and WebKitGTK 4.1, but
# the tarball still contains the legacy WebKitGTK 4.0 bundle.
rm -rf "$ICAInstDir/Webkit2gtk4.0"
if [ -f "$ICAInstDir/util/setlog" ]; then
chmod +x "$ICAInstDir/util/setlog"
@@ -365,7 +346,6 @@ stdenv.mkDerivation rec {
"PrimaryAuthManager"
"ServiceRecord"
"AuthManagerDaemon"
"util/ctxwebhelper"
]}
ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse
@@ -390,38 +370,42 @@ stdenv.mkDerivation rec {
echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
echo UTC > "$ICAInstDir/timezone"
echo "Copy .desktop files."
cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
for desktop in $out/share/applications/*.desktop; do
echo "Patch .desktop files."
for desktop in "$ICAInstDir"/desktop/*.desktop; do
sed -i \
-e "s#/opt/Citrix/ICAClient#$ICAInstDir#g" \
-e "s#$ICAInstDir/util/ctxwebhelper#ctxwebhelper#g" \
"$desktop"
case "$(basename "$desktop")" in
citrixapp.desktop)
sed -i \
-e 's#^TryExec=.*#TryExec=selfservice#' \
-e 's#^Exec=.*#Exec=selfservice %u#' \
-e "s#^TryExec=.*#TryExec=$out/bin/selfservice#" \
-e "s#^Exec=.*#Exec=$out/bin/selfservice %u#" \
"$desktop"
;;
citrixweb.desktop | ctxaadsso.desktop | fido2_llt.desktop | receiver.desktop | receiver_fido2.desktop)
sed -i \
-e "s#^TryExec=.*#TryExec=$out/bin/ctxwebhelper#" \
-e "s#^Exec=.*#Exec=$out/bin/ctxwebhelper %u#" \
"$desktop"
;;
selfservice.desktop)
sed -i \
-e 's#^TryExec=.*#TryExec=selfservice#' \
-e 's#^Exec=.*#Exec=selfservice#' \
-e "s#^TryExec=.*#TryExec=$out/bin/selfservice#" \
-e "s#^Exec=.*#Exec=$out/bin/selfservice#" \
"$desktop"
;;
wfica.desktop)
sed -i \
-e 's#^TryExec=.*#TryExec=adapter#' \
-e 's#^Exec=.*#Exec=adapter %f#' \
-e "s#^TryExec=.*#TryExec=$out/bin/adapter#" \
-e "s#^Exec=.*#Exec=$out/bin/adapter %f#" \
"$desktop"
;;
esac
done
# We introduce a dependency on the source file so that it need not be redownloaded everytime
echo $src >> "$out/share/workspace_dependencies.pin"
echo "Copy .desktop files."
cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
runHook postInstall
'';
@@ -429,13 +413,7 @@ stdenv.mkDerivation rec {
# Make sure that `autoPatchelfHook` is executed before
# running `ctx_rehash`.
dontAutoPatchelf = true;
# Null out hardcoded webkit bundle path so it falls back to LD_LIBRARY_PATH
postFixup = ''
${lib.getExe perl} -0777 -pi -e 's{/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/injected-bundle/}{"\0" x length($&)}e' \
$out/opt/citrix-icaclient/usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37.56.4
addAutoPatchelfSearchPath --no-recurse "$out/opt/citrix-icaclient/usr/lib/x86_64-linux-gnu"
addAutoPatchelfSearchPath "$out/opt/citrix-icaclient/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/injected-bundle"
addAutoPatchelfSearchPath "$out/opt/citrix-icaclient/lib"
autoPatchelf -- "$out"
@@ -443,16 +421,14 @@ stdenv.mkDerivation rec {
'';
meta = {
# citrix_workspace has a hard dependency on libsoup 2.4 (autoPatchelf
# fails if it is not present), which was removed for being insecure.
#
# Versions older than 25.08 also required webkitgtk_4_0, which was removed.
broken = true;
license = lib.licenses.unfree;
description = "Citrix Workspace";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ flacks ];
inherit homepage;
maintainers = with lib.maintainers; [
khaneliman
flacks
];
homepage = "https://www.citrix.com/downloads/workspace-app/betas-and-tech-previews/workspace-app-tp-gcc11-for-linux.html";
};
}
+4
View File
@@ -495,6 +495,7 @@ mapAliases {
ciscoPacketTracer7 = throw "'ciscoPacketTracer7' has been removed in favor of 'cisco-packet-tracer_8' and 'cisco-packet-tracer_9'";
ciscoPacketTracer8 = cisco-packet-tracer_8; # Added 2026-02-08
ciscoPacketTracer9 = cisco-packet-tracer_9; # Added 2026-02-08
citrix_workspace = warnAlias "'citrix_workspace' has been renamed to 'citrix-workspace'" citrix-workspace; # Added 2026-06-17
citrix_workspace_23_11_0 = throw "'citrix_workspace_23_11_0' has been removed because it has reached EOL."; # Added 2025-11-25
citrix_workspace_24_02_0 = throw "'citrix_workspace_24_02_0' has been removed because it has reached EOL."; # Added 2025-11-25
citrix_workspace_24_05_0 = throw "'citrix_workspace_24_05_0' has been removed because it depended on the removed webkitgtk_4_0."; # Added 2025-11-25
@@ -502,6 +503,9 @@ mapAliases {
citrix_workspace_24_11_0 = throw "'citrix_workspace_24_11_0' has been removed because it depended on the removed webkitgtk_4_0."; # Added 2025-11-25
citrix_workspace_25_03_0 = throw "'citrix_workspace_25_03_0' has been removed because it depended on the removed webkitgtk_4_0."; # Added 2025-11-25
citrix_workspace_25_05_0 = throw "'citrix_workspace_25_05_0' has been removed because it depended on the removed webkitgtk_4_0."; # Added 2025-11-25
citrix_workspace_25_08_10 = throw "'citrix_workspace_25_08_10' has been removed because it depended on libsoup 2.4. Use 'citrix-workspace' instead."; # Added 2026-06-08
citrix_workspace_26_01_0 = throw "'citrix_workspace_26_01_0' has been removed because it depended on libsoup 2.4. Use 'citrix-workspace' instead."; # Added 2026-06-08
citrix_workspace_26_04_0 = warnAlias "'citrix_workspace_26_04_0' has been renamed to 'citrix-workspace'" citrix-workspace; # Added 2026-06-17
citron-emu = throw "citron-emu was discontinued in february 2026"; # added 2026-02-19
clamsmtp = throw "'clamsmtp' has been removed as it is unmaintained and broken"; # Added 2025-05-17
clang12Stdenv = throw "clang12Stdenv has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
-6
View File
@@ -1756,12 +1756,6 @@ with pkgs;
ceph-client = ceph.client;
ceph-dev = ceph;
inherit (callPackage ../applications/networking/remote/citrix-workspace { })
citrix_workspace_26_01_0
citrix_workspace_25_08_10
;
citrix_workspace = citrix_workspace_26_01_0;
colord-gtk4 = colord-gtk.override { withGtk4 = true; };
connmanFull = connman.override {