qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.29k stars 2.96k forks source link

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

Open qgib opened 6 years ago

qgib commented 6 years ago

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:

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 commented 5 years ago

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


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

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:

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).

Lvaskz commented 4 years ago

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

hristo-mavrodiev commented 4 years ago

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:

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 commented 3 years ago

Here there are some interesting tools to convert a flatPak app in an appimage. And other tools to explore, for some one interested. https://github.com/sudo-give-me-coffee/flatpak2appdir And other stuff for considering https://github.com/AppImage/awesome-appimage I hope can it helps

El dom., 9 ago. 2020 2:18 a. m., Hristo Mavrodiev notifications@github.com escribió:

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 [image: "pkg2appimage"] https://github.com/AppImage/pkg2appimage and the recipe [image: QGIS_recipe] https://github.com/AppImage/pkg2appimage/blob/master/recipes/QGIS.yml . 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.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/qgis/QGIS/issues/26096#issuecomment-671022835, or unsubscribe https://github.com/notifications/unsubscribe-auth/AG62VAME5LQD3Q4NNIPLP4DR7ZLUBANCNFSM4IYBET6Q .

Lvaskz commented 3 years ago

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

Lvaskz commented 3 years ago

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

iembry commented 8 months ago

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:

https://github.com/AppImageCommunity/pkg2appimage/issues/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.