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