citrix-workspace: 25_08_10 -> 26_01_0; support 26.01 core app

Unpack the vendor-bundled WebKit 4.0 runtime, skip optional EPA, device
trust, and FIDO installer steps, and make 26.01 the default Citrix
Workspace package.
This commit is contained in:
Austin Horstman
2026-04-29 18:11:08 -05:00
parent 0ad49a3280
commit dc0976b277
3 changed files with 49 additions and 4 deletions
@@ -145,6 +145,8 @@ stdenv.mkDerivation rec {
dontBuild = true;
dontConfigure = true;
strictDeps = true;
__structuredAttrs = true;
sourceRoot = ".";
preferLocalBuild = true;
passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient";
@@ -243,19 +245,36 @@ stdenv.mkDerivation rec {
program:
if (builtins.match "selfservice(.*)" program) != null then
"--icaroot"
else if (builtins.match "wfica(.*)" program != null) then
else if (builtins.match "wfica(.*)" program) != null then
null
else
"-icaroot";
ldLibraryPath =
program:
lib.concatStringsSep ":" (
lib.optional (builtins.match "wfica(.*)" program != null) "$ICAInstDir"
++ [
"$ICAInstDir/lib"
"$ICAInstDir/usr/lib/x86_64-linux-gnu"
"$ICAInstDir/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/injected-bundle"
]
);
# Only the ICA engine needs the top-level client directory on the library
# path. Leaving it enabled for UI helpers exposes Citrix's session-only
# libproxy.so to the embedded web stack, which then fails to resolve CGP
# symbols.
wrap = program: ''
wrapProgram $out/opt/citrix-icaclient/${program} \
${lib.optionalString (icaFlag program != null) ''--add-flags "${icaFlag program} $ICAInstDir"''} \
--set ICAROOT "$ICAInstDir" \
--prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
--prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib:$ICAInstDir/usr/lib/x86_64-linux-gnu:$ICAInstDir/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/injected-bundle" \
--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"
'';
wrapLink = program: ''
${wrap program}
ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program}
@@ -283,10 +302,23 @@ stdenv.mkDerivation rec {
export HOME=$(mktemp -d)
# Run upstream installer in the store-path.
sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' -e 's, -C / , -C . ,g' ./linuxx64/hinst
sed -i \
-e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' \
-e 's,/bin/true,true,g' \
-e 's, -C / , -C . ,g' \
-e 's,^[[:space:]]*install_deviceTrust "\$ICAInstDir", :,' \
-e 's,^[[:space:]]*install_EPA_with_prompt "\$ICAInstDir", :,' \
-e 's,^[[:space:]]*install_fido2Service "\$CDSourceDir" "\$ICAInstDir", :,' \
./linuxx64/hinst
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
if [ -f "$ICAInstDir/util/setlog" ]; then
chmod +x "$ICAInstDir/util/setlog"
ln -sf "$ICAInstDir/util/setlog" "$out/bin/citrix-setlog"
@@ -362,6 +394,9 @@ stdenv.mkDerivation rec {
${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"
$out/opt/citrix-icaclient/util/ctx_rehash
@@ -21,6 +21,15 @@ let
#
# 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";
+2 -1
View File
@@ -1963,9 +1963,10 @@ with pkgs;
};
inherit (callPackage ../applications/networking/remote/citrix-workspace { })
citrix_workspace_26_01_0
citrix_workspace_25_08_10
;
citrix_workspace = citrix_workspace_25_08_10;
citrix_workspace = citrix_workspace_26_01_0;
colord-gtk4 = colord-gtk.override { withGtk4 = true; };