File Mesa-demo.spec of Package Mesa-demo
#
# spec file for package Mesa-demo
#
# Copyright (c) 2025 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/
#
Name: Mesa-demo
Version: 9.0.0
Release: 0
Summary: Mesa demo programs for the OpenGL stack
License: MIT
Group: Development/Tools/Other
URL: https://www.mesa3d.org
Source0: https://mesa.freedesktop.org/archive/demos/mesa-demos-%{version}.tar.xz
Source1: https://mesa.freedesktop.org/archive/demos/mesa-demos-%{version}.tar.xz.sig
Source2: %{name}.keyring
Source3: baselibs.conf
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: cmake
BuildRequires: freeglut-devel
BuildRequires: gcc-c++
BuildRequires: glslang-devel
BuildRequires: libexpat-devel
BuildRequires: libtool
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: vulkan-devel
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glesv1_cm)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xkbcommon-x11)
Requires: Mesa-demo-egl = %{version}
Requires: Mesa-demo-es = %{version}
Requires: Mesa-demo-x = %{version}
%description
Mesa is a 3-D graphics library with an API similar to OpenGL.
This package contains the demos shipped with Mesa.
%package x
Summary: GLX-based demos
Group: Development/Tools/Other
%description x
This package contains some common GLX-based demos.
%package es
Summary: GLES-based demos
Group: Development/Tools/Other
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengles2/es2_info
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengles2/es2gears_x11
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengles2/es2tri
%description es
This package contains some common GLES-based demos.
%package egl
Summary: EGL-based demos
Group: Development/Tools/Other
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengl/eglgears_x11
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengl/eglinfo
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengl/egltri_x11
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengl/peglgears
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengl/xeglgears
Provides: Mesa-demo:%{_libdir}/mesa-demos/egl/opengl/xeglthreads
%description egl
This package contains some common EGL-based demos.
%prep
%autosetup -n mesa-demos-%{version} -b0
%build
%{meson} \
-Dgles1=enabled \
-Dgles2=enabled \
-Dosmesa=disabled \
-Dlibdrm=enabled \
-Dwayland=disabled \
-Dvulkan=enabled \
%{nil}
%{meson_build}
%install
%{meson_install}
%ifarch %ix86
mkdir -p %{buildroot}%{_libdir}/mesa-demos/egl/{opengl,opengles2} \
%{buildroot}%{_libdir}/mesa-demos/xdemos
cp -a %{buildroot}%{_bindir}/{eglgears_x11,eglinfo,egltri_x11,peglgears,xeglgears,xeglthreads} \
%{buildroot}%{_libdir}/mesa-demos/egl/opengl
cp -a %{buildroot}%{_bindir}/{es2_info,es2gears_x11,es2tri} \
%{buildroot}%{_libdir}/mesa-demos/egl/opengles2
cp -a %{buildroot}%{_bindir}/{glxgears,glxinfo,pbinfo} \
%{buildroot}%{_libdir}/mesa-demos/xdemos
%endif
%files
%{_bindir}/*
%dir %{_datadir}/mesa-demos
%{_datadir}/mesa-demos/*
%exclude %{_bindir}/glxgears
%exclude %{_bindir}/glxinfo
%exclude %{_bindir}/pbinfo
%exclude %{_bindir}/es2_info
%exclude %{_bindir}/es2gears_x11
%exclude %{_bindir}/es2tri
%exclude %{_bindir}/eglgears_x11
%exclude %{_bindir}/eglinfo
%exclude %{_bindir}/egltri_x11
%exclude %{_bindir}/peglgears
%exclude %{_bindir}/xeglgears
%exclude %{_bindir}/xeglthreads
# conflict with line of util-linux
%exclude %{_bindir}/line
# conflict with bitmap of package bitmap
%exclude %{_bindir}/bitmap
%files x
%{_bindir}/glxgears
%{_bindir}/glxinfo
%{_bindir}/pbinfo
%ifarch %ix86
%dir %{_libdir}/mesa-demos
%dir %{_libdir}/mesa-demos/xdemos
%{_libdir}/mesa-demos/xdemos/*
%endif
%files es
%{_bindir}/es2_info
%{_bindir}/es2gears_x11
%{_bindir}/es2tri
%ifarch %ix86
%dir %{_libdir}/mesa-demos/
%dir %{_libdir}/mesa-demos/egl
%dir %{_libdir}/mesa-demos/egl/opengles2
%{_libdir}/mesa-demos/egl/opengles2/*
%endif
%files egl
%{_bindir}/eglgears_x11
%{_bindir}/eglinfo
%{_bindir}/egltri_x11
%{_bindir}/peglgears
%{_bindir}/xeglgears
%{_bindir}/xeglthreads
%ifarch %ix86
%dir %{_libdir}/mesa-demos
%dir %{_libdir}/mesa-demos/egl
%dir %{_libdir}/mesa-demos/egl/opengl
%{_libdir}/mesa-demos/egl/opengl/*
%endif
%changelog