linuxdeploy / linuxdeploy-plugin-appimage

Plugin for linuxdeploy. Creates AppImages from AppDirs.
https://github.com/linuxdeploy/linuxdeploy
36 stars 15 forks source link

AppImage creation fails with `undefined symbol: g_file_info_get_modification_date_time` #16

Closed ba32107 closed 3 years ago

ba32107 commented 4 years ago

Context

I am experimenting with creating my first AppImage, and I'm facing the following issue. When I supply an AppStream metadata file and try to build my AppImage, it fails with the following error:

[appimage/stderr] AppStream upstream metadata found in usr/share/metainfo/test.appdata.xml
[appimage/stderr] /usr/bin/appstreamcli: symbol lookup error: /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time
[appimage/stderr] Failed to validate AppStream information with appstreamcli

I am new to this ecosystem, but I suspect what's happening is that the appimagetool bundled into linuxdeploy is somehow incompatible with the version of appstreamcli I have on my machine. Is this a possible root cause?

Repro steps:

  1. Download the latest linuxdeploy into an empty directory
  2. Add a dummy executable called test (in my example I copied /usr/bin/xargs) and dummy icon called test.svg
  3. Add test.desktop (contents below)
  4. ./linuxdeploy-x86_64.AppImage --appdir AppDir -e ./test -d ./test.desktop -i ./test.svg
  5. Create test.appdata.xml (contents below) and copy it into AppDir/usr/share/metainfo
  6. Now run ./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage
  7. Observe the failure:
    
    linuxdeploy version 1-alpha (git commit ID 04d5321), Travis build 485 built on 2020-09-25 12:21:53 UTC

-- Creating basic AppDir structure -- Creating directory AppDir/usr/bin/ Creating directory AppDir/usr/lib/ Creating directory AppDir/usr/share/applications/ Creating directory AppDir/usr/share/icons/hicolor/ Creating directory AppDir/usr/share/icons/hicolor/16x16/apps/ Creating directory AppDir/usr/share/icons/hicolor/32x32/apps/ Creating directory AppDir/usr/share/icons/hicolor/64x64/apps/ Creating directory AppDir/usr/share/icons/hicolor/128x128/apps/ Creating directory AppDir/usr/share/icons/hicolor/256x256/apps/ Creating directory AppDir/usr/share/icons/hicolor/scalable/apps/

-- Deploying dependencies for existing files in AppDir -- Deploying dependencies for ELF file AppDir/usr/bin/test Skipping deployment of blacklisted library /lib/x86_64-linux-gnu/libc.so.6

-- Copying files into AppDir -- Setting rpath in ELF file AppDir/usr/bin/test to $ORIGIN/../lib

-- Copying files into AppDir --

-- Deploying files into AppDir root directory -- WARNING: No desktop file specified, using first desktop file found: AppDir/usr/share/applications/test.desktop Deploying files to AppDir root using desktop file: AppDir/usr/share/applications/test.desktop Deploying desktop file to AppDir root: AppDir/usr/share/applications/test.desktop Creating symlink for file AppDir/usr/share/applications/test.desktop in/as AppDir Deploying icon to AppDir root: AppDir/usr/share/icons/hicolor/scalable/apps/test.svg Creating symlink for file AppDir/usr/share/icons/hicolor/scalable/apps/test.svg in/as AppDir WARNING: Existing AppRun detected, skipping deployment of symlink

-- Running output plugin: appimage -- [appimage/stdout] Found appimagetool: /tmp/.mount_linuxdhqPhgm/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool [appimage/stdout] [appimage/stderr] Running command: /tmp/.mount_linuxdhqPhgm/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool "AppDir" "-g" [appimage/stderr] [appimage/stdout] /home/balazs/testcase/AppDir should be packaged as test-test-x86_64.AppImage [appimage/stdout] Trying to validate AppStream information with the appstreamcli tool [appimage/stdout] In case of issues, please refer to https://github.com/ximion/appstream [appimage/stderr] appimagetool, continuous build (commit 0880085), build 2133 built on 2020-07-09 12:25:52 UTC [appimage/stderr] Using architecture x86_64 [appimage/stderr] AppStream upstream metadata found in usr/share/metainfo/test.appdata.xml [appimage/stderr] /usr/bin/appstreamcli: symbol lookup error: /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1: undefined symbol: g_file_info_get_modification_date_time [appimage/stderr] Failed to validate AppStream information with appstreamcli ERROR: Failed to run plugin: appimage (exit code: 1)


### Additional info

`test.desktop`:

[Desktop Entry] Type=Application Name=test Icon=test Exec=test Categories=Development;

`test.appdata.xml`:
```XML
<?xml version="1.0" encoding="UTF-8"?>
<component>
  <id>test</id>
  <name>Test</name>
  <summary>Test</summary>
  <metadata_license>MIT</metadata_license>
</component>

Versions:

$ appstreamcli --version
AppStream version: 0.12.10
$ which appstreamcli
/usr/bin/appstreamcli
$ ./linuxdeploy-x86_64.AppImage --version
linuxdeploy version 1-alpha (git commit ID 04d5321), Travis build 485 built on 2020-09-25 12:21:53 UTC

Thanks for looking into this.

TheAssassin commented 4 years ago

Duplicate of https://github.com/AppImage/AppImageKit/issues/856. Won't be fixable until the upstream issue is fixed. Also, wrong tracker. This issue is created in https://github.com/linuxdeploy/linuxdeploy-plugin-appimage. Moving it there therefore.

ba32107 commented 4 years ago

Thanks for the info, I did find that other thread too, but I did not understand the dependency between these tools at the time.

ba32107 commented 3 years ago

This is now working - thanks.