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?

On 11/17/18 5:46 PM, Jean-Michaël Celerier wrote:
> 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

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to