[Interest] Official linuxdeployqt ?
Roland Hughes
roland at logikalsolutions.com
Mon Aug 8 16:06:28 CEST 2022
On 8/8/22 05:00, J?rg Bornemann wrote:
> The community contributions create AppImage packages. That seems to be
> a reasonable choice. Other opinions?
AppImage packages are high risk for malware (yes, it exists on Linux).
When building on Fedora RPM packages have gotten sooo simple. It used to
be a darker than dark art, but now they have good tools.
Speaking as someone who has to create their own RPM and DEB packages
here are the current industry trends.
DEB
Commercial .deb packages are still being built on Ubuntu 18.04. As long
as you list "version >= x.y.z" everything installs on 18.04 up through
22.04. You do have to bundle your own Qt libraries because __that__ is
never the same anywhere.
This was not the case from Ubuntu 12.04 through 15.04. I even had a
question here
https://stackoverflow.com/questions/53244436/compile-qt-program-on-ubuntu-18-04-which-will-run-on-ubuntu-14-04
some yutz gave the wrong answer about "backward compatibility" to then I
came back and provided the answer that actually went into production for
a huge U.S. chip maker and now I see some other yutz deleted that. Yes,
it's a major problem any time the C/C++ compiler has an ABI change. Now
that we no longer have to straddle 32 and 64-bit for the stuff we
release the standard cheat employed by most is to install under /OPT
/opt/my_app/
executable and libraries at top level with exe tweaked to search local
first. Your supporting resource or data files are placed on the next
level down.
Purists moan and wail that it isn't properly split up under /usr but if
you thump in a back-leveled library even if you put it in a clean
directory, stuff will bust all over. You cannot insure the proper search
order for each application.
Oh, you need to create a link in /usr/bin to your executable in your
Debian post-install procedure. You must also delete the link in your
Debian post-uninstall procedure.
RPM
Nice tools and documentation in the Fedora camp. Really simple to build
RPM.
Right now people are installing Fedora 32 or 35 on a machine that has no
connection to the Internet. Fedora is a rolling release so not cool as a
primary build OS.
Again, everyone seems to be installing under /opt
What differs here is binary and library directories have their bits in
the name. Well, you have /lib for 32-bit and /lib64 for 64-bit.
Flatpak
Personally I don't know ___anyone___ using AppImage. Most everyone has
abandoned Snap too. Flatpak is the current migration path for all. Both
AppImage and Snap had the problem of an 800 pound gorilla trying to fit
into a tiny ballerina outfit. Flatpak steals a trick from Docker in that
it utilizes layers.
https://www.flatpak.org/
There are currently only four primary build entities.
https://docs.flatpak.org/en/latest/available-runtimes.html
One of them is KDE, but given messages in the forum, is not complete Qt.
Someone has been snivelling about the webengine/browser stuff not being
there for quite a while now.
Perhaps AppImage and Snap added some kind of layering later in life, but
I never saw it work. You always had to pull down every library. One of
the limitless downfalls of CI/CD is that __everything__ gets built with
a slightly different version 5.4.6 this week. 5.4.7 next week, etc. In
the case of Qt, wxWidgets, and every other thousand-plus pound package
this lead to glacial downloads.
I don't package any Qt stuff with Flatpak but from what I've heard the
KDE SDK is more like a Ubuntu LTS that rarely gets updates. The first
install pays a really high price and the rest are okay after that.
One of the more widely used ones is the Elementary SDK. It's based on
Gnome (not Qt) and when you base on it you can appear in the Elementary
AppCenter. Right now, for every other distro a user has to search for
your flatpack via the distro Flathub interface.
I haven't done a deep study yet of which distros, but most new distros
are following the path of Elementary. They are ditching .deb .rpm .arch
etc. specific packages in repos for all but the core OS. Linux Mint
supports Flathub in their Software manager.
Ah! Here's the clickbait list.
https://www.makeuseof.com/linux-distros-adopted-flatpak/
If you are going to build an official linuxdeployqt then you either
carry on the traditional DEB/RPM packaging or you support what the
entire industry has already moved to, Flatpak.
All of the non-embedded stuff I have is currently using traditional
Debian and RPM packaging. I am moving everything that can be moved to
Flatpak using the Freedesktop SDK.
--
Roland Hughes, President
Logikal Solutions
(630)-205-1593
http://www.theminimumyouneedtoknow.com
http://www.infiniteexposure.net
http://www.johnsmith-book.com
http://www.logikalblog.com
http://www.interestingauthors.com/blog
More information about the Interest
mailing list