File mesa.spec of Package mesa

Name:           mesa
Version:        25.3.0
Release:        %mkrel 1
Summary:        Mesa 3D graphics library
License:        MIT
Group:          System/Libraries
URL:            https://www.mesa3d.org/
Source0:        mesa-%{version}.tar.xz
Patch0:         mesa-rusticl-disable.patch

BuildRequires:  meson
BuildRequires:  ninja
BuildRequires:  python3
BuildRequires:  pkgconfig(epoxy)
BuildRequires:  pkgconfig(libdrm)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xcb)
BuildRequires:  pkgconfig(xcb-dri2)
BuildRequires:  pkgconfig(xcb-dri3)
BuildRequires:  pkgconfig(xcb-glx)
BuildRequires:  pkgconfig(xcb-present)
BuildRequires:  pkgconfig(xcb-sync)
BuildRequires:  pkgconfig(wayland-client)
BuildRequires:  pkgconfig(wayland-server)
BuildRequires:  pkgconfig(wayland-egl)
BuildRequires:  pkgconfig(egl)
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glesv2)
BuildRequires:  pkgconfig(glesv1_cm)
BuildRequires:  llvm21-devel
BuildRequires:  clang21-devel
BuildRequires:  libclc
BuildRequires:  glslang
BuildRequires:  glslang-devel

%description
Mesa is an open-source implementation of the OpenGL specification - a
system for rendering interactive 3D graphics. Mesa also implements
OpenGL ES and Vulkan APIs. Rusticl (OpenCL runtime) is disabled via patch
to bypass the Rust 1.82 requirement.

%package devel
Summary:        Development files for Mesa
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description devel
Headers and pkgconfig files needed to build against Mesa.

%prep
%setup -q
%patch0 -p1

%build
meson setup builddir \
    --prefix=%{_prefix} \
    --libdir=%{_libdir} \
    -Dllvm=enabled \
    -Dshared-llvm=enabled \
    -Dglx=dri \
    -Degl=enabled \
    -Dgbm=enabled \
    -Dvulkan-drivers=auto \
    -Dgallium-drivers=auto \
    -Dvalgrind=disabled
ninja -C builddir

%install
DESTDIR=%{buildroot} ninja -C builddir install

%files
%license docs/license.rst
%doc README.md
%{_libdir}/libGL.so.*
%{_libdir}/libEGL.so.*
%{_libdir}/libgbm.so.*
%{_libdir}/libvulkan_*.so.*

%files devel
%{_includedir}/GL/
%{_includedir}/EGL/
%{_includedir}/gbm.h
%{_libdir}/libGL.so
%{_libdir}/libEGL.so
%{_libdir}/libgbm.so
%{_libdir}/pkgconfig/*.pc

%changelog
* Thu Dec 04 2025 Henrik <henrik@example.com> - 25.3.0-1
- Build against llvm21, clang21, libclc, epoxy, glslang 16.1.0
- Patched meson.build to disable Rusticl gracefully (Rust <1.82)
- Enabled GLX (DRI backend), EGL, GBM, Vulkan, Gallium drivers
- Updated valgrind flag to 'disabled'
- Split runtime and devel subpackages
openSUSE Build Service is sponsored by