Building xrdp PulseAudio modules for great remote desktop experience
Felipe Sateler
fsateler at debian.org
Wed Jun 8 20:04:34 UTC 2016
Hey Dominik,
On 3 June 2016 at 13:14, Dominik George <nik at naturalnet.de> wrote:
> [ Please keep me addresses directly as I am not subscribed to the list ☺! ]
>
> Hi PulseAudio Debian team,
>
> today, a new version of xrdp, a highly advanced RDP server for Linux, has
> entered Debian unstable. With this version, we now enable users to build fast,
> reliable and compatible terminal server setups based on only free software.
> The main differences between xrdp and other solutions are these two:
>
> * xrdp has X.org drivers that handle video and input and everything
> is accessed natively, gaining very high performance, and
> * RDP is very widely adopted and anyone can use an RDP terminal server
> without installing any new software, no matter what OS they are using.
>
> In order to provide audio support, xrdp ships a sink and a source that PA can
> load to send and receive sound over a side-channel of the RDP connection.
>
> Unfortunately, in order to build these modules, a complete PulseAudio source
> tree is needed, and that's why we cannot build it for the xrdp package right
> now.
>
> I am not experienced with PulseAudio development, so maybe you can provide
> some useful information, like:
>
> * Is a full source tree really needed, or is the xrdp upstream doing
> unnecessary things we could change?
Strictly speaking not a full source tree. But the module headers are
not part of the public API, and thus not shipped by libpulse-dev.
BTW, you already filed a bug for this:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794692
The situation has changed a bit: pulseaudio upstream is receptive to
shipping such headers provided they have a define that users
explicitly need to be set (so that people do not unsuspectingly use
it), because the module api is not easily stabilized at the moment. I
believe that this is just lacking someone that implement this at the
moment. So maybe the bug should be untagged wontfix.
> * How are other third-party modules in Debian built, if any?
There are none that I know of. Ubuntu ships some non-upstream modules
as patches to the pulseaudio source tree.
> * Any ideas on how to get this stuff built for xrdp?
We need some infrastructure before we can do out-of-tree modules, as
the API is tightly coupled:
- Package:pulseaudio needs to provide something like:
pulse-module-api-${source:Version}
- A new package pulseaudio-module-dev would need to be introduced
including the headers and link files.
> Right now, I see two ways of solving this:
>
> * Provide a pulseaudio-src package with the full source tree - however,
> I do not see how anyone else could benefit from that, so it would
> unnecessarily bloat the archive, or
> * Build the modules with the pulseaudio source package instead, but I assume
> that you as a team are not keen in building a ton of third-party modules
> for others.
* Provide and install the unstable module headers, similar to how
kernel modules are built.
My guess is that at this point it is patches welcome, primarily
upstream though as I do not really want to carry a diff against them.
--
Saludos,
Felipe Sateler
More information about the pkg-pulseaudio-devel
mailing list