%define distname %{name}-%{version} %bcond_without egl %define git 20250805 Name: mesa-demos Version: 9.0.0 Release: %mkrel 1.1 Summary: Demos for Mesa (OpenGL compatible 3D lib) Group: Graphics/Utilities License: MIT URL: https://www.mesa3d.org/ # git clone git://anongit.freedesktop.org/mesa/demos # NAME=mesa-demos; DATE=$(git show -s --pretty=%ai | awk '{ gsub("-", "", $1); print $1 }'); DISTNAME=$NAME-$DATE ; git archive --format=tar.gz --prefix=$DISTNAME/ HEAD > $DISTNAME.tar.gz Source0: https://archive.mesa3d.org/demos/%{name}-%{version}-%{git}.tar.xz Source4: Mesa-icons.tar.bz2 # Upstream patches (from https://gitlab.freedesktop.org/mesa/demos) BuildRequires: meson BuildRequires: glslang # (tv) BR probably need to be shrinked: BuildRequires: tcl BuildRequires: texinfo BuildRequires: pkgconfig(xfixes) >= 4.0.3 BuildRequires: pkgconfig(xt) >= 1.0.5 BuildRequires: pkgconfig(xmu) >= 1.0.3 BuildRequires: pkgconfig(x11) >= 1.3.3 BuildRequires: pkgconfig(xdamage) >= 1.1.1 BuildRequires: pkgconfig(expat) >= 2.0.1 BuildRequires: gccmakedep BuildRequires: pkgconfig(xextproto) >= 7.3 BuildRequires: pkgconfig(libdrm) >= 2.4.19-3 BuildRequires: pkgconfig(xext) >= 1.1.1 BuildRequires: pkgconfig(xxf86vm) >= 1.1.0 BuildRequires: pkgconfig(xi) >= 1.3 BuildRequires: pkgconfig(glew) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(libdecor-0) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(vulkan) %if %with egl BuildRequires: mesaegl-devel BuildRequires: mesaglesv1-devel BuildRequires: mesaglesv2-devel Requires: eglinfo = %{version} %endif BuildRequires: gbm-devel # (tv) for glinfo: BuildRequires: pkgconfig(freeglut) Requires: glxinfo = %{version} %description Mesa is an OpenGL 2.1 compatible 3D graphics library. This package contains some demo programs for the Mesa library. %if %with egl %package -n eglinfo Summary: Command-line EGL information tool Group: Graphics/Utilities Conflicts: mesa-demos < 8.5.0-2 %description -n eglinfo Mesa is an OpenGL 2.1 compatible 3D graphics library. This package contains the eglinfo EGL information utility. %endif %package -n glxinfo Summary: Command-line GLX information tool Group: Graphics/Utilities Conflicts: mesa-demos < 7.7-4 %description -n glxinfo Mesa is an OpenGL 2.1 compatible 3D graphics library. This package contains the glinfo & glxinfo GLX information utility. %prep %autosetup -p1 -n %{distname} perl -pi -e "s,\"([^/].+?)\.(vert|geom|frag)\",\"%{_datadir}/%{name}/\$1.\$2\",g" src/*/*.c %build %meson -Dwith-system-data-files=true \ -Dx11=enabled \ -Dwayland=enabled \ -Degl=%{?with_egl:enabled}%{!?with_egl:disabled} \ -Dgles1=enabled \ -Dgles2=enabled \ -Dvulkan=enabled \ -Dlibdrm=enabled %meson_build %install %meson_install # (fg) So that demos at least work :) cp -a src/*/*.{frag,vert} %{buildroot}%{_datadir}/%{name} # (tv) fix conflict with bitmap: mv %{buildroot}%{_bindir}/bitmap{,-gl} %if %with egl # (blino) install some egl test apps as well pushd %{_vpath_builddir}/src/egl/opengl for p in dmabufshare eglgears ../common/eglinfo eglkms egltri peglgears xeglgears xeglthreads; do install -m 0755 $p %{buildroot}%{_bindir} done popd %endif # icons for three demos examples [we lack a frontend # to launch the demos obviously] install -d %{buildroot}%{_miconsdir} install -d %{buildroot}%{_iconsdir} install -d %{buildroot}%{_liconsdir} tar jxvf %{SOURCE4} -C %{buildroot}%{_iconsdir} %files %{_bindir}/* %if %with egl %exclude %{_bindir}/eglinfo %endif %exclude %{_bindir}/glxinfo %exclude %{_bindir}/glinfo %dir %{_datadir}/%{name} %{_datadir}/%{name}/* %{_miconsdir}/*demos*.png %{_iconsdir}/*demos*.png %{_liconsdir}/*demos*.png %if %with egl %files -n eglinfo %{_bindir}/eglinfo %endif %files -n glxinfo %{_bindir}/glxinfo %{_bindir}/glinfo