File libglvnd.spec of Package libglvnd
#
# spec file for package libglvnd
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: libglvnd
Version: 1.8.x+git.20240517T142418~606f662
Release: 1.1
Summary: The GL Vendor-Neutral Dispatch library
License: MIT
Group: Development/Libraries/C and C++
URL: https://github.com/NVIDIA/libglvnd
# https://github.com/NVIDIA/libglvnd/archive/v%{version}.tar.gz
Source: %{name}-%{version}.tar.xz
Source1: baselibs.conf
Source2: libglvnd.rpmlintrc
Patch1: disable-glx-tests.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: python3-xml
BuildRequires: pkgconfig(glproto)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
Provides: libglvnd0 = %{version}-%{release}
Obsoletes: libglvnd0 <= %{version}-%{release}
Provides: Mesa-libGLESv1_CM1
Obsoletes: Mesa-libGLESv1_CM1
Provides: Mesa-libGLESv2-2
Obsoletes: Mesa-libGLESv2-2
Requires: Mesa-dri
%description
Vendor-neutral dispatch layer for arbitrating OpenGL API calls between
multiple vendors on a per-screen basis, as described by Andy Ritger's
OpenGL ABI proposal.
%package devel
Summary: Development files for libglvnd
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
%description devel
Vendor-neutral dispatch layer for arbitrating OpenGL API calls between
multiple vendors on a per-screen basis, as described by Andy Ritger's
OpenGL ABI proposal. This package contains the required files for
development.
%prep
%autosetup -p1
# fix env shebang to call py3 directly
sed -i -e "1s|#!.*|#!%{_bindir}/python3|" src/generate/*.py
%build
./autogen.sh
%configure \
%if 0%{?suse_version} < 1330
--libdir=%{_prefix}/X11R6/%{_lib} \
%endif
--disable-static \
--disable-headers \
--disable-silent-rules
%make_build
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
>%{_builddir}/%{name}-%{version}/filelist.rpm
%if 0%{?suse_version} < 1330
mkdir -p %{buildroot}/%{_libdir}/pkgconfig
mv %{buildroot}%{_prefix}/X11R6/%{_lib}/pkgconfig/*.pc %{buildroot}/%{_libdir}/pkgconfig
if [ "%{_lib}" == "lib64" ]; then
mkdir -p %{buildroot}/%{_sysconfdir}/ld.so.conf.d
cat > %{buildroot}/%{_sysconfdir}/ld.so.conf.d/%{name}.conf << EOF
%{_prefix}/X11R6/%{_lib}
%{_prefix}/X11R6/lib
EOF
echo "%config %{_sysconfdir}/ld.so.conf.d/%{name}.conf" >%{_builddir}/%{name}-%{version}/filelist.rpm
fi
%endif
mkdir -p %{buildroot}%{_docdir}/%{name}/pkgconfig
mv %{buildroot}/%{_libdir}/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc \
%{buildroot}%{_docdir}/%{name}/pkgconfig
%check
%make_build check
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files -f filelist.rpm
%doc README.md
%{_docdir}/%{name}/pkgconfig
%if 0%{?suse_version} < 1330
%dir %{_prefix}/X11R6
%dir %{_prefix}/X11R6/%{_lib}
%{_prefix}/X11R6/%{_lib}/lib*.so.*
%else
%{_libdir}/lib*.so.*
%endif
%files devel
%if 0%{?suse_version} < 1330
%dir %{_prefix}/X11R6
%dir %{_prefix}/X11R6/%{_lib}
%{_prefix}/X11R6/%{_lib}/lib*.so
%else
%{_libdir}/lib*.so
%endif
%{_libdir}/pkgconfig/*.pc
%{_includedir}/glvnd/
%changelog
* Sun Sep 21 2025 obs-service-tar-scm@invalid
- Update to version 1.8.x+git.20240517T142418~606f662:
* Haiku: guard calls to fRenderer in HGL
* tests: Add _GLOBAL_OFFSET_TABLE_ to PLATFORM_SYMBOLS
* configure.ac: enable 64-bit file API where availablie
* meson.build: wire loongarch64_tsd dispatch type
* EGL: Fix error reporting for EGL_PLATFORM_DEVICE_EXT
* Mon Dec 26 2022 Robert Herb <proletheus@freenet.de>
- using latest sources fro GIT
* Wed Dec 7 2022 Dirk Müller <dmueller@suse.com>
- update to 1.6.0:
* Read gl.symbols when generating stubs for libGL.so
* Update GL headers and XML files
* Add support for loongarch64
* GLX: Fix assembly stubs for x32
* Fix pthreads lookup on FreeBSD
* Sat Oct 1 2022 Dirk Müller <dmueller@suse.com>
- update to 1.5.0:
* Add BTI landing pads for aarch64
* Set current thread state to NULL in teardown
* Moving setspecific to before DestroyThreadState
* Fix a memory leak in libGLdispatch
* Use assembly stubs on armv6
- drop libglvnd-add-bti.patch (upstream)
* Thu Jul 14 2022 Stefan Dirsch <sndirsch@suse.com>
- let libglvnd require Mesa-dri so GL drivers are available on
Wayland-only desktop installations (boo#1201474)
* Thu Mar 3 2022 Stefan Dirsch <sndirsch@suse.com>
- provide/obsolete Mesa-libGLESv1_CM1 and Mesa-libGLESv2-2 packages
(bsc#1196576)
* Thu Feb 24 2022 Guillaume GARDET <guillaume.gardet@opensuse.org>
- Update libglvnd-add-bti.patch from latest upstream submission
* Fri Jan 21 2022 Guillaume GARDET <guillaume.gardet@opensuse.org>
- Re-enable asm on aarch64
- Add patch to fix run with BTI enabled on aarch64:
* libglvnd-add-bti.patch - boo#1188928
* Tue Jan 4 2022 Dirk Müller <dmueller@suse.com>
- update to 1.4.0:
* tests cleanups
* Update bin/symbols-check.py from mesa/mesa@6f854145
* Remove extra paragraph from license text.
* Add one more missing dep_x11_headers
* Update uthash to v2.3.0
* EGL: Add support for eglQueryDisplayAttribKHR and NV.
* Wed Nov 17 2021 Guillaume GARDET <guillaume.gardet@opensuse.org>
- Disable asm on aarch64 Tumbleweed due to issue with BTI - boo#1188928
* Wed Oct 20 2021 Stefan Dirsch <sndirsch@suse.com>
- libglvnd.rpmlintrc
* workaround for future buildcheck (boo#1191763)
* Mon Sep 27 2021 Stefan Dirsch <sndirsch@suse.com>
- covers jira#SLE/SLE-18743
* Fri Jul 23 2021 Michael Pujos <pujos.michael@gmail.com>
- update to 1.3.3, fixes boo#1188640
* Mon Aug 31 2020 Stefan Dirsch <sndirsch@suse.com>
- version 1.3.2 needed for jira#SLE/SLE-12880, jira#SLE/SLE-12882
* Mon Aug 17 2020 Dirk Mueller <dmueller@suse.com>
- update to 1.3.2:
* Update GL/gl.h to match Mesa.
* GLdispatch: Improve the x86 tsd stubs performance.
* GLdispatch: Define dynamic dispatch stubs at compile time.
* GLdispatch: Change entry_generate_default_code to take an index.
* GLdispatch: Use all 4096 dynamic dispatch stubs.
* Remove -Werror from default CFLAGS
- run tests
- add disable-glx-tests.patch: disable tests that require X
- remove 0001-include-install-GL-headers-when-GL-is-enabled.patch
0002-Add-a-configure-option-to-disable-glesv1-or-glesv2.patch
0003-egl-Sync-with-Khronos.patch - upstream
* Sun Nov 24 2019 Stefan Dirsch <sndirsch@suse.com>
- removed n_0001-GL-Bump-GL-version-to-9-2.patch, which is no
longer needed with xorg-server 1.20.6
* Thu Nov 7 2019 Stefan Dirsch <sndirsch@suse.com>
- This release is needed for latest Mesa update in order to
support latest GPUs including Intel (jsc#SLE-7962, jsc#SLE-8024,
jsc#SLE-8022, jsc#SLE-10182)
* Fri Oct 25 2019 Stefan Dirsch <sndirsch@suse.com>
- 0001-include-install-GL-headers-when-GL-is-enabled.patch
* A typo made it depend on EGL instead.
- 0002-Add-a-configure-option-to-disable-glesv1-or-glesv2.patch
* Because mesa can be built without glesv1 so it breaks
autodetection. Fixes: https://bugs.archlinux.org/task/64032
('mesa-demos doesn't build, unable to find GLES/gl.h')
- 0003-egl-Sync-with-Khronos.patch
* Reserve enums 0x34A0..0x34AF for ANGLE project. (#93)
Closes: https://gitlab.freedesktop.org/glvnd/libglvnd/issues/193
* Mon Oct 7 2019 Stefan Dirsch <sndirsch@suse.com>
- move gl, egl, glesv1_cm and glesv2 pkgconfig files to doc
directory, so these can be picked up by Mesa build; no longer
require Mesa devel subpackages ...
* Mon Oct 7 2019 Stefan Dirsch <sndirsch@suse.com>
- reverting inclusion of GL, EGL, GLES, GLES2, GLES3 headers;
no longer let libglvnd-devel package provide and obsolete
corresponding Mesa gl, egl, gles* devel subpackages; headers
just aren't compatible; instead require them ...
- supersedes patches:
* n_0001-eglplatform-fix-mesa-specific-defines.patch
* u_add-gl3ext.h
* Sun Oct 6 2019 Stefan Dirsch <sndirsch@suse.com>
- let libglvnd-devel also provide/obsolete Mesa-libGLESv3-devel
* Fri Sep 27 2019 Stefan Dirsch <sndirsch@suse.com>
- let libglvnd-devel provide/obsolete some of previous Mesa devel
packages:
* Mesa-libGL-devel
* Mesa-libEGL-devel
* Mesa-libGLESv1_CM-devel
* Mesa-libGLESv2-devel
* Mesa-KHR-devel
- u_add-gl3ext.h
* adds missing include/GLES/gl3ext.h
* Thu Sep 26 2019 Tobias Klausmann <tobias.klausmann@freenet.de>
- Update to version 1.2.0:
* Changes:
+ Libglvnd now includes and installs the header files for OpenGL, GLES, EGL,
and GLX.
+ Added pkg-config files for each library.
+ The X11 libraries are now an optional dependency if you're not building
GLX.
- n_0001-GL-Bump-GL-version-to-9-2.patch
* with a version of 1.2 the XServer build fails; set the version accordingly to
allow XServer builds again.
- n_0001-eglplatform-fix-mesa-specific-defines.patch
* the XServer fails to build; add the mesa specific defines to eglplatform, to
let it build again.
* Tue Mar 19 2019 Stefan Dirsch <sndirsch@suse.com>
- Update to release 1.1.1
* Fixed a potential race condition with entrypoint patching
* Fixed the TSD dispatch stubs for PPC64LE
* Fixed a segfault when generating GLX dispatch stubs for AARCH64
* Mon Aug 27 2018 sndirsch@suse.com
- Update to release 1.1.0
* Changes
+ Update the OpenGL XML and header files.
+ EGL: Remove a few unused functions in egldispatchstubs.c.
+ GLdispatch: Add a version script for the TSD build.
+ Some fixes for "make dist"
+ GLdispatch: Use --version-script instead -export-symbols.
+ Merge branch 'freebsd-fixes'
+ Add a (void*) cast for the last parameter when calling mincore.
+ Use sh instead of bash for the test scripts.
+ configure: Recognize both "x86_64" and "amd64" for host_cpu.
+ configure: Check if linking against libdl is necessary.
+ GL: Expand glapi_gen_libglglxstubs in the makefile.
+ Move the glapi_gen_libglglxstubs function into the GL makefile.
+ vnd-glapi: Change glapi_gen_mapi to a makefile variable.
+ Move the glapi_gen_mapi function into the vnd-glapi makefile.
+ generate: Remove glapi_gen_libopengl_exports.
+ GL: Don't generate g_glapi_mapi_gl_tmp.h
+ Merge pull request #150 from aaronp24/work-around-xorgproto-api-break
+ Merge pull request #153 from RAOF/fix-egl-platform-detection-crash
+ Handle dlsym succeeding with info.dli_sname == NULL.
+ Merge pull request #152 from kbrenneman/fix-eglMakeCurrent-bad-display
+ Always return an error from eglMakeCurrent if the EGLDispaly is invalid
+ GLX: Work around 'X_GLXCreateContextAtrribsARB' typo fix API break
+ Merge pull request #148 from kbrenneman/bump-library-versions
+ Bump the version numbers in the library filenames.
+ Merge pull request #143 from kbrenneman/gldispatch-fix-execmem
+ GLdispatch: Fix the allocation size for the dynamic stubs.
+ GLdispatch: Remove obsolete #ifdefs from u_execmem.c.
+ Merge pull request #140 from kbrenneman/add-GLX_EXT_no_config_context
+ tests: Only use glXCreateContext in testglxmakecurrent.
+ tests: Add a test for creating GLX contexts.
+ tests/GLX_dummy: Add a vendor-provided create context function
+ tests: Add a dummy attribute for glXQueryContext.
+ tests: Add support for GLX_EXT_no_context_config to GLX_dummy
+ tests: Remove the vendor dispatch stub for glXCreateContextAttribsARB.
+ Add support for GLX_EXT_no_config_context.
* Thu Apr 19 2018 sndirsch@suse.com
- update to release 1.0.0
* Now that both the EGL and GLX interfaces are defined and stable,
set the package version to 1.0.0.
* Changes
+ GLX: Fix an error in handling GLX dispatch stubs.
+ EGL: Fix handling a malloc failure in eglQueryString.
+ GLdispatch: Clean up the assembly dispatch code.
+ GLdispatch aarch64: Align the dispatch stubs to a 64K page size.
+ Fix typo in _LIBRARY_FEATURE_NAMES.
+ Merge pull request #131 from michalsrb/fix-missing-gles-symbols
+ Merge branch 'fix-aarch64-page-size'
+ Convert lq/stq instructions
+ Merge pull request #125 from kbrenneman/ppc64le-convert-lq-stq
+ Don't #define USE_ASM (defined(USE_X86_ASM) || ... )
+ Remove -Wno-misleading-indentation
+ Remove the cJSON README and tests
+ Update cJSON to version 1.5.9
+ Merge pull request #135 from aaronp24/remove-misleading-indentation
+ Fix memory leak in LoadVendorsFromConfigDir
+ Cleanup winsys dispatch index list on EGL mapping teardown
+ Merge pull request #137 from polarina/memleak
+ Set package version to 1.0.0.
- supersedes U_Fix-typo-in-LIBRARY_FEATURE_NAMES.patch
* Wed Jan 3 2018 tchvatal@suse.com
- Make sure to use only python3 for the build and do not rely
on env calls for python
* Mon Aug 14 2017 msrb@suse.com
- U_Fix-typo-in-LIBRARY_FEATURE_NAMES.patch
* Fix typo that caused gles 3.1 and 3.2 symbols to be missing in
the generated libraries. (bnc#1052776)
* Wed Jun 21 2017 zaitor@opensuse.org
- Update to version 0.1.2~20170620~d850cdd:
* EGL: detect platform gbm vendor capability.
* EGL: add platform gbm detection in eglGetDisplay.
* EGL: alias "drm" to gbm when using EGL_PLATFORM.
* EGL: honour eglGetPlatformDisplay's attrib_list.
* PPC64LE: Fix the cache clear instructions (boo#1045185).
* configure: Remove AC_PROG_CXX.
* EGL: Allow vendor libraries to identify platforms for
eglGetDisplay.
* GL: Use a table to look up core GLX functions.
* Thu Jun 1 2017 zaitor@opensuse.org
- Update to version 0.1.2~20170427~6bcecd8:
* Print out $host_cpu when undetected, for easier debugging.
* Fix compile errors.
* armv7: make sure asm is compiled in unified syntax mode.
* Treat armv7hl as armv7l.
* tests: Expand the unit tests for libGLdispatch.
* GLdispatch: Minor cleanup of the x86-64 TLS stubs.
* GLdispatch: Add support for x32.
* Shorten the generated x86-64 TLS stubs.
* GLX: Fix GLX entrypoint generation for x32.
* tests: Add support for x32.
* GLdispatch: Remove the ".syntax divided" directive for ARMv7.
* Update the README file.
* GLdispatch: Fix TEXTREL in the ARMv7 TSD stubs.
* GLdispatch: Improve the documentation in entry_arm7_tsd.c.
* Makefile and structural changes for ppc64le support.
* GLdispatch: Implement the TSD dispatch stubs for PPC64LE.
* GLdispatch: Implement the TLS dispatch stubs for PPC64LE.
* GLX: Implement GLX dispatch stubs for PPC64LE.
* tests: Fill in the ASM code in the template in patch_ppc64le().
* GLX: Add cache-flushing sequence to the generated GLX stubs.
* GLdispatch: Rename entry_x86_64_common.c to entry_simple_asm.c.
* Thu Jun 1 2017 alarrosa@suse.com
- Obsolete libglvnd0 <= %%version-%%release instead of only older
versions in order to fix conflicts on TW.
* Sat Apr 29 2017 jengelh@inai.de
- The package misuses an SLPP package name (libglvnd0) while not
being SLPP — there is not even a libglvnd.so.0. Since
implementing SLPP does not make much sense either (these are all
just compat wrappers), switch to libglvnd.
- Avoid doubleshipping of README.
* Fri Apr 7 2017 jengelh@inai.de
- Replace old $RPM_ shell vars by macros
- Converge on one style of using macros (drop curlies)
- RPM group correction
* Wed Mar 29 2017 sndirsch@suse.com
- baselibs.conf: added -devel package
* Tue Mar 28 2017 sndirsch@suse.com
- fixed/improved summary/description of libglvnd-devel package
* Mon Mar 27 2017 sndirsch@suse.com
- removed unneeded rpmlintrc
* Fri Jan 20 2017 zaitor@opensuse.org
- Update to version 0.1.1~20161222~dc16f8c:
* Update the README file.
* util: Add a local implementation of vsprintf(3).
* tests: Fix testpatchentrypoints.
* util: Add functions for splitting a string into tokens.
* Checked in the EGL headers.
* Checked in a copy of the cJSON library.
* EGL: Initial implementation of libEGL.
* EGL: Implement EGL_KHR_debug.
* GLdispatch: Remove an incorrect assert.
* util: Add trylock functions to glnvd_pthread.
* GLX: Fix a deadlock in teardown
* EGL: Rework the current rendering API.
* EGL: Fix a crash in __eglGetVendorFromDevice.
* EGL: Improve eglGetDisplay platform guessing.
* EGL: Check for some client extensions when loading the vendors.
* EGL: Check the version number in the JSON files.
* EGL: Trim the dispatch stub list.
* Change the package version to 0.1.999.
* GLX: Keep track of the displays passed to glXMakeCurrent.
* EGL: Fix a few errors in EGL_KHR_debug.
* EGL: Change __EGLapiImports to use (void *) for function
pointers.
* EGL: Add -Wno-misleading-indentation for cJSON.
* utils: Add cJSON.h to noinst_HEADERS.
* EGL: Change the vendor config search paths.
* EGL: Fix a couple of typos.
* Increment the package version to 0.2.
* Don't use 'xrange' because Python 3 doesn't have it.
* EGL: Fix an uninitialized variable.
* Factor out some common extension string functions.
* tests: Some minor cleanup
* tests: Rename GLX_dummy directory.
* tests: Move the entrypoint patching code into a helper library.
* tests: Add a more extensive test for entrypoint patching.
* GLX: Add an environment variable to specify a vendor for a
single screen.
* tests: Rewrite testglxgetprocaddress.
* tests: Add a test for generated GLX entrypoints.
* Change the assembly templates for ARMv7 to use uint16_t.
* Fix a crash in process termination when EGL and GLX are both
loaded.
* chmod -x files that aren't scripts
* GLdispatch: Don't call into the vendor from
__glDispatchForceUnpatch.
* EGL: Don't call into the vendor library from __eglFini.
* EGL: Better wayland detection in eglGetDisplay
* EGL: Add display detection for X11.
* EGL: Fix an unitialized variable in IsX11Display.
* tests: Skip testglxqueryversion if the server doesn't support
GLX.
* EGL: Fix the python command line.
* tests: Remove init_test_env.sh and fini_test_env.sh.
* tests: Add a basic test for eglGetPlatformDisplay.
* tests: Add a test for eglGetProcAddress.
* tests: Add a test for EGL device functions.
* tests: Add a test for eglMakeCurrent.
* tests: Add a test for eglGetError.
* tests: Add a test for EGL_KHR_debug.
* Add support for aarch64.
* GLdispatch: Fix the x86 TLS stubs.
* GLdispatch: Fix TEXTREL in the x86 TSD stubs.
* GLdispatch: Remove public_string_pool.
* GLdispatch: Remove _glapi_init_table_from_callback.
* GLdispatch: Remove the __GLdispatchProcEntry list.
* tests: Clean up tests makefile.
* Add configure options for the EGL, GLX, and GLES libraries.
* configure: Change the description for --disable-gles.
* Fri Jan 20 2017 zaitor@opensuse.org
- Update to version 0.1.1:
* GLX: Some additional cleanup for the GLX dispatch table.
* Remove uneeded xorg-server dependency
* tests: Add more GLX functions to GLX_dummy.
* tests: Clean up the function arrays in GLX_dummy.
* tests: Implement glXCreateContextAttribsARB in GLX_dummy.
* tests: Expand the MakeCurrent tests to the GLXFBConfig-based
functions.
* tests: Merge the dummy and patchentry libraries.
* GLX: Fix a couple of errors.
* GLdispatch: Don't unpatch entrypoints in
__glDispatchLoseCurrent.
- Add _service and use it to update to current relase.
- Replace autoreconf for autogen.sh call ref info in README.
* Tue Jul 12 2016 sndirsch@suse.com
- added Recommends to Mesa-libGL1/Mesa-libGL-devel
* Fri Jun 3 2016 sndirsch@suse.com
- fixed build on 32bit with SUSE < 1330
* Thu Jun 2 2016 sndirsch@suse.com
- created libglvnd package