# Why do certain packages need to be installed when using the ParaView binary package ?

**URL:** https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719
**Category:** Development
**Created:** [May 26, 2025, 3:55pm UTC](https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719 "2025-05-26T15:55:50Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [May 26, 2025, 3:55pm UTC](https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719/1 "2025-05-26T15:55:50Z")

</div>

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](https://docs.paraview.org/en/latest/UsersGuide/introduction.html#getting-the-software), 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:

```auto
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)

```auto
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](https://en.wikipedia.org/wiki/Xlib) [3](https://gitlab.freedesktop.org/xorg/lib/libx11), 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](https://discourse.paraview.org/t/how-does-paraview-work-with-wayland-and-how-will-it-work-in-the-future/16770).

As it is ABI stable and always installed, there is no need to provide our own.

libxcb [4](https://gitlab.freedesktop.org/xorg/lib/libxcb) [5](https://en.wikipedia.org/wiki/XCB) 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.

 ![image](https://discourse.paraview.org/uploads/default/original/3X/2/6/26a8001c80fcb4b19ee4d92c3556d5d6410d462d.png)

Libglvnd [6](https://github.com/NVIDIA/libglvnd) 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](https://en.wikipedia.org/wiki/Glibc) 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](https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) 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](https://github.com/besser82/libxcrypt) 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](https://doc.qt.io/qt-6/linux-requirements.html).

This analysis was performed using the resources provided, especially ABI laboratory [11](https://abi-laboratory.pro/index.php), and supported by EDF

 ![](https://discourse.paraview.org/uploads/default/original/3X/7/b/7bb19d0529bc324cb7103e1d0c7ecef02f2b3d9b.png)

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [May 26, 2025, 3:56pm UTC](https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719/2 "2025-05-26T15:56:36Z")

</div>

Please, anyone, feel free to comment my approach.

Still tagging for visibility:  
@ben.boeckel @nicolas.vuaille @cory.quammen

---

<div class="post-metadata">

### Author: ![woodscn](https://discourse.paraview.org/user_avatar/discourse.paraview.org/woodscn/32/3226_2.png) [@woodscn](https://discourse.paraview.org/u/woodscn)
#### Post date: [April 30, 2026, 5:31pm UTC](https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719/3 "2026-04-30T17:31:08Z")

</div>

Running ldd on pvserver-real (and pvdataserver-real) under 6.0.1 lists dependencies on both libXcursor and libXrender. Is that expected?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [May 4, 2026, 8:33am UTC](https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719/4 "2026-05-04T08:33:22Z")

</div>

This is definitely unexpected, it seems to be relatively new and related to this VTK change: [https://gitlab.kitware.com/vtk/vtk/-/merge\_requests/12360#note\_1809607](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/12360#note_1809607)

Ill investigate

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [May 5, 2026, 9:02am UTC](https://discourse.paraview.org/t/why-do-certain-packages-need-to-be-installed-when-using-the-paraview-binary-package/16719/5 "2026-05-05T09:02:04Z")

</div>

Currently being fixed here: [https://gitlab.kitware.com/vtk/vtk/-/merge\_requests/13204](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/13204)
