Git Product home page Git Product logo

appimage-builder's People

Contributors

alexqwesa avatar alextmjugador avatar anupam-git avatar azubieta avatar cabiste69 avatar caminac avatar carlonluca avatar dependabot[bot] avatar drsheppard01 avatar fbdtemme avatar goldstar611 avatar gouchi avatar howieyoo avatar ibressler avatar itrooz avatar lil5 avatar lslvr avatar lulol avatar mssalvatore avatar n00bsys0p avatar nexushunter avatar perrito666 avatar pzhlkj6612 avatar serghov avatar srevinsaju avatar thebrokenrail avatar vuvko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

appimage-builder's Issues

Pacman support

Given the input below, appimage-builder must download the bash package along with its dependencies. The filesystem package and its dependencies must be excluded (dependencies should be excluded only if they are not required by other included package).

Once the packages are download they should be extracted using AppDir as root.

AppDir:
  pacman:
    include:
    - bash
    exclude:
    - filesystem

Questions:

  • Is it possible?
  • How?

`appimage-builder` returns success even if `appimagetool` crashes

The following output returns 0 so my CI pipeline reports success.

INFO:appimagetool:/github/workspace/build.appimage/AppDir should be packaged as /github/workspace/zeal-0.6.1-x86_64.AppImage
INFO:appimagetool:Trying to validate AppStream information with the appstreamcli tool
INFO:appimagetool:In case of issues, please refer to https://github.com/ximion/appstream
WARNING:appimagetool:appimagetool, continuous build (commit 0880085), build 2133 built on 2020-07-09 12:25:52 UTC
WARNING:appimagetool:Using architecture x86_64
WARNING:appimagetool:Deleting pre-existing .DirIcon
WARNING:appimagetool:Creating .DirIcon symlink based on information from desktop file
WARNING:appimagetool:AppStream upstream metadata found in usr/share/metainfo/org.zealdocs.Zeal.appdata.xml
WARNING:appimagetool:/usr/bin/appstreamcli: symbol lookup error: /lib/x86_64-linux-gnu/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
WARNING:appimagetool:Failed to validate AppStream information with appstreamcli
ERROR:root:AppImage generation failed

Cannot try examples

I installed appimage-builder through pip and tried it out on the examples. But I cannot get any example to work.
It says,

INFO:apt-key:fakeroot apt-key --keyring /home/antonyjr/Developer/AppImageUpdater/appimage-builder-cache/etc/apt/trusted.gpg add -
Traceback (most recent call last):
  File "/usr/bin/appimage-builder", line 18, in <module>
    __main__();
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/__main__.py", line 54, in __main__
    builder.build()
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/app_dir/builder.py", line 56, in build
    self.apt_config.generate()
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/app_dir/apt_bundler/config.py", line 52, in generate
    self._generate_apt_keyring()
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/app_dir/apt_bundler/config.py", line 156, in _generate_apt_keyring
    self._add_apt_key(key_url, keyring_path)
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/app_dir/apt_bundler/config.py", line 167, in _add_apt_key
    apt_key.add(key, keyring_path)
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/commands/apt_key.py", line 28, in add
    raise AptKeyError('apt-key add failed')
AppImageBuilder.commands.apt_key.AptKeyError: apt-key add failed

Valid yml syntax throwing error

env: [] is a valid yml syntax but appimage-builder throws an error while building appimage

Stack trace :

Traceback (most recent call last):
  File "/usr/local/bin/appimage-builder", line 18, in <module>
    __main__();
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/__main__.py", line 54, in __main__
    builder.build()
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/app_dir/builder.py", line 81, in build
    runtime.generate()
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/app_dir/runtimes/wrapper/runtime.py", line 42, in generate
    self._add_user_defined_settings(app_run)
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/app_dir/runtimes/wrapper/runtime.py", line 62, in _add_user_defined_settings
    for k, v in self.env.items():
AttributeError: 'list' object has no attribute 'items'

libapprun_hooks.so not loaded if the file name contain spaces

./'Hello World-latest-x86_64-20200508174314.AppImage' 
ERROR: ld.so: object '/tmp/.mount_Hello' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object 'BhKsJS/libapprun_hooks.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Why list libraries?

Why list libraries to be included in appimage? You can get all libraries with a shell one-liner:
ldd usr/bin/kcalc | sed -e 's/^.* => //' -e 's/ (0x.*$//' | grep '/usr/'

Produced appimage fails to run on other systems with "File not found" on execve

Hi,

Further to my previous issue, I've been able to find a workaround. I've currently come upon another problem which is that once the appimage is build & executed on a different system, I get a 'file not found' when attempting to execute the appimage.

I'm building the appimage on Debian 10, as follows:
Linux debian-box 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux

I'm then running the appimage on Manjaro, as follows:
Linux opus 5.8.18-1-MANJARO #1 SMP PREEMPT Sun Nov 1 14:10:04 UTC 2020 x86_64 GNU/Linux

The libc version on the Debian machine is 2.28, on the Manjaro 2.32.

When running the appimage on Debian, the appimage unzips to the tmp directory, and invokes execve on the entrypoint binary:

