[05:22] goood morning desktopers [05:29] Morning seb128 [05:32] Good morning [05:45] Morning jibel [05:48] morning seb128 jibel and afternoon duflu [05:53] good morning desktoppers [05:54] Hi callmepk and oSoMoN [05:54] hey duflu [05:54] morning oSoMoN [05:55] hey callmepk [05:55] good morning [05:55] Morning ricotz [06:24] good morning ricotz [06:30] Hi duflu callmepk oSoMoN_ [06:33] * ricotz wonders if there is a deadline for moving for libera.chat [06:35] hi jibel ricotz [06:36] Not seeing much people from here at libera.chat though [06:36] salut jibel === oSoMoN_ is now known as oSoMoN [06:47] hey duflu callmepk oSoMoN ricotz jibel, how are you? [06:47] oSoMoN, wb, did you have some nice holidays? [06:48] seb128 it's okay, how about you? [06:49] callmepk, tired but alright otherwise I think! [07:01] good morning [07:03] hi didrocks [07:04] morning callmepk duflu jibel oSoMoN ricotz seb128 didrocks [07:04] Hi didrocks and marcustomlinson [07:04] hi marcustomlinson [07:07] hey callmepk, marcustomlinson, duflu! [07:11] Hi marcustomlinson didrocks [07:12] seb128, doing well, thanks. [07:12] salut jibel [07:40] hey marcustomlinson, lut didrocks, how are you? [07:41] seb128: I’m fine, thanks, and you? [07:42] seb128: still a little low on energy but doing better thanks [07:44] didrocks, it was nice! [07:44] marcustomlinson, get better! [07:52] morning to the old network :-D [08:17] ... the network for the elderly ... [08:24] hey seb128, thanks! holidays were nice, not very relaxing as we moved a lot, but good anyway [08:24] and we got lots of sun and good food [08:24] salut didrocks, hey marcustomlinson, Nafallo and ogra [08:25] * ogra waves with his cane [08:25] gotta come to terms with it, we're part of the old guard… [08:25] yeah 🙂 [08:29] hey hey oSoMoN, Nafallo === ogra_ is now known as Guest30743 [09:14] Morning o/ [09:14] oSoMoN: I have news :) [09:15] There is a 'screencast-legacy' interface. [09:15] Adding that and manually connecting it get me new and interesting crashes and debug output :D [09:18] oSoMoN: And is works! [09:18] Wimpress, interesting, let me try that with chromium [09:18] what else (apart from connecting that interface) did you have to do to make it work? [09:18] PIPEWIRE_CONFIG_NAME: $SNAP/usr/share/pipewire/pipewire.conf [09:19] That ^ was required, to reference where the source part build of pipewire pout the config. [09:20] https://usercontent.irccloud-cdn.com/file/D40ymvNh/image.png [09:21] I already had "PIPEWIRE_CONFIG_NAME: $SNAP/etc/pipewire/pipewire.conf" in my snapcraft.yaml, not sure why the difference in the install path [09:22] Yes. But that is not where the config file is placed. [09:23] At least not with how I build pipewire. [09:31] Wimpress, the only relevant difference I can see between my source part and yours, in this regard, is that I'm building pipewire 0.3.26, and you're building 0.3.28 [09:31] Weird. [09:32] `squashfs-root/usr/share/pipewire/pipewire.conf` [09:32] and indeed, quoting https://gitlab.freedesktop.org/pipewire/pipewire/-/releases#highlights : « Config files are now installed in the data dir, system [09:32] overrides in /etc/pipewire and $HOME are checked first. » [09:32] I have nothing in `etc` for pipewire in my snap. [09:32] so it's just an upstream change [09:32] OK, so you found the reason :-) [09:33] https://github.com/snapcrafters/obs-studio/commit/71b89c6f9e07971d5d7d35757f1199fcf47b1d84 [09:35] let's see if adding the screencast-legacy plug makes it work for chromium [09:35] if they've got pipewire support, it shouldn't be much trouble to use the xdg-desktop-portal interface and ditch screencast-legacy [09:38] they do: https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc [09:39] jamesh: o/ [09:39] So, is xdg-desktop-portal a discrete interface or part of the desktop interface? [09:40] desktop interface [09:41] In addition to defining the desktop interface in the yaml, what else is required? [09:41] Wimpress: it certainly looks like OBS is using portals: https://github.com/obsproject/obs-studio/blob/master/plugins/linux-capture/pipewire.c#L1074-L1081 [09:41] Yes, it is. [09:42] But until I added `screencast-legacy` I couldn't get screen/window capture to work under Wayland. [09:42] Wimpress: it shouldn't require any extra interface connections. All screencast-legacy gives you is permission to call a few gnome-shell D-Bus calls that OBS doesn't even seem to be using [09:43] I got the idea from here: https://github.com/xlmnxp/blue-recorder/blob/master/snap/snapcraft.yaml#L45 [09:45] Wimpress: this is all that screencast-legacy is giving you: https://github.com/snapcore/snapd/blob/264284dfbd0b4e1f2f5df50719672f3fb1f91839/interfaces/builtin/screencast_legacy.go#L33-L52 -- if you're not calling any of those D-Bus methods, then it likely isn't doing anything [09:45] maybe try your working snap build and see what happens when you leave screencast-legacy unconnected? [09:46] OK [09:46] The obs-studio snap in the edge channel has this all enablked. [09:46] The obs-studio snap in the edge channel has this all enabled. [09:47] Wimpress: in the case of that blue-recorder snap, it really is using the non-portal interface: https://github.com/xlmnxp/blue-recorder/blob/f4a8461ac725e8a9b77457e254f965222fee6222/src/ffmpeg_interface.rs#L68-L71 [09:47] Huh. [09:48] Disconnected screencast-legacy, and it still works. [09:48] So, in my case. Just fixing the path to the pipewire config seems to have been the remedy. [09:48] Apps like Firefox are using the portal interface even when not running confined, since it gives them a single code path that will work on both GNOME and KDE desktops [09:50] that's one less interface that you'd need to request auto-connection for :-) [09:50] jamesh, I'm seeing this with the chromium snap: [09:50] [W][000018638.526850][module-portal.c:147 on_portal_pid_received()] Failed to receive portal pid: org.freedesktop.DBus.Error.AccessDenied: An AppArmor policy prevents this sender from sending this message to this recipient; type="method_call", sender=":1.202" (uid=1000 pid=59101 comm="/snap/chromium/x2/usr/lib/chromium-browser/chrome " label="snap.chromium.chromium (enforce)") interface="org.freedesktop.DBus" member="GetConnectionUnixProcessID" erro [09:50] r name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus) [09:51] not sure how relevant that is [09:53] oSoMoN: See the same denial here too. [09:53] so probably harmless [09:53] However, try and share more that one window/screen and pipewire segfaults. [09:54] *more than one [09:54] oSoMoN: weird. It looks like that method should be allowed by desktop-legacy, which it looks like you plug [09:54] yes [09:55] the portal window says "Select window to share with (null)", so the name of the application is not being passed through correctly [09:56] the app name is something we need to fix on the portal side. It's not something you can do from within the sandbox [09:56] and gnome shell shows the active screen sharing indicator, but no actual content is being shared in chromium [09:56] ok [09:56] (since it is meant to be info the sandboxed app can't forge) [09:59] oSoMoN: on my system, it certainly looks like /var/lib/snapd/apparmor/profiles/snap.chromium.chromium has the rules to allow calling GetConnectionUnixProcessID [10:02] it does here too, but I'm still seeing this denial: apparmor="DENIED" operation="dbus_method_call" bus="session" path="/" interface="org.freedesktop.DBus" member="GetConnectionUnixProcessID" mask="send" name="org.freedesktop.DBus" pid=61781 label="snap.chromium.chromium" peer_label="unconfined" [10:02] oSoMoN: ah. it's the path [10:03] yeah, path="/" [10:03] looks like this is the source: https://github.com/PipeWire/pipewire/blob/4e70799922c5e5859720f8987c53f7794e833f3c/src/modules/module-portal.c#L175-L178 [10:03] why isn't it using /org/freedesktop/DBus as the object path? [10:05] that looks like a straight up bug in pipewire [10:09] I'll rebuild the part from source with a patch to fix the path, let's see if it helps [10:26] jamesh, I patched the path and rebuilt libpipewire-module-portal.so in the snap, the denial goes away but still no actual screen content being shared [10:30] oSoMoN, screencast-legacy definitely helps as last resort i found ... (for zoom-client i added it on the weekend) [10:30] oSoMoN: thinking about it more, I'm curious about why that code would be running inside the sandbox in the first place. [10:30] oSoMoN: as I understand it, the modules get loaded into the pipewire daemon: not the client applications [10:31] ogra: assuming the application was written to use the old screencast API, which is not the case here. [10:34] yeah, screencast-legacy doesn't make a difference here [10:35] if you can't find the string org.gnome.Shell.Screencast in any of your binaries, you probably don't want screencast-legacy [11:02] jamesh, oh, ouch [11:02] that might also be the reason why zoom can only share the full screen and not single apps under wayland then === acheronuk is now known as RikMills === rikmills is now known as RikMills === RikMills is now known as RikMills_ === RikMills_ is now known as rikmills_ === rikmills_ is now known as RikMills [15:08] good morning desktopers [15:08] hey hellsworth [15:08] morning hellsworth [15:08] hi guys :) [15:10] hey hellsworth! [15:10] o/ didrocks999 === E_Eickmeyer is now known as Eickmeyer [15:49] hey hellsworth [16:34] hi there ricotz