Remove .bak files.

This commit is contained in:
Zeckmathederg
2025-07-18 13:08:11 -06:00
parent f8cf83e332
commit c348e21804
3 changed files with 1 additions and 670 deletions

1
.gitignore vendored
View File

@ -3,4 +3,5 @@ version.ent
blfs-bootscripts*
xxx
*.swp
*.bak
local.mk

View File

@ -1,312 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY libglvnd-root "https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive">
<!ENTITY libglvnd-download
"&libglvnd-root;/v&libglvnd-version;/libglvnd-v&libglvnd-version;.tar.gz">
]>
<sect1 id="libglvnd" xreflabel="libglvnd-&libglvnd-version;">
<?dbhtml filename="libglvnd.html"?>
<title>libglvnd-&libglvnd-version;</title>
<indexterm zone="libglvnd">
<primary sortas="a-glvnd">libglvnd</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to libglvnd</title>
<para>
The libglvnd package dispatchs API calls to a given driver vendor at
runtime. Some of the libraries are simply wrappers to the main
dispatcher. Drivers that are built with libglvnd in mind provide their
own OpenGL implementations. For <xref linkend="mesa"/>, it will install
<filename class="libraryfile">libEGL_mesa</filename> and <filename
class="libraryfile">libGLX_mesa</filename>. For <xref linkend="nvidia"/>,
it will provide <filename class="libraryfile">libEGL_nvidia</filename>,
<filename class="libraryfile">libGLESv2_nvidia</filename>, and
<filename class="libraryfile">libGLX_nvidia</filename>. Each
implementation is specific to the driver it comes from.
</para>
<para>
The benefit of doing it that way is that a driver doesn't have to obey to
the architecture an OpenGL vendor applies nor being absorbed by the
vendor.
</para>
<important><para>
Read <xref linkend="aboutgl"/> to decide if you want to install OpenGL
implementations from this provider.
</para></important>
<itemizedlist spacing="compact">
<listitem>
<para>
Download: <ulink url="&libglvnd-download;"/>
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">libglvnd Dependencies</bridgehead>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="xorg7-lib"/>
<footnote><para>
If <xref linkend="xorg7-lib"/> is not installed, this package will not
provide <filename class="libraryfile">libGL</filename> or <filename
class="libraryfile">libGLX</filename>. <filename
class="libraryfile">libOpenGL</filename> will still be built. Many
build systems will expect <filename
class="libraryfile">libGL</filename> to be present, so it is heavily
recommended to install <xref linkend="xorg7-lib"/> before installing
this package.
</para></footnote>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of libglvnd</title>
<para>
Install libglvnd by running the following commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson setup --prefix=/usr \
--buildtype=release \
-D gles1=false \
-D hgl=false \
.. &amp;&amp;
ninja</userinput></screen>
<para>
Now as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ninja install</userinput></screen>
</sect2>
<sect2 role="installation">
<title>lib32 Installation of libglvnd</title>
<para>
Install lib32-libglvnd by running the following commands:
</para>
<screen><userinput>rm -rf * &amp;&amp;
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
meson setup --prefix=/usr \
--libdir=/usr/lib32 \
--buildtype=release \
-D gles1=false \
-D hgl=false \
.. &amp;&amp;
ninja</userinput></screen>
<para>
Now as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>DESTDIR=$PWD/DESTDIR ninja install &amp;&amp;
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &amp;&amp;
rm -rf DESTDIR &amp;&amp;
ldconfig</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
&options-meson;
&meson-buildtype-release;
<para>
<parameter>-D gles1=false</parameter>: This disables an obsolete version
of OpenGL ES.
</para>
<para>
<parameter>-D hgl=false</parameter>: This disables targetting Haiku by
default as this guide is for Linux, not Haiku.
</para>
<para>
<option>-D gles2=false</option>: If you don't need OpenGL ES, use
this option. Be sure to read <xref linkend="aboutgles"/>.
</para>
</sect2>
<sect2>
<title>List of packages With Issues</title>
<para>
While installing this package can help prevent a lot of issues down the
road, this package can come with some caveats and all of them are in
relation to BLFS. BLFS naturally expects that the only OpenGL vendor is
Mesa, so the instructions will thus assume
that this package has not been installed. The following have known
issues, and solutions:
</para>
<itemizedlist>
<listitem>
<para>Mesa: In BLFS, a patch is listed in
the <ulink url="&blfs-svn;/x/mesa.html">Mesa</ulink> page and will
instruct you to apply it. This will cause an issue unless you explictly
tell the build system not to link against this package's libraries,
which means having it build its own OpenGL implementations, which will
cause issues of its own. The exact error the patch causes is a linking
error in the final set of steps when building the demos as it expects
functions that are not found in the specific libraries from this
package it tries to link against.</para>
<para>Either don't apply that patch or follow this book's <xref
linkend="mesa"/> page instead. Thanks to
Mesa's build system autodetecting if
libglvnd is installed, the installation
instructions don't change that much between this book and BLFS. The
main differences are lib32 support and not listing the demos
patch.</para>
</listitem>
<listitem>
<para>GLU: In BLFS, the <ulink
url="&blfs-svn;/x/glu.html">GLU</ulink> page explictly sets the GL
vendor to be Mesa as the build system will
otherwise expect libglvnd and
<filename class="libraryfile">libOpenGL</filename> to be installed.
While the BLFS page instructions lead to a successful compilation, the
resulting library does not function properly. You should follow the
<ulink url="&slfs-website;/general/glu.html">SLFS GLU</ulink> page
instead. It also does check if the vendor is
Mesa.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>None</seg>
<seg>
libEGL,
libGL,
libGLESv2,
libGLX,
libGLdispatch, and
libOpenGL
</seg>
<seg>
/usr/include/{EGL,GLES{2,3},glvnd,KHR}
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="glvnd-libEGL">
<term><filename class="libraryfile">libEGL</filename></term>
<listitem>
<para>
contains EGL window-system API functions
</para>
<indexterm zone="libglvnd glvnd-libEGL">
<primary sortas="b-glvnd-libEGL">libEGL</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glvnd-libGL">
<term><filename class="libraryfile">libGL</filename></term>
<listitem>
<para>
is the <quote>legacy</quote> OpenGL library; wrapper library
calling <filename class="libraryfile">libGLdispatch
</filename> and <filename class="libraryfile">libGLX</filename>
</para>
<indexterm zone="libglvnd glvnd-libGL">
<primary sortas="b-glvnd-libGL">libGL</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glvnd-libGLESv2">
<term><filename class="libraryfile">libGLESv2</filename></term>
<listitem>
<para>
exposes OpenGL ES 2.x and 3.x entrypoints; wrapper library calling
<filename class="libraryfile">libGLdispatch</filename>
</para>
<indexterm zone="libglvnd glvnd-libGLESv2">
<primary sortas="b-glvnd-libGLESv2">libGLESv2</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glvnd-libGLX">
<term><filename class="libraryfile">libGLX</filename></term>
<listitem>
<para>
dispatches GLX extensions to the right vendor
</para>
<indexterm zone="libglvnd glvnd-libGLX">
<primary sortas="b-glvnd-libGLX">libGLX</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glvnd-libGLdispatch">
<term><filename class="libraryfile">libGLdispatch</filename></term>
<listitem>
<para>
dispatches OpenGL and TLS to the right vendor
</para>
<indexterm zone="libglvnd glvnd-libGLdispatch">
<primary sortas="b-glvnd-libGLdispatch">libGLdispatch</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glvnd-libOpenGL">
<term><filename class="libraryfile">libOpenGL</filename></term>
<listitem>
<para>
is the <quote>new</quote> OpenGL library and exposes OpenGL
entrypoints; wrapper library calling <filename
class="libraryfile"> libGLdispatch</filename>
</para>
<indexterm zone="libglvnd glvnd-libOpenGL">
<primary sortas="b-glvnd-libOpenGL">libOpenGL</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -1,358 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY vk-common "vulkan-sdk-&vulkan-sdk;">
<!ENTITY kg-url "https://github.com/KhronosGroup/">
]>
<sect1 id="vulkan-sdk" xreflabel="Vulkan-SDK-&vulkan-sdk;">
<?dbhtml filename="vulkan-sdk.html"?>
<title>Vulkan-SDK-&vulkan-sdk;</title>
<indexterm zone="vulkan-sdk">
<primary sortas="a-vulkan-sdk">Vulkan-SDK</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Vulkan-SDK</title>
<para>
This page covers the installation of the Vulkan headers and the loader,
the SPIR-V headers and tools, and the glslang compiler.
</para>
<para>
Vulkan is a graphics API that allows a wealth of control over how each
step is handled in the graphics pipeline. It is used by Steam's Proton
and <xref linkend="dxvk"/>. OpenGL is much higher level and often leads
to worse performance. However, it is up to the developer to implement
either. This SDK doesn't provide any Vulkan driver, just what is needed
for Vulkan applications and drivers.
</para>
<para>
The SPIR-V tools process SPIR-V modules, often attributed to shader
code/binaries. Khronos APIs, like OpenGL and Vulkan, make use of them.
The tooling provides a base other applications can use to convert to and
from.
</para>
<para>
Glslang is a reference compiler and validator for the GLSL (OpenGL Shader
Language). It is one of the compilers that can convert SPIR-V, such as
GLSL to SPIR-V. In some cases, packages can compile shaders and turn
them into header files which get included by a C/C++ file(s). In OpenGL,
this process doesn't need glslang at all as OpenGL functions directory
can compile shaders from a string and be binded for execution on every
frame. With Vulkan, a separate shader compiler is needed to facilitate
shader compilation.
</para>
&long-build-time;
<bridgehead renderas="sect3">Vulkan-SDK Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="cmake"/> and <xref linkend="xorg7-lib"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="wayland"/>
</para>
<bridgehead renderas="sect3">BLFS Equivalent Packages</bridgehead>
<para>This combined page installs what would be in BLFS:</para>
<itemizedlist>
<listitem><para>
<ulink url="&blfs-svn;/x/vulkan-headers.html">Vulkan-Headers</ulink>
</para></listitem>
<listitem><para>
<ulink url="&blfs-svn;/x/vulkan-loader.html">Vulkan-Loader</ulink>
</para></listitem>
<listitem><para>
<ulink url="&blfs-svn;/general/spirv-headers.html">SPIRV-Headers</ulink>
</para></listitem>
<listitem><para>
<ulink url="&blfs-svn;/general/spirv-tools.html">SPIRV-Tools</ulink>
</para></listitem>
<listitem><para>
<ulink url="&blfs-svn;/x/glslang.html">Glslang</ulink>
</para></listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Downloading Vulkan-SDK</title>
<para>
First, create a list of files to be downloaded:
</para>
<screen><userinput>cat &gt; &vk-common;-list &lt;&lt; "EOF"
<literal>Vulkan-Headers/archive/&vk-common;/Vulkan-Headers-&vk-common;.tar.gz
Vulkan-Loader/archive/&vk-common;/Vulkan-Loader-&vk-common;.tar.gz
SPIRV-Headers/archive/&vk-common;/SPIRV-Headers-&vk-common;.tar.gz
SPIRV-Tools/archive/&vk-common;/SPIRV-Tools-&vk-common;.tar.gz
glslang/archive/&vk-common;/glslang-&vk-common;.tar.gz</literal>
EOF</userinput></screen>
<para>
To download the needed files using <xref linkend='wget'/>,
use the following commands:
</para>
<screen><userinput>mkdir &vk-common; &amp;&amp;
cd &vk-common; &amp;&amp;
grep -v '^#' ../&vk-common;-list | wget -i- -c \
-B &kg-url;</userinput></screen>
</sect2>
<sect2 role="installation">
<title>Installation of Vulkan-SDK</title>
&as_root;
<para>
First, start a subshell that will exit on error:
</para>
<screen><userinput>bash -e</userinput></screen>
<para>
Install all of the packages by running the following commands:
</para>
<screen><userinput>for package in {Vulkan-{Headers,Loader},SPIRV-{Headers,Tools},glslang}
do
longpackage=$package-&vk-common;.tar.?z*
packagedir=${longpackage%.tar.?z*}
tar -xf $longpackage
pushd $packagedir
mkdir build
cd build
case $package in
SPIRV-Tools )
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D SPIRV_WERROR=OFF \
-D BUILD_SHARED_LIBS=ON \
-D SPIRV_TOOLS_BUILD_STATIC=OFF \
-D SPIRV-Headers_SOURCE_DIR=/usr \
-G Ninja ..
;;
glslang )
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \
-D BUILD_SHARED_LIBS=ON \
-D GLSLANG_TESTS=OFF \
-G Ninja ..
;;
* )
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-G Ninja ..
;;
esac
ninja
as_root ninja install
popd
rm -rf $packagedir
done</userinput></screen>
<para>For multilib:</para>
<screen><userinput>for package in {Vulkan-Loader,SPIRV-Tools,glslang}
do
longpackage=$package-&vk-common;.tar.?z*
packagedir=${longpackage%.tar.?z*}
tar -xf $longpackage
pushd $packagedir
mkdir build
cd build
case $package in
SPIRV-Tools )
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_LIBDIR=lib32 \
-D CMAKE_BUILD_TYPE=Release \
-D SPIRV_WERROR=OFF \
-D BUILD_SHARED_LIBS=ON \
-D SPIRV_TOOLS_BUILD_STATIC=OFF \
-D SPIRV-Headers_SOURCE_DIR=/usr \
-G Ninja ..
;;
glslang )
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_LIBDIR=lib32 \
-D CMAKE_BUILD_TYPE=Release \
-D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \
-D BUILD_SHARED_LIBS=ON \
-D GLSLANG_TESTS=OFF \
-G Ninja ..
;;
* )
ASFLAGS+=" --32" CFLAGS+=" -m32" \
CXXFLAGS+=" -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_LIBDIR=lib32 \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-G Ninja ..
;;
esac
ninja
DESTDIR=$PWD/DESTDIR ninja install
as_root cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR
as_root /sbin/ldconfig
popd
rm -rf $packagedir
done</userinput></screen>
<para>
Finally, exit the shell that was started earlier:
</para>
<screen><userinput>exit</userinput></screen>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
glslang,
glslang-validator (symlink to glslang),
spirv-as,
spirv-cfg,
spirv-dis,
spirv-lesspipe.sh,
spirv-link,
spirv-lint,
spirv-objdump,
spirv-opt,
spirv-reduce,
spirv-remap, and
spirv-val
</seg>
<seg>
libglslang,
libglslang-default-resource-limits,
libSPIRV,
libSPIRV-Tools-diff,
libSPIRV-Tools-link,
libSPIRV-Tools-lint,
libSPIRV-Tools-opt,
libSPIRV-Tools-reduce,
libSPIRV-Tools-shared,
libSPIRV-Tools,
libSPVRemapper, and
libvulkan
</seg>
<seg>
/usr/include/glslang,
/usr/include/spirv,
/usr/include/spirv-tools,
/usr/include/vk_video,
/usr/include/vulkan,
/usr/lib/cmake/glslang,
/usr/lib/cmake/SPIRV-Tools,
/usr/lib/cmake/VulkanLoader,
/usr/share/cmake/VulkanHeaders,
/usr/share/cmake/SPIRV-Headers, and
/usr/share/vulkan
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="glslang">
<term><command>glslang</command></term>
<listitem>
<para>
is a reference GLSL and SPIR-V shader compiler
</para>
<indexterm zone="vulkan-sdk glslang">
<primary sortas="b-glslang">glslang</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libglslang">
<term><filename class="libraryfile">libglslang</filename></term>
<listitem>
<para>
contains backend functions for the <command>glslang</command>
frontend
</para>
<indexterm zone="vulkan-sdk libglslang">
<primary sortas="c-libglslang">libglslang</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libSPIRV">
<term><filename class="libraryfile">libSPIRV</filename></term>
<listitem>
<para>
processes and generates SPIR-V binaries
</para>
<indexterm zone="vulkan-sdk libSPIRV">
<primary sortas="c-libSPIRV">libSPIRV</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libSPIRV-Tools">
<term><filename class="libraryfile">libSPIRV-Tools</filename></term>
<listitem>
<para>
contains functions for processing SPIR-V modules
</para>
<indexterm zone="vulkan-sdk libSPIRV-Tools">
<primary sortas="c-libSPIRV-Tools">libSPIRV-Tools</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libvulkan">
<term><filename class="libraryfile">libvulkan</filename></term>
<listitem>
<para>
provides the Vulkan API and core support for graphics drivers
</para>
<indexterm zone="vulkan-sdk libvulkan">
<primary sortas="c-libvulkan">libvulkan</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>