Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Please provide an AppImage bundle for QGIS v3 (also for nightly builds) #26096

Open
qgib opened this issue Feb 24, 2018 · 7 comments
Labels
Build/Install Related to compiling or installing QGIS Feature Request

Comments

@qgib
Copy link
Contributor

qgib commented Feb 24, 2018

Author Name: Kurt Pfeifle (Kurt Pfeifle)
Original Redmine Issue: 18205

Redmine category:build/install


Feature Request: Please provide an AppImage bundle for QGIS v3 (also for nightly builds)

AppImage is an application binary format for Linux which has some uniq features. Some of them here:

  • Can run on many different Linux distros un-changed ("Create Once, Run Anywhere")
  • Everything is bundled into one file following the "One App = One File" paradigm
  • Doesn't need any "installation" step and works "out of the box"
  • Doesn't need any pre-installed framework (unlike Snap or Flatpak)
  • Doesn't need root privileges to run
  • Runs from any location (even USB thumbdrives or shared network folders)
  • Does not touch your native system package manager-controlled installations
  • Does not mess with your system's installed libraries
  • Can run different versions of the same app -- including the system-installed one -- side by side without conflict (great for debugging, bug triaging and translation teams)
  • Can optionally run in a Firejail or other sandbox
  • Can optionally include an "updateinfo" string which allows users to automatically apply binary delta updates once a new version is released
  • Can optionally include a GPG signature signed by the developer/packager of an application
  • Can optionally be listed on the AppImageHub to help with the general visibility for an application

AppImages can automatically be built from GitHub sources by integrating with Travis CI, controlled by a .travis.yml script. The creation can automatically be triggered
(a) upon making a tagged release ("release build"), or
(b) upon each commit/push to the repository ("contiuous build"), or
(c) on a regular calendar-based timescale ("nightly build"), or
(d) any combination of the previous ones.

An AppImage can even be generated by processing pre-built binaries; best if these binaries are .deb packages for Ubuntu Trusty, because then the resulting AppImage will run on the widest-possible range of distros (actually tested with more than 100 Live ISO images).

If you are interested, surely the AppImage format and toolkit developers will be willing to help you create such a package. They can help with providing/modifying a shell script to QGIS which converts your pre-built Trusty packages.

You can also ask for support and helping hands in the "#AppImage channel on Freenode":http://webchat.freenode.net/?channels=appimage).

@qgib
Copy link
Contributor Author

qgib commented Feb 14, 2019

Author Name: Jürgen Fischer (@jef-n)


  • description was changed from Feature Request: Please provide an AppImage bundle for QGIS v3 (also for nightly builds)

AppImage is an application binary format for Linux which has some uniq features. Some of them here:

  • Can run on many different Linux distros un-changed ("Create Once, Run Anywhere")
  • Everything is bundled into one file following the "One App = One File" paradigm
  • Doesn't need any "installation" step and works "out of the box"
  • Doesn't need any pre-installed framework (unlike Snap or Flatpak)
  • Doesn't need root privileges to run
  • Runs from any location (even USB thumbdrives or shared network folders)
  • Does not touch your native system package manager-controlled installations
  • Does not mess with your system's installed libraries
  • Can run different versions of the same app -- including the system-installed one -- side by side without conflict (great for debugging, bug triaging and translation teams)
  • Can optionally run in a Firejail or other sandbox
  • Can optionally include an "updateinfo" string which allows users to automatically apply binary delta updates once a new version is released
  • Can optionally include a GPG signature signed by the developer/packager of an application
  • Can optionally be listed on the AppImageHub to help with the general visibility for an application

AppImages can automatically be built from GitHub sources by integrating with Travis CI, controlled by a .travis.yml script. The creation can automatically be triggered
(a) upon making a tagged release ("release build"), or
(b) upon each commit/push to the repository ("contiuous build"), or
(c) on a regular calendar-based timescale ("nightly build"), or
(d) any combination of the previous ones.

An AppImage can even be generated by processing pre-built binaries; best if these binaries are .deb packages for Ubuntu Trusty, because then the resulting AppImage will run on the widest-possible range of distros (actually tested with more than 100 Live ISO images).

If you are interested, surely the AppImage format and toolkit developers will be willing to help you create such a package. They can help with providing/modifying a shell script to QGIS which converts your pre-built Trusty packages.

You can also ask for support and helping hands in the #AppImage channel on Freenode.
to Feature Request: Please provide an AppImage bundle for QGIS v3 (also for nightly builds)

AppImage is an application binary format for Linux which has some uniq features. Some of them here:

  • Can run on many different Linux distros un-changed ("Create Once, Run Anywhere")
  • Everything is bundled into one file following the "One App = One File" paradigm
  • Doesn't need any "installation" step and works "out of the box"
  • Doesn't need any pre-installed framework (unlike Snap or Flatpak)
  • Doesn't need root privileges to run
  • Runs from any location (even USB thumbdrives or shared network folders)
  • Does not touch your native system package manager-controlled installations
  • Does not mess with your system's installed libraries
  • Can run different versions of the same app -- including the system-installed one -- side by side without conflict (great for debugging, bug triaging and translation teams)
  • Can optionally run in a Firejail or other sandbox
  • Can optionally include an "updateinfo" string which allows users to automatically apply binary delta updates once a new version is released
  • Can optionally include a GPG signature signed by the developer/packager of an application
  • Can optionally be listed on the AppImageHub to help with the general visibility for an application

