[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gambas3.desktop install idea to detect installed toolkits...


Le 05/11/2025 à 14:06, gbWilly a écrit :
On Wednesday, November 5th, 2025 at 13:10, Tim Dickson
<dickson.tim@xxxxxxxxxxxxxx> wrote:

that may cause some issues. If you create a package, and it is installed, then the user installs something extra, like qt5 or 6
for example, the desktop would still point to the lib option used
when it was installed, so you would have to reinstall gambas to
fix it. When the installer compares old and new files for updating
it would fail to compare the dynamic desktop file. ( not a massive
deal, as it is being treated like a config file), but if you
wanted to step back to a previous config, you would not be able
to, so by installing a ui lib after install, then reinstalling you
would get different behaviour which you would have to be aware of
for debugging, if say for example there is a ui lib related gambas
bug in the different ui lib installed. Some distro's have many
options available, so which one is chosen by the script on
install?.

The old method of not specifying, then manually specifying by env variable or calling option is less prone to confusion in my
opinion, unless I am misunderstanding the subject. regards, Tim

Hi Tim,

I'll try to paint a picture here so you understand what is going on. First we are talking about the package named gambas3 (the complete
IDE). This packages should install all available toolkits on the
system. So, if GTK3, QT5 and QT6 exist on the distro, they will be
installed. That is how gambas3 (the IDE) should be packaged. That is
also why you can select them in the components tab in IDE, because
they are installed.

Upon install, the installer creates a gambas3.desktop that has a
'run with' on right-click defaulting to all toolkits (QT4, QT5, QT6
and GTK3) even if not available on the system. The post install
script uses gbx3 to figure out what toolkit components are installed
and replaces the default gambas3.desktop with an accurate one. So,
if no QT$ available it will not be in the 'run with'.

So far, so good. Now, here is where you go wrong. First this is
about the toolkits ONLY, no other libs. When you try to remove QT5
for example (see attached image) on Debian, gambas3 will also be
removed as it depends on it. And removing gambas3 also removes the
gambas3.desktop.

Sorry, but this is rather wrong.

The 'gambas3.desktop' is installed with the 'gambas3-ide' package, which is the package for the Gambas3 IDE (obviously).

This package depends on 'gb.gui', that has a dependency on ONE of the actual GUI package, not ALL.

For example, on Debian:

---8<-------------------------------------------------------------------
Package: gambas3-gui
Architecture: all
Section: libdevel
Depends: gambas3-gb-gtk (>= ${binary:Version}) | gambas3-gb-gtk3 (>= ${binary:Version}) | gambas3-gb-qt5 (>= ${binary:Version}) | gambas3-gb-qt6 (>= ${binary:Version})
---8<-------------------------------------------------------------------

So you have no guarantee that if GTK3, QT5 and QT6 exist on the distro, they will be installed. Hopefully I would add.

So the post-install script should recreate the 'gambas3.desktop' file each time any Gambas package is installed or removed, only if the Gambas 3 IDE is installed, by checking if 'gb.XXX.webview' component is installed for XXX among 'gtk3','qt5' and 'qt6'.

Otherwise, for me, it is useless.

Regards,

--
Benoît Minisini.


Follow-Ups:
Re: gambas3.desktop install idea to detect installed toolkits...Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>
Re: gambas3.desktop install idea to detect installed toolkits...gbWilly <gbWilly@xxxxxxxxxxxxxx>