execve("/tmp/.mount_AlbertXxV4yQ/usr/bin/albert", ["/tmp/.mount_AlbertXxV4yQ/usr/bin"...], 0xc78090 /* 78 vars */) = 0

This is successful and the app runs fine.

However, when the appimage is invoked on Manjaro, I see the following:

access("/tmp/appimage-18df7fd4-9f36-42f4-bd98-e571e07249c5-ld-linux-x86-64.so.2", F_OK) = 0
chmod("/tmp/appimage-18df7fd4-9f36-42f4-bd98-e571e07249c5-ld-linux-x86-64.so.2", 0770) = 0
execve("/tmp/.mount_Albert6SehZ0/usr/bin/albert", ["/tmp/.mount_Albert6SehZ0/usr/bin"...], 0x1e01780 /* 114 vars */) = -1 ENOENT (No such file or directory)

I'm not entirely sure why this happens, but I suspect it's something to do with not being able to access the correct dynamic linker. I've been able to run the appimage with GDB and break on the execve instruction. I can then go into the appimage directory in /tmp and look around. It's using the following as its interpreter:

/tmp/.mount_Albert7zPPDs/usr/bin/albert: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /tmp/appimage-155e2dab-6729-4b90-bbf3-fda53a4775f1-ld-linux-x86-64.so.2, BuildID[sha1]=9a8a065af8bc1accfca8287621eeb01aea12f5aa, for GNU/Linux 3.2.0, with debug_info, not stripped

This file seems not to exist at the moment that the exec occurs, but does seem to exist in the strace. I'm unsure where to go from here, but am wondering if anyone else has hit this.

Cannot generate recipe from provided .desktop file

When I run appimage-builder --generate I get the following error:

INFO:Generator:Searching AppDir
INFO:Generator:Searching desktop entries
INFO:Generator:Reading desktop entry: rakarrack.desktop
Traceback (most recent call last):
  File "/usr/local/bin/appimage-builder", line 18, in <module>
    __main__();
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/__main__.py", line 51, in __main__
    generator = RecipeGenerator()
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/generator/generator.py", line 48, in __init__
    self._setup_app_info()
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/generator/generator.py", line 147, in _setup_app_info
    parser = DesktopFileParser(desktop_file)
  File "/usr/local/lib/python3.6/dist-packages/AppImageBuilder/generator/desktop_entry_parser.py", line 23, in __init__
    exec = self.parser['Desktop Entry']['Exec'].strip()
  File "/usr/lib/python3.6/configparser.py", line 959, in __getitem__
    raise KeyError(key)
KeyError: 'Desktop Entry'

It seems to me that this is a problem with .desktop file so here is my desktop file:

[Desktop Entry]
Type=Application
Categories=AudioVideo;Audio;
Exec=rakarrack
Name=Rakarrack
Comment=Guitar Effects Processor
Terminal=false
Icon=rakarrack

Weirdest thing with this is that it seems to only happen with desktop files that I manually write,
because when I, for example, download audacious.deb package with apt download audacious and extract it
and use desktop file that was inside of it, this error does not happen.

Idea: Web based(Server-less Javascript) or GUI Application for generating yml configuration.

We have seen so many application authors wanting to integrate AppImages into their release system but they fail because they have very little knowledge about AppImages or think it as a chore. So I propose that we build some kind of server-less Javascript or GUI Application to generate the yml configuration file with respect to their Continuous Integration platform. For starters we can aim at travis-ci.

I can help to get this idea started, But I really don't know if its a good idea. Any suggestions?

Improve progress report

Right now the progress notification are a bit missleading it would be great to improve them.

Build started failing with "Could not perform immediate configuration on"

As far as I know nothing changed on my side, but I do my builds in a docker container that is updated weekly so it may have pulled a new version of appimagebuilder. To test that theory I rebuilt the build container with release 12 and got the same result. The log of the build is below. If you want/need full build instructions or just an app image to start with, let me know and I can make that available.