AppImages can automatically be built from GitHub sources by integrating with Travis CI, controlled by a .travis.yml script. The creation can automatically be triggered
(a) upon making a tagged release ("release build"), or
(b) upon each commit/push to the repository ("contiuous build"), or
(c) on a regular calendar-based timescale ("nightly build"), or
(d) any combination of the previous ones.

An AppImage can even be generated by processing pre-built binaries; best if these binaries are .deb packages for Ubuntu Trusty, because then the resulting AppImage will run on the widest-possible range of distros (actually tested with more than 100 Live ISO images).

If you are interested, surely the AppImage format and toolkit developers will be willing to help you create such a package. They can help with providing/modifying a shell script to QGIS which converts your pre-built Trusty packages.

You can also ask for support and helping hands in the "#AppImage channel on Freenode":http://webchat.freenode.net/?channels=appimage).

@qgib qgib added Feature Request Build/Install Related to compiling or installing QGIS Easy fix labels May 25, 2019
@Lvaskz
Copy link

Lvaskz commented Sep 18, 2019

Hi, some progress about it? I will love have an appimage from Qgis

@alexbruy alexbruy removed the Easy fix label Apr 22, 2020
@hristo-mavrodiev
Copy link

Hi,
Just to share what we have as an existing solution with AppImages. Probably someone with more experience in building QGIS from sources could use this.

  1. An AppImage could be generated with the "pkg2appimage" and the recipe QGIS_recipe.
    The needed Ubuntu/Debian packages are downloaded in a new folder, probably they could be used to generate Appimage for nightly builds. It's very tricky because QGIS is compiled with specific version of Qt,GDAL/OGR, PROJ, GEOS. I don't know how we could download the exact same version of Qt,GDAL/OGR, PROJ, GEOS that we need from ubuntu/debian repository.
    Unfortunately there are some problems with it. The toolbox providers(GRASS,SAGA,QGIS algorithms), needs new environment variables to work properly.
  2. Another way to generate ![AppImage])(https://github.com/AppImage/AppImageKit/) is by use https://github.com/AppImage/AppImageKit/
    2.1 manually downloading the .deb packages(including dependencies) with:
    apt download $DEPKGNAME
    This is of picking the right variables is creating me a problem, the AppImage becomes very big compared to the one generated from pkg2appimage and worked only on my system(missing some packages).
    2.2 extract them:
    for z in *.deb; do dpkg-deb -xv $z .; done
    2.3 Apply patches:
    2.3.1 Copy Python system files from /usr/lib/python3 and /usr/lib/python3-x to your AppImage folder ./QGIS/QGIS.AppDir/usr/lib/.
    2.3.2 Edit the file in ../QGIS/QGIS.AppDir/usr/share/metainfo/org.qgis.qgis.appdata.xml by removing screenshot link on line7. This gives an error when trying to download the image, preventing Appimage building.
    2.3.3 Copy AppRun-x86_64 file from AppImageKit releases inside folder ./QGIS/QGIS.AppDir/
    2.3.4 Create a new file named AppRun in the same folder containing:
#!/bin/sh
cd "$(dirname "$0")"
exec ./AppRun-x86_64

Here should be applied a fix for environment variables in order to have fully working Plugin Manager and processing algorithms like GRASS, SAGA,custom scripts, etc. Maybe someone more experience in the development knows them.

2.3.5 Make AppRun and AppRun-x86_64 file executable
2.3.6 Generate the AppImage with appimagetool-x86_64.AppImage from the same release of AppImageKit
The file is in ./QGIS folder and the image is generated with

./appimagetool-x86_64.AppImage QGIS.AppDir QGIS_version_x.x.x.AppImage

2.3.7 Run the AppImage

As a result of the research:

  • Two working AppImages was generated with pkg2appimage. QGIS versions -
    • QGIS 2.0.1 - 86 MB - working on Debian/Arch/Fedora(without GRASS/SAGA)
    • QGIS 2.8.6 - 154 MB working on Debian/Arch/Fedora(without GRASS/SAGA)
  • One partially working AppImage withAppImageKit -
    • QGIS 3.4.15 - 780MB - working only on Debian(the system that was used to built it) There are missing packages preventing it to start on Fedora and Arch. Probably also not needed packages bloating it.

It will be good to have this AppImages implemented. Probably we could try to have one fully working AppImage with all processing toolboxes, fully working Plugin Manager and then try to implement this with Travis builds.

@Lvaskz
Copy link

Lvaskz commented Sep 28, 2020 via email

@Lvaskz
Copy link

Lvaskz commented Sep 28, 2020

As Qgis is already a flatPak, convert it to appimage in theory not should be a problem,🤔

@Lvaskz
Copy link

Lvaskz commented Apr 30, 2021

I think with this (https://github.com/appimagecrafters/appimage-builder )appimage builder , create an appimage will be more easier.
To consider too

@iembry
Copy link

iembry commented Dec 15, 2023

Today I searched for QGIS / AppImage and I came across the following closed issue filed with the AppImageCommunity regarding the creation of an AppImage for QGIS:

AppImageCommunity/pkg2appimage#313
"Nightly" demo AppImage for QGIS by converting .deb packages from their '2.99' nightly repository? #313

On May 3, 2018, probonopd made the following comment:

"Please ask the QGIS project. We are happy to help them if they have questions on where to start or encounter difficulties using our tools."

Has anyone reached out to the AppImageCommunity for help in creating the QGIS AppImage?

What is the current status of the creation of a QGIS AppImage?

Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build/Install Related to compiling or installing QGIS Feature Request
Projects
None yet
Development

No branches or pull requests

5 participants