Experimental HUGIN AppImage package

166 views
Skip to first unread message

aferrero2707

unread,
Nov 2, 2018, 10:51:55 AM11/2/18
to hugin and other free panoramic software
Quoting from the original Blueprint on Launchpad (https://blueprints.launchpad.net/hugin/+spec/hugin-appimage):
"I have started working on an AppImage package for Hugin. AppImages are self-contained bundles that provide all libraries and files needed to run a given application, independently of what is provided by the host linux system. If you are not familiar with the AppImage format, you can read more here: https://appimage.org/
The whole set of scripts needed to compile Hugin under CentOS 7 and create the AppImage bundle are freely available on GitHub: https://github.com/aferrero2707/hugin-appimage
The building and packaging process is fully automated, and is currently set-up to run on Travis CI. The generated AppImage is then automatically uploaded back to GitHub: https://github.com/aferrero2707/hugin-appimage/releases/tag/continuous".

The most interesting aspect of AppImage packages is that they allow to run bleeding-edge software versions also on relatively old (but stable) distributions, without interfering with the system packages. For example, the Hugin AppImage can be properly run on Debian-stable or Ubuntu 14.04. It also allows users to easily provide feedback about the latest features in the development branch, without the burden of compiling the code (and eventually dependencies) from source.

Thomas Modes already replied to the blueprint, giving some positive feedback and some suggestions:
"I willing to incorporate your changes into Hugins code. It is an interesting concept. But I think it needs some more polishing before the inclusion:
* Fixed paths: On Linux there are 3 fixed paths used: INSTALL_XRC_DIR, INSTALL_DATA_DIR and INSTALL_LOCALE_DIR. These are used at several places (use the search) and needs to fixed in a similar way as you already did in huginApp.cpp and PTBatcherGUI.cpp. So similar changes need to be done for LensCalApp.cpp, hugin_executor.cpp, hugin_stitch_project.cpp and hugin_base/hugin_utils/utils.cpp
* You are using your own hugin.appdata.xml. What's wrong with Hugins own hugin.appdata.xml? Are there changes necessary for the AppImage way or can you modification merged with the existing file?
* You should add -DUSE_GDKBACKEN
D_X11=on to your CMake command line, otherwise Hugin may crash when using your AppImage on a Wayland based system. This is a workaround about a limitation of current wxWidgets implementation. (This was mentioned in the release notes of current release.)"

I have hopefully implemented all suggestions, and prepared a new package for testing: https://github.com/aferrero2707/hugin-appimage/releases/download/continuous/Hugin_Panorama_Creator-git-20181102-x86_64.AppImage
The AppImage download page is also reachable through AppImageHub: https://appimage.github.io/hugin/

@Thomas: I had no special reason for using a custom hugin.appdata.xml file, I simply didn't notice the official one... this is now fixed.

If you are interested in this option, the best you can do is to test the package and provide me feedback (positive or negative), specifying which Linux distributions and version you have been using for the test.
Using the AppImage is very easy: 1) download te package 2) make it executable 3) run it.

The next steps will be to add desktop integration and automatic updates.

T. Modes

unread,
Nov 2, 2018, 12:55:02 PM11/2/18
to hugin and other free panoramic software
Hi,

thanks for answering and your work.

Am Freitag, 2. November 2018 15:51:55 UTC+1 schrieb aferrero2707:

I have hopefully implemented all suggestions, <snip>

looks good. But one place was still missing: src/hugin_base/hugin_utils/utils.cpp
I added code for this file and committed all together with your patch to our repository.
Please test if this works (or if I broke something).

Thomas

T. Modes

unread,
Nov 4, 2018, 2:40:56 AM11/4/18
to hugin and other free panoramic software
Hi,


Am Freitag, 2. November 2018 17:55:02 UTC+1 schrieb T. Modes:
I have hopefully implemented all suggestions, <snip>

looks good. But one place was still missing: src/hugin_base/hugin_utils/utils.cpp

I fixed 2 more places for the new paths in the AppImage. One is based on your debugging in your repository. It simplified the code to reuse the Windows code. Another place I found myself and hopefully fixed also this one for AppImage usage. I committed the changes to the default branch in our repository.

Thomas

T. Modes

unread,
Nov 4, 2018, 4:57:11 AM11/4/18
to hugin and other free panoramic software
Hi aferrero,

just one hint: in preferences, tab general there is the option copy log message to clipboard. With this option the output of the control point detectors is copied to the clipboard and can inspected from there without the need to patch the sources.

Thomas

aferrero2707

unread,
Nov 4, 2018, 12:30:20 PM11/4/18
to hugin and other free panoramic software
First of all, let me thank you really a lot for your reactivity and your availability to introduce suggested changes, that's something which is not that common!

I will revert all my patches to test the official code, and let you know.
There is however one patch that is really AppImage-specific: it adds the absolute path of the bundled "usr/bin" folder to some of the external commands that are invoked by hugin (like cpfind). This is needed because such commands have to be run in the modified environment of the appimage bundle, while other commands (like the RAW processors) must run in the standard system environment. By the way, I am still working on this part...

Thanks!

T. Modes

unread,
Nov 4, 2018, 1:40:27 PM11/4/18
to hugin and other free panoramic software
Hi,


Am Sonntag, 4. November 2018 18:30:20 UTC+1 schrieb aferrero2707:
First of all, let me thank you really a lot for your reactivity and your availability to introduce suggested changes, that's something which is not that common!
thanks for your nice words.


I will revert all my patches to test the official code, and let you know.
There is however one patch that is really AppImage-specific: it adds the absolute path of the bundled "usr/bin" folder to some of the external commands that are invoked by hugin (like cpfind).

I think I implemented such logic in changeset a71803394853. First step: testing if file can be found beside the calling executable. Only if it is not found there (=in the AppImage) check the PATH variable.

I found one more place related to calling the control point detectors which needed a patch. Please use changeset be85ff35e9444 (or later) for testing.

Thomas

aferrero2707

unread,
Nov 5, 2018, 11:13:38 AM11/5/18
to hugin and other free panoramic software
Hi!


On Sunday, November 4, 2018 at 7:40:27 PM UTC+1, T. Modes wrote:

I think I implemented such logic in changeset a71803394853. First step: testing if file can be found beside the calling executable. Only if it is not found there (=in the AppImage) check the PATH variable.

I found one more place related to calling the control point detectors which needed a patch. Please use changeset be85ff35e9444 (or later) for testing.

I prepared a new package that is compiled against the development branch without patches (https://github.com/aferrero2707/hugin-appimage/releases/download/continuous/Hugin_Panorama_Creator-git-20181105-x86_64.AppImage).
As far as I could check, it works properly... good job, and thanks!

Andrea

kfj

unread,
Sep 11, 2023, 4:21:13 AM9/11/23
to hugin and other free panoramic software
Hi!

I recently switched to distributing the Linux version of my image and panorama viewer, lux, in AppImage format. When browsing for other AppImages in the catalog, I noticed there is an entry for hugin, which you,  @aferrero2707, provided. Following the link I did find AppImages, but the series ends 2019. What happened? I had a good long look at the AppImage format and it's ecosystem, and I think it's a good idea, but of course it's only as good as the AppImages on offer.

Kay
Reply all
Reply to author
Forward
0 new messages