Discussion:
[Interest] Interest Digest, Vol 86, Issue 17
Roland Hughes
2018-11-17 14:19:28 UTC
Permalink
Alexander:

Having burned multiple days with https://github.com/probonopd/linuxdeployqt

I need to warn you, it is only for simple applications which can compile on Ubuntu 14.04 using a dated version of Qt. If you need a current webengine or other current features you will be resoundingly disappointed. If your application has plug-ins (be they browser or some other kind) the tool isn't good at finding their library dependencies. They also refuse to add a -include-lib-dir type switch were you could park all of the libraries it missed so it could easily scoop them up.

This may or may not be an issue for you, but, AppImage is something of an inverted philosophy. It's not "one Deb to rule them all" which is how things were done in the past. Each AppImage is built specifically for the target. For us that was a complete show stopper. More than 90% of the machines running the application globally have zero Internet connection. One box, somewhere, does. It pulls down the package and installs on all of the other machines via sneaker-net. Hardware and OS version vary wildly. (At its Internet connection peak, 1 in 7 machines had Internet access. That has since been reduced.)

Don't know if you will be providing support or not, but, from a support standpoint, you really have no idea what got delivered.

What really floors me about the Linux world and even the Qt world with respect to Webengine or plug-ins, is this desperate clinging to dynamic linking. It was a bad idea which got worse over time. Take a look at the current AppImage path. Rather than admit dynamic linking was a failed experiment, they are now packaging entire dynamic libraries repeatedly.

Back in the days of DOS, we only linked the functions we needed. Not the entire 300+Meg library we didn't need. Only a tiny set of INT-21 and 3 other INTs were expected to be provided by the OS.

While some will find it useful, Snappy hasn't delivered on its promises. I haven't spent enough time with Flatpak to say if it is taking the correct approach or is simply more the same.

Just my 0.0002 cents. Having recently walked this road.
Hello,
On Windows we have windeployqt.
On MAC - macdeployqt.
On Linux - there is no tool for this ? Is there some convenient
alternative way to copy all the required Qt files then (my project uses
Quick Controls 2)?
--
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
http://lesedi.us
Vadim Peretokin
2018-11-17 14:34:31 UTC
Permalink
Since switching to AppImage, our Qt application stopped having the majority
of Linux distribution-specific deployment images and it's been mostly
trouble-free. I can recommend it. It also does not require any kind of an
internet connection.
Post by Roland Hughes
Having burned multiple days with
https://github.com/probonopd/linuxdeployqt
I need to warn you, it is only for simple applications which can compile
on Ubuntu 14.04 using a dated version of Qt. If you need a current
webengine or other current features you will be resoundingly disappointed.
If your application has plug-ins (be they browser or some other kind) the
tool isn't good at finding their library dependencies. They also refuse to
add a -include-lib-dir type switch were you could park all of the libraries
it missed so it could easily scoop them up.
This may or may not be an issue for you, but, AppImage is something of an
inverted philosophy. It's not "one Deb to rule them all" which is how
things were done in the past. Each AppImage is built specifically for the
target. For us that was a complete show stopper. More than 90% of the
machines running the application globally have zero Internet connection.
One box, somewhere, does. It pulls down the package and installs on all of
the other machines via sneaker-net. Hardware and OS version vary wildly.
(At its Internet connection peak, 1 in 7 machines had Internet access. That
has since been reduced.)
Don't know if you will be providing support or not, but, from a support
standpoint, you really have no idea what got delivered.
What really floors me about the Linux world and even the Qt world with
respect to Webengine or plug-ins, is this desperate clinging to dynamic
linking. It was a bad idea which got worse over time. Take a look at the
current AppImage path. Rather than admit dynamic linking was a failed
experiment, they are now packaging entire dynamic libraries repeatedly.
Back in the days of DOS, we only linked the functions we needed. Not the
entire 300+Meg library we didn't need. Only a tiny set of INT-21 and 3
other INTs were expected to be provided by the OS.
While some will find it useful, Snappy hasn't delivered on its promises. I
haven't spent enough time with Flatpak to say if it is taking the correct
approach or is simply more the same.
Just my 0.0002 cents. Having recently walked this road.
Hello,
On Windows we have windeployqt.
On MAC - macdeployqt.
On Linux - there is no tool for this ? Is there some convenient
alternative way to copy all the required Qt files then (my project uses
Quick Controls 2)?
--
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
http://lesedi.us
_______________________________________________
Interest mailing list
http://lists.qt-project.org/mailman/listinfo/interest
Jean-Michaël Celerier
2018-11-17 23:46:27 UTC
Permalink
Post by Roland Hughes
This may or may not be an issue for you, but, AppImage is something of an
inverted philosophy. It's not "one Deb to rule them all" which is how
things were done in the past. Each AppImage is built specifically for the
target

