# https://cgit.freedesktop.org/mesa/mesa/commit/?h=13.0&id=3bb0415ab96f74183f7aa58c1a543448653ccb3e %define git 0 %define git_branch 20.1 %define opengl_ver 4.6 # define version, RC & release %define main_version 20.2.0 %define relc 4 %define rel 1 %define release %mkrel %{?relc:0.rc%{relc}.}%{rel} %if %{git} %if %{?relc:1}%{!?relc:0} %define release %mkrel 1~rc%{relc}.1.git%{git}.%{rel} %else %define release 1.git%{git}.%{rel} %endif %endif %define makedepend %{_bindir}/gccmakedep %define clname mesaopencl %define d3dname d3d %define eglname mesaegl %define eglname_glvnd egl %define glname mesagl %define glname_glvnd gl %define glwname mesaglw %define glesv1name mesaglesv1 %define glesv2name mesaglesv2 %define glesv1name_glvnd glesv1_cm %define glesv2name_glvnd glesv2 %define gldispatchname_glvnd gldispatch %define glxname_glvnd glx %define glapiname glapi %define gbmname gbm %define xaname xatracker %define vulkanname mesavulkan %define openswrname openswr %define clmajor 1 %define d3dmajor 1 %define eglmajor 1 %define eglmajor_glvnd 1 %define glmajor 1 %define glmajor_glvnd 1 %define glwmajor 1 %define glesv1major 1 %define glesv2major 2 %define gldispatchmajor 0 %define glxmajor 0 %define glapimajor 0 %define gbmmajor 1 %define waylandeglmajor 1 %define osmesamajor 8 %define xamajor 2 %define openswrmajor 0 %define libclname %mklibname %{clname} %{clmajor} %define libd3dname %mklibname %{d3dname} %{d3dmajor} %define libeglname %mklibname %{eglname} %{eglmajor} %define libeglname_glvnd %mklibname %{eglname_glvnd} %{eglmajor_glvnd} %define libglname %mklibname %{glname} %{glmajor} %define libglname_glvnd %mklibname %{glname_glvnd} %{glmajor_glvnd} %define libglwname %mklibname %{glwname} %{glwmajor} %define libglesv1name %mklibname %{glesv1name}_ %{glesv1major} %define libglesv1name_glvnd %mklibname %{glesv1name_glvnd} %{glesv1major} %define libglesv2name %mklibname %{glesv2name}_ %{glesv2major} %define libglesv2name_glvnd %mklibname %{glesv2name_glvnd} %{glesv2major} %define libgldispatchname_glvnd %mklibname %{gldispatchname_glvnd} %{gldispatchmajor} %define libglxname_glvnd %mklibname %{glxname_glvnd} %{glxmajor} %define libglapiname %mklibname %{glapiname} %{glapimajor} %define libgbmname %mklibname %{gbmname} %{gbmmajor} %define libwaylandeglname %mklibname %{waylandeglname} %{waylandeglmajor} %define libosmesaname %mklibname osmesa %{osmesamajor} %define libxaname %mklibname %{xaname} %{xamajor} %define libopenswrname %mklibname %{openswrname} %{openswrmajor} %define dridrivers %mklibname dri-drivers %define vulkandrivers %mklibname %{vulkanname}-drivers %define vulkandevel %mklibname %{vulkanname} -d %define libcldevel %mklibname mesaopencl -d %define khrdevel %mklibname mesakhr -d %define osmesadevel %mklibname osmesa -d %define glvnd_devname %mklibname glvnd -d # Architecture-independent Virtual provides: %define libd3dname_virt lib%{d3dname} %define libeglname_virt lib%{eglname} %define libglname_virt lib%{glname} %define libglwname_virt lib%{glwname} %define libglesv1name_virt lib%{glesv1name} %define libglesv2name_virt lib%{glesv2name} %define libglapiname_virt lib%{glapiname} %define libgbmname_virt lib%{gbmname} %define libwaylandeglname_virt lib%{waylandeglname} %define libxaname_virt lib%{xaname} %define libopenswrname_virt lib%{openswrname} %define mesasrcdir %{_prefix}/src/Mesa/ %define with_valgrind 1 # Note for packagers: to "bootstrap" mesa when switching to # libglvnd, you have to disable vaapi (commenting with_vaapi # below), as vaapi depends on mesa, so it would lead to a # cyclical dependency. Re-enable vaapi once bootstrapped. # undefine one of the following entries to disable %global with_hardware 1 %global with_vdpau 1 %global with_vaapi 1 %global with_nine 1 %global with_omx 1 %global with_opencl 1 %global base_drivers nouveau,r100,r200 %global with_glvnd 1 %ifarch x86_64 %global with_openswr 1 %endif %global with_zink 1 %ifarch %{ix86} x86_64 %global platform_drivers ,i915,i965 %global with_iris 1 %global with_vmware 1 %global with_xa 1 %global vulkan_drivers intel,amd %else %global vulkan_drivers amd %endif %ifarch %{arm} aarch64 %global with_etnaviv 1 %global with_freedreno 1 %global with_kmsro 1 %global with_lima 1 %global with_tegra 1 %global with_panfrost 1 %global with_vc4 1 %global with_v3d 1 %global with_xa 1 %endif # define with_newname above to have: # lib(64)mesagl1 renamed as lib(64)glx_mesa0 and # lib(64)egl1 renamed as lib(64)egl_mesa0 #global with_newname 1 %if 0%{?with_newname} %define eglname egl_mesa %define glname glx_mesa %define glmajor 0 %define eglmajor 0 %define old_eglname mesaegl %define old_glname mesagl %define old_eglmajor 1 %define old_glmajor 1 %define libold_eglname %mklibname %{old_eglname} %{old_eglmajor} %define libold_glname %mklibname %{old_glname} %{old_glmajor} %endif %ifnarch %{arm} %global with_radeonsi 1 %endif #global with_docs 1 %global dri_drivers %{?base_drivers}%{?platform_drivers} Name: mesa Version: %{main_version} Release: %{release} Summary: OpenGL %{opengl_ver} compatible 3D graphics library Group: System/Libraries # temp force new gcc BuildRequires: gcc >= 8.3.1-0.20190920.1 # for building docs %if 0%{?with_docs} BuildRequires: doxygen %endif BuildRequires: pkgconfig(xfixes) >= 4.0.3 BuildRequires: pkgconfig(xshmfence) 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: x11-proto-devel >= 7.3 BuildRequires: pkgconfig(libdrm) >= 2.4.100 BuildRequires: pkgconfig(xcb-dri3) BuildRequires: pkgconfig(xcb-present) >= 1.11 BuildRequires: pkgconfig(xext) >= 1.1.1 BuildRequires: pkgconfig(xxf86vm) >= 1.1.0 BuildRequires: pkgconfig(xi) >= 1.3 BuildRequires: pkgconfig(xrandr) %if 0%{?with_omx} BuildRequires: pkgconfig(libomxil-bellagio) %endif %if 0%{?with_opencl} BuildRequires: clang-devel BuildRequires: pkgconfig(libclc) BuildRequires: polly %endif BuildRequires: pkgconfig(talloc) %if %mgaversion < 8 BuildRequires: python2-libxml2 BuildRequires: python2-mako %endif BuildRequires: python3-libxml2 BuildRequires: python3-mako BuildRequires: makedepend BuildRequires: bison BuildRequires: flex BuildRequires: meson >= 0.52 BuildRequires: pkgconfig(libelf) BuildRequires: llvm-devel >= 8.0 BuildRequires: pkgconfig(libudev) %if 0%{?with_valgrind} BuildRequires: pkgconfig(valgrind) %endif %if 0%{?with_vaapi} BuildRequires: pkgconfig(libva) %endif %if 0%{?with_glvnd} BuildRequires: pkgconfig(libglvnd) >= 1.3.1-7 %endif %if 0%{?with_zink} BuildRequires: pkgconfig(vulkan) BuildRequires: vulkan-headers %endif BuildRequires: pkgconfig(vdpau) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: libgcrypt-devel BuildRequires: pkgconfig(wayland-protocols) >= 1.8 BuildRequires: lm_sensors-devel BuildRequires: pkgconfig(libzstd) %ifnarch %{arm} BuildRequires: pkgconfig(libunwind) %endif URL: https://www.mesa3d.org %if %{git} #Source0: %{name}-%{git}.tar.bz2 # (blino) snapshot of 13.0 branch Source0: %{name}-%{git_branch}-%{git}.tar.xz %else Source0: https://mesa.freedesktop.org/archive/mesa-%{main_version}%{?relc:-rc%{relc}}.tar.xz %endif Source3: make-git-snapshot.sh # mesa staging/20.2 branch from 1 (https://www.mesa3d.org/releasing.html#stagingbranch) # mesa master branch from 200 # mesa pending fixes from 300 #------------------------------------------------------------------------------ # package mesa License: MIT Requires: %{libglname} = %{version}-%{release} Requires: %{vulkandrivers} = %{version}-%{release} Provides: hackMesa = %{version} Obsoletes: hackMesa < %{version} Provides: Mesa = %{version} Obsoletes: Mesa < %{version} %package -n %{libglname} Summary: Files for Mesa (GL and GLX libs) Group: System/Libraries Provides: %{libglname_virt} = %{version}-%{release} Requires: %{dridrivers} >= %{version}-%{release} %if 0%{?with_glvnd} Requires: %{libglname_glvnd} >= 1.3.1-7 Requires: %{libgldispatchname_glvnd} >= 1.3.1-7 Requires: %{libglxname_glvnd} >= 1.3.1-7 Requires: libglvnd >= 1.3.1-7 %endif %if 0%{?with_newname} Obsoletes: %{libold_glname} < %{version}-%{release} Provides: %{libold_glname} = %{version}-%{release} %endif %package -n %{dridrivers} Summary: Mesa DRI drivers Group: System/Libraries Provides: mesa-dri-drivers # do not require exact release to avoid conflicts when having # x86_64 dri drivers from tainted and i586 dri drivers from core Requires: mesa = %{version} %if 0%{?with_omx} %package omx-drivers Summary: Mesa-based OMX drivers %endif %package -n %{libd3dname} Summary: Mesa Direct3D9 state tracker Group: System/Libraries Provides: %{libd3dname_virt} = %{version}-%{release} %package -n %{libd3dname}-devel Summary: Development files for Mesa Direct3D9 state tracker Group: Development/C Requires: %{libd3dname} = %{version}-%{release} Provides: lib%{d3dname}-devel Provides: %{d3dname}-devel Provides: libd3d-devel %package -n %{libglname}-devel Summary: Development files for Mesa (OpenGL compatible 3D lib) Group: Development/C Requires: %{libglname} = %{version}-%{release} Requires: %{khrdevel} = %{version}-%{release} Provides: lib%{glname}-devel = %{version}-%{release} Provides: %{glname}-devel = %{version}-%{release} Provides: libMesaGL-devel = %{version}-%{release} Provides: MesaGL-devel = %{version}-%{release} Provides: libgl-devel %if 0%{?with_glvnd} Requires: %{glvnd_devname} %else Provides: GL-devel %endif %if 0%{?with_newname} Obsoletes: %{libold_glname}-devel < %{version}-%{release} Provides: %{libold_glname}-devel = %{version}-%{release} %endif %package -n %{libeglname} Summary: Files for Mesa (EGL libs) Group: System/Libraries Provides: %{libeglname_virt} = %{version}-%{release} %if 0%{?with_glvnd} Requires: %{libeglname_glvnd} >= 1.3.1-7 Requires: %{libgldispatchname_glvnd} >= 1.3.1-7 Requires: %{libglxname_glvnd} >= 1.3.1-7 Requires: libglvnd >= 1.3.1-7 %endif %if 0%{?with_newname} Obsoletes: %{libold_eglname} < %{version}-%{release} Provides: %{libold_eglname} = %{version}-%{release} %endif %package -n %{libeglname}-devel Summary: Development files for Mesa (EGL libs) Group: Development/C Requires: %{libeglname} = %{version}-%{release} Requires: %{khrdevel} = %{version}-%{release} Provides: lib%{eglname}-devel Provides: %{eglname}-devel Provides: libegl-devel %if 0%{?with_glvnd} Requires: %{glvnd_devname} %else Provides: EGL-devel %endif %if 0%{?with_newname} Obsoletes: %{libold_eglname}-devel < %{version}-%{release} Provides: %{libold_eglname}-devel = %{version}-%{release} %endif %package -n %{khrdevel} Summary: Mesa Khronos development headers Group: Development/C Provides: mesakhr-devel = %{version}-%{release} # ease upgrade mga6 -> mga7 (mga#25625) Conflicts: %{_lib}mesaegl1-devel < 17.3.9-2 %if 0%{?with_glvnd} Requires: %{glvnd_devname} %endif %package -n %{libosmesaname} Summary: Mesa offscreen rendering library Group: System/Libraries %package -n %{osmesadevel} Summary: Development files for libosmesa Group: Development/C Requires: %{libosmesaname} = %{version}-%{release} Provides: osmesa-devel = %{version}-%{release} %if 0%{?with_glvnd} Requires: %{glvnd_devname} %endif %package -n %{libglapiname} Summary: Files for mesa (glapi libs) Group: System/Libraries Provides: %{libglapiname_virt} = %{version}-%{release} %package -n %{libglapiname}-devel Summary: Development files for glapi libs Group: Development/C Requires: %{libglapiname_virt} = %{version}-%{release} Provides: lib%{glapiname}-devel Provides: %{libglapiname}-devel %if 0%{?with_opencl} %package -n %libclname Summary: Mesa OpenCL runtime library #Requires: libclc%%{?_isa} #Requires: %%{name}-libgbm%%{?_isa} = %%{?epoch:%%{epoch}:}%%{version}-%%{release} %package -n %libcldevel Summary: Mesa OpenCL development package Requires: %libclname%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %endif %package -n %{libglesv1name} Summary: Files for Mesa (glesv1 libs) Group: System/Libraries Provides: %{libglesv1name_virt} = %{version}-%{release} %if 0%{?with_glvnd} Requires: %{libglesv1name_glvnd} >= 1.3.1-7 %endif %package -n %{libglesv1name}-devel Summary: Development files for glesv1 libs Group: Development/C Requires: %{libglesv1name} = %{version}-%{release} Requires: %{khrdevel} = %{version}-%{release} Provides: lib%{glesv1name}-devel Provides: %{glesv1name}-devel Provides: libglesv1-devel %if 0%{?with_glvnd} Requires: %{glvnd_devname} %endif %package -n %{libglesv2name} Summary: Files for Mesa (glesv2 libs) Group: System/Libraries Provides: %{libglesv2name_virt} = %{version}-%{release} %if 0%{?with_glvnd} Requires: %{libglesv2name_glvnd} >= 1.3.1-7 %endif %package -n %{libglesv2name}-devel Summary: Development files for glesv2 libs Group: Development/C Requires: %{libglesv2name} = %{version}-%{release} Requires: %{khrdevel} = %{version}-%{release} Provides: lib%{glesv2name}-devel Provides: %{glesv2name}-devel Provides: libglesv2-devel %if 0%{?with_glvnd} Requires: %{glvnd_devname} %endif %package -n %{libgbmname} Summary: Files for Mesa (gbm libs) Group: System/Libraries Provides: %{libgbmname_virt} = %{version}-%{release} %package -n %{libgbmname}-devel Summary: Development files for Mesa (gbm libs) Group: Development/C Requires: %{libgbmname} = %{version}-%{release} Provides: lib%{gbmname}-devel Provides: %{gbmname}-devel %package -n %{_lib}vdpau-driver-nouveau Summary: VDPAU plugin for nouveau driver Group: System/Libraries # temporary: %rename vdpau-driver-nouveau %package -n %{_lib}vdpau-driver-r300 Summary: VDPAU plugin for r300 driver Group: System/Libraries # temporary: %rename vdpau-driver-r300 %package -n %{_lib}vdpau-driver-r600 Summary: VDPAU plugin for r600 driver Group: System/Libraries # temporary: %rename vdpau-driver-r600 %package -n %{_lib}vdpau-driver-radeonsi Summary: VDPAU plugin for radeonsi driver Group: System/Libraries # temporary: %rename vdpau-driver-radeonsi %package -n %{libxaname} Summary: Files for Mesa XA state tracker Group: System/Libraries Provides: %{libxaname_virt} = %{version}-%{release} %package -n %{libxaname}-devel Summary: Development files for XA libs Group: Development/C Requires: %{libxaname_virt} = %{version}-%{release} Provides: lib%{xaname}-devel Provides: %{libxaname}-devel %package -n %{vulkandrivers} Summary: Mesa Vulkan driver for Intel and Radeon GPUs Group: System/Libraries %ifarch %{ix86} x86_64 Obsoletes: %{_lib}vulkan_intel < 18.3.0-4 Provides: %{_lib}vulkan_intel = %{version}-%{release} %endif Obsoletes: %{_lib}vulkan_radeon < 18.3.0-4 Provides: %{_lib}vulkan_radeon = %{version}-%{release} %package -n %{vulkandevel} Summary: Mesa Vulkan development files for Intel and Radeon drivers Group: Development/C Requires: %{vulkandrivers} = %{version}-%{release} Obsoletes: %{_lib}vulkan-devel < 0:18.3.0-4 Provides: %{vulkanname}-devel = %{version}-%{release} %if 0%{?with_openswr} %package -n %{libopenswrname} Summary: Mesa OpenSWR libs for AVX/AVX2/AVX512 based architectures Group: System/Libraries Provides: %{libopenswrname_virt} = %{version}-%{release} %package -n %{libopenswrname}-devel Summary: Development files for OpenSWR libs Group: Development/C Requires: %{libopenswrname_virt} = %{version}-%{release} Provides: lib%{libopenswrname}-devel Provides: %{libopenswrname}-devel %endif %package common-devel Summary: Meta package for mesa devel Group: Development/C Provides: Mesa-common-devel = %{version}-%{release} Provides: hackMesa-common-devel = %{version} Obsoletes: Mesa-common-devel < %{version} Obsoletes: hackMesa-common-devel < %{version} Requires: %{libglname}-devel = %{version} Requires: mesaglu-devel Requires: freeglut-devel Requires: %{libeglname}-devel = %{version} Requires: %{libglesv1name}-devel = %{version} Requires: %{libglesv2name}-devel = %{version} #------------------------------------------------------------------------------ %description Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. %description common-devel Mesa common metapackage devel %description -n %{libeglname} Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. EGL parts. %description -n %{libeglname}-devel Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. EGL development parts. %description -n %{libglname} Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. GL and GLX parts. %description -n %{dridrivers} Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. DRI drivers. %if 0%{?with_omx} %description omx-drivers Mesa-based OMX drivers %endif %description -n %{libglname}-devel Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. This package contains the headers needed to compile Mesa programs. %description -n %{libglesv1name} OpenGL ES is a low-level, lightweight API for advanced embedded graphics using well-defined subset profiles of OpenGL. This package provides the OpenGL ES library version 1. %description -n %{khrdevel} Mesa Khronos development headers. %description -n %{libosmesaname} Mesa offscreen rendering libraries for rendering OpenGL into application-allocated blocks of memory. %description -n %{osmesadevel} This package contains the headers needed to compile programs against the Mesa offscreen rendering library. %description -n %{libglapiname} This packages provides the glapi shared library used by gallium. %description -n %{libglapiname}-devel This package contains the headers needed to compile programes against glapi shared library. %if 0%{?with_opencl} %description -n %libclname Mesa OpenCL runtime library %description -n %libcldevel Mesa OpenCL development package %endif %description -n %{libglesv1name}-devel This package contains the headers needed to compile OpenGL ES 1 programs. %description -n %{libd3dname} Mesa Direct3D9 state tracker. %description -n %{libd3dname}-devel Mesa Direct3D9 state tracker development package. %description -n %{libglesv2name} OpenGL ES is a low-level, lightweight API for advanced embedded graphics using well-defined subset profiles of OpenGL. This package provides the OpenGL ES library version 2. %description -n %{libglesv2name}-devel This package contains the headers needed to compile OpenGL ES 2 programs. %description -n %{libgbmname} Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. GBM (Graphics Buffer Manager) parts. %description -n %{libgbmname}-devel Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. GBM (Graphics Buffer Manager) development parts. %description -n %{libxaname} This packages provides the xa shared library used by gallium. %description -n %{libxaname}-devel This package contains the headers needed to compile programes against xa shared library. %description -n %{_lib}vdpau-driver-nouveau This packages provides a VPDAU plugin to enable video acceleration with the nouveau driver. %description -n %{_lib}vdpau-driver-r300 This packages provides a VPDAU plugin to enable video acceleration with the r300 driver. %description -n %{_lib}vdpau-driver-r600 This packages provides a VPDAU plugin to enable video acceleration with the r600 driver. %description -n %{_lib}vdpau-driver-radeonsi This packages provides a VPDAU plugin to enable video acceleration with the radeonsi driver. %description -n %{vulkandrivers} This package contains the Vulkan parts for Mesa's Intel and Radeon drivers. %description -n %{vulkandevel} This package contains the development files for Mesa's Vulkan implementation. %if 0%{?with_openswr} %description -n %{libopenswrname} This packages provides the OpenSWR shared libraries. OpenSWR (former http://www.openswr.org) is a high performance, highly scalable OpenGL-compatible software rasterizer that fully utilizes Advanced Vector Extension instruction set (AVX, AVX2 and AVX512) to achieve high rendering performance. %description -n %{libopenswrname}-devel This package contains the headers needed to compile programes against OpenSWR shared libraries. %endif #------------------------------------------------------------------------------ %prep %autosetup -n %{name}-%{version}%{?relc:-rc%{relc}} -p1 # remove unused docs rm -f docs/README.WIN32 %if %mgaversion >= 8 # Make sure the build uses gnu++14 as llvm 10 headers require that sed -i -e 's/cpp_std=gnu++11/cpp_std=gnu++14/g' meson.build %endif %build %meson -Dcpp_std=gnu++14 \ -Dplatforms=x11,wayland,drm,surfaceless \ -Ddri3=true \ -Ddri-drivers=%{?dri_drivers} \ %if 0%{?with_hardware} -Dgallium-drivers=swrast%{?with_openswr:,swr},virgl,r300,nouveau%{?with_zink:,zink}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_kmsro:,kmsro}%{?with_lima:,lima}%{?with_panfrost:,panfrost} \ %else -Dgallium-drivers=swrast,virgl \ %endif %if 0%{?with_openswr} -Dswr-arches=avx,avx2,skx \ %endif -Dgallium-vdpau=%{?with_vdpau:true}%{!?with_vdpau:false} \ -Dgallium-xvmc=false \ -Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \ -Dgallium-va=%{?with_vaapi:true}%{!?with_vaapi:false} \ -Dgallium-xa=%{?with_xa:true}%{!?with_xa:false} \ -Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \ -Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \ -Dvulkan-drivers=%{?vulkan_drivers} \ -Dshared-glapi=true \ -Dgles1=true \ -Dgles2=true \ -Dopengl=true \ -Dgbm=true \ -Dglx=dri \ -Degl=true \ %if 0%{?with_glvnd} -Dglvnd=true \ %endif -Dprefer-iris=%{?with_iris:true}%{!?with_iris:false} \ -Dllvm=true \ -Dshared-llvm=true \ -Dvalgrind=%{?with_valgrind:true}%{!?with_valgrind:false} \ -Dbuild-tests=false \ -Dselinux=false \ -Dosmesa=gallium \ -Dvulkan-device-select-layer=true \ -Dgallium-extra-hud=true \ -Dlmsensors=true \ %{nil} %meson_build # build docs %if 0%{?with_docs} (cd doxygen make ) %endif %install %meson_install # FIXME: strip will likely break the hardlink # (blino) hardlink libGL files in %{_libdir}/mesa # to prevent proprietary driver installers from removing them mkdir -p $RPM_BUILD_ROOT%{_libdir}/mesa pushd $RPM_BUILD_ROOT%{_libdir}/mesa for l in \ %if 0%{?with_glvnd} ../libGLX_mesa.so.* \ %else ../libGL.so.* \ %endif ; do cp -a $l .; done popd %if 0%{?with_glvnd} # default provider for indirect rendering when vendor is not determined ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0 ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0 %endif %ifarch %{x86_64} mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/dri %endif # libvdpau opens the versioned name, don't bother including the unversioned rm -f %{buildroot}%{_libdir}/vdpau/*.so # strip out useless headers rm -f %{buildroot}%{_includedir}/GL/w*.h # remove .la files find %{buildroot} -name '*.la' -delete %ifnarch %{ix86} x86_64 # To have something to package for mesavulkan-devel on arm/aarch64 for now mkdir %{buildroot}%{_includedir}/vulkan %endif #------------------------------------------------------------------------------ %files /usr/share/drirc.d/ %files -n %{dridrivers} %dir %{_libdir}/dri %{_libdir}/dri/*_dri.so %if 0%{?with_vaapi} %{_libdir}/dri/*_drv*.so %endif %if 0%{?with_hardware} %dir %{_libdir}/gallium-pipe %{_libdir}/gallium-pipe/*.so %endif %if 0%{?with_omx} %files omx-drivers %{_libdir}/bellagio/libomx_mesa.so %endif %if 0%{?with_opencl} %files -n %libclname %{_libdir}/libMesaOpenCL.so.* %{_sysconfdir}/OpenCL/vendors/mesa.icd %files -n %libcldevel %{_libdir}/libMesaOpenCL.so %endif %files -n %{libglname} %dir %{_libdir}/mesa %if 0%{?with_glvnd} %{_libdir}/libGLX_mesa.so.* %{_libdir}/mesa/libGLX_mesa.so.* %{_libdir}/libGLX_indirect.so.* %{_libdir}/libGLX_system.so.* %else %{_libdir}/libGL.so.* %{_libdir}/mesa/libGL.so.%{glmajor}{,.*} %endif %files -n %{libeglname} %if 0%{?with_glvnd} %{_libdir}/libEGL_mesa.so.* %{_datadir}/glvnd/egl_vendor.d/50_mesa.json %else %{_libdir}/libEGL.so.%{eglmajor}{,.*} %endif %files -n %{libosmesaname} %{_libdir}/libOSMesa.so.%{osmesamajor}{,.*} %files -n %{libglapiname} %{_libdir}/libglapi.so.%{glapimajor}{,.*} %files -n %{libglesv1name} %if 0%{?with_glvnd} == 0 %{_libdir}/libGLESv1_CM.so.%{glesv1major}{,.*} %endif %files -n %{libd3dname} %{_libdir}/d3d/*.so.* %files -n %{libglesv2name} %if 0%{?with_glvnd} == 0 %{_libdir}/libGLESv2.so.%{glesv2major}{,.*} %endif %files -n %{libgbmname} %{_libdir}/libgbm.so.%{gbmmajor} %{_libdir}/libgbm.so.%{gbmmajor}.* %files -n %{libxaname} %{_libdir}/libxatracker.so.%{xamajor}{,.*} %files -n %{libglname}-devel %dir %{_includedir}/GL %if 0%{?with_glvnd} %{_libdir}/libGLX_mesa.so %else %{_includedir}/GL/gl.h %{_includedir}/GL/glext.h %{_includedir}/GL/glx.h %{_includedir}/GL/glxext.h %{_includedir}/GL/glcorearb.h %{_libdir}/libGL.so %{_libdir}/pkgconfig/gl.pc %endif %dir %{_includedir}/GL/internal %{_includedir}/GL/internal/dri_interface.h %{_libdir}/pkgconfig/dri.pc %files common-devel %files -n %{libeglname}-devel %{_includedir}/EGL %if 0%{?with_glvnd} %{_libdir}/libEGL_mesa.so %else %{_libdir}/libEGL.so %{_libdir}/pkgconfig/egl.pc %endif %files -n %{khrdevel} %if 0%{?with_glvnd} == 0 %{_includedir}/KHR %endif %files -n %{osmesadevel} %if 0%{?with_docs} %doc docs doxygen/main %endif %dir %{_includedir}/GL %{_includedir}/GL/osmesa.h %{_libdir}/libOSMesa.so %{_libdir}/pkgconfig/osmesa.pc %files -n %{libglapiname}-devel %{_libdir}/libglapi.so %files -n %{libglesv1name}-devel %if 0%{?with_glvnd} == 0 %{_includedir}/GLES %{_libdir}/libGLESv1_CM.so %{_libdir}/pkgconfig/glesv1_cm.pc %endif %files -n %{libglesv2name}-devel %if 0%{?with_glvnd} == 0 %{_includedir}/GLES2 %{_includedir}/GLES3 %{_libdir}/libGLESv2.so %{_libdir}/pkgconfig/glesv2.pc %endif %files -n %{libd3dname}-devel %{_includedir}/d3dadapter %{_libdir}/d3d/*.so %{_libdir}/pkgconfig/d3d.pc %files -n %{libgbmname}-devel %{_libdir}/libgbm.so %{_includedir}/gbm.h %{_libdir}/pkgconfig/gbm.pc %files -n %{libxaname}-devel %{_libdir}/libxatracker.so %{_includedir}/xa_tracker.h %{_includedir}/xa_composite.h %{_includedir}/xa_context.h %{_libdir}/pkgconfig/xatracker.pc %files -n %{_lib}vdpau-driver-nouveau %{_libdir}/vdpau/libvdpau_nouveau.so.* %files -n %{_lib}vdpau-driver-r300 %{_libdir}/vdpau/libvdpau_r300.so.* %if 0%{?with_radeonsi} %files -n %{_lib}vdpau-driver-r600 %{_libdir}/vdpau/libvdpau_r600.so.* %files -n %{_lib}vdpau-driver-radeonsi %{_libdir}/vdpau/libvdpau_radeonsi.so.* %endif %files -n %{vulkandrivers} %dir %{_datadir}/vulkan %dir %{_datadir}/vulkan/icd.d %ifarch %{ix86} x86_64 %{_datadir}/vulkan/icd.d/intel_icd*.json %{_libdir}/libvulkan_intel.so %endif %{_libdir}/libVkLayer_MESA_device_select.so %{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json %{_datadir}/vulkan/icd.d/radeon_icd*.json %{_libdir}/libvulkan_radeon.so %files -n %{vulkandevel} %dir %{_includedir}/vulkan %ifarch %{ix86} x86_64 %{_includedir}/vulkan/vulkan_intel.h %endif %if 0%{?with_openswr} %files -n %{libopenswrname} %{_libdir}/libswrAVX.so.%{openswrmajor}{,.*} %{_libdir}/libswrAVX2.so.%{openswrmajor}{,.*} %{_libdir}/libswrSKX.so.%{openswrmajor}{,.*} # these libraries are opened for proper openswr working, instead of the # libswr*.so.0 files, so do not move to the -devel package. %{_libdir}/libswrAVX.so %{_libdir}/libswrAVX2.so %{_libdir}/libswrSKX.so #%%files -n %%{libopenswrname}-devel #{_libdir}/libswrAVX.so #{_libdir}/libswrAVX2.so #{_libdir}/libswrSKX.so %endif