NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Can't get PulseAudio working with Citrix ICA 12.1 receiver



hi tomas,

On Thu, Oct 25, 2012 at 02:03:59PM +0200, Tomas Bodzar wrote:
> Hi all,
> 
> so I was able to get Citrix ICA Receiver 12.1 running just fine on
> NetBSD 6.0 amd64 under suse121_32 compat_linux, but one thing is
> missing. I'm not able to use audio inside Citrix and I think that it's
> just some form of misconfiguration or something. Any ideas or tips?
> 
> Here what shows during start of Win 7 inside Citrix receiver:
> 
> nbsd$ firefox10
> 
> (xulrunner-bin:1114): Gtk-WARNING **: Could not find the icon
> 'gtk-go-back-ltr'. The 'hicolor' theme
> was not found either, perhaps you need to install it.
> You can get a copy from:
>         http://icon-theme.freedesktop.org/releases
> 
> (wfica:491): Gtk-WARNING **: Error loading icon from file
> '/opt/Citrix/ICAClient/icons/receiver.png':
>         Couldn't recognize the image file format for file
> '/opt/Citrix/ICAClient/icons/receiver.png'
> setsockopt(SOL_SOCKET, SO_PASSCRED): Invalid argument

this SO_PASSCRED operation is the problem.  what it's supposed to do
is pass some information about the process at one end of the socket
to the process at the other end, but as I recall, linux and netbsd
use different information (one uses just the effective uid/gid and
the other also includes the entire group list, something like that)
and at the time I was working on updating the linux emulation
a couple years ago, I didn't think there was a way to make this work
when the process on one end of the socket was native netbsd and
the process on the other end was linux, as would be the case here if
the pulseaudio daemon is native netbsd.  I might be misremembering
some of the details here but the problem is something like that.

I did experiment with just ignoring the SO_PASSCRED and as I recall
that did make it get further, but I never did get the linux emulation
working with pulseaudio, I ended up going back to using OSS for my
linux-emulation audio needs (watching youtube vids with the flash plugin).
can the citrix plugin use OSS for the audio interface?

if not, you can try the attached patch to have netbsd ignore the
SO_PASSCRED operation and see if you can get pulseaudio working.

-Chuck
Index: src/sys/compat/linux/common/linux_socket.c
===================================================================
RCS file: /cvsroot/src/sys/compat/linux/common/linux_socket.c,v
retrieving revision 1.114
diff -u -p -r1.114 linux_socket.c
--- src/sys/compat/linux/common/linux_socket.c  20 Jun 2012 15:03:18 -0000      
1.114
+++ src/sys/compat/linux/common/linux_socket.c  26 Oct 2012 16:12:14 -0000
@@ -989,6 +989,11 @@ linux_sys_setsockopt(struct lwp *l, cons
 
        switch (SCARG(&bsa, level)) {
        case SOL_SOCKET:
+#if 0
+               if (SCARG(uap, optname) == LINUX_SO_PASSCRED) {
+                       return 0;
+               }
+#endif
                name = linux_to_bsd_so_sockopt(SCARG(uap, optname));
                break;
        case IPPROTO_IP:


Home | Main Index | Thread Index | Old Index