NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.37k stars 14.33k forks source link

citrix_workspace: webcam redirection unavailable for zoom #318504

Open HPRIOR opened 5 months ago

HPRIOR commented 5 months ago

Describe the bug

citrix_workspace HdxRtcEngine missing libpthread.so.0 libnsl.so.1 librt.so.1

Running libtree over /nix/store/7gbk0n5c4lipxq6n4sj6r3jrvzl1ll9l-citrix-workspace-24.2.0.65/opt/citrix-icaclient/util/HdxRtcEngine produces the following output:

libtree output ```text HdxRtcEngine ├── libgtk-3.so.0 [runpath] │ ├── libgdk-3.so.0 [runpath] │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ │ └── libpcre2-8.so.0 [runpath] │ │ │ └── libffi.so.8 [runpath] │ │ ├── libglib-2.0.so.0 [runpath] │ │ ├── libgio-2.0.so.0 [runpath] │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ ├── libgmodule-2.0.so.0 [runpath] │ │ │ │ └── libglib-2.0.so.0 [runpath] │ │ │ ├── libz.so.1 [runpath] │ │ │ ├── libselinux.so.1 [runpath] │ │ │ │ └── libpcre2-8.so.0 [runpath] │ │ │ └── libmount.so.1 [runpath] │ │ │ └── libblkid.so.1 [runpath] │ │ ├── libgdk_pixbuf-2.0.so.0 [runpath] │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ ├── libgio-2.0.so.0 [runpath] │ │ │ ├── libgmodule-2.0.so.0 [runpath] │ │ │ ├── libjpeg.so.62 [runpath] │ │ │ └── libpng16.so.16 [runpath] │ │ │ └── libz.so.1 [runpath] │ │ ├── libxkbcommon.so.0 [runpath] │ │ ├── libepoxy.so.0 [runpath] │ │ ├── libfontconfig.so.1 [runpath] │ │ │ ├── libfreetype.so.6 [runpath] │ │ │ │ ├── libbz2.so.1 [runpath] │ │ │ │ ├── libpng16.so.16 [runpath] │ │ │ │ ├── libz.so.1 [runpath] │ │ │ │ ├── libbrotlidec.so.1 [runpath] │ │ │ │ │ └── libbrotlicommon.so.1 [runpath] │ │ │ │ └── libpthread.so.0 [runpath] │ │ │ ├── libbz2.so.1 [runpath] │ │ │ ├── libpng16.so.16 [runpath] │ │ │ ├── libexpat.so.1 [runpath] │ │ │ ├── libz.so.1 [runpath] │ │ │ ├── libbrotlidec.so.1 [runpath] │ │ │ └── libpthread.so.0 [runpath] │ │ ├── libXext.so.6 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ │ ├── libxcb.so.1 [runpath] │ │ │ │ ├── libXau.so.6 [runpath] │ │ │ │ └── libXdmcp.so.6 [runpath] │ │ │ └── libpthread.so.0 [runpath] │ │ ├── libX11.so.6 [runpath] │ │ ├── libcairo.so.2 [runpath] │ │ │ ├── libz.so.1 [runpath] │ │ │ ├── libpng16.so.16 [runpath] │ │ │ ├── libfreetype.so.6 [runpath] │ │ │ ├── libfontconfig.so.1 [runpath] │ │ │ ├── libpixman-1.so.0 [runpath] │ │ │ ├── libXext.so.6 [runpath] │ │ │ ├── libxcb-shm.so.0 [runpath] │ │ │ │ ├── libxcb.so.1 [runpath] │ │ │ │ ├── libXau.so.6 [runpath] │ │ │ │ └── libXdmcp.so.6 [runpath] │ │ │ ├── libxcb.so.1 [runpath] │ │ │ ├── libxcb-render.so.0 [runpath] │ │ │ │ ├── libxcb.so.1 [runpath] │ │ │ │ ├── libXau.so.6 [runpath] │ │ │ │ └── libXdmcp.so.6 [runpath] │ │ │ ├── libX11.so.6 [runpath] │ │ │ └── libXrender.so.1 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ ├── libcairo-gobject.so.2 [runpath] │ │ │ ├── libcairo.so.2 [runpath] │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ └── libglib-2.0.so.0 [runpath] │ │ ├── libfribidi.so.0 [runpath] │ │ ├── libXfixes.so.3 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ ├── libXcomposite.so.1 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ ├── libXcursor.so.1 [runpath] │ │ │ ├── libXrender.so.1 [runpath] │ │ │ ├── libXfixes.so.3 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ ├── libXdamage.so.1 [runpath] │ │ │ ├── libXfixes.so.3 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ ├── libXi.so.6 [runpath] │ │ │ ├── libX11.so.6 [runpath] │ │ │ └── libXext.so.6 [runpath] │ │ ├── libXrandr.so.2 [runpath] │ │ │ ├── libXext.so.6 [runpath] │ │ │ ├── libXrender.so.1 [runpath] │ │ │ └── libX11.so.6 [runpath] │ │ ├── libpangocairo-1.0.so.0 [runpath] │ │ │ ├── libpango-1.0.so.0 [runpath] │ │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ │ ├── libgio-2.0.so.0 [runpath] │ │ │ │ ├── libfribidi.so.0 [runpath] │ │ │ │ ├── libthai.so.0 [runpath] │ │ │ │ │ └── libdatrie.so.1 [runpath] │ │ │ │ └── libharfbuzz.so.0 [runpath] │ │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ │ ├── libfreetype.so.6 [runpath] │ │ │ │ └── libgraphite2.so.3 [runpath] │ │ │ ├── libpangoft2-1.0.so.0 [runpath] │ │ │ │ ├── libpango-1.0.so.0 [runpath] │ │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ │ ├── libgio-2.0.so.0 [runpath] │ │ │ │ ├── libfreetype.so.6 [runpath] │ │ │ │ ├── libfontconfig.so.1 [runpath] │ │ │ │ └── libharfbuzz.so.0 [runpath] │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ ├── libfontconfig.so.1 [runpath] │ │ │ ├── libcairo.so.2 [runpath] │ │ │ └── libharfbuzz.so.0 [runpath] │ │ ├── libpango-1.0.so.0 [runpath] │ │ ├── libwayland-egl.so.1 [runpath] │ │ ├── libwayland-cursor.so.0 [runpath] │ │ │ └── libwayland-client.so.0 [runpath] │ │ │ └── libffi.so.8 [runpath] │ │ ├── libwayland-client.so.0 [runpath] │ │ └── libXinerama.so.1 [runpath] │ │ ├── libX11.so.6 [runpath] │ │ └── libXext.so.6 [runpath] │ ├── libgmodule-2.0.so.0 [runpath] │ ├── libglib-2.0.so.0 [runpath] │ ├── libgobject-2.0.so.0 [runpath] │ ├── libgio-2.0.so.0 [runpath] │ ├── libgdk_pixbuf-2.0.so.0 [runpath] │ ├── libepoxy.so.0 [runpath] │ ├── libtracker-sparql-3.0.so.0 [runpath] │ │ ├── libglib-2.0.so.0 [runpath] │ │ ├── libgio-2.0.so.0 [runpath] │ │ ├── libgobject-2.0.so.0 [runpath] │ │ ├── libgmodule-2.0.so.0 [runpath] │ │ ├── libxml2.so.2 [runpath] │ │ │ └── libz.so.1 [runpath] │ │ ├── libsqlite3.so.0 [runpath] │ │ │ └── libz.so.1 [runpath] │ │ └── libjson-glib-1.0.so.0 [runpath] │ │ ├── libgio-2.0.so.0 [runpath] │ │ ├── libglib-2.0.so.0 [runpath] │ │ └── libgobject-2.0.so.0 [runpath] │ ├── libatk-1.0.so.0 [runpath] │ │ ├── libglib-2.0.so.0 [runpath] │ │ └── libgobject-2.0.so.0 [runpath] │ ├── libatk-bridge-2.0.so.0 [runpath] │ │ ├── libatspi.so.0 [runpath] │ │ │ ├── libgobject-2.0.so.0 [runpath] │ │ │ ├── libglib-2.0.so.0 [runpath] │ │ │ ├── libX11.so.6 [runpath] │ │ │ ├── libXi.so.6 [runpath] │ │ │ └── libdbus-1.so.3 [runpath] │ │ │ └── libsystemd.so.0 [runpath] │ │ │ └── libcap.so.2 [runpath] │ │ ├── libatk-1.0.so.0 [runpath] │ │ ├── libglib-2.0.so.0 [runpath] │ │ ├── libgobject-2.0.so.0 [runpath] │ │ └── libdbus-1.so.3 [runpath] │ ├── libfontconfig.so.1 [runpath] │ ├── libX11.so.6 [runpath] │ ├── libcairo-gobject.so.2 [runpath] │ ├── libcairo.so.2 [runpath] │ ├── libfribidi.so.0 [runpath] │ ├── libXfixes.so.3 [runpath] │ ├── libXi.so.6 [runpath] │ ├── libharfbuzz.so.0 [runpath] │ ├── libpangocairo-1.0.so.0 [runpath] │ ├── libpangoft2-1.0.so.0 [runpath] │ └── libpango-1.0.so.0 [runpath] ├── libgdk-3.so.0 [runpath] ├── libpangocairo-1.0.so.0 [runpath] ├── libpango-1.0.so.0 [runpath] ├── libatk-1.0.so.0 [runpath] ├── libcairo-gobject.so.2 [runpath] ├── libcairo.so.2 [runpath] ├── libgdk_pixbuf-2.0.so.0 [runpath] ├── libgio-2.0.so.0 [runpath] ├── libgthread-2.0.so.0 [runpath] │ └── libglib-2.0.so.0 [runpath] ├── libglib-2.0.so.0 [runpath] ├── libgobject-2.0.so.0 [runpath] ├── libgstbase-1.0.so.0 [runpath] │ ├── libgstreamer-1.0.so.0 [runpath] │ │ ├── libgobject-2.0.so.0 [runpath] │ │ ├── libglib-2.0.so.0 [runpath] │ │ ├── libgmodule-2.0.so.0 [runpath] │ │ ├── libunwind.so.8 [runpath] │ │ │ └── liblzma.so.5 [runpath] │ │ │ └── libpthread.so.0 [runpath] │ │ └── libdw.so.1 [runpath] │ │ ├── libelf.so.1 [runpath] │ │ │ ├── libbz2.so.1 [runpath] │ │ │ ├── libz.so.1 [runpath] │ │ │ ├── libzstd.so.1 [runpath] │ │ │ └── liblzma.so.5 [runpath] │ │ ├── libbz2.so.1 [runpath] │ │ ├── libz.so.1 [runpath] │ │ ├── libzstd.so.1 [runpath] │ │ ├── liblzma.so.5 [runpath] │ │ └── libpthread.so.0 [runpath] │ ├── libgobject-2.0.so.0 [runpath] │ └── libglib-2.0.so.0 [runpath] ├── libgstreamer-1.0.so.0 [runpath] ├── libgstapp-1.0.so.0 [runpath] │ ├── libgobject-2.0.so.0 [runpath] │ ├── libglib-2.0.so.0 [runpath] │ ├── libgstbase-1.0.so.0 [runpath] │ └── libgstreamer-1.0.so.0 [runpath] ├── libgstvideo-1.0.so.0 [runpath] │ ├── libgobject-2.0.so.0 [runpath] │ ├── libglib-2.0.so.0 [runpath] │ ├── liborc-0.4.so.0 [runpath] │ ├── libgstbase-1.0.so.0 [runpath] │ └── libgstreamer-1.0.so.0 [runpath] ├── libc++abi.so.1 [runpath] │ └── libpthread.so.0 [runpath] ├── libc++.so.1 [runpath] │ ├── libc++abi.so.1 [runpath] │ ├── libpthread.so.0 [runpath] │ ├── librt.so.1 [runpath] │ └── libatomic.so.1 [runpath] │ └── libpthread.so.0 [runpath] ├── libunwind.so.1 [runpath] │ └── libpthread.so.0 [runpath] ├── libpthread.so.0 not found ├── libnsl.so.1 not found └── librt.so.1 not found ┊ Paths considered in this order: ┊ 1. rpath is skipped because runpath was set ┊ 2. LD_LIBRARY_PATH: ┊ /nix/store/is7dfka7vihiig3w789s1b0az40cgmrj-pipewire-1.0.6-jack/lib ┊ 3. runpath: ┊ /nix/store/3xmijza6nscnn52jry8fw2sw2nzsl9am-glib-2.80.2-bin/lib ┊ /nix/store/ryp6f4v7xfcjsdrwn9dy7ppz2ida360l-glib-networking-2.80.0/lib ┊ /nix/store/3qkkcdsd95myij0zbcwi5gas3w0hx16y-pcsclite-2.1.0/lib ┊ /nix/store/x9fw7rbdb34gq0f8q750kw344lbv9nk1-libX11-1.8.9/lib ┊ /nix/store/1dpwfla39ap6nsj6v8xj9s8vp5nv3cpv-libXScrnSaver-1.2.4/lib ┊ /nix/store/gbjygp4wz7b5rgayckmqfc00hy34dqfn-libXext-1.3.6/lib ┊ /nix/store/1jjjvxa4v0qqjhlc9ig3j6ljdlskm2kr-libXfixes-6.0.1/lib ┊ /nix/store/g1k5ak1wb3xpsbjarjkmql8zbd1nmym4-libXinerama-1.1.5/lib ┊ /nix/store/w5a1jcw2l3g05459qprwsg3886ljmg7r-libXmu-1.2.1/lib ┊ /nix/store/37bzg32wlrlknwbrsvjr4cxwmjh8dbzl-libXrender-0.9.11/lib ┊ /nix/store/0ig3lz1130srhy0g92ss16pwswnzkdjp-libXtst-1.2.4/lib ┊ /nix/store/18kar5zwp16xyppfmigq92xzm1pkcqf1-libxcb-1.17.0/lib ┊ /nix/store/1zplyrgmsy6yaavv6np13in77hn38kjs-xprop-1.2.7/lib ┊ /nix/store/yz4aq38ygj5kazh1b6vw7jf3598ijp77-xdpyinfo-1.3.4/lib ┊ /nix/store/6pzxmb82pda01y6zxncdmmp7lhafb75h-gtk+3-3.24.41/lib ┊ /nix/store/7ammyzfh4i39dqxj3v0rxs21crrxp4nb-pango-1.52.2/lib ┊ /nix/store/6rigmq2ycbpgywmq9jjyhdr6vs8k8h8x-at-spi2-core-2.52.0/lib ┊ /nix/store/b9f9c4ml2k6fg0pgc80d9y4a6byqflmp-cairo-1.18.0/lib ┊ /nix/store/k2fmr13zj9rhkr29axhkaizjqn1llxaz-gdk-pixbuf-2.42.11/lib ┊ /nix/store/c2v6ycn0sjcpx9ww8x7j4ima6xnpssry-glib-2.80.2/lib ┊ /nix/store/n90qk04jw71dk42g7c1ifwdswmbpm3ml-gstreamer-1.24.2/lib ┊ /nix/store/fjqvwg4hxszzna6znkran8zqcj3h6a6a-gst-plugins-base-1.24.2/lib ┊ /nix/store/99kq29rwfzcs94id2pdmgiqixn25sjwy-libcxx-17.0.6/lib ┊ /nix/store/85l3dy5mqx7gi9kys9pch9d6qinlkaxr-libunwind-12.0.1/lib ┊ /nix/store/0rxb3ixzk4zaqivc9s795m0a3679wbw2-gcc-13.2.0-libgcc/lib ┊ 4. ld config files: ┊ 5. Standard paths: ┊ /lib ┊ /lib64 ┊ /usr/lib ┊ /usr/lib64 Error [HdxRtcEngine]: Not all dependencies were found ```

