%global git_date 20260319 %global git_hash c046a76 %global git_ver 1.7.0 %global rel 1 %global src_name %{name}-%{git_date}-%{git_hash}.tar.xz Name: libglvnd Version: %{git_ver}^%{git_date}g%{git_hash} Release: %{rel}%{?dist} # Provide an upgrade path from the negativo17.org pkgs which have Epoch 1 Epoch: 1 Summary: The GL Vendor-Neutral Dispatch library License: MIT-feh AND MIT-Modern-Variant AND BSD-1-Clause AND BSD-3-Clause AND GPL-3.0-or-later WITH Autoconf-exception-macro URL: https://gitlab.freedesktop.org/glvnd/libglvnd Source0: %{url}/%{src_name} BuildRequires: make #BuildRequires: libtool BuildRequires: meson BuildRequires: gcc BuildRequires: python3-rpm-macros BuildRequires: python3-libxml2 BuildRequires: pkgconfig(glproto) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xext) #BuildRequires: xorg-x11-server-Xvfb %description libglvnd is an implementation of the vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors on a per-screen basis. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-opengl%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-gles%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-glx%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-egl%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-core-devel%{?_isa} = %{epoch}:%{version}-%{release} # Required by any glx.h users. Requires: libX11-devel%{?_isa} # We might split into more sub-packages Obsoletes: mesa-libGLES-devel < 19.3.0~rc1 Provides: mesa-libGLES-devel = %{epoch}:%{version}-%{release} Provides: mesa-libGLES-devel%{?_isa} = %{epoch}:%{version}-%{release} Obsoletes: mesa-khr-devel < 19.3.0~rc1 Provides: mesa-khr-devel = %{epoch}:%{version}-%{release} Provides: mesa-khr-devel%{?_isa} = %{epoch}:%{version}-%{release} Provides: libGLES-devel = %{epoch}:%{version}-%{release} Provides: libGLES-devel%{?_isa} = %{epoch}:%{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package core-devel Summary: Core development files for %{name} %description core-devel The %{name}-core-devel package is a bootstrap trick for Mesa, which wants to build against the %{name} headers but does not link against any of its libraries (and, initially, has file conflicts with them). If you are not Mesa you almost certainly want %{name}-devel instead. %package opengl Summary: OpenGL support for libglvnd Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} %description opengl libOpenGL is the common dispatch interface for the workstation OpenGL API. %package gles Summary: GLES support for libglvnd Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} # mesa is the default EGL implementation provider Requires: mesa-libEGL%{?_isa} >= 13.0.4-1 Obsoletes: mesa-libGLES < 19.3.0~rc1 Provides: mesa-libGLES Provides: mesa-libGLES%{?_isa} Provides: libGLES Provides: libGLES%{?_isa} %description gles libGLESv[12] are the common dispatch interface for the GLES API. %package egl Summary: EGL support for libglvnd Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} # mesa is the default EGL implementation provider Requires: mesa-libEGL%{?_isa} >= 13.0.4-1 Provides: libEGL Provides: libEGL%{?_isa} %description egl libEGL are the common dispatch interface for the EGL API. %package glx Summary: GLX support for libglvnd Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} # mesa is the default GL implementation provider Requires: mesa-libGL%{?_isa} >= 13.0.4-1 Provides: libGL Provides: libGL%{?_isa} %description glx libGL and libGLX are the common dispatch interface for the GLX API. %prep %autosetup -p1 -n %{name} %build %meson -Dasm=enabled \ -Dx11=enabled \ -Degl=true \ -Dglx=enabled \ -Dhgl=false \ -Dgles1=true \ -Dgles2=true \ -Dtls=true \ -Ddispatch-tls=true \ -Ddispatch-page-size=0 \ -Dheaders=true \ -Dentrypoint-patching=enabled %meson_build %install %meson_install find %{buildroot} -name '*.la' -delete # Create directory layout mkdir -p %{buildroot}%{_sysconfdir}/glvnd/egl_vendor.d/ mkdir -p %{buildroot}%{_datadir}/glvnd/egl_vendor.d/ mkdir -p %{buildroot}%{_sysconfdir}/egl/egl_external_platform.d/ mkdir -p %{buildroot}%{_datadir}/egl/egl_external_platform.d/ %ldconfig_scriptlets %files %doc README.md %dir %{_sysconfdir}/glvnd/ %dir %{_datadir}/glvnd/ %{_libdir}/libGLdispatch.so.0* %ldconfig_scriptlets opengl %files opengl %{_libdir}/libOpenGL.so.0* %ldconfig_scriptlets gles %files gles %{_libdir}/libGLES*.so.* %ldconfig_scriptlets glx %files glx %{_libdir}/libGL.so.* %{_libdir}/libGLX.so.* %ldconfig_scriptlets egl %files egl %dir %{_sysconfdir}/glvnd/egl_vendor.d/ %dir %{_datadir}/glvnd/egl_vendor.d/ %dir %{_sysconfdir}/egl/ %dir %{_sysconfdir}/egl/egl_external_platform.d/ %dir %{_datadir}/egl/ %dir %{_datadir}/egl/egl_external_platform.d/ %{_libdir}/libEGL*.so.* %files core-devel %dir %{_includedir}/glvnd/ %{_includedir}/glvnd/*.h %{_libdir}/pkgconfig/libglvnd.pc %files devel %dir %{_includedir}/EGL/ %dir %{_includedir}/GL/ %dir %{_includedir}/GLES/ %dir %{_includedir}/GLES2/ %dir %{_includedir}/GLES3/ %dir %{_includedir}/KHR/ %{_includedir}/EGL/*.h %{_includedir}/GL/*.h %{_includedir}/GLES/*.h %{_includedir}/GLES2/*.h %{_includedir}/GLES3/*.h %{_includedir}/KHR/*.h %{_libdir}/lib*.so %{_libdir}/pkgconfig/gl*.pc %{_libdir}/pkgconfig/egl.pc %{_libdir}/pkgconfig/opengl.pc %changelog %autochangelog