Bugzilla – Bug 1214295
xrdp and sound support when using pipewire
Last modified: 2023-09-13 13:22:42 UTC
After Tumbleweed switched from pulseaudio to pipewire, remote desktop sessions ( XRDP ) no longer had sound because that support was based on pulseaudio. The developers have been working on a solution for quite a while now and it appears they have it working again using a new module. This link from the maintainer talks about the development of the new module. https://github.com/neutrinolabs/xrdp/discussions/2023#discussioncomment-4683606 I also raised the issues on the Factory Mailing List and the maintainer replied there with these details: Hi all - xrdp maintainer here. I'll start by explaining the architecture using the PA sub-system. xrdp provides a remote desktop environment (RDE) to an RDP client. The RDE may be running applications that produce or consume audio. The audio devices will be connected to the RDP client - not the server running xrdp. xrdp has a PA driver which implements a virtual soundcard. This provides a source and sink for the RDP applications. Audio is exchanged with the RDP client using the relevant RDP protocol. This module is a pain to build and upgrade as PA does not support out-of-tree modules. For PW, one of our users evaluated a number of approaches and came up with a PW module. The relevant part of that discussion is here:- https://github.com/neutrinolabs/xrdp/discussions/2023#discussioncomment-4683606 PW supports out-of-tree modules, and so this approach is a lot easier to build. The new module appears to be available here https://github.com/neutrinolabs/pipewire-module-xrdp Could we PLEASE get this new module added to the TW repos? Thank you! Have a blessed day!
Update I also posted about this on the Factory Mailing List Jason Craig created a package for it and responded with You can try this (fair warning: I just built it, I haven't tried it): https://build.opensuse.org/package/show/home:jacraig:xrdp/pipewire-module-xrdp I have installed that package in a test TW 20230809 machine and it is working PERFECTLY. So can we please get this added to the TW repos ? Thanks very much!
It's done by the user, not from us. A standard procedure is: submit the package to the dedicated OBS devel project (e.g. multimedia:libs), staging there, and submit from there to FACTORY. Please ask to submit do that.
(In reply to Takashi Iwai from comment #2) > It's done by the user, not from us. > > A standard procedure is: submit the package to the dedicated OBS devel > project (e.g. multimedia:libs), staging there, and submit from there to > FACTORY. > Please ask to submit do that. Hi Takashi, Yes, Jason was compiling the new package for me so that I could test it, however, in my original message I gave you the URL for the xrdp upstream project ( xrdp is already included in TW, this is just a new module added to it ) where they have added the module to add the xrdp pipewire support. Here's that link again https://github.com/neutrinolabs/pipewire-module-xrdp So the xrdp maintainer in TW needs to also include this new module getting it from the upstream project like they do for the rest of xrdp which comes from https://github.com/neutrinolabs/xrdp that way when future xrdp upstream updates occur they would now include the new pipewire module. I don't have the ability ( or knowledge for how to do that ) which I why I submitted this bug report so that future xrdp packages would include this new module. Thanks!
OK, then let's reassign to xrdp package maintainer.
(In reply to Takashi Iwai from comment #4) > OK, then let's reassign to xrdp package maintainer. I thought I did that when I added yfjiang@suse.com as that's what osc maintainer for xrdp shows. If you think we need to include someone else PLEASE add them. Thank you!
I'm taking over this bug as I am the current mantainer of xrdp. There's some task on my hand right now, but I should be able to take a look at the spec next Monday or so. Sorry for the waiting.
(In reply to Daike Yu from comment #6) > I'm taking over this bug as I am the current mantainer of xrdp. > > There's some task on my hand right now, but I should be able to take a look > at the spec next Monday or so. Sorry for the waiting. Hi Daike, Have you had a chance to look at this yet? I talked to the upstream developer last week and he said it is up to the distros to either include this as a separate package ( which I suspect TW will do ) or to include it with the regular xrdp package. Do you have an ETA? Thanks for your efforts.
> Have you had a chance to look at this yet? > > I talked to the upstream developer last week and he said it is up to the > distros to either include this as a separate package ( which I suspect TW > will do ) or to include it with the regular xrdp package. > > Do you have an ETA? > > Thanks for your efforts. JFYI - As a co-maintainer in X11:RemoteDesktop project, I accepted this a couple of days ago based on Daike's input: https://build.opensuse.org/request/show/1105159 I remember Jason mentioned he is going to submit to Factory later on after the devel project's acceptance. So I intended to leave the Factory process to Jason who practically did the contribution. Please let me know if we need further discussion.
(In reply to Yifan Jiang from comment #8) > JFYI - As a co-maintainer in X11:RemoteDesktop project, I accepted this a > couple of days ago based on Daike's input: Shouldn't this have been in 20230901 ( which was just released a few minutes ago ) since it was accepted a couple days ago ???
(In reply to Joe S from comment #9) > (In reply to Yifan Jiang from comment #8) > > > JFYI - As a co-maintainer in X11:RemoteDesktop project, I accepted this a > > couple of days ago based on Daike's input: > > Shouldn't this have been in 20230901 ( which was just released a few minutes > ago ) since it was accepted a couple days ago ??? X11:RemoteDesktop is the development project, to make it available on snapshot, I think we still need the package submitted and accepted in the Factory.
(In reply to Yifan Jiang from comment #10) > > X11:RemoteDesktop is the development project, to make it available on > snapshot, I think we still need the package submitted and accepted in the > Factory. Hi Yifan, Sorry, I misunderstood. I thought when you said you accepted you meant that you accepted to Factory. Please note that Jason compiled so that I could test the package but this is a new package which is part of XRDP to provide remote sound using pipewire. Whatever process pulls XRDP from upstream needs to also start pulling this new module so that it is updated whenever upstream has changes. I reached out to Jason but he has not responded yet. How do we get this new package added such that it is also included when new XRDP upstream releases occur? Thanks for your assistance!
> How do we get this new package added such that it is also included when new > XRDP upstream releases occur? The module has not hard dependency on xrdp core. So the need of upgrade probably depends on pipewire-module-xrdp upstream rather than xrdp core. Like how ordinary Factory packages have been maintained, in case of any new releases or build failure of pipewire-module-xrdp, the maintainers and contributors of the package look into them manually.
(In reply to Yifan Jiang from comment #12) > > How do we get this new package added such that it is also included when new > > XRDP upstream releases occur? > > The module has not hard dependency on xrdp core. So the need of upgrade > probably depends on pipewire-module-xrdp upstream rather than xrdp core. > > Like how ordinary Factory packages have been maintained, in case of any new > releases or build failure of pipewire-module-xrdp, the maintainers and > contributors of the package look into them manually. I don't disagree with you, however, the key point that seems to be being missed is that this is a NEW additional module released by xrdp upstream. This NEW module now provides xrdp sessions with sound using pipewire, however, unless the TW maintainers are aware that this NEW module exists it isn't going to be included in Factory because they would not be pulling it as it did not previously exist. The purpose of my bug report was my attempt to notify the xrdp package maintainers to include this new module when they pull the xrdp package. Wouldn't you agree that logically whoever maintains the xrdp package should also maintain this one since the both come from upstream xrdp ? osc maintainer -e xrdp shows maintainer of xrdp : fzhang.foss@gmail.com, yfjiang@suse.com, yu.daike@suse.com Assuming that is correct, it would seem that fzhang, you or daike would be the ones to pull it from upstream when you pull xrdp and then submit it to Factory. If not please help me to understand WHO I need to notify so that when xrdp upstream pulls are done, they also pull this NEW package. Thank you!
> If not please help me to understand WHO I need to notify so that when xrdp > upstream pulls are done, they also pull this NEW package. Can you explain a bit what does "pull" mean here? Do you mean "regularly monitored and upgraded with pipewire-xrdp-module upstream"? Technically I would differentiate it from xrdp upstream because their release cycles can be different. So upgrading xrdp doesn't mean we need to upgrade the module. If it was meant to find somebody to monitor and maintain the new package, I agree current xrdp maintainers are good contacts before we having explicit maintainers. However I don't think, without explicit commitment, the maintainers of the new package naturally "inherited" from xrdp just because the module comes from the same community of xrdp. Because it is not a part of core xrdp code base and it probably has different lifecycle. Personally I could offer help when there is an urgent need, but due to my recent focus is pretty far from xrdp, I think it would be more reliable if we have more commitment of contributors to the new package. Let's try if Jason, Felix and Daike could offer maintainership the new package together.
@Jason, @Felix, @Daike, what do you think the comment#13 and comment#14, would anyone(s) of you could help on maintaining the package in a regular base?
(In reply to Yifan Jiang from comment #15) > @Jason, @Felix, @Daike, what do you think the comment#13 and comment#14, > would anyone(s) of you could help on maintaining the package in a regular > base? I don't mind help maintaining the package. It can be considering part of xrdp (although not part of xrdp source tree) after all. (In reply to Joe S from comment #13) > I don't disagree with you, however, the key point that seems to be being > missed is that this is a NEW additional module released by xrdp upstream. > > This NEW module now provides xrdp sessions with sound using pipewire, > however, unless the TW maintainers are aware that this NEW module exists it > isn't going to be included in Factory because they would not be pulling it > as it did not previously exist. > > The purpose of my bug report was my attempt to notify the xrdp package > maintainers to include this new module when they pull the xrdp package. > > Wouldn't you agree that logically whoever maintains the xrdp package should > also maintain this one since the both come from upstream xrdp ? > > osc maintainer -e xrdp shows > > maintainer of xrdp : > fzhang.foss@gmail.com, yfjiang@suse.com, yu.daike@suse.com > > Assuming that is correct, it would seem that fzhang, you or daike would be > the ones to pull it from upstream when you pull xrdp and then submit it to > Factory. > > If not please help me to understand WHO I need to notify so that when xrdp > upstream pulls are done, they also pull this NEW package. I agree it would be a logical choice, but I don't think I quite get your point here, can you please elaborate? AFAIU the package should be submitted to X11:RemoteDesktop (done), and from there then submitted to openSUSE:Factory (in progress), which will make it available for TW users; after that I (and maybe others) would take over the duty of maintaining the package. So to me things looks well in progress, and I'm not sure what we've missed.
(In reply to Yifan Jiang from comment #14) > Can you explain a bit what does "pull" mean here? Do you mean "regularly > monitored and upgraded with pipewire-xrdp-module upstream"? Yes, that is what I meant. > Technically I would differentiate it from xrdp upstream because their > release cycles can be different. So upgrading xrdp doesn't mean we need to > upgrade the module. Yes, that may or may not be true. When I talked to the xrdp developer he said it was up to the distros as to whether they package it with the xrdp package or make it a separate package in the distro. I don't care which way is chosen but figured it would probably end up being a separate package in TW. The key point was that if the Factory maintainers are not even aware of the NEW module it would never get into Factory and TW.
(In reply to Daike Yu from comment #16) > (In reply to Yifan Jiang from comment #15) > > @Jason, @Felix, @Daike, what do you think the comment#13 and comment#14, > > would anyone(s) of you could help on maintaining the package in a regular > > base? > > I don't mind help maintaining the package. It can be considering part of > xrdp (although not part of xrdp source tree) after all. Yes, that is the point I've been trying to make. Sorry if I have not be clear. The modules entire purpose is to restore sound to xrdp sessions when pipewire is being used ( which distros seem to all be switching too ) > (In reply to Joe S from comment #13) > > If not please help me to understand WHO I need to notify so that when xrdp > > upstream pulls are done, they also pull this NEW package. > (In reply to Daike Yu from comment #16) > I agree it would be a logical choice, but I don't think I quite get your > point here, can you please elaborate? My point was to request that the xrdp package maintainers now include this new package when they are updating xrdp. > AFAIU the package should be submitted to X11:RemoteDesktop (done), and from > there then submitted to openSUSE:Factory (in progress), which will make it > available for TW users; after that I (and maybe others) would take over the > duty of maintaining the package. So to me things looks well in progress, and > I'm not sure what we've missed. Sorry, then I must be looking in the wrong place. When I look here: https://build.opensuse.org/request/show/1105159#request-history I see that it was submitted to X11:RemoteDesktop and that yfjiang accepted the request 8 days ago. I mistakenly took that "accepted" to mean accepted for Factory but yfjiang replied that now it needs to be submitted to Factory, however, it seems to be stuck waiting for that submit to occur. We've had 3 TW snapshots since it was accepted which is why I say that it seems to be stuck as the Factory submit has not occurred. Where should I be looking to see that Factory submit is in progress ? Thank you for your efforts!
If it is still worth anything I don't mind helping to maintain the package moving forward.
(In reply to Jason Craig from comment #19) > If it is still worth anything I don't mind helping to maintain the package > moving forward. That would be MOST appreciated! It seems that all that needs done right now is to have it submitted and accepted to Factory.
(In reply to Joe S from comment #20) > It seems that all that needs done right now is to have it submitted and > accepted to Factory. It is submitted, last I saw it was in staging. Sorry about the couple days it took though, I kept forgetting to submit it to Factory!
> Where should I be looking to see that Factory submit is in progress ? The Factory request Jason submitted is here: https://build.opensuse.org/request/show/1108961
(In reply to Jason Craig from comment #19) > If it is still worth anything I don't mind helping to maintain the package > moving forward. (In reply to Daike Yu from comment #16) > I don't mind help maintaining the package. It can be considering part of > xrdp (although not part of xrdp source tree) after all. Hi Jason, Daike, thank you for helping out! I have put your name as maintainers in the package, please check "osc maintainer X11:RemoteDesktop pipewire-module-xrdp" for more details.
Thanks all. Looks like it missed the 20230906 and 20230907 ( soon to be published I assume ) releases and the current status shows there is an outstanding review reminder which needs to be accepted so that it can make it into the next build. https://build.opensuse.org/request/show/1108961
(In reply to Joe S from comment #24) > Thanks all. > > Looks like it missed the 20230906 and 20230907 ( soon to be published I > assume ) releases and the current status shows there is an outstanding > review reminder which needs to be accepted so that it can make it into the > next build. > > https://build.opensuse.org/request/show/1108961 Ok, looks like Jason was able to accept it ( THANKS ! ) and it should now appear in 20230910 assuming that is published.
(In reply to Joe S from comment #25) > Ok, looks like Jason was able to accept it ( THANKS ! ) and it should now > appear in 20230910 assuming that is published. I have updated to 20230910 and everything is working well. THANKS! One suggestion, consider making the xrdp package either require or at least recommend the pipewire-module-xrdp package. Since TW has switched from pulseaudio to pipewire, users that install xrdp are going to want pipewire-module-xrdp too so that they have sound.