It would be very nice to have XTrackCAD distributed as a Flatpak package on Flathub.
Flatpak offer a good way to ensure the app to run in the same
environment, for each GNU/Linux system that support Flatpak. Which is a
lot of them. And distributing the app on Flathub will make it
downloadable and installable with a simple click.
For more informations:
Flatpak is a GNU/Linux Desktop package format. Is goal is to provide the
same environment to execute an app on each GNU/Linux distribution that
support Flatpak. Which include Debian, Ubuntu, Fedora, CentOS, OpenSuse,
etc.
Each app can request a runtime that include the majority of its
dependencies. It exist generic runtimes, like Gnome, KDE or FreeDesktop.
But it's possible to make custom runtime.
Each app can also request extension(s) for their runtime. These extensions
add specific dependencies. Like for example audio/video codecs.
And finally, for specific dependencies who are not provided by runtime end
their extension, the app is packages with them.
When the app is launched by an user: A container is created with the app file
system, a read-only access the runtime and its extension(s) and the
software is executed inside this container.
For more about Flatpak:
* The official Flatpak website: https://www.flatpak.org/
* The documentation: https://docs.flatpak.org/en/latest/
* The list of GNU/Linux distributions who support Flatpak: https://www.flatpak.org/setup/
Flathub is a community repository who provide a lot of desktop apps:
Best regards
Good suggestion. It's been on my list to investigate for some time
Have you used flatpak to release apps?
Dave
Not yet. I mostly contribute to already existing softwares and never have to package them with Flatpak.
I've hit a wall
I've installed .gnome.[Sdk,Paltform]
I've built a manifest.yml that doesn't cause too many complaints.
I can create a sandbox ad download the source
But running cmake:
flatpak build org.xtrkcad.xtrkcad cmake src
complains it can't find freeimage
I don't see how to add the freeimage package and suspect more packages will have the same problem
I'm missing some basic concepts: do I need to move to git? How do I do the simplest things like add shared libs. Why do instructions require obscure 15 steps with no clear examples
Life's too short
Maybe Appimages is a better path
Dave
With Flatpak, you have 2 kind of dependencies:
Runtime provide general dependencies. Ex: Gnome runtime provide GTK, Gobject, etc.
Runtime can have extensions. For example an extension that provide codecs.
The libs who are specific to an app have to be packaged with the app.
A little progress.
I found FreeImage on github and I can get it start building but I get multiple C++ errors:
Source/OpenEXR/Imath/ImathMatrix.h:2822:43: error: ISO C++17 does not allow dynamic exception specifications
I have no idea how to fix this
I've attached my manfest file (org.xtrkcad.xtrkcad.yml) and steps I've taken (build-xtrkcad-instr.yml) if anyone wants to take a try.
flatpak seems tried to git and fedora so I don't if there is a major road block ahead.
Also, I suspect that many/most/all of our 3rd party libraries will require significant work to build
I'm giving up for now.
FindFreeImage.cmake looks for FreeImage on UNIX, but apparentely doesn't do anything with it.
Not finding it is fatal.
Unless FindFreeImage.cmake is updated to a no-op on UNIX
Arghh
yes, default
I took a stab: https://flathub.org/en/apps/io.sourceforge.xtrkcad_fork.xtrkcad