diff --git a/doc/package-specific-user-notes.xml b/doc/package-specific-user-notes.xml
index a176f4d1395..ef23b022c88 100644
--- a/doc/package-specific-user-notes.xml
+++ b/doc/package-specific-user-notes.xml
@@ -416,7 +416,7 @@ overrides = self: super: rec {
Please note that the citrix_receiver package has been deprecated since its
development was discontinued by upstream
- and will be replaced by the citrix workspace app.
+ and has been replaced by the citrix workspace app.
Citrix Receiver and
@@ -458,7 +458,7 @@ overrides = self: super: rec {
Custom certificates
- The Citrix Receiver and Citrix Workspace App
+ The Citrix Workspace App
in nixpkgs trust several certificates
from the
Mozilla database by default. However several companies using Citrix
@@ -472,7 +472,7 @@ overrides = self: super: rec {
{ config.allowUnfree = true; };
let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
-citrix_workspace.override { # the same applies for `citrix_receiver` if used.
+citrix_workspace.override {
inherit extraCerts;
}]]>
diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml
index f9cea242c15..58ab7207f53 100644
--- a/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixos/doc/manual/release-notes/rl-1909.xml
@@ -478,6 +478,12 @@
Prometheus 2 is now configured with services.prometheus.
+
+
+ Citrix Receiver (citrix_receiver) has been dropped in favor of Citrix Workspace
+ (citrix_workspace).
+
+
diff --git a/pkgs/applications/networking/remote/citrix-receiver/default.nix b/pkgs/applications/networking/remote/citrix-receiver/default.nix
deleted file mode 100644
index 8d21f64765d..00000000000
--- a/pkgs/applications/networking/remote/citrix-receiver/default.nix
+++ /dev/null
@@ -1,215 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, requireFile
-, makeWrapper
-, libredirect
-, busybox
-, file
-, makeDesktopItem
-, tzdata
-, cacert
-, glib
-, gtk2
-, atk
-, gdk-pixbuf
-, cairo
-, pango
-, gnome3
-, xorg
-, libpng12
-, freetype
-, fontconfig
-, gtk_engines
-, alsaLib
-, libidn
-, zlib
-, version ? "13.10.0"
-}:
-
-let
- # In 56e1bdc7f9c (libidn: 1.34 -> 1.35), libidn.so.11 became libidn.so.12.
- # Citrix looks for the former so we build version 1.34 to please the binary
- libidn_134 = libidn.overrideDerivation (_: rec {
- name = "libidn-1.34";
- src = fetchurl {
- url = "mirror://gnu/libidn/${name}.tar.gz";
- sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p";
- };
- });
-
- versionInfo = let
- supportedVersions = {
- "13.10.0" = {
- major = "13";
- minor = "10";
- patch = "0";
- x64hash = "7025688C7891374CDA11C92FC0BA2FA8151AEB4C4D31589AD18747FAE943F6EA";
- x86hash = "2DCA3C8EDED11C5D824D579BC3A6B7D531EAEDDCBFB16E91B5702C72CAE9DEE4";
- x64suffix = "20";
- x86suffix = "20";
- homepage = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html;
- };
- };
-
- # break an evaluation for old Citrix versions rather than exiting with
- # an "attribute name not found" error to avoid confusion.
- deprecatedVersions = let
- versions = [ "13.8.0" "13.9.0" "13.9.1" ];
- in
- lib.listToAttrs
- (lib.forEach versions
- (v: lib.nameValuePair v (throw "Unsupported citrix_receiver version: ${v}")));
- in
- deprecatedVersions // supportedVersions;
-
- citrixReceiverForVersion = { major, minor, patch, x86hash, x64hash, x86suffix, x64suffix, homepage }:
- stdenv.mkDerivation rec {
- pname = "citrix-receiver";
- version = "${major}.${minor}.${patch}";
- inherit homepage;
-
- prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
-
- src = requireFile rec {
- name = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz";
- sha256 = if stdenv.is64bit then x64hash else x86hash;
- message = ''
- In order to use Citrix Receiver, you need to comply with the Citrix EULA and download
- the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
-
- ${homepage}
-
- (if you do not find version ${version} there, try at
- https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/
- or at https://www.citrix.com/downloads/citrix-receiver/ under "Earlier Versions of Receiver for Linux")
-
- Once you have downloaded the file, please use the following command and re-run the
- installation:
-
- nix-prefetch-url file://\$PWD/${name}
- '';
- };
-
- dontBuild = true;
-
- sourceRoot = ".";
-
- buildInputs = [
- makeWrapper
- busybox
- file
- gtk2
- gdk-pixbuf
- ];
-
- libPath = stdenv.lib.makeLibraryPath [
- glib
- gtk2
- atk
- gdk-pixbuf
- cairo
- pango
- gnome3.dconf
- xorg.libX11
- xorg.libXext
- xorg.libXrender
- xorg.libXinerama
- xorg.libXfixes
- libpng12
- libidn_134
- zlib
- gtk_engines
- freetype
- fontconfig
- alsaLib
- stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null)
- ];
-
- desktopItem = makeDesktopItem {
- name = "wfica";
- desktopName = "Citrix Receiver";
- genericName = "Citrix Receiver";
- exec = "wfica";
- icon = "wfica";
- comment = "Connect to remote Citrix server";
- categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
- mimeType = "application/x-ica";
- };
-
- installPhase = ''
- runHook preInstall
-
- export ICAInstDir="$out/opt/citrix-icaclient"
-
- sed -i \
- -e 's,^main_install_menu$,install_ICA_client,g' \
- -e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \
- -e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \
- -e 's,/bin/true,true,g' \
- ./${prefixWithBitness}/hinst
-
- # Run the installer...
- bash ./${prefixWithBitness}/hinst CDROM "`pwd`"
-
- echo "Deleting broken links..."
- for link in `find $ICAInstDir -type l `
- do
- [ -f "$link" ] || rm -v "$link"
- done
-
- echo "Expanding certificates..."
- # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
- pushd "$ICAInstDir/keystore/cacerts"
- awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt
- popd
-
- echo "Patching executables..."
- find $ICAInstDir -type f -exec file {} \; |
- grep 'ELF.*executable' |
- cut -f 1 -d : |
- grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729
- while read f
- do
- echo "Patching ELF intrepreter and rpath for $f"
- chmod u+w "$f"
- patchelf \
- --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
- --set-rpath "$ICAInstDir:$libPath" "$f"
- done
-
- echo "Wrapping wfica..."
- mkdir "$out/bin"
-
- makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \
- --add-flags "-icaroot $ICAInstDir" \
- --set ICAROOT "$ICAInstDir" \
- --set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
- --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
- --set LD_LIBRARY_PATH "$libPath" \
- --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
-
- echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
- echo UTC > "$ICAInstDir/timezone"
-
- echo "Installing desktop item..."
- mkdir -p $out/share/applications
- cp ${desktopItem}/share/applications/* $out/share/applications
-
- # We introduce a dependency on the source file so that it need not be redownloaded everytime
- echo $src >> "$out/share/nix_dependencies.pin"
-
- runHook postInstall
- '';
-
- meta = with stdenv.lib; {
- license = stdenv.lib.licenses.unfree;
- inherit homepage;
- description = "Citrix Receiver";
- maintainers = with maintainers; [ obadz a1russell ma27 ];
- platforms = platforms.linux;
- };
- };
-
-in citrixReceiverForVersion (lib.getAttr version versionInfo)
diff --git a/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix b/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix
deleted file mode 100644
index 63587030b38..00000000000
--- a/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ citrix_receiver, extraCerts ? [], symlinkJoin }:
-
-let
-
- mkCertCopy = certPath:
- "cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
-
-in
-
-if builtins.length extraCerts == 0 then citrix_receiver else symlinkJoin {
- name = "citrix-with-extra-certs-${citrix_receiver.version}";
- paths = [ citrix_receiver ];
-
- postBuild = ''
- ${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
-
- sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
- '';
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 77510a4d65d..1ce8eede202 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2220,27 +2220,12 @@ in
circleci-cli = callPackage ../development/tools/misc/circleci-cli { };
- citrix_receiver_unwrapped = callPackage ../applications/networking/remote/citrix-receiver { };
- citrix_receiver_unwrapped_13_10_0 = citrix_receiver_unwrapped.override { version = "13.10.0"; };
- citrix_receiver_unwrapped_13_9_1 = citrix_receiver_unwrapped.override { version = "13.9.1"; };
- citrix_receiver_unwrapped_13_9_0 = citrix_receiver_unwrapped.override { version = "13.9.0"; };
- citrix_receiver_unwrapped_13_8_0 = citrix_receiver_unwrapped.override { version = "13.8.0"; };
-
- citrix_receiver = callPackage ../applications/networking/remote/citrix-receiver/wrapper.nix {
- citrix_receiver = citrix_receiver_unwrapped;
- };
- citrix_receiver_13_10_0 = callPackage ../applications/networking/remote/citrix-receiver/wrapper.nix {
- citrix_receiver = citrix_receiver_unwrapped_13_10_0;
- };
- citrix_receiver_13_9_1 = callPackage ../applications/networking/remote/citrix-receiver/wrapper.nix {
- citrix_receiver = citrix_receiver_unwrapped_13_9_1;
- };
- citrix_receiver_13_9_0 = callPackage ../applications/networking/remote/citrix-receiver/wrapper.nix {
- citrix_receiver = citrix_receiver_unwrapped_13_9_0;
- };
- citrix_receiver_13_8_0 = callPackage ../applications/networking/remote/citrix-receiver/wrapper.nix {
- citrix_receiver = citrix_receiver_unwrapped_13_8_0;
- };
+ # Cleanup before 20.03:
+ citrix_receiver = throw "citrix_receiver has been discontinued by Citrix (https://docs.citrix.com/en-us/citrix-workspace-app.html). Please use citrix_workspace.";
+ citrix_receiver_13_10_0 = citrix_receiver;
+ citrix_receiver_13_9_1 = citrix_receiver;
+ citrix_receiver_13_9_0 = citrix_receiver;
+ citrix_receiver_13_8_0 = citrix_receiver;
citrix_workspace_unwrapped = callPackage ../applications/networking/remote/citrix-workspace { };
citrix_workspace_unwrapped_19_8_0 = citrix_workspace_unwrapped.override { version = "19.8.0"; };