No, if a running TurboVNC session is using the shared (systemd-provided)
D-Bus session bus instance, then attempting to log in locally or start
another VNC session that uses the shared D-Bus session bus instance will
fail, and it may even cause the window manager in the existing TurboVNC
session to crash. (Have I mentioned how much I hate systemd?) That is
the tradeoff. If you want TurboVNC to work with snap applications "out
of the box" (with no workarounds), then you have to sacrifice the
ability to run multiple simultaneous sessions. You can't run multiple
simultaneous sessions unless you use an independent D-Bus session bus
instance for each, but you can't run confined snap applications unless
you use the shared D-Bus session bus instance.
On 1/9/24 12:14 PM, Torsten Kupke wrote:
Wow, that was very detailed and insightful! Before you introduce the
new option, please let me first test, what you described in point 3.
I'm very curious to see, if that helps in my case. But please be
patient, it will take a while.
But I see a problem, if I do that:
> but it would also prevent you from starting multiple TurboVNC
sessions (or a TurboVNC session and a local session)
What would happen with an existing TurboVNC session (I normally
connect to from my home office PC), and I come to the physical machine
and login there locally under my username? Would I be able to start
the local desktop? And would I be able to connect to the existing
TurboVNC session by using the locally installed TurboVNC viewer?
Am 08.01.2024 um 20:17 schrieb 'DRC' via TurboVNC User
Discussion/Support:
You will see those same warning messages if you start Firefox from
the command line in a local session. The only reason you don't
normally see them is that you normally start Firefox from the icon.
You will find that both Firefox and Chrome spew a lot of command-line
warnings such as those, regardless of platform. However, in this
case, the warning messages appear to be a result of how Firefox is
deployed as a snap application. Snap applications are deployed with
all of their dependencies self-contained, which is not the typical
way in which Linux applications are deployed. In fact, the snap back
end is proprietary, so snaps only exist on Ubuntu. Snaps are
essentially a closed-source packaging system on top of an open-source
O/S, and they are somewhat controversial for that reason and others
(https://www.reddit.com/r/linux/comments/j3ajnf/whats_wrong_with_snaps_why_so_many_people_hate_it/).
The core of the issue is that TurboVNC sessions each create an
independent D-Bus session bus instance. That allows multiple window
manager instances to co-exist simultaneously under the same user
account. However, apparently the snap system expects to use the
systemd-provided D-Bus session bus instance. (More specifically,
this is the case with confined snaps. Unconfined snaps should work
as expected with TurboVNC.) If you google "is not a snap cgroup" and
"dbus_session_bus_address", you'll see that this issue is not
specific to TurboVNC. It exists with all multi-session Linux remote
desktop software (X2Go, etc.), because all multi-session Linux remote
desktop software similarly creates an independent D-Bus session bus
instance for each remote desktop session. You can, in fact,
reproduce the issue in a local session by starting firefox with:
dbus-launch --sh-syntax --exit-with-session firefox
I really believe that this is a limitation of the snap system. If
confined snaps fundamentally cannot work with an independent D-Bus
session bus instance, then the snap system should ignore
DBUS_SESSION_BUS_ADDRESS when launching such applications. But since
snap is a proprietary technology, good luck getting any movement on
that.
There are several ways to work around the issue:
1. The most non-intrusive way is to unset DBUS_SESSION_BUS_ADDRESS
when starting snap applications in a TurboVNC session. That forces
the applications to use the systemd-provided D-Bus session bus
instance rather than the D-Bus session bus instance associated with
the TurboVNC session. That means that you will be limited to one
simultaneous instance of each application, but Firefox aggressively
disallows more than one simultaneous instance of itself anyhow.
2. TigerVNC takes a different approach to launching VNC sessions,
using systemd rather than a vncserver script. Their approach is
supposedly more systemd-friendly and doesn't experience this specific
issue with snap applications. However, in my testing, their approach
has other issues. On Ubuntu 22.04 specifically, TigerVNC sessions
launched using the latest official TigerVNC binaries do not display
the GNOME 3 GUI properly. (They just show a blank desktop with no
sidebar or taskbar, and the window decorations are incorrect.) Also,
in my testing, sessions started in that manner sometimes immediately
crash on Ubuntu 22.04. I could adopt TigerVNC's approach as an
optional means of starting TurboVNC sessions (replacing the current
init.d method of starting TurboVNC sessions, which is a
poorly-documented and rarely-used legacy of TightVNC.) However, that
would take a lot of effort, in part because I would want to document
and test it more thoroughly than TigerVNC apparently has. At the
moment, I'm not convinced that starting sessions with systemd has any
advantages other than addressing this specific issue, and there are
less intrusive ways of addressing this issue.
3. I could add a vncserver/turbovncserver.conf option that causes the
TurboVNC session to forego creating an independent D-Bus session bus
instance. (That is the main reason why TigerVNC doesn't experience
this issue.) That would effectively fix this issue on a per-session
basis, but it would also prevent you from starting multiple TurboVNC
sessions (or a TurboVNC session and a local session) simultaneously
under the same user account (essentially the same limitations as
TigerVNC.) Note that you can already achieve the same effect by
copying /opt/TurboVNC/bin/xstartup.turbovnc to ~/.vnc, editing
~/.vnc/xstartup.turbovnc and commenting out all of the dbus-launch
stuff, and setting $xstartup = "$vncUserDir/xstartup.turbovnc" in
~/.vnc/turbovncserver.conf.
If you ask me, the nicest approach is just to acknowledge that snap
applications are the problem and work around the problem only for
those applications-- or not use snap applications at all, or use
Chrome like 65% of the people surfing the web do. The alternative is
to artificially limit the TurboVNC infrastructure for the sole
purpose of supporting a proprietary application deployment system
whose authors couldn't be bothered to test their system with
multi-session remote desktop software.
I am more than happy to implement Item 3 above if that would make you
happy. I can't think of anything else that I can realistically do to
address this at the moment. (Item 2 would take a lot longer and would
probably require some funding.) Hopefully the tome above explains why
I can't just wave a magic wand and make TurboVNC behave in all cases
like a local session. Even if TurboVNC severely sacrificed
functionality, as TigerVNC has done, it still wouldn't behave in all
cases like a local session. Developing TurboVNC is really difficult,
because I have to hit multiple moving targets across multiple
distributions and operating systems. I do the best I can with a very
limited budget and a development team consisting only of me.
DRC
On 1/8/24 3:47 AM, Torsten Kupke wrote:
Hi DRC,
starting firefox from the command line, like you proposed, works.
But I get some messages, I don't know, how to assess:
$ DBUS_SESSION_BUS_ADDRESS= firefox
Gtk-Message: 09:15:57.854: Failed to load module "xapp-gtk3-module"
Gtk-Message: 09:15:57.854: Not loading module "atk-bridge": The
functionality is provided by GTK natively. Please try to not load it.
[378359, Main Thread] WARNING: GTK+ module
/snap/firefox/3600/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same
process is not supported.: 'glib warning', file
/build/firefox/parts/firefox/build/toolkit/xre/nsSigHandlers.cpp:187
(firefox:378359): Gtk-WARNING **: 09:15:57.926: GTK+ module
/snap/firefox/3600/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same
process is not supported.
Gtk-Message: 09:15:57.926: Failed to load module "canberra-gtk-module"
[378359, Main Thread] WARNING: GTK+ module
/snap/firefox/3600/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same
process is not supported.: 'glib warning', file
/build/firefox/parts/firefox/build/toolkit/xre/nsSigHandlers.cpp:187
(firefox:378359): Gtk-WARNING **: 09:15:57.928: GTK+ module
/snap/firefox/3600/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same
process is not supported.
Gtk-Message: 09:15:57.928: Failed to load module "canberra-gtk-module"
But starting firefox this way is an emergency solution in my eyes.
Are you sure, that it's not possible to make the snap version of
firefox startable via icon inside the TVNC session, like any other
regular application?
Uninstalling the snap version of firefox and reinstalling it through
apt seems to be a bit difficult and error-prone. There are many
different recommendations in the web, which steps should be done
therefore to make firefox working properly, when installing with apt
on Ubuntu 22.04. Currently I'm unsure, which of those I should
consider or not. Finding a proper one will take some time. I would
have to see, when I will find that time.
BR
tkansgar
Am 05.01.2024 um 19:31 schrieb 'DRC' via TurboVNC User
Discussion/Support:
My suggestion regarding dbus-x11 was to Felix and was pertaining to
a different issue.
Try unsetting DBUS_SESSION_BUS_ADDRESS, e.g.:
$ DBUS_SESSION_BUS_ADDRESS= firefox
That works for me. Apparently this is a known issue with snap
applications running in VNC:
https://bugzilla.mozilla.org/show_bug.cgi?id=1767183
https://askubuntu.com/questions/1452155/how-can-i-get-snap-applications-to-run-in-vnc-session
You can work around it by uninstalling the snap version of Firefox
and reinstalling Firefox using APT.
On 1/5/24 11:47 AM, Torsten Kupke wrote:
Hi,
I'm not sure, whether this has been asked here already. Since
upgrading Ubuntu from 18.04 to 22.04 and TurboVNC from 2.2.7 to
3.1 I'm unable to use firefox inside the TVNC session. The firefox
icon is not visible in the dock on the left side and in the list
of startable applications. But it is definitely installed on that
machine. And when I sit locally in front of it, firefox is present
in the dock outside of the TVNC session and startable. When I try
to start it inside from a terminal shell, I get this:
$ firefox
/user.slice/user-700.slice/session-c2.scope is not a snap cgroup
I googled this and found several solution proposals. But they all
look strange to me (maybe because I'm no Linux nerd). Can anyone
tell me, what's the correct and best solution to make firefox
startable inside the TVNC session again? By the way, dbus-x11
cannot be the reason, since it is installed already.
BR
tkansgar
--
You received this message because you are subscribed to the Google Groups "TurboVNC
User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to turbovnc-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/turbovnc-users/f298631d-991a-9b02-bd86-abda8591326e%40virtualgl.org.