[QGIS-Developer] QGIS and Fedora: My tips

Nyall Dawson nyall.dawson at gmail.com
Sun Jan 16 15:33:35 PST 2022


Hi list,

Been hitting some pain points with using/developing QGIS under Fedora
recently, so I thought I'd summarise the solutions I've found for
these issues here in case they are of use to anyone else!

(Quite possibly these issues also affect other Linux distros too)

Messed up file open/save dialog window stacking
-----
The issue here is that file dialogs (like the open/save file dialogs)
will frequently open BEHIND the parent window. This one isn't a
paper-cut, it's a full-on amputated limb and was driving me insane.

The root cause of this is that the gtk implementation of the "file
chooser" portal specification is buggy, at least for Qt applications.
I couldn't solve this one, couldn't get upstream to acknowledge, so I
gave up and found the following hacky solution which completely
disables the file chooser portal for the system.

Edit /usr/share/xdg-desktop-portal/portals/gtk.portal as root, and
remove the "org.freedesktop.impl.portal.FileChooser;" string from the
"Interfaces=" line.

This will force the system to use the standard GTK file chooser
instead of the sandboxed portal one. It fixes the broken file dialog
window stacking (yay!) but as a side effect will completely break ALL
file dialogs used by sandboxed (e.g. flatpak) applications.

For me that's an acceptable compromise (I don't use any flatpak
applications).. but make your own judgement call here :)

(As an added bonus: the file chooser portal specification is quite
limited, and doesn't support things like showing a "save as" file
dialog which **doesn't** warn about overriding existing files. As a
result things don't work nicely in QGIS, and you'll get UI gremlins
like the "save vector layer" dialog incorrectly warning that an
existing GPKG file will be overwritten even though you're only
appending a new layer to that file, not overwriting it).


Debug sessions of QGIS just "hang"
----

I noticed this one after upgrading to Fedora 35. Trying to run any
session of QGIS under a debug environment (eg. gdb) just resulted in a
hang at startup.

I tracked this one down to this change:
https://fedoraproject.org/wiki/Changes/DebuginfodByDefault, where
Fedora 35 enables "debuginfod" by default.

debuginfod is supposed to be a helpful thing which downloads debug
info on demand. The "hang" during startup of QGIS debug is actually
just debuginfod trying to download all the debug info for libraries
used by QGIS. BUT... it's an INSANE amount of data it's trying to
download. debuginfod is trying to download debug info for every single
library used by QGIS recursively. Which results in it trying to even
download debug info for webkit, which is so large that I could never
get the download to ever complete!!! Even worse, debuginfod defaults
to auto-deleting all downloaded debug info on a weekly basis.... so if
you were super-patient and waited for this to download then you'll
just have to go through the same thing again in a week.

Solution: disable debuginfod, by unsetting the DEBUGINFOD_URLS
environment variable. Debug sessions of QGIS will start just like they
always used to.


Bad coloring of unfocused UI elements
------
There's an annoying issue under recent gnome/gtk releases where
unfocused UI elements in Qt applications are incorrectly styled with
the "inactive window" coloring. This results in widgets like lists,
tree views, and dock child widgets showing as though they are disabled
whenever they aren't the currently focused widget. (It's described
upstream here https://github.com/FedoraQt/adwaita-qt/issues/126)

I couldn't find a proper fix for this one, so I've just submitted a
gross hack to QGIS to completely disable the inactive window coloring
on these environments (https://github.com/qgis/QGIS/pull/46847). This
hack will fix the theming on QGIS 3.24+.


Hope those tips are of use to someone!

Nyall


More information about the QGIS-Developer mailing list