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
openSUSE Build Service is sponsored by