AppImageCrafters / appimage-builder

GNU/Linux packaging solution using the AppImage format
MIT License
316 stars 58 forks source link

Generate step fails to use strace #265

Open ElectroQuanta opened 2 years ago

ElectroQuanta commented 2 years ago

Hi, sorry if this question was already made, but I couldn't find any traces of it.

When I try to generate the recipe, the strace loaded fails to run properly:

WARNING:AppRuntimeAnalyser:/tmp/.mount_appimaQrAILW/usr/bin/strace -f -E LD_LIBRARY_PATH=/home
/zmpl/myApp/build/AppDir/usr/lib -e trace=openat --status=successful /home/zmp/myApp/build/AppDir/usr/bin/myApp $@ exited with code 127               
WARNING:AppRuntimeAnalyser:This may produce an incomplete/wrong recipe. Please make sure that  the application runs properly.   

However, If I run the system's strace, it works flawlessly.

[pid 49433] openat(AT_FDCWD, "/usr/share/icons/Adwaita/16x16/legacy/zoom-fit-best.png", O_RDONLY|O_CLOEXEC) = 4

I'm using the appimage-builder-1.1.1.dev31+gbd82930-x86_64.AppImage.

How can I change/override the default strace by the one used by my system?

azubieta commented 2 years ago

Hi @ElectroQuanta,

How can I change/override the default strace by the one used by my system?

Let me know if that worked for you :)

ElectroQuanta commented 2 years ago

Hi @azubieta,

thanks for the reply. It successfully forced the appimage-builder to run /usr/bin/strace. However, it fails to pickup LD_LIBRARY_PATHfrom the environment, although I have set it previously.

  INFO:AppRuntimeAnalyser:/usr/bin/strace -f -E LD_LIBRARY_PATH= -e trace=openat --status=successful /home/zmpl/myApp/build/AppDir/usr/bin/myApp $@                                                             
  WARNING:AppRuntimeAnalyser:/usr/bin/strace -f -E LD_LIBRARY_PATH= -e trace=openat --status=successful /home/zmpl/myApp/build/AppDir/usr/bin/myApp $@ exited with code 127                                         
  WARNING:AppRuntimeAnalyser:This may produce an incomplete/wrong recipe. Please make sure that the application runs properly.                                                               
  INFO:AppRuntimeAnalyser:Reading PT_INTERP from executables
  INFO:FilePackageResolver:/usr/bin/dpkg-query -S /lib/x86_64-linux-gnu/libQt5Svg.so.5 /lib64/ld-linux-x86-64.so.2                                                    dpkg-query: não foi encontrado caminho coincidindo com o padrão /lib/x86_64-linux-gnu/libQt5Svg.so.5             
  INFO:dpkg-query:/usr/bin/dpkg-query -W -f=${binary:Package}: ${Depends}\n libc6:amd64
  INFO:Generator:Recipe generation completed.

  echo $LD_LIBRARY_PATH 
  /home/zmpl/Qt/5.13.2/gcc_64/lib/

To force the appimage-builderto find it, i need to use a shell script to:

  1. Copy libs to $APPDIR/usr/lib (BINDIR)
  2. Modify LD_LIBRARY_PATH to BINDIR

I thought the intended behavior was that appimage-builder would query the system LD_LIBRARY_PATH to find all libraries, but I think I'm mistaken.

I also needed to copy some executables like bash, perl, etc., which got me thinking that maybe I'm doing something wrong.

Anyways, I managed to solve pretty much everything with the exception of:

  1. dpkg-query: no path was found matching the pattern /lib/x86_64-linux-gnu/libicudata.so.6 (alongside with other files of the same type): I dont know if this is an issue, but I get this when I generate the recipe
  2. When running the application, it loads everything correctly, but when invoking a shell command (that runs another executable file) it fails to execute it correctly. However, if i run the compiled version it works without any issue. It also works perfectly when running straceon it.

Here is my AppImageBuilder.yml in case it helps.

# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
version: 1
AppDir:
  path: /home/zmpl/myApp/build/AppDir
  app_info:
    id: myApp
    name: myApp
    icon: myApp
    version: latest
    exec: usr/bin/myApp
    exec_args: $@
  apt:
    arch:
    - amd64
    allow_unauthenticated: true
    sources:
    - sourceline: deb http://pt.archive.ubuntu.com/ubuntu/ focal main restricted
    - sourceline: deb http://pt.archive.ubuntu.com/ubuntu/ focal-updates main restricted
    - sourceline: deb http://pt.archive.ubuntu.com/ubuntu/ focal universe
    - sourceline: deb http://pt.archive.ubuntu.com/ubuntu/ focal-updates universe
    - sourceline: deb http://pt.archive.ubuntu.com/ubuntu/ focal multiverse
    - sourceline: deb http://pt.archive.ubuntu.com/ubuntu/ focal-updates multiverse
    - sourceline: deb http://pt.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 http://security.ubuntu.com/ubuntu xenial-security main
    include:
    - adwaita-icon-theme-full
    - fonts-dejavu-core
    - fonts-ubuntu
    - gnome-themes-extra-data
    - gvfs:amd64
    - hicolor-icon-theme
    - humanity-icon-theme
    - libdbus-1-3:amd64
    - libgpg-error0:amd64
    - libgtk-3-0:amd64
    - liblzma5:amd64
    - libmount1:amd64
    - libpcre3:amd64
    - librsvg2-common:amd64
    - libsystemd0:amd64
    - libtinfo6:amd64
    - libuuid1:amd64
    - locales
    - xkb-data
    - yaru-theme-icon
  files:
    include:
    - /home/zmpl/.local/share/mime//mime.cache
    - /home/zmpl/.local/share/mime/mime.cache
    - /home/zmpl/.local/share/recently-used.xbel
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/geometryloaders/libdefaultgeometryloader.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/geometryloaders/libgltfgeometryloader.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/iconengines/libqsvgicon.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqgif.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqicns.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqico.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqjpeg.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqsvg.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqtga.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqtiff.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqwbmp.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/imageformats/libqwebp.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqeglfs.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqlinuxfb.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqminimal.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqminimalegl.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqoffscreen.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqvnc.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqwayland-egl.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqwayland-generic.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqwebgl.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platforms/libqxcb.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platformthemes/libqgtk3.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/sceneparsers/libassimpsceneimport.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/sceneparsers/libgltfsceneexport.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/sceneparsers/libgltfsceneimport.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so
    - /home/zmpl/Qt/5.13.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so
    - /lib/x86_64-linux-gnu/libLLVM-12.so.1
    - /lib/x86_64-linux-gnu/libelf.so.1
    - /lib/x86_64-linux-gnu/librsvg-2.so.2
    - /lib/x86_64-linux-gnu/libsensors.so.5
    - /lib/x86_64-linux-gnu/libvulkan.so.1
    - /lib/x86_64-linux-gnu/libzstd.so.1
    - /usr/lib/locale/locale-archive
    - /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
    - /usr/share//mime//mime.cache
    - /usr/share/icons/Adwaita/icon-theme.cache
    - /usr/share/icons/Humanity/icon-theme.cache
    - /usr/share/icons/Yaru/icon-theme.cache
    - /usr/share/icons/hicolor/icon-theme.cache
    - /usr/share/mime/mime.cache
    - /usr/share/mime/model/stl.xml
    exclude:
    - usr/share/man
    - usr/share/doc/*/README.*
    - usr/share/doc/*/changelog.*
    - usr/share/doc/*/NEWS.*
    - usr/share/doc/*/TODO.*
  test:
    fedora-30:
      image: appimagecrafters/tests-env:fedora-30
      command: ./AppRun
    debian-stable:
      image: appimagecrafters/tests-env:debian-stable
      command: ./AppRun
    archlinux-latest:
      image: appimagecrafters/tests-env:archlinux-latest
      command: ./AppRun
    centos-7:
      image: appimagecrafters/tests-env:centos-7
      command: ./AppRun
    ubuntu-xenial:
      image: appimagecrafters/tests-env:ubuntu-xenial
      command: ./AppRun
AppImage:
  arch: x86_64
  update-information: guess

Thanks in advance :)