Broken dependencies on libwebkit2gtk installing citrix-workspace package

Hi dear nix pros!

my wife needs to work from at home, so I tried to install the citrix workspace package. Tried both citrix-workspace-19.0.8 and (after switching to unstable) with citrix-workspace-19.12.0

Both stop with an error. When checking the output of nix-env -i citrix-workspace-19.12.0 it says:

Proceed with installation? [default n WARNING:
One of the prerequisites required for installation is not present- "libwebkit2gtk-4.0.so.37" not found.

Any ideas what I can do?

I do see a message explaining what to do, download from official page, add to store, run install again:

$ NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs.citrix_workspace
 builder for '/nix/store/m1zns76hhnznkrs52baid4nm0r5cq4bs-linuxx64-19.12.0.19.tar.gz.drv' failed with exit code 1; last 10 log lines:
  (if you do not find version 19.12.0 there, try at
  https://www.citrix.com/downloads/workspace-app/

  Once you have downloaded the file, please use the following command and re-run the  installation:

  nix-prefetch-url file://$PWD/linuxx64-19.12.0.19.tar.gz

  ***
cannot build derivation '/nix/store/8y93n6mrvizsif5b9nl9j0lll0w1qnqg-citrix-workspace-19.12.0.drv': 1 dependencies couldn't be built
[2 built (1 failed), 5 copied (18.7 MiB), 4.0 MiB DL]
error: build of '/nix/store/8y93n6mrvizsif5b9nl9j0lll0w1qnqg-citrix-workspace-19.12.0.drv' failed

Thanks NobbZ, thats what I did. The problem I described occurs afterwards.

Really, this looks like an unresolved dependency to the gtk library. I actually already thougt about how I could get the package into the installation, because when trying to start the workspace app it says

[mrtn@nixtn:~]$ /nix/store/3fr3blshvp35pml7ph623ng8045n1ld2-citrix-workspace-19.12.0/opt/citrix-icaclient/selfservice
/nix/store/3fr3blshvp35pml7ph623ng8045n1ld2-citrix-workspace-19.12.0/opt/citrix-icaclient/selfservice: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory

It’s missing the libxml2.so.2 at runtime, which sounds like it might be in libwebkit2gtk.
Any ideas? I’d also be happy with a dirty quick fix…

As for a quick & dirty fix, try (untested I’m on mobile):

nix-env -iA nixos.libxml2
env LD_LIBRARY_PATH=$HOME/.nix-profile/lib critix-run # or whatever

The real solution is to add libxml2 to this package’s inputs.

1 Like

OK, it’s getting better! Thanks!

Unfortunately I can’t get the runtime environment right (after installing libxml2). It says that libs are missing:

mrtn@nixtn:/nix/store/3fr3blshvp35pml7ph623ng8045n1ld2-citrix-workspace-19.12.0/opt/citrix-icaclient]$ ./selfservice
./selfservice: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory

[mrtn@nixtn:/nix/store/3fr3blshvp35pml7ph623ng8045n1ld2-citrix-workspace-19.12.0/opt/citrix-icaclient]$ ./wfica 
./wfica: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

…unfortunately /.nix-profile/lib is not existing.

Maybe a very basic question, but it seems like the runtime environment ist not set in a way, that even the most basic libraries (like ‘libstdc++’) are found.

You see nothing in your ~/.nix-profile/lib ?? That’s impossible…

Besides that, I think the issue is that perhaps you are using the unwrapped version… Try to remove with nix-env -e the current derivation named citrix in your user environment and try to install the wrapped version with nix-env -iA nixos.citrix_workspace. You should be able to see all attributes with nix search citrix.

As a general thumbrule advice, don’t ever count on nix-env -i, always use nix-env -iA or even better, use your configuration.nix so the derivations will be updated also for every ‘inputs change’. See How does nix-env -u know when not to apply version updates? and I suspect some of my user overlays are not applied in nix-env --upgrade - #5 by doronbehar

Usually I put everything in configuration.nix - it’s just because things didn’t work out that I was using ‘nix-env’.

Unfortunaltey re-creating the derivation doesn’t change anything - still the libs aren’t found.

I saw the unwraped versions when running ‘nix-env -qasP citrix-workspace’, but I always chose the ones without ‘unwrapped’. Just to be sure I also tried with 19.8.0 again - same thing…

Any ideas?

ping @Ma27 just in case…

1 Like

I tried to build it straight from master and I encountered a different error:

NUX-selection:2020.03.29-17:13:31

That’s as far as I can help.

Hi Doron, this is actually more or less the same issue - this error message is also shown to me when I click on the citrix workspace icon after installation.

The strange thing is, that in the until directory of the workspace app some binaries work properly, like the echo app…

I don’t see the library webkitgtk being added to the citrix-workspace package.
It should probably be added here nixpkgs/default.nix at 944ff7c9e25da2a8b530acca7bd1e6fc94cd55c6 · NixOS/nixpkgs · GitHub.

Sorry guys, I just had to get it working by today morning. This was the end of my Nixos installation, I’m already writing from Debian.

You’re a great bunch of good and really nice people - keep going!

best regads, and thanks a lot to all of you!!
Martin

First of all, I’d like to link the section of citrix-workspace in the nixpkgs manual: NixOS - Nixpkgs 21.05 manual (in case you want to provide feedback for this, please hit me up!)

Thanks NobbZ, thats what I did. The problem I described occurs afterwards.

Really, this looks like an unresolved dependency to the gtk library. I actually already thougt about how I could get the package into the installation, because when trying to start the workspace app it says

Please install Citrix by either using nix-env -iA or environment.systemPackages. There are several config files etc. that aren’t found otherwise (I can’t explain in detail what’s happening here, but with such an installation Citrix works fine for me).

I tried to build it straight from master and I encountered a different error:

This usually happens if you don’t provide a .ica which tells Citrix where to connect.
Also, I’d recommend to associate .ica files to automatically open Citrix from your browser when downloading such a file. I did this with the following config:

# ~/.config/mimeapps.list
[Default Applications]
application/x-ica=wfica.desktop

Also, in case you experience further issues with Citrix (or other packages I maintain), I’d prefer an issue on GitHub (I just opened Discourse tonight “by accident” and I’m usually not an active reader).

I frequently ask “does this belong on discourse or nixpkg GitHub issues”.

Maybe we can figure out a rule of thumb and put it at the top of the manual under a “getting help” section?

1 Like
Hosted by Flying Circus.