INFO:root:=================
INFO:root:Generating AppDir
INFO:root:=================
INFO:root:
INFO:root:Bundling dependencies
INFO:root:---------------------
INFO:root:Importing key: https://ftp-master.debian.org/keys/archive-key-10.asc
INFO:apt-key:fakeroot apt-key --keyring ./appimage-builder-cache/etc/apt/trusted.gpg add -
INFO:apt-get:/usr/bin/apt-get -c ./appimage-builder-cache/etc/apt/apt.conf update
INFO:apt-get:Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
INFO:apt-get:Get:2 http://deb.debian.org/debian bullseye/main amd64 Packages [7,806 kB]
INFO:apt-get:Get:3 http://deb.debian.org/debian bullseye/main Translation-en [5,969 kB]
INFO:apt-get:Fetched 13.9 MB in 3s (4,673 kB/s)
INFO:apt-get:Reading package lists...
INFO:apt-get:/usr/bin/apt-get -c ./appimage-builder-cache/etc/apt/apt.conf --download-only -y --no-install-recommends --simulate install libc6 zlib1g libstdc++6
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libgcc-s1:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libcom-err2:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libkrb5support0:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libk5crypto3:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libkeyutils1:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libssl1.1:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libkrb5-3:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libgssapi-krb5-2:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libtirpc3:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libnsl2:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
WARNING:apt-get:E: Could not configure 'libc6:amd64'.
WARNING:apt-get:E: Could not perform immediate configuration on 'libnss-nis:amd64'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
Traceback (most recent call last):
File "/home/grim/.local/bin/appimage-builder", line 18, in
main();
File "/home/grim/.local/lib/python3.8/site-packages/AppImageBuilder/main.py", line 63, in main
builder.build()
File "/home/grim/.local/lib/python3.8/site-packages/AppImageBuilder/app_dir/builder.py", line 67, in build
self._bundle_dependencies()
File "/home/grim/.local/lib/python3.8/site-packages/AppImageBuilder/app_dir/builder.py", line 77, in _bundle_dependencies
bundler.run()
File "/home/grim/.local/lib/python3.8/site-packages/AppImageBuilder/app_dir/bundlers/apt/bundler.py", line 69, in run
self._extend_partitions()
File "/home/grim/.local/lib/python3.8/site-packages/AppImageBuilder/app_dir/bundlers/apt/bundler.py", line 136, in _extend_partitions
raw_package_list = self.apt_get.generate_install_list(packages)
File "/home/grim/.local/lib/python3.8/site-packages/AppImageBuilder/commands/apt_get.py", line 53, in generate_install_list
raise AptGetError('Unable to download packages')
AppImageBuilder.commands.apt_get.AptGetError: Unable to download packages

---
version: 1
AppDir:
  path: ./AppDir
  app_info:
    id: im.pidgin.Pidgin3
    name: Pidgin3
    icon: im.pidgin.Pidgin3
    version: !ENV ${VERSION}
    exec: usr/bin/pidgin3
  apt:
    arch: amd64
    sources:
      - sourceline: 'deb [arch=amd64] http://deb.debian.org/debian/ bullseye main'
        key_url: 'https://ftp-master.debian.org/keys/archive-key-10.asc'
    include:
      - dictionaries-common
      - gir1.2-gdkpixbuf-2.0
      - gir1.2-gtk-3.0
      - gir1.2-soup-2.4
      - gstreamer1.0-gl
      # - gstreamer1.0-plugins-bad # 100mb-ish only if we really **REALLY** need it
      - gstreamer1.0-plugins-good
      - gstreamer1.0-x
      - libavahi-client3
      - libavahi-glib1
      - libcanberra0
      - libcmark0.29.0
      - libfarstream-0.2-5
      - libfontconfig1
      - libfreetype6
      - libgadu3
      - libgirepository-1.0-1
      - libglib-object-introspection-perl
      - libglib-perl
      - libgmime-3.0-0
      - libgspell-1-2
      - libgstreamer-plugins-base1.0-0
      - libgstreamer1.0-0
      - libgtk-3-0
      - libgumbo1
      - libidn11
      - libidn2-0
      - libjson-glib-1.0-0
      # - libkf5wallet5 # 57mb
      - liblua5.3-0
      - libmeanwhile1
      - libperl5.30
      - libpython3.8
      - libsecret-1-0
      - libsoup2.4-1
      - libxss1
      - lua-lgi
      - python3-gi
    exclude:
      - adwaita-icon-theme
  files:
    exclude:
      - usr/share/man
      - usr/share/doc/*/README.*
      - usr/share/doc/*/changelog.*
      - usr/share/doc/*/NEWS.*
      - usr/share/doc/*/TODO.*
      - usr/include
  runtime:
    path_mappings:
      - /usr/lib/x86_64-linux-gnu/gplugin:$APPDIR/usr/lib/x86_64-linux-gnu/gplugin/
      - /usr/lib/x86_64-linux-gnu/purple-3:$APPDIR/usr/lib/x86_64-linux-gnu/purple-3/
      - /usr/lib/x86_64-linux-gnu/pidgin-3:$APPDIR/usr/lib/x86_64-linux-gnu/pidgin-3/
      - /usr/share/pidgin/:$APPDIR/usr/share/pidgin/
      - /usr/share/pixmaps/pidgin/:$APPDIR/usr/share/pixmaps/pidgin/
    env:
      XDG_DATA_DIRS: $APPDIR/share:$XDG_DATA_DIRS
AppImage:
  arch: x86_64

Use AppDir/.env values if present

When running appimage-builder twice over the same AppDir without redeploying the interpreter path is miscalculated. In order to fix this we need to load the existent values and don't re-patch those binaries that were already modified.

AppDir static testing

Running tests in a CI environment is not a simple task as it requires the app to be executed. But it's possible to know which libraries that are required by the application to run are not present in the target system. Which is good for the purpose of knowing if the app will run.

Libc issue building appimage on archlinux

I know builder doesn't support this os yet I tried to build anyways to test this,

So steps I did to built appimage

  • Used pacman to download deps to cache dir

  • Unpacked all deps to AppDir

  • Used builder recipe without having apt section and added env overrides

It did built fine but builder did not auto added libc to opt/libc.

if I manually add links of ld-linux* files to opt/libc/usr/lib, lib32 dirs then appimage works on arch only but that doesn't use glibc from appimg.

Recipe v2

The current recipe is functional but not too expressive. I would like to discuss with the users how to improve it. This will be part of the 2.0 version of appimage-builder. Bellow you will find an example, comments are welcome

TODO:

  • Find a way of setting the application version from the using the recipe instructions

QUESTIONS:

  • Should we keep using "AppDir" as main key or "package" as purposed here?
  • Should we keep the runtime generation as an "auto-magic" step or also include it as part of the recipe steps?
  • Should we keep the zipping of the AppDir as an "auto-magic" step or also include it as part of the recipe steps?
version: 2

package:
  id: org.appimagecrafters.appimage-builder
  version: auto
  name: appimage-builder
  icon: appimage-builder-icon
  update-information: auto

  recipe:
    - step: "Deploy application binaries"
      with: shell
      run: |
        cmake .
        make install DESTDIR=$APPDIR

    - step: "Deploy dependencies"
      with: apt-get
      settings:
        sources:
          - "deb http://ports.ubuntu.com/ubuntu-ports bionic main"
        keys:
          - "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32"
      deploy:
        - bash
        - coreutils
      exclude:
        - libpcre3

    - step: "Cleanup"
      with: shell
      run: rm -rf $APPDIR/usr/include

    - step: "Runtime setup"
      with: runtime-helper
      arch: auto
      mappings:
        - etc:$APPDIR/etc
      env:
        XDG_DATA_DIRS: $APPDIR/share:$XDG_DATA_DIRS

tests:
  - image: appimagecrafters/tests-env:debian-stable
    run: "./AppRun"
  - image: appimagecrafters/tests-env:centos-7
    run: "./AppRun"
  - image: appimagecrafters/tests-env:archlinux-latest
    run: "./AppRun"
  - image: appimagecrafters/tests-env:fedora-30
    run: "./AppRun"
  - image: appimagecrafters/tests-env:ubuntu-xenial
    run: "./AppRun"

AppImageBuilder.script.ExecutionFailed (exited with code 2)

Hi,
My project: https://github.com/CineEncoder/cine-encoder
When trying to create an Appimage the following error occurs:

[helg@Houston Appimage]$ appimage-builder --recipe appimage-builder.yml --skip-test
INFO:script: + rm -rf AppDir  | true
INFO:script: + mkdir -p AppDir/usr/src
INFO:script: + cp main.py  AppDir/usr/src -r
INFO:script: + python3 -m pip install --system --ignore-installed --prefix=/usr --root=AppDir -r ./requirements.txt
WARNING:script: 
WARNING:script: Usage:   
WARNING:script:   /usr/bin/python3 -m pip install [options] <requirement specifier> [package-index-options] ...
WARNING:script:   /usr/bin/python3 -m pip install [options] -r <requirements file> [package-index-options] ...
WARNING:script:   /usr/bin/python3 -m pip install [options] [-e] <vcs project url> ...
WARNING:script:   /usr/bin/python3 -m pip install [options] [-e] <local project path> ...
WARNING:script:   /usr/bin/python3 -m pip install [options] <archive url/path> ...
WARNING:script: 
WARNING:script: no such option: --system
Traceback (most recent call last):
  File "/usr/bin/appimage-builder", line 18, in <module>
    __main__();
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/__main__.py", line 59, in __main__
    script.execute()
  File "/usr/lib/python3.8/site-packages/AppImageBuilder/script.py", line 39, in execute
    raise ExecutionFailed("%s exited with code %s" % (instruction, command.return_code))
AppImageBuilder.script.ExecutionFailed: python3 -m pip install --system --ignore-installed --prefix=/usr --root=AppDir -r ./requirements.txt exited with code 2

appimage-builder.yml (https://github.com/CineEncoder/cine-encoder/blob/master/appimage-builder.yml)
requirements.txt (https://github.com/CineEncoder/cine-encoder/blob/master/requirements.txt)

Please tell me what it can be?
(I need help!!!)

appimage-builder fails while executing tests using the tutorial example

I'm trying to learn how to create an appimage and I started to with the official tutorial I found here:

https://appimage-builder.readthedocs.io/en/latest/intro/tutorial.html

Sadly I get an error when trying to create the Appimage in the last step:

INFO:TEST CASE 'fedora':Executing: ./AppRun
ERROR:appimage-builder:Tests failed
ERROR:appimage-builder:Execution failed. Error message: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

log file and yml recipe attached (I renamed the yml to txt, because GitHub doesn't accept .yml files)
appimage builder-log.txt
AppImageBuilder.yml.txt

Is this a bug, or did I do something wrong?

Debian 10.5 COMPLETE HANG on appimage-builder --generate after Runtime lib found: /lib/x86_64-linux-gnu/libnss_files.so.2

For full terminal log from brand new debian 10.5 clean install visit:
https://asciinema.org/a/osouoZiMMNmvJqcX4JFwucD7S
ISSUE:
the command
appimage-builder --log DEBUG --generate
hangs indefinitely when it reaches return result
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libnss_files.so.2

Operating systems the issue pertains to:

  • ubuntu 16.04
  • debian 9
  • debian 10.5

BELOW IS VERBATIM FROM MY TERMINAL AFTER FOLLOWING INSTRUCTIONS IN TUTORIAL FOR APPIMAGEBUILDER
-------------------------VERBATIM BEGIN----------------------------
appimage-builder --generate --log DEBUG
INFO:Generator:Searching AppDir
INFO:Generator:Searching desktop entries
INFO:Generator:Reading desktop entry: AppDir/usr/share/applications/QtQuickControls2Application.desktop
Basic Information :
DEBUG:asyncio:Using selector: EpollSelector
? ID [Eg: com.example.app] : com.QtQuickControls2Application.app
? Application Name : SimpleQtApp
? Icon : QtQuickControls2Application
? Version : latest
? Executable path relative to AppDir [usr/bin/app] : usr/bin/qt-appimage-template
? Arguments [Default: $@] : $@
? Architecture : amd64
INFO:Generator:Analysing application runtime dependencies
DEBUG:AppRuntimeAnalyser:Running: /home/foouser/qt-appimage-template/AppDir/usr/bin/qt-appimage-template $@
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpthread.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libc.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/librt.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libbsd.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXdmcp.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXau.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libdl.so.2
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libX11.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXext.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpcre.so.3
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libicudata.so.63
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgraphite2.so.3
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libz.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libm.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpng16.so.16
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libfreetype.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libGLdispatch.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libGLX.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libglib-2.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgcc_s.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libstdc++.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libdouble-conversion.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpcre2-16.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libicuuc.so.63
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libicui18n.so.63
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libharfbuzz.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libGL.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5Core.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5Network.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5Gui.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5Qml.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5Widgets.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgpg-error.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgcrypt.so.20
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/liblz4.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/liblzma.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libsystemd.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-util.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libdbus-1.so.3
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libuuid.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libexpat.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxkbcommon.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-xkb.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxkbcommon-x11.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-shape.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-icccm.so.4
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-keysyms.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-shm.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-image.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-randr.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-xinerama.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-xfixes.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-sync.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-render.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-render-util.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXrender.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libICE.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libSM.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXi.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libX11-xcb.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5DBus.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libfontconfig.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXfixes.so.3
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXcursor.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libxcb-glx.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libblkid.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libdatrie.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libresolv.so.2
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libselinux.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libmount.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libffi.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgobject-2.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libatspi.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpixman-1.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libfribidi.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libthai.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXrandr.so.2
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXinerama.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpango-1.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgio-2.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libepoxy.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libwayland-client.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libwayland-egl.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libwayland-cursor.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libatk-1.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libcairo.so.2
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libcairo-gobject.so.2
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXdamage.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libXcomposite.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgdk-3.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgtk-3.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk3.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libproxy.so.1
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgmp.so.10
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libnettle.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libhogweed.so.4
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libtasn1.so.6
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libunistring.so.2
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libidn2.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libp11-kit.so.0
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libgnutls.so.30
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognomeproxy.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
DEBUG:AppRuntimeAnalyser:Runtime lib found: /lib/x86_64-linux-gnu/libnss_files.so.2

-------------------------VERBATIM PAUSE----------------------------
NOTE TO DEVELOPERS: THIS IS WHERE APPIMAGE-BULDER HANGS FOR HOURS. MUST USE CTRL-C TO EXIT.
-------------------------VERBATIM UNPAUSE----------------------------
^CTraceback (most recent call last):
File "/usr/local/bin/appimage-builder", line 18, in
main();
File "/usr/local/lib/python3.7/dist-packages/AppImageBuilder/main.py", line 51, in main
generator = RecipeGenerator()
File "/usr/local/lib/python3.7/dist-packages/AppImageBuilder/generator/generator.py", line 53, in init
runtime_analyser.run_app_analysis()
File "/usr/local/lib/python3.7/dist-packages/AppImageBuilder/generator/app_runtime_analyser.py", line 46, in run_app_analysis
stderr_line = process.stderr.readline()
KeyboardInterrupt
-------------------------VERBATIM END----------------------------

Document the project

As the project grows in features the readme starts run out of space. Better documentation should be made perhaps in the form of a wiki. It should include:

  • the appimage-builder.yml specification
  • example recipes for the different technologies and systems
  • troubleshooting guide
  • step by step tutorial for newcomers
  • advanced topics
    • updates
    • signatures
    • troubleshooting

Support static linked binaries as entrypoint

Currently ld.so is used to exec the app main binary but in some cases, such binary is statically linked therefore ld.so fails.

Detect when statically linked main binary is used and don't call ld.so on it.

Improve readme

Create an user-oriented readme including:

  • installation instructions
  • recipe breakdown and examples

Add Alpine Linux support

Alpine Linux is well known for being a highly optimized solution for containerized software distribution. This also applies to AppImages. Therefore it will be a great opportunity to reduce the final AppImages size.

Recipe Generator

It's possible to extract all the dependencies of an application using the following script:

APP=./my_app
LIBRARIES=$(LD_DEBUG=libs $APP 2>&1 | grep 'init: ' | rev | cut -f 1 -d' ' | rev)
for LIB in $LIBRARIES; do echo -n '    - '; dpkg-query -S $LIB | cut -d':' -f 1 ; done | sort -u

It would be great to have an appimage-builder-auto tool to create a recipe template for the user.

Program headers not in the first page when trying to run on FreeBSD

Program headers not in the first page error message when trying to run the contents of extracted AppImages on FreeBSD.

AppImage/AppImageKit#98 (comment)

Same issue with the GCompris AppImage.

Interestingly, this error does not happen e.g., with the Akira AppImage that was made with go-appimage's appimagetool -s deploy: akiraux/Akira#3 (comment)

I don't have any idea yet what may be causing this. Probably something related to the way the ingredients are compiled, or something about the systems/tools they are compiled on?

(May be useful for testing: https://www.nomadbsd.org/)

"None should be instance of 'str'" when following Tutorial

Following this tutorial here: https://appimage-builder.readthedocs.io/en/latest/intro/tutorial.html

After setting up the repository and running the app during appimage-builder --generate just fine, my next step was (to fix docker) and then afterwards run this command: appimage-builder --skip-test --skip-appimage

Which produced:

dr-kracket@dr-kracket:~/Downloads/qt-appimage-template$ appimage-builder --skip-test --skip-appimage
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 393, in validate
    nvalue = Schema(svalue, error=e, ignore_extra_keys=i).validate(value)
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 428, in validate
    raise SchemaUnexpectedTypeError(message, e.format(data) if e else None)
schema.SchemaUnexpectedTypeError: None should be instance of 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 431, in validate
    return s.validate(data)
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 397, in validate
    raise SchemaError([message] + x.autos, [e] + x.errors)
schema.SchemaError: Key 'arch' error:
None should be instance of 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 393, in validate
    nvalue = Schema(svalue, error=e, ignore_extra_keys=i).validate(value)
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 433, in validate
    raise SchemaError([None] + x.autos, [e] + x.errors)
schema.SchemaError: Key 'arch' error:
None should be instance of 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/appimage-builder", line 8, in <module>
    sys.exit(__main__())
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/__main__.py", line 81, in __main__
    recipe_data = load_recipe(args.recipe)
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/__main__.py", line 146, in load_recipe
    recipe_validator.v1.validate(recipe_data)
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 397, in validate
    raise SchemaError([message] + x.autos, [e] + x.errors)
schema.SchemaError: Key 'AppImage' error:
Key 'arch' error:
None should be instance of 'str'

Running since the commit that fixed allow_unauthenticated


OS: Ubuntu 20.04.1 LTS x86_64
Kernel: 5.4.0-48-generic

APPRUN_WARNING: Unable to find interpreter; Unable to read file:

I packed my application with that tool in custom docker image container and tested it on another computer
The output:

APPRUN_WARNING: Unable to find interpreter: /tmp/appimage-28878975-d60a-450b-8191-3e279a820e92-ld-linux-x86-64.so.2
Unable to read file: /tmp/.private/user/.mount_SimplehgCE5A/opt/libc/tmp/appimage-28878975-d60a-450b-8191-3e279a820e92-ld-linux-x86-64.so.2

"UnicodeDecodeError: 'utf-8' codec can't decode byte 0x99 in position 0: invalid start byte" on "Debian BullsEye"

Well, I have been trying to use appimage-builder to build an appimage, but the problem is, it does not check for its own dependencies before running commands. It uses 200+ MBs of data using apt-get update and apt-get download. After it has downloaded files, it deploys these packages and goes on to running some other code or commands. But what does it find? Some file or module is not present in the system or some package is not installed. So I install a package with those files in it. In theory, it should work now. But when I run appimage-builder again, it shows the following message:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x99 in position 0: invalid start byte
Then I have to delete appimage-builder-chache directory to start from beginning. it runs apt-get commands again and then it finds something else to be missing. So, I have to do the same process again and again without any meaningful result. I did it almost 7-8 times before I gave up. I'm sick of this behaviour of your app. It should just check for dependencies before doing anything else and tell me what package/file/module is missing in the beginning. And if I forget to install something, it should be able to continue after I install that thing.
I am using Debian BullsEye with gnome desktop by the way.

Multiple dependency versions

As of 202011, the KStars appimage bundle fails with:

Building dependency tree...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 indi-bin : Depends: libindi1 but it is not going to be installed
            Depends: libindi-data (>= 1.8.7~202011231040~ubuntu18.04.1) but 1.7.6~201812191815~ubuntu18.04.1 is to be installed
 libkf5configwidgets5 : Depends: libkf5auth5 (>= 4.96.0) but it is not going to be installed
 libkf5newstuff5 : Depends: kio but it is not going to be installed
 libkf5newstuffcore5 : Depends: kio but it is not going to be installed
 libkf5notifyconfig5 : Depends: kio but it is not going to be installed
 plasma-integration : Depends: kio but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Some issues are about kio and a few others, which simply might not be in the include list. I have to double check these ones.

My main issue here is about libindi-data. It appears we have multiple versions of that package in the ppa:

Package: libindi-data
Source: libindi
Priority: optional
Section: misc
Installed-Size: 49
Maintainer: Jasem Mutlaq <[email protected]>
Architecture: all
Version: 1.8.7~202011231040~ubuntu18.04.1
Filename: pool/main/libi/libindi/libindi-data_1.8.7~202011231040~ubuntu18.04.1_all.deb
Size: 10084
MD5sum: 72945658d110d5d88b8603cff5aab374
SHA1: c29075b93b37b27d4ed8492f0988276e5a8f47df
SHA256: 8a35ab523ba1c3c6e1e11f4af0db4ef213835653f6b1880d4dc8a97c7ae53cc2
Description: Instrument-Neutral Device Interface library -- shared data
Description-md5: 2147f72ad3210176b1dd800e188015bb
Multi-Arch: foreign

Package: libindi-data
Source: libindi
Priority: optional
Section: misc
Installed-Size: 40
Maintainer: Jasem Mutlaq <[email protected]>
Architecture: all
Version: 1.7.6~201812191815~ubuntu18.04.1
Filename: pool/main/libi/libindi/libindi-data_1.7.6~201812191815~ubuntu18.04.1_all.deb
Size: 9148
MD5sum: 5a13cb45078f2b37bbbf4edf877fea55
SHA1: be4ceadd3eac9c9e0b175bab50c194053b91a786
SHA256: 31bdbdf5ecb66baa49ee15bd9e0579246968288405d728be57bbd4e7316940aa
Description: Instrument-Neutral Device Interface library -- shared data
Description-md5: 2147f72ad3210176b1dd800e188015bb
Multi-Arch: foreign

And indeed, the packages are spotted when appimage-builder is enumerating dependencies:

INFO:apt:apt-get install -y --download-only frameworkintegration:amd64=5.44.0-0ubuntu1 (...)
    libindi-data:all=1.8.7~202011231040~ubuntu18.04.1
    libindi-data:all=1.7.6~201812191815~ubuntu18.04.1
    libindi-data:all=1.7.1-0ubuntu1

I seem to think the error is sourcing from the different versions that are available, and seen as usable by strace during dependency evaluation.
How can I specify a minimal version in the appimage-builder.yaml for dependency libindi-data, so that it picks the 1.8.7 only?
I can see libnova is written libnova-0.16-0 in the include list, but that format is AFAIK undocumented.

Improve test docker image sizes

The following docker images need to be put to diet:

  • appimagecrafters/test-env:archlinux
  • appimagecrafters/test-env:centos-7

If you're familiar with the systems could you please help.

Qt Application searches plugins in host system and refuses to run

When I bundled an AppImage depending on Qt 5.12.8 (Ubuntu 20.04), the resulting image did not run on an older system (Ubuntu 18.04), because Qt still tried to load plugin libraries from the system path /usr/lib/x86_64-linux-gnu/qt5/plugins although appimage-builder v0.6.0 created a qt.conf correctly overriding the plugin path.

The resulting error is:
"Cannot mix incompatible Qt library (version 0x50905) with this library (version 0x50c08)."
and execution stops right after LD_DEBUG=libs showed loading of /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/libqgtk2style.so.

The contents of qt.conf in AppDir/usr/bin/ is:

[Paths]
Prefix=../..
Settings=../../etc
Libraries=usr/lib/x86_64-linux-gnu
Plugins=usr/lib/x86_64-linux-gnu/qt5/plugins

(btw. I suppose that Settings=../../etc should read Setting=etc ??? but that does not influence this bug)

Docker build stopped to work for me

Docker build stopped to work for me for some reason, still works for other colleagues. Any ideas? Error is following:

https://appimage-builder.readthedocs.io/en/latest/intro/install.html#install-in-a-docker-container

2020-10-20 12:35:11 (98.1 KB/s) - '/opt/appimagetool' saved [2113576/2113576]

/bin/sh: 1: /opt/appimagetool: not found
The command '/bin/sh -c wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /opt/appimagetool && chmod +x /opt/appimagetool && cd /opt/; /opt/appimagetool --appimage-extract && mv /opt/squashfs-root /opt/appimagetool.AppDir && ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool && pip3 install appimage-builder' returned a non-zero code: 127

Related to this PR: https://github.com/airmap/qgroundcontrol/pull/1#

Tutorial Snippit Throws Error "chema.SchemaWrongKeyError: Wrong key 'allow_unauthenticated' ..."

Version: I believe v0.7.9

(It's the latest version as of reporting, and I ran sudo pip3 install git+https://github.com/AppImageCrafters/appimage-builder.git to get it today)

Tutorial in mention: https://appimage-builder.readthedocs.io/en/latest/intro/tutorial.html

The appimage-builder --generate project runs no problem: https://i.imgur.com/V47rCQT.png

And it spits out the following yml:

# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
version: 1
AppDir:
  path: ./AppDir
  app_info:
    id: QtQuickControls2Application
    name: SimpleQtApp
    icon: QtQuickControls2Application
    version: latest
    exec: usr/bin/qt-appimage-template
    exec_args: $@
  runtime:
    env:
      APPDIR_LIBRARY_PATH: $APPDIR/lib/x86_64-linux-gnu
  apt:
    arch: amd64
    allow_unauthenticated: true
    sources:
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal main restricted
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal-updates main restricted
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal universe
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal-updates universe
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal multiverse
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal-updates multiverse
    - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ focal-backports main restricted
        universe multiverse
    - sourceline: deb http://security.ubuntu.com/ubuntu focal-security main restricted
    - sourceline: deb http://security.ubuntu.com/ubuntu focal-security universe
    - sourceline: deb http://security.ubuntu.com/ubuntu focal-security multiverse
    - sourceline: deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/prod
        focal main
    - sourceline: deb https://download.mono-project.com/repo/ubuntu stable-focal main
    include:
    - kimageformat-plugins
    - libbz2-1.0
    - libdbus-1-3
    - libexpat1
    - libgpg-error0
    - liblzma5
    - libpcre3
    - libqt5svg5
    - libsystemd0
    - libtinfo6
    - libuuid1
    - plasma-integration
    - qml-module-qtquick-controls2
    - qml-module-qtquick-layouts
    - qml-module-qtquick-templates2
    - qml-module-qtquick-window2
    - qml-module-qtquick2
    - qt5-image-formats-plugins
    exclude: []
  files:
    exclude:
    - usr/share/man
    - usr/share/doc/*/README.*
    - usr/share/doc/*/changelog.*
    - usr/share/doc/*/NEWS.*
    - usr/share/doc/*/TODO.*
  test:
    fedora:
      image: appimagecrafters/tests-env:fedora-30
      command: ./AppRun
      use_host_x: true
    debian:
      image: appimagecrafters/tests-env:debian-stable
      command: ./AppRun
      use_host_x: true
    arch:
      image: appimagecrafters/tests-env:archlinux-latest
      command: ./AppRun
      use_host_x: true
    centos:
      image: appimagecrafters/tests-env:centos-7
      command: ./AppRun
      use_host_x: true
    ubuntu:
      image: appimagecrafters/tests-env:ubuntu-xenial
      command: ./AppRun
      use_host_x: true
AppImage:
  arch: x86_64
  update-information: None
  sign-key: None

(Notice the allow_unauthenticated: true)

But when you run appimage-builder like the tutorial states, you get:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 431, in validate
    return s.validate(data)
  File "/usr/local/lib/python3.8/dist-packages/schema.py", line 414, in validate
    raise SchemaWrongKeyError(message, e.format(data) if e else None)
schema.SchemaWrongKeyError: Wrong key 'allow_unauthenticated' in {'arch': 'amd64', 'allow_unauthenticated': True, 'sources': [{'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal main restricted'}, {'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal-updates main restricted'}, {'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal universe'}, {'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal-updates universe'}, {'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal multiverse'}, {'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal-updates multiverse'}, {'sourceline': 'deb http://us.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse'}, {'sourceline': 'deb http://security.ubuntu.com/ubuntu focal-security main restricted'}, {'sourceline': 'deb http://security.ubuntu.com/ubuntu focal-security universe'}, {'sourceline': 'deb http://security.ubuntu.com/ubuntu focal-security multiverse'}, {'sourceline': 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/prod focal main'}, {'sourceline': 'deb https://download.mono-project.com/repo/ubuntu stable-focal main'}], 'include': ['kimageformat-plugins', 'libbz2-1.0', 'libdbus-1-3', 'libexpat1', 'libgpg-error0', 'liblzma5', 'libpcre3', 'libqt5svg5', 'libsystemd0', 'libtinfo6', 'libuuid1', 'plasma-integration', 'qml-module-qtquick-controls2', 'qml-module-qtquick-layouts', 'qml-module-qtquick-templates2', 'qml-module-qtquick-window2', 'qml-module-qtquick2', 'qt5-image-formats-plugins'], 'exclude': []}

During handling of the above exception, another exception occurred:

...

If I remove the allow_unauthenticated: true, I get a lot of different errors that seem to relate to public key's not being available, but this part of the tutorial doesn't make sense to me so I can't fix it myself:

To make an ubuntu keyring url you can use the following snippet, replace by the value that comes after the NO_PUBKEY in the appimage-builder output:

http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x
http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3B4FE6ACC0B21F32

(But I'm not sure where to put that snippet)


OS: Ubuntu 20.04.1 LTS x86_64
Kernel: 5.4.0-48-generic

Allow to dynamically set application version

Currently app/appimage version needs to be hard-coded in the manifest like this:

AppDir:
  path: build.appimage/AppDir

  app_info:
    id: org.zealdocs.Zeal
    name: zeal
    icon: zeal
    version: 0.6.1 #  <-- hard-coded version
    exec: usr/bin/zeal
    exec_args: $@

I am trying to create a pipeline for producing AppImage packages for each CI build. In this scenario version is not known upfront but rather is calculated by git describe. It would be great if there was an option to read the version value from the environment so it could be set in the script section.

Don't dowload packages metadata when running the apt-get update step

When the apt-get update action is executed part of the configuration is taken from the host system. This will make, in some cases, that the packages metadata (icons, desktop files and file lists) is downloaded. While this is something required for regular system it's useless when building an AppImage.

Setting Dir::Etc::SourceParts doesn't seem to help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.