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