Steps To Reproduce

Steps to reproduce the behavior:

  1. Download citrix 24.2.0.65 tarball
  2. run nix-prefetch-url file:///path/to/Downloads/linuxx64-24.2.0.65.tar.gz
  3. Add citrix_workspace to packages in nixOS. I'm using home-manager:
    home.packages = with pkgs; [ citrix_workspace ]
  4. Build nix configuration
  5. Run libtree over libtree /nix/store/7gbk0n5c4lipxq6n4sj6r3jrvzl1ll9l-citrix-workspace-24.2.0.65/opt/citrix-icaclient/util/HdxRtcEngine and observe missing dependencies

Expected behavior

All the dependencies should be present when running libtree

Additional context

I am using flakes with the following inputs: nixpkgs version: "nixpkgs/nixos-24.05" home-manager version: "nix-community/home-manager/release-24.05"

Notify maintainers

@michaeladler @Aleksanaa @activeshadow @eclairevoyant

Metadata

 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.32, NixOS, 24.05 (Uakari), 24.05.20240606.9b5328b`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - channels(root): `"home-manager, nixos-23.11"`
 - nixpkgs: `/nix/store/x887lkxvgnrrcfgrzz351qhfvvrkm80x-source`

Add a :+1: reaction to issues you find important.

eclairevoyant commented 5 months ago

are you running into an issue or is this theoretical?

HPRIOR commented 5 months ago

are you running into an issue or is this theoretical?

My webcam doesn't work through the VDI. I noticed this section in the arch wiki, which mentions HdxRtcEngine as a possible cause of audio redirection problems. I'm not sure if this is the cause of my problem, but did some digging in the store and found the missing dependencies.

The HdxRtcEngine is running on my system. However, the PID keeps changing - not sure if this is due to it crashing and restarting.

HPRIOR commented 5 months ago

I have also looked briefly at this troubleshooting section for citrix. v4l2-ctl --list-devices shows only one device, so the suggested issue with ubuntu should not apply (you can only use one webcam, and sometimes the default is not a usb webcam). I have also manually set the webcam number in the wfclient.ini file.

I can also select the webcam as the microphone device in the audio settings of zoom. But the only available video option is Citrix HDX Web Camera.

HPRIOR commented 5 months ago

It looks as though this may be an application specific problem. Teams seems to work via citrix, but zoom does not. Could this be related to 32-bit vs 64-bit?

I am happy to close the issue if the missing dependencies are not a real problem

eclairevoyant commented 5 months ago

That's why I wanted to confirm earlier if you were facing an issue, so that we could address that (and confirm if before/after any PR or config change had an effect). I've never tested webcam redirection (so I'm not familiar), nor do I currently have access to a Linux machine to try to verify the issue either. I'll leave others to investigate atm