About OpenGL

#### Gaming Linux® From Scratch - Version 13.0

### Chapter 10. Graphics APIs

- Prev

  Graphics APIs

- Next

  libglvnd-1.7.0

- Up
- Home

# About OpenGL

OpenGL is an older high-level graphics API which most graphical packages on Linux use today.

In BLFS, OpenGL libraries (`libGL` and others) are installed from Mesa. Multiple Linux distributions install those libraries from libglvnd-1.7.0. GLFS has made the same decision as those distributions and expects you to install libglvnd-1.7.0. Despite this, Mesa-25.3.5 is required for a lot of systems because it provides necessary drivers, not just OpenGL libraries. GLFS makes the instructions in that package request libglvnd support so that Mesa does not build its own OpenGL libraries.

### Note

All packages support libglvnd in BLFS. Whenever BLFS says a package depends on Mesa, it means that package will need OpenGL libraries (libglvnd-1.7.0), libgbm (libgbm-1.0.4 or libgbm from Mesa-25.3.5), and/or DRI (DRI from Mesa-25.3.5). This book installs libgbm-1.0.4 by default. Certain pages will also link to GLU. However, you must install this book's version of GLU-9.0.3 to ensure compatibility with libglvnd.

If you haven't installed any packages relying on OpenGL yet, go ahead and install libglvnd-1.7.0 and the driver for your GPU. If you have installed Mesa from BLFS, you probably have the OpenGL libraries provided by Mesa. The main issues you will come across by transtioning are soname differences in `libGL` as well as potential ABI issues. As a result, many packages will require reinstallation in order to use the right libraries. For that reason, transitioning isn't recommended and it might be better to reinstall LFS and its subprojects with libglvnd in mind.

While you can install most of the packages in GLFS with Mesa's OpenGL libraries, and even enable the installation of those libraries from Mesa in this book by removing a documented option, it is strongly recommended that you don't. GLFS nor SLFS support that configuration.

There is more information regarding OpenGL and libglvnd. If you just want to go through the book as intended, feel free to skip to installing libglvnd.

## Why Does GLFS Install libglvnd

The primary reason GLFS expects users to install libglvnd is that NVIDIA and several packages and AppImages require libglvnd either directly or indirectly. For NVIDIA, it requires libglvnd outright, while AppImages suffer from the problem mentioned earlier in this section: differences in sonames, as well as a missing library. `libGL` has a soname that's different from Mesa's and `libGLX` is not included from Mesa. This breaks most AppImages. As for other packages, their build systems can cause configuration to fail without libglvnd as `libOpenGL` doesn't exist, and the build systems don't want to combine `libGL` with `libEGL`.

These issues leak into Supplemental LFS, like with Hyprland and OBS-Studio. Flatpak may suffer from the same issue. BLFS may suffer from them at some point, depending on when projects make changes that require libglvnd in some form.

- Prev

  Graphics APIs

- Next

  libglvnd-1.7.0

- Up
- Home