Remix.run Logo
thyristan 13 hours ago

Different answers for different problems, but basically two reasons.

First, library/software/data versions inside the flatpak can and will be different from the ones outside. So a flatpak might as "what is the current Qt5 theme", and get the answer "don't know about Qt5, but the Qt6 theme is cute-cats-qt6" which it cannot interpret. Things like themes might not even be available inside the flatpak, so even if the answer were parseable, cute-cats-qt6 might just not be available on the inside.

Second, flatpaks are sandboxed, so things will be filtered. This means that a query might not get through, an answer might not get through, both might be altered. Or maybe an answer might be useless because "you can get the theme at /usr/share/themes/cute-cats-qt6" points to a path that the flatpak is not allowed to access.

alkonaut 13 hours ago | parent [-]

Maybe a contrived example but shouldn't Qt6 be answering with a compatible answer if a Qt5 app asks it what the theme is? And shouldn't the app be asking what the "theme" is, rather than what the Qt5-theme is? It seems like a fundamental issue with compat between apps built for different versions of Qt more than a problem with flatpak?

And is the sandboxing perhaps going a step too far if apps can't access the things they need from the environment?

curt15 10 hours ago | parent [-]

If Linux libraries had that much respect for backward compatibility, there would never had been any demand for Flatpak. Flatpak (and snap) is merely a workaround for the lack of a common "Linux platform" with comprehensive, versioned APIs analogous to the Windows API or Android API. After all, Flatpak essentially provides a way to run a distribution (provided by Flatpak runtimes) inside the host distribution.

skydhash 8 hours ago | parent [-]

I think that was the role of the distro to integrate a common theme for the various versions of gtk and qt. Yes, it’s often duct taped. But apart from freedesktop, we don’t have an org dictating a common API for stuff like how a graphical app interacts with the DE.