Flameshot: Please provide a Linux AppImage for download

Created on 21 Dec 2017  路  26Comments  路  Source: flameshot-org/flameshot

https://github.com/lupoDharkael/flameshot/blob/569438aadd85fd84aeeea516ee916a4272cdf54d/.travis.yml#L159

Since you are already using linuxdeployqt it should be quite easy to also provide an AppImage for Linux on GitHub Releases.

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions
  • Can be listed in the AppImageHub central directory of available AppImages
  • Can double as a self-extracting compressed archive with the --appimage-extract parameter

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

Most helpful comment

Would be highly appreciated if it could be lowered, so that the application would run on the oldest still-supported LTS version, which is 14.04 trusty at the moment. This is also the requirement for being included in the AppImageHub central directory of available AppImages.

All 26 comments

Since the https://transfer.sh/m8qQy/flameshot-x86_64_20171221_.AppImage link will expire in 14 days, it would be good if you could upload it to GitHub Releases, too. Thanks!

By the way, on Xubuntu 14.04,

me@host:~/Downloads$ ./flameshot-x86_64_20171221_.AppImage 
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
Aborted

Please follow the linuxdeployqt Travis CI examples from its README.md more closely to prevent this from happening, thanks.

@probonopd libqxcb.so already exists in plugins/platforms, in my machine, it works well.
please run ./flameshot-x86_64_20171221_.AppImage --appimage-extract
and cd squashfs-root && ldd ./flameshot to view what is missing ?
Or cd plugins/platforms && ldd libqxcb.so

@probonopd libqxcb.so already exists in plugins/platforms, in my machine, it works well.

The AppImage must contain its own version, it __must not__ use the one from the user's system - otherwise it will only work on _your_ machine but not others' machines.

Please follow the example on https://github.com/probonopd/linuxdeployqt very closely. Thanks.

@probonopd I test appimage on Ubuntu 14.04.5, it works well.
image

Please believe me, the AppImage must contain its own version, it must not use the one from the user's system - otherwise it may be crashing on others' machines.

@probonopd I'm updating the travis-ci.yml in the pull request #42 but I can't check the AppImage created. Could you check it and say if it solve this issue?
You can download directly here:
https://transfer.sh/dHuKN/Configure_Flameshot-a99a6dc-x86_64.AppImage

@ManuelLR unfortunately no:

me@host:~$ Downloads/Configure_Flameshot-a99a6dc-x86_64.AppImage 
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Reinstalling the application may fix this problem.
Aborted

That .travis.yml file looks much more complicated than the examples on https://github.com/probonopd/linuxdeployqt - is that really all needed? Makes it hard to see what's going on.

@ManuelLR Unfortunately锛宼est on Ubuntu 14.04
image

Thank you for try it. I never used an AppImage (or at least not consciously) so I thought that the error was in my machine but It wasn't true.

First of all @probonopd, I know that the travis.yml is more complex that the example in your repo, right but the purpose of the PR #42 was facilitate understanding and maintenance of travis. Feel free to comment in the pull request anything.

I didn't use exactly your example because in the stage of packaging AppImage ( link ), the executable was already created. You can consult the exact content of the appdir before call linuxdeployqt here: https://travis-ci.org/lupoDharkael/flameshot/jobs/323198639#L690-L699 . Additionally, I don't use the AppImage as it because I founded errors and the option sudo: required takes a long time to wait for an available machine (In my experience, it could take until 10 minutes before start execute any command). I prefer uncompress the AppImage and lost 0'64s before wait, at least, 20s or more

The "xcb error". I don't know what exactly happen, I'm trying the AppImage and I can execute and run it perfectly with the options 麓gui麓 and 麓config麓 but without options doesn't work. I uncompressed it (with --appimage-extract option) and used ldd where I could appreciate that there were a lot dependencies used from my local not from the appimage

        linux-vdso.so.1 (0x00007ffc51de7000)
        libQt5Widgets.so.5 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libQt5Widgets.so.5 (0x00007eff7fb11000)
        libQt5Network.so.5 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libQt5Network.so.5 (0x00007eff7f7be000)
        libQt5DBus.so.5 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libQt5DBus.so.5 (0x00007eff7f53b000)
        libQt5Gui.so.5 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libQt5Gui.so.5 (0x00007eff7ee3f000)
        libQt5Core.so.5 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libQt5Core.so.5 (0x00007eff7e6d5000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007eff7e34e000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007eff7e002000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007eff7ddeb000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007eff7da33000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007eff7d815000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007eff7d5bf000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007eff7d2a0000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007eff7cf61000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007eff7cd4a000)
        libpng12.so.0 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libpng12.so.0 (0x00007eff7cb22000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x00007eff7c897000)
        libicui18n.so.52 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libicui18n.so.52 (0x00007eff7c446000)
        libicuuc.so.52 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libicuuc.so.52 (0x00007eff7c0b0000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007eff7beac000)
        librt.so.1 => /usr/lib/librt.so.1 (0x00007eff7bca4000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007eff80330000)
        libffi.so.6 => /usr/lib/libffi.so.6 (0x00007eff7ba9b000)
        libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007eff7b828000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007eff7b5ff000)
        libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007eff7b3ce000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00007eff7b1bc000)
        libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007eff7af06000)
        libicudata.so.52 => /home/my_user/GIT/flameshot/squashfs-root/./lib/libicudata.so.52 (0x00007eff79698000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007eff79494000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007eff7928e000)

If I do any progress I will notify you

I have it running! For a reason I do not know yet, you need to do inside the AppDir:

ln -s plugins/platforms .

Then it works. I found this out by inspecting it with strace.
It is trying to load the xcb platform plugin from <AppDir>/platforms rather than from <AppDir>/plugins/platforms - so placing a symlink there resolves this. I do not know the reason yet.

there were a lot dependencies used from my local not from the appimage

These are OK, as we assume these to be part of every target system.

Thank you ! ! I will include it but... this would be do automatically by linuxdeployqt, right?

Right now I do not know yet why this extra step is needed here. Once we find out, we should fix it in linuxdeployqt.

Can you build using the gcc that comes with Ubuntu 14.04? Then the AppImage will be compatible to older systems, too. Right now the extra compilers pull in a "too new" libstdc++ that makes it impossible to run the AppImage on older systems such as 14.04.

I can but I talked with @lupoDharkael and said that the minimum version officially supported is that. (I don't find annotated in any doc now)

Would be highly appreciated if it could be lowered, so that the application would run on the oldest still-supported LTS version, which is 14.04 trusty at the moment. This is also the requirement for being included in the AppImageHub central directory of available AppImages.

86

how do you use Flameshot appimage? I'm starting it but nothing happens ?

What does "nothing happens" mean? If you start it from the console, do you see any output?

Will the AppImage appear on https://github.com/lupoDharkael/flameshot/releases?
Thanks.

Is there any update on this? I would like to onclude it in the AppImageHub central directory of available AppImages, but for this it needs to be released on https://github.com/lupoDharkael/flameshot/releases. Thanks.

I'm releasing a version with fixes right now so I can add all the packages.

Thank you. Added to the AppImageHub central directory of available AppImages.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

orschiro picture orschiro  路  3Comments

soundsbeard picture soundsbeard  路  4Comments

borgmanJeremy picture borgmanJeremy  路  3Comments

bingoIsCoder picture bingoIsCoder  路  4Comments

thiswillbeyourgithub picture thiswillbeyourgithub  路  3Comments