Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUILD] Revise list of libraries shipped in Linux AppImage #1487

Open
Simran-B opened this issue Feb 18, 2021 · 4 comments
Open

[BUILD] Revise list of libraries shipped in Linux AppImage #1487

Simran-B opened this issue Feb 18, 2021 · 4 comments
Labels
Building/Packaging Compile or install issues (excluding CI) Low Priority

Comments

@Simran-B
Copy link
Collaborator

Platform
Linux

Summary
Some shared libraries are included that should apparently not be bundled, whereas some others are missing (in particular Qt's dependencies, like freetype and harfbuzz).

Additional Information / Output

There is a disagreement about what should be included and what should be excluded between linuxdeployqt / appimage.org and information shared by @rodlie (see #1483 (comment) and subsequent comments). It's also unclear whether ASWF's Qt is built correctly with all dependencies or if the cleaned up CI container lacks some of the packages that were installed in the aswf-docker base image.

@Simran-B Simran-B added Building/Packaging Compile or install issues (excluding CI) Low Priority labels Feb 18, 2021
@Simran-B
Copy link
Collaborator Author

Simran-B commented Feb 18, 2021

Dependency tree of main executable according to ldd

ldd app/olive-editor
LibraryPath
linux-vdso.so.1
libQt5Multimedia.so.5/usr/local/lib/libQt5Multimedia.so.5
libQt5OpenGL.so.5/usr/local/lib/libQt5OpenGL.so.5
libQt5Svg.so.5/usr/local/lib/libQt5Svg.so.5
libQt5Concurrent.so.5/usr/local/lib/libQt5Concurrent.so.5
libGL.so.1/lib64/libGL.so.1
libavutil.so.56/usr/local/lib/libavutil.so.56
libavcodec.so.58/usr/local/lib/libavcodec.so.58
libavformat.so.58/usr/local/lib/libavformat.so.58
libavfilter.so.7/usr/local/lib/libavfilter.so.7
libswscale.so.5/usr/local/lib/libswscale.so.5
libswresample.so.3/usr/local/lib/libswresample.so.3
libOpenColorIO.so.2.0/usr/local/lib/libOpenColorIO.so.2.0
libOpenImageIO.so.2.2/usr/local/lib64/libOpenImageIO.so.2.2
libOpenImageIO_Util.so.2.2/usr/local/lib64/libOpenImageIO_Util.so.2.2
libIlmImf-2_5.so.25/usr/local/lib64/libIlmImf-2_5.so.25
libImath-2_5.so.25/usr/local/lib64/libImath-2_5.so.25
libIex-2_5.so.25/usr/local/lib64/libIex-2_5.so.25
libHalf-2_5.so.25/usr/local/lib64/libHalf-2_5.so.25
libIlmThread-2_5.so.25/usr/local/lib64/libIlmThread-2_5.so.25
libpthread.so.0/lib64/libpthread.so.0
libz.so.1/lib64/libz.so.1
libdl.so.2/lib64/libdl.so.2
libQt5Network.so.5/usr/local/lib/libQt5Network.so.5
libQt5Widgets.so.5/usr/local/lib/libQt5Widgets.so.5
libQt5Gui.so.5/usr/local/lib/libQt5Gui.so.5
libQt5Core.so.5/usr/local/lib/libQt5Core.so.5
libstdc++.so.6/lib64/libstdc++.so.6
libm.so.6/lib64/libm.so.6
libgcc_s.so.1/lib64/libgcc_s.so.1
libc.so.6/lib64/libc.so.6
/lib64/ld-linux-x86-64.so.2
libpulse-mainloop-glib.so.0/lib64/libpulse-mainloop-glib.so.0
libpulse.so.0/lib64/libpulse.so.0
libglib-2.0.so.0/lib64/libglib-2.0.so.0
libGLX.so.0/lib64/libGLX.so.0
libX11.so.6/lib64/libX11.so.6
libXext.so.6/lib64/libXext.so.6
libGLdispatch.so.0/lib64/libGLdispatch.so.0
libvpx.so.6/usr/local/lib/libvpx.so.6
liblzma.so.5/lib64/liblzma.so.5
libaom.so.2/usr/local/lib64/libaom.so.2
libmp3lame.so.0/usr/local/lib/libmp3lame.so.0
libopenjp2.so.7/usr/local/lib/libopenjp2.so.7
libopus.so.0/usr/local/lib/libopus.so.0
libtheoraenc.so.1/usr/local/lib/libtheoraenc.so.1
libtheoradec.so.1/usr/local/lib/libtheoradec.so.1
libvorbis.so.0/usr/local/lib/libvorbis.so.0
libvorbisenc.so.2/usr/local/lib/libvorbisenc.so.2
libwebp.so.7/usr/local/lib/libwebp.so.7
libx264.so.161/usr/local/lib/libx264.so.161
libx265.so.192/usr/local/lib/libx265.so.192
libxvidcore.so.4/usr/local/lib/libxvidcore.so.4
libbz2.so.1/lib64/libbz2.so.1
libpostproc.so.55/usr/local/lib/libpostproc.so.55
libfreetype.so.6/lib64/libfreetype.so.6
libgif.so.4/lib64/libgif.so.4
libpng15.so.15/lib64/libpng15.so.15
libjpeg.so.62/lib64/libjpeg.so.62
libraw_r.so.19/lib64/libraw_r.so.19
libtiff.so.5/lib64/libtiff.so.5
libboost_filesystem.so.1.73.0/usr/local/lib/libboost_filesystem.so.1.73.0
libboost_system.so.1.73.0/usr/local/lib/libboost_system.so.1.73.0
libboost_thread.so.1.73.0/usr/local/lib/libboost_thread.so.1.73.0
libboost_chrono.so.1.73.0/usr/local/lib/libboost_chrono.so.1.73.0
libboost_date_time.so.1.73.0/usr/local/lib/libboost_date_time.so.1.73.0
libboost_atomic.so.1.73.0/usr/local/lib/libboost_atomic.so.1.73.0
librt.so.1/lib64/librt.so.1
libIexMath-2_5.so.25/usr/local/lib64/libIexMath-2_5.so.25
libgssapi_krb5.so.2/lib64/libgssapi_krb5.so.2
libicui18n.so.50/lib64/libicui18n.so.50
libicuuc.so.50/lib64/libicuuc.so.50
libicudata.so.50/lib64/libicudata.so.50
libgthread-2.0.so.0/lib64/libgthread-2.0.so.0
libpulsecommon-10.0.so/usr/lib64/pulseaudio/libpulsecommon-10.0.so
libcap.so.2/lib64/libcap.so.2
libdbus-1.so.3/lib64/libdbus-1.so.3
libpcre.so.1/lib64/libpcre.so.1
libxcb.so.1/lib64/libxcb.so.1
libogg.so.0/usr/local/lib/libogg.so.0
libnuma.so.1/lib64/libnuma.so.1
libSM.so.6/lib64/libSM.so.6
libICE.so.6/lib64/libICE.so.6
libjasper.so.1/lib64/libjasper.so.1
liblcms2.so.2/lib64/liblcms2.so.2
libgomp.so.1/lib64/libgomp.so.1
libjbig.so.2.0/lib64/libjbig.so.2.0
libkrb5.so.3/lib64/libkrb5.so.3
libk5crypto.so.3/lib64/libk5crypto.so.3
libcom_err.so.2/lib64/libcom_err.so.2
libkrb5support.so.0/lib64/libkrb5support.so.0
libkeyutils.so.1/lib64/libkeyutils.so.1
libresolv.so.2/lib64/libresolv.so.2
libX11-xcb.so.1/lib64/libX11-xcb.so.1
libXtst.so.6/lib64/libXtst.so.6
libsystemd.so.0/lib64/libsystemd.so.0
libwrap.so.0/lib64/libwrap.so.0
libsndfile.so.1/lib64/libsndfile.so.1
libasyncns.so.0/lib64/libasyncns.so.0
libattr.so.1/lib64/libattr.so.1
libXau.so.6/lib64/libXau.so.6
libuuid.so.1/lib64/libuuid.so.1
libselinux.so.1/lib64/libselinux.so.1
libXi.so.6/lib64/libXi.so.6
liblz4.so.1/lib64/liblz4.so.1
libgcrypt.so.11/lib64/libgcrypt.so.11
libgpg-error.so.0/lib64/libgpg-error.so.0
libdw.so.1/lib64/libdw.so.1
libnsl.so.1/lib64/libnsl.so.1
libgsm.so.1/lib64/libgsm.so.1
libFLAC.so.8/lib64/libFLAC.so.8
libelf.so.1/lib64/libelf.so.1
ldd --unused app/olive-editor
Unused direct dependencies:
        /usr/local/lib/libQt5OpenGL.so.5
        /usr/local/lib/libQt5Svg.so.5
        /usr/local/lib/libQt5Concurrent.so.5
        /lib64/libGL.so.1
        /usr/local/lib/libavutil.so.56
        /usr/local/lib/libavcodec.so.58
        /usr/local/lib/libavformat.so.58
        /usr/local/lib/libavfilter.so.7
        /usr/local/lib/libswscale.so.5
        /usr/local/lib/libswresample.so.3
        /usr/local/lib64/libOpenImageIO.so.2.2
        /usr/local/lib64/libOpenImageIO_Util.so.2.2
        /usr/local/lib64/libImath-2_5.so.25
        /usr/local/lib64/libHalf-2_5.so.25
        /usr/local/lib64/libIlmThread-2_5.so.25
        /lib64/libz.so.1
        /lib64/libdl.so.2
        /usr/local/lib/libQt5Network.so.5
        /lib64/libm.so.6
        /lib64/libgcc_s.so.1
        /lib64/ld-linux-x86-64.so.2

Currently bundled libraries in AppImage

ls squashfs-root/usr/lib/ -1
  • libFLAC.so.8
  • libHalf-2_5.so.25
  • libIex-2_5.so.25
  • libIexMath-2_5.so.25
  • libIlmImf-2_5.so.25
  • libIlmThread-2_5.so.25
  • libImath-2_5.so.25
  • libOpenColorIO.so.2.0
  • libOpenImageIO.so.2.2
  • libOpenImageIO_Util.so.2.2
  • libQt5Concurrent.so.5
  • libQt5Core.so.5
  • libQt5DBus.so.5
  • libQt5Gui.so.5
  • libQt5Multimedia.so.5
  • libQt5MultimediaGstTools.so.5
  • libQt5MultimediaWidgets.so.5
  • libQt5Network.so.5
  • libQt5OpenGL.so.5
  • libQt5Pdf.so.5
  • libQt5Qml.so.5
  • libQt5QmlModels.so.5
  • libQt5Quick.so.5
  • libQt5Svg.so.5
  • libQt5VirtualKeyboard.so.5
  • libQt5Widgets.so.5
  • libQt5XcbQpa.so.5
  • libX11-xcb.so.1
  • libXau.so.6
  • libXext.so.6
  • libXi.so.6
  • libXtst.so.6
  • libaom.so.2
  • libasyncns.so.0
  • libattr.so.1
  • libavcodec.so.58
  • libavfilter.so.7
  • libavformat.so.58
  • libavutil.so.56
  • libboost_atomic.so.1.73.0
  • libboost_chrono.so.1.73.0
  • libboost_date_time.so.1.73.0
  • libboost_filesystem.so.1.73.0
  • libboost_system.so.1.73.0
  • libboost_thread.so.1.73.0
  • libbz2.so.1
  • libcap.so.2
  • libdbus-1.so.3
  • libdw.so.1
  • libelf.so.1
  • libffi.so.6
  • libgcrypt.so.11
  • libgif.so.4
  • libgmodule-2.0.so.0
  • libgomp.so.1
  • libgsm.so.1
  • libgssapi_krb5.so.2
  • libgstallocators-1.0.so.0
  • libgstapp-1.0.so.0
  • libgstaudio-1.0.so.0
  • libgstbase-1.0.so.0
  • libgstpbutils-1.0.so.0
  • libgstphotography-1.0.so.0
  • libgstreamer-1.0.so.0
  • libgsttag-1.0.so.0
  • libgstvideo-1.0.so.0
  • libgthread-2.0.so.0
  • libicudata.so.50
  • libicui18n.so.50
  • libicuuc.so.50
  • libjasper.so.1
  • libjbig.so.2.0
  • libjpeg.so.62
  • libk5crypto.so.3
  • libkeyutils.so.1
  • libkrb5.so.3
  • libkrb5support.so.0
  • liblcms2.so.2
  • liblz4.so.1
  • liblzma.so.5
  • libmng.so.1
  • libmp3lame.so.0
  • libnsl.so.1
  • libnuma.so.1
  • libogg.so.0
  • libopenjp2.so.7
  • libopus.so.0
  • liborc-0.4.so.0
  • libpcre.so.1
  • libpng15.so.15
  • libpostproc.so.55
  • libpulse-mainloop-glib.so.0
  • libpulse.so.0
  • libpulsecommon-10.0.so
  • libraw_r.so.19
  • libselinux.so.1
  • libsndfile.so.1
  • libswresample.so.3
  • libswscale.so.5
  • libsystemd.so.0
  • libtheoradec.so.1
  • libtheoraenc.so.1
  • libtiff.so.5
  • libvorbis.so.0
  • libvorbisenc.so.2
  • libvpx.so.6
  • libwebp.so.7
  • libwrap.so.0
  • libx264.so.161
  • libx265.so.192
  • libxcb-glx.so.0
  • libxcb-icccm.so.4
  • libxcb-image.so.0
  • libxcb-keysyms.so.1
  • libxcb-randr.so.0
  • libxcb-render-util.so.0
  • libxcb-render.so.0
  • libxcb-shape.so.0
  • libxcb-shm.so.0
  • libxcb-sync.so.1
  • libxcb-util.so.1
  • libxcb-xfixes.so.0
  • libxcb-xinerama.so.0
  • libxcb-xkb.so.1
  • libxkbcommon-x11.so.0
  • libxkbcommon.so.0
  • libxvidcore.so.4

Library descriptions

Name Description
linux-vdso The "vDSO" (virtual dynamic shared object) is a small shared library that the kernel automatically maps into the address space of all user-space applications. man7
libQt5Multimedia provides a rich set of … C++ classes to handle multimedia content qt
libQt5OpenGL (Deprecated, use Qt GUI instead) provides an OpenGL widget class that can be used just like any other Qt widget, except that it opens an OpenGL display buffer where you can use the OpenGL API to render the contents. qt
libQt5Svg classes for rendering and displaying SVG drawings in widgets and on other paint devices. qt
libQt5Concurrent high-level APIs that make it possible to write multi-threaded programs without using low-level threading primitives qt
libQt5Network APIs for programming applications that use TCP/IP. qt
libQt5Widgets set of UI elements to create classic desktop-style user interfaces. qt
libQt5Gui classes for windowing system integration, event handling, OpenGL and OpenGL ES integration, 2D graphics, basic imaging, fonts and text. qt
libQt5Core mechanism for seamless object communication called signals and slots, object properties/trees/ownership, dynamic cast that works across library boundaries. qt
libGL libGL implements the GLX (OpenGL Extension to the X Window System) interface as well as the main OpenGL API entrypoints. freedesktop
libavutil utility library to aid portable multimedia programming (string functions, number generators, crypto etc.). Not needed by libavcodec and libavformat. ffmpeg
libavcodec generic encoding/decoding framework and contains multiple decoders and encoders for audio, video and subtitle streams, and several bitstream filters. ffmpeg
libavformat generic framework for multiplexing and demultiplexing (muxing and demuxing) audio, video and subtitle streams. ffmpeg
libavfilter generic audio/video filtering framework containing several filters, sources and sinks. ffmpeg
libswscale highly optimized image scaling and colorspace and pixel format conversion operations. ffmpeg
libswresample performs highly optimized audio resampling, rematrixing and sample format conversion operations. ffmpeg
libOpenColorIO A complete color management solution geared towards motion picture production with an emphasis on visual effects and computer animation. opencolorio
libOpenImageIO Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications. openimageio
libOpenImageIO_Util argument parser, filesystem handling, threading etc., linked against Imath, Ilmbase
libIlmImf a library that reads and writes OpenEXR images. openexr
libImath a C++ library of 2D and 3D vector, matrix, and math operations for computer graphics. imath (got split out of OpenEXR)
libIex an exception-handling library. ilmbase / openexr
libIexMath
libHalf 16-bit "half" floating-point type imath (got split out of OpenEXR)
libIlmThread a thread abstraction library for use with OpenEXR and other software packages. ilmbase / openexr
libpthread
libz free, general-purpose, lossless data-compression library for use on virtually any computer hardware and operating system.zlib
libdl Historically, functions in libdl provided for dynamic linking support. This functionality now resides in libc. oracle
libstdc++
libm Under POSIX systems like Linux and BSD, the mathematical functions (as declared in <math.h>) are bundled separately in the mathematical library libm. There are various implementations (GNU, musl, Red Hat, ...). wikipedia
libgcc_s
libc
ld-linux The programs ld.so and ld-linux.so* find and load the shared libraries needed by a program, prepare the program to run, and then run it. man
libpulse-mainloop-glib
libpulse
libglib
libGLX
libX11
libXext
libGLdispatch
libvpx VP8/VP9 codec SDK webmproject
liblzma XZ Utils(?) lossless data compressor. wikipedia
libaom Alliance for Open Media AV1 encoder and decoder. google source
libmp3lame
libopenjp2 open-source JPEG 2000 codec written in C language. OpenJPEG
libopus Opus audio codec opus-codec
libtheoraenc video encoder. theora
libtheoradec video decoder. theora
libvorbis audio decoder(?). xiph
libvorbisenc audio encoder. xiph
libwebp modern image format that provides superior lossless and lossy compression for images on the web. google devs
libx264 encoding video streams into the H.264/MPEG-4 AVC compression format. videoland
libx265 H.265 / HEVC video encoder application library, designed to encode video or images into an H.265 / HEVC encoded bitstream. x265
libxvidcore video decoder and encoder library aimed at providing the best compression efficiency and picture quality possible. xvid
libbz2
libpostproc
libfreetype
libgif
libpng
libjpeg
libraw_r
libtiff
libboost_filesystem The Boost Filesystem Library provides portable facilities to query and manipulate paths, files, and directories. boost
libboost_system Operating system support, including the diagnostics support that will be part of the C++0x standard library. boost
libboost_thread Portable C++ multi-threading. C++03, C++11, C++14, C++17. boost
libboost_chrono Useful time utilities. C++11. boost
libboost_date_time A set of date-time libraries based on generic programming concepts. boost
libboost_atomic C++11-style atomic<>. boost
librt
libgssapi_krb5
libicui18n
libicuuc
libicudata
libgthread
libpulsecommon
libcap
libdbus
libpcre
libxcb
libogg
libnuma
libSM
libICE
libjasper
liblcms2
libgomp
libjbig
libkrb5
libk5crypto
libcom_err
libkrb5support
libkeyutils
libresolv
libX11-xcb
libXtst
libsystemd
libwrap
libsndfile
libasyncns
libattr
libXau
libuuid
libselinux
libXi
liblz4
libgcrypt
libgpg-error
libdw
libnsl
libgsm
libFLAC
libelf

@Simran-B
Copy link
Collaborator Author

Locally updated build image currently fails with:

WARNING: Plugin "/usr/local/plugins/platformthemes/libqgtk2.so" not found, skipping
WARNING: Plugin "/usr/local/plugins/styles/libqgtk2style.so" not found, skipping
ERROR: ldd outputLine: "libxcb-icccm.so.4 => not found"
ERROR: ldd outputLine: "libxcb-image.so.0 => not found"
ERROR: ldd outputLine: "libxcb-keysyms.so.1 => not found"
ERROR: for binary: "/usr/local/plugins/platforms/libqxcb.so"
ERROR: Please ensure that all libraries can be found by ldd. Aborting.

The image seems to be missing the following CentOS packages:

  • xcb-util-image
  • xcb-util-image-devel
  • xcb-util-wm
  • xcb-util-wm-devel
  • xcb-util-keysyms
  • xcb-util-keysyms-devel
  • xcb-util-renderutil
  • xcb-util-renderutil-devel

@callegar

This comment has been minimized.

@rempas
Copy link

rempas commented Jul 28, 2022

Please, for the love of the god!!! Add "libsvtav1" support out of the box! Trying to make it work with Kdenlive and Shotcut has been a Hell and I have not succeeded until today...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Building/Packaging Compile or install issues (excluding CI) Low Priority
Projects
None yet
Development

No branches or pull requests

3 participants