I don't understand, I'm using AppImage for my software (
https://github.com/OSSIA/score/releases) and it works on most linux distros
out there (ubuntu, fedora, arch, etc...).

Best,
Jean-Michaël Celerier
http://www.jcelerier.name
Post by Roland Hughes
Having burned multiple days with
https://github.com/probonopd/linuxdeployqt
I need to warn you, it is only for simple applications which can compile
on Ubuntu 14.04 using a dated version of Qt. If you need a current
webengine or other current features you will be resoundingly disappointed.
If your application has plug-ins (be they browser or some other kind) the
tool isn't good at finding their library dependencies. They also refuse to
add a -include-lib-dir type switch were you could park all of the libraries
it missed so it could easily scoop them up.
This may or may not be an issue for you, but, AppImage is something of an
inverted philosophy. It's not "one Deb to rule them all" which is how
things were done in the past. Each AppImage is built specifically for the
target. For us that was a complete show stopper. More than 90% of the
machines running the application globally have zero Internet connection.
One box, somewhere, does. It pulls down the package and installs on all of
the other machines via sneaker-net. Hardware and OS version vary wildly.
(At its Internet connection peak, 1 in 7 machines had Internet access. That
has since been reduced.)
Don't know if you will be providing support or not, but, from a support
standpoint, you really have no idea what got delivered.
What really floors me about the Linux world and even the Qt world with
respect to Webengine or plug-ins, is this desperate clinging to dynamic
linking. It was a bad idea which got worse over time. Take a look at the
current AppImage path. Rather than admit dynamic linking was a failed
experiment, they are now packaging entire dynamic libraries repeatedly.
Back in the days of DOS, we only linked the functions we needed. Not the
entire 300+Meg library we didn't need. Only a tiny set of INT-21 and 3
other INTs were expected to be provided by the OS.
While some will find it useful, Snappy hasn't delivered on its promises. I
haven't spent enough time with Flatpak to say if it is taking the correct
approach or is simply more the same.
Just my 0.0002 cents. Having recently walked this road.
Hello,
On Windows we have windeployqt.
On MAC - macdeployqt.
On Linux - there is no tool for this ? Is there some convenient
alternative way to copy all the required Qt files then (my project uses
Quick Controls 2)?
--
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
http://lesedi.us
_______________________________________________
Interest mailing list
http://lists.qt-project.org/mailman/listinfo/interest
Roland Hughes
2018-11-18 15:13:32 UTC
Permalink
In the past, when one built a multi-arch Deb it contained everything
needed to run on both 32-bit and 64-bit platforms. It was its own little
universe. If you did it correctly, it would also cleanly install via
alien or other means on RPM based distros. That one file could be walked
on disk/thumb to any machine because it contained its own little
universe. A bit of a write up can be found here.

https://medium.com/genymobile/if-appimage-flatpak-and-snap-dont-cut-it-you-can-roll-your-own-6175177d6eef

With all of the other packaging tools, AppImage, snapcraft, flatpak,
etc. your application is limited to the libraries it provides or can
find. While you may have something which runs on both 32-bit and 64-bit,
the one which got installed on the 64-bit tends to not run on the 32-bit
because it is architecture specific. Can't find the link right now, but
there was a good write up on the snappy store custom target building I
read last week.

While the subset of applications this restricted environment can support
will probably grow some, you can't really be cutting edge. In the case
of Linuxdeployqt, this means you cannot use a current version of Qt with
the latest chromium libraries and plug-ins. You have to use the one and
only version of Qt they support and you need to develop using 14.04.
Hey, for a text editor or word processor, it is probably enough. Heck, I
had both of those under DOS with 640K RAM and dual floppies. If you need
something like Postgresql . . .
https://github.com/AppImage/AppImageKit/issues/134

These pre-made self-contained little worlds have limits. While one could
state an AppImage built with linuxdeployqt isn't running in a pre-made
world like snappy, you will find there are limits to how deep it will
search for what it bundles into the world it builds for your
application. If your app needs something the tool won't look for, then
you will have to do some serious hoop jumping and sledge hammering to
add things. Assuming they can be added. Postgresql needs an engine
running on the host.

Building a multi-arch multi-OS-version Debian is tough. I totally
understand everyone wanting a simple tool for packaging. I've had to
fight the battle more than I care to admit. It gets even more
interesting when you encounter the 14.04 64-bit library search path bug.
If you try to install a 32-bit package on a raw install of 14.04 64-bit
without internet connection, one which brings all it needs along so it
can run even though 32-bit arch support hasn't been installed on the OS,
you find it. Usually with libQt5Core.so  when it finds a matching
library name in the default search path, despite you having set RPATH
and PATH, it realizes the library is 64-bit and stops searching the rest
of the tree. The problem does not exist on 16.04, at least I didn't
encounter it.

Clear as mud now?
Post by Roland Hughes
Post by Roland Hughes
This may or may not be an issue for you, but, AppImage is something
of an inverted philosophy. It's not "one Deb to rule them all" which
is how things were done in the past. Each AppImage is built
specifically for the target
I don't understand, I'm using AppImage for my software
(https://github.com/OSSIA/score/releases) and it works on most linux
distros out there (ubuntu, fedora, arch, etc...).
Best,
Jean-Michaël Celerier
http://www.jcelerier.name
--
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
http://lesedi.us
Loading...