appimagelint icon indicating copy to clipboard operation
appimagelint copied to clipboard

KeyError: 'jammy'

Open ReenigneArcher opened this issue 3 years ago • 8 comments

Trying to run in Ubuntu 18.04 github runner and getting the following:

appimagelint.cli[12037] [INFO] Checking AppImage ./artifacts/sunshine.AppImage
appimagelint.cli[12037] [INFO] Running check "GNU libc ABI check"
appimagelint.glibc_abi_check[12037] [INFO] detected required version for runtime: 2.14
readelf: Error: the PHDR segment is not covered by a LOAD segment
readelf: Error: the PHDR segment is not covered by a LOAD segment
readelf: Error: the PHDR segment is not covered by a LOAD segment
readelf: Error: the PHDR segment is not covered by a LOAD segment
appimagelint.glibc_abi_check[12037] [INFO] detected required version for payload: 2.27
appimagelint.cache[12037] [INFO] Fetching glibc version data for debian
appimagelint.setup[12037] [INFO] Fetching glibc package versions from Debian sources API
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Debian oldstable (buster)
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Debian stable (bullseye)
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Debian testing (bookworm)
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Debian unstable (sid)
appimagelint.cache[12037] [INFO] Fetching glibc version data for ubuntu
appimagelint.setup[12037] [INFO] Fetching glibc package versions from Ubuntu FTP mirror
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Ubuntu jammy
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Ubuntu impish
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Ubuntu focal
appimagelint.glibc_abi_check[12037] [INFO] [✔] AppImage can run on Ubuntu bionic
appimagelint.glibc_abi_check[12037] [INFO] [✖] AppImage can run on Ubuntu xenial
appimagelint.glibc_abi_check[12037] [INFO] [✖] AppImage can run on Ubuntu trusty
appimagelint.cache[12037] [INFO] Fetching glibc version data for centos
appimagelint.setup[12037] [INFO] Fetching glibc package versions from CentOS mirror
appimagelint.glibc_abi_check[12037] [INFO] [✖] AppImage can run on CentOS 7
appimagelint.cli[12037] [INFO] Running check "GNU libstdc++ ABI check"
appimagelint.glibcxx_abi_check[12037] [INFO] detected required version for runtime: <none>
readelf: Error: the PHDR segment is not covered by a LOAD segment
readelf: Error: the PHDR segment is not covered by a LOAD segment
readelf: Error: the PHDR segment is not covered by a LOAD segment
readelf: Error: the PHDR segment is not covered by a LOAD segment
appimagelint.glibcxx_abi_check[12037] [INFO] detected required version for payload: 3.4.26
appimagelint.cache[12037] [INFO] Fetching glibcxx version data for debian
Warning: int.gnu_lib_versions_symbols_finder[12037] [WARNING] no binaries found in /dev/shm/appimagelint-ntec8xwn.tmp/out/
Warning: int.gnu_lib_versions_symbols_finder[12037] [WARNING] no binaries found in /dev/shm/appimagelint-jpgqdiil.tmp/out/
Warning: int.gnu_lib_versions_symbols_finder[12037] [WARNING] no binaries found in /dev/shm/appimagelint-ozi9y1pv.tmp/out/
Warning: int.gnu_lib_versions_symbols_finder[12037] [WARNING] no binaries found in /dev/shm/appimagelint-gywjjbbw.tmp/out/
appimagelint.glibcxx_abi_check[12037] [INFO] [✖] AppImage can run on Debian oldstable (buster)
appimagelint.glibcxx_abi_check[12037] [INFO] [✔] AppImage can run on Debian stable (bullseye)
appimagelint.glibcxx_abi_check[12037] [INFO] [✔] AppImage can run on Debian testing (bookworm)
appimagelint.glibcxx_abi_check[12037] [INFO] [✔] AppImage can run on Debian unstable (sid)
appimagelint.cache[12037] [INFO] Fetching glibcxx version data for ubuntu
Warning: int.cache[12037] [WARNING] codebase changed since last update, but updating failed, using cached data
Error: elint.cache[12037] [ERROR] Command '['tar', '-xvf', '/dev/shm/appimagelint-9d798r3x.tmp/data.tar.zst']' returned non-zero exit status 2.
Traceback (most recent call last):
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/cache/json_cache_impl_base.py", line 101, in get_data
    new_data = cls._fetch_data()
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/cache/package_version_maps.py", line 17, in _fetch_data
    return get_map_callback()
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/cache/common.py", line 245, in get_ubuntu_glibcxx_versions_map
    versions = get_glibcxx_version_from_debian_package(url)
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/cache/common.py", line 199, in get_glibcxx_version_from_debian_package
    check_call(["tar", "-xvf", data_archive_name], cwd=out_path)
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/cache/common.py", line 186, in check_call
    proc = subprocess.run(args, check=True, capture_output=True, **kwargs)
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['tar', '-xvf', '/dev/shm/appimagelint-9d798r3x.tmp/data.tar.zst']' returned non-zero exit status 2.
Traceback (most recent call last):
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/__main__.py", line 4, in <module>
    run()
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/cli.py", line 142, in run
    for testres in check.run():
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/checks/gnu_abi_check_base.py", line 79, in run
    for result in self._check_ubuntu_compat(required_version):
  File "/tmp/.mount_appimaqnNutg/usr/conda/lib/python3.9/site-packages/appimagelint/checks/gnu_abi_check_base.py", line 138, in _check_ubuntu_compat
    max_supported_version = versions_map[release]
KeyError: 'jammy'
Error: Process completed with exit code 1.

Something wrong with my AppImage? Maybe missing dependencies in the runner?

ReenigneArcher avatar May 11 '22 02:05 ReenigneArcher

Your cache may be out of date. Try to rm -r ~/.cache/appimagelint/.

TheAssassin avatar May 11 '22 16:05 TheAssassin

Your cache may be out of date. Try to rm -r ~/.cache/appimagelint/.

Same error when I remove the directory before. I don't know how the cache could be out of date as appimagelint is downloaded, and immediately ran following the download. I've updated my original message with the full output of the command.

ReenigneArcher avatar May 11 '22 23:05 ReenigneArcher

Cannot reproduce this issue.

Could you perhaps tar the cache directory after appimagelint fails and upload it here?

TheAssassin avatar May 12 '22 00:05 TheAssassin

I appreciate you looking into this! I've uploaded the cache directory as an artifact in the build. https://github.com/SunshineStream/Sunshine/actions/runs/2310726888

ReenigneArcher avatar May 12 '22 02:05 ReenigneArcher

Also, python has a built-in tarfile module. Probably better than using a subprocess.

https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractall

ReenigneArcher avatar May 12 '22 13:05 ReenigneArcher

Now I see what you mean... I obviously didn't read the logs properly. Not entirely sure why extracting that tarball fails, I can only guess it is because you do not have zstd installed. Please install the required package, that should fix the problem.

I generally agree that there should not be a dependency on CLI tools (at least as long as we don't bundle them in the AppImage). Unfortunately, tarfile cannot handle ZStandard as far as I can see (for .ar there seem to be third-party modules we could use)...

TheAssassin avatar May 15 '22 00:05 TheAssassin

Now I see what you mean... I obviously didn't read the logs properly. Not entirely sure why extracting that tarball fails, I can only guess it is because you do not have zstd installed. Please install the required package, that should fix the problem.

Unfortunately I have the same issue after installing zstd version 1.4.8.

https://github.com/SunshineStream/Sunshine/runs/6437885003?check_suite_focus=true#step:3:1004

https://github.com/SunshineStream/Sunshine/runs/6437885003?check_suite_focus=true#step:7:767

ReenigneArcher avatar May 15 '22 01:05 ReenigneArcher

Resolved by installing tar from focal packages. https://packages.ubuntu.com/focal/tar

ReenigneArcher avatar Nov 02 '22 02:11 ReenigneArcher