I sometimes get that questions from other developpers and users as well. So I tried to give a comprehensive answers.
Please let me know if you spot anything wrong. I focused a bit more on xcb for reasons.
As stated in the documentation 1, a few packages are required to be installed on your Linux system in order to be able to run the ParaView binary package (here, 5.13.1).
This can also be checked by run ldd
on the paraview-real
binary:
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007aba78696000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007aba77b7a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007aba7988e000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007aba78ead000)
libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007aba76b60000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007aba71000000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007aba73d08000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007aba76b33000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007aba70e10000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007aba741b6000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007aba6e388000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007aba73c3e000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007aba66711000)
libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007aba66659000)
libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007aba66627000)
libcrypt.so.1 => /usr/lib/libcrypt.so.1 (0x00007aba665a1000)
libutil.so.1 => /usr/lib/libutil.so.1 (0x00007aba71295000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007aba62e1b000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007aba62930000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007aba61e7e000)
Lets inspect each of these libraries and figure out why ParaView doesn’t ship them but instead rely on them being on the system. The packages needed to provide all these libraries are the following (Arch Linux)
libx11
libxcursor
libxrender
libxfixes
libxau
libxdmcp
libxcb
libglvnd
glibc
gcc-libs
libxcrypt
Let’s inspect each of these packages to figure out why each of them is not shipped.
libx11 2 3, libxcursor, libxrender, libxfixes, libxau, libxdmcp are all parts of Xlib which is an ABI stable lib used for windows management by the Xorg server. It is expected to be present on all Linux distributions with a graphical environment. It can be replaced by Wayland.
As it is ABI stable and always installed, there is no need to provide our own.
libxcb 4 5 is a reimplementation of the low-level part of Xlib, which Xlib now depends on. It is also expected to be present for the same reason. It is intended as an ABI stable library and is very much one according to ABI laboratory.
As it is ABI stable and always installed, there is no need to provide our own.
Libglvnd 6 is the proposed stable ABI from NVIDIA for rendering and is designed as such. It is also always installed as long as a graphical driver is installed on the Linux distribution, which is needed to do any kind of rendering.
As it is intended to be ABI stable and always installed, there is no need to provide our own.
glibc 7 is an implementation of the C standard and is in essence a ABI stable library. It is also always installed on almost all Linux distributions. There is some alternative (musl) which means our binary is not compatible with OSes relying on these.
As it is (almost) ABI stable and (almost) always installed, there is no need to provide our own.
gcc-libs (libstdc++) 8 is the library providing the C++ standard library which is in essence a ABI stable library. Even the main alternative, clang, works with libstdc++ instead of libc++ (the clang implementation of the C++ standard) when needed.
As it is intended to be ABI stable and always installed, there is no need to provide our own.
libxcrypt 9 is a simple hashing library that is almost always provided by default on linux distribution and has a stable ABI.
As it is intended to be ABI stable and always installed, there is no need to provide our own but it could be considered for shipping.
Something that can be considered missing from our documentation is the minimum version of these libraries, hopefully, Qt provides their own list with versions, which should be a good starting point 10.
This analysis was performed using the resources provided, especially ABI laboratory 11, and supported by EDF