diff --git a/mesa-22.0.1.tar.xz b/mesa-22.0.1.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..1b73680aa9678efab35276d691c86eb0e77027a9 Binary files /dev/null and b/mesa-22.0.1.tar.xz differ diff --git a/mesa.spec b/mesa.spec new file mode 100644 index 0000000000000000000000000000000000000000..de4bdc6376a8dab7e8805060abbccb48a6bffc82 --- /dev/null +++ b/mesa.spec @@ -0,0 +1,552 @@ +%define anolis_release 1 +%global with_hardware 1 +%global with_vulkan_hw 1 +%global with_vdpau 1 +%global with_vaapi 1 +%global with_xa 1 +%global base_vulkan ,amd + +%ifarch x86_64 +%global with_crocus 1 +%global with_iris 1 +%global with_vmware 1 +%global platform_vulkan ,intel +%endif + +%ifarch aarch64 +%global with_freedreno 1 +%global with_kmsro 1 +%global with_panfrost 1 +%global with_tegra 1 +%global platform_vulkan ,broadcom,freedreno,panfrost +%endif + +%global with_radeonsi 1 +%bcond_without valgrind +%global vulkan_drivers swrast%{?base_vulkan}%{?platform_vulkan} + +Name: mesa +Summary: Mesa graphics libraries +Version: 22.0.1 +Release: %{anolis_release}%{?dist} +License: MIT +URL: http://www.mesa3d.org + +Source0: https://mesa.freedesktop.org/archive/%{name}-%{version}.tar.xz + +BuildRequires: meson >= 0.45 +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: gettext +%if 0%{?with_hardware} +BuildRequires: kernel-headers +%endif +BuildRequires: pkgconfig(libdrm) >= 2.4.97 +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(zlib) >= 1.2.3 +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(wayland-protocols) >= 1.8 +BuildRequires: pkgconfig(wayland-client) >= 1.11 +BuildRequires: pkgconfig(wayland-server) >= 1.11 +BuildRequires: pkgconfig(wayland-egl-backend) >= 3 +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xdamage) >= 1.1 +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xcb-glx) >= 1.8.1 +BuildRequires: pkgconfig(xxf86vm) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(x11-xcb) +BuildRequires: pkgconfig(xcb-dri2) >= 1.8 +BuildRequires: pkgconfig(xcb-dri3) +BuildRequires: pkgconfig(xcb-present) +BuildRequires: pkgconfig(xcb-sync) +BuildRequires: pkgconfig(xshmfence) >= 1.1 +BuildRequires: pkgconfig(dri2proto) >= 2.8 +BuildRequires: pkgconfig(glproto) >= 1.4.14 +BuildRequires: pkgconfig(xcb-xfixes) +BuildRequires: pkgconfig(xcb-randr) +BuildRequires: pkgconfig(xrandr) >= 1.3 +BuildRequires: bison +BuildRequires: flex +%if 0%{?with_vdpau} +BuildRequires: pkgconfig(vdpau) >= 1.1 +%endif +%if 0%{?with_vaapi} +BuildRequires: pkgconfig(libva) >= 0.38.0 +%endif +%if 0%{?with_omx} +BuildRequires: pkgconfig(libomxil-bellagio) +%endif +BuildRequires: pkgconfig(libelf) +BuildRequires: pkgconfig(libglvnd) >= 1.3.2 +BuildRequires: llvm-devel >= 7.0.0 +%if 0%{?with_opencl} +BuildRequires: clang-devel +BuildRequires: pkgconfig(libclc) +%endif +%if %{with valgrind} +BuildRequires: pkgconfig(valgrind) +%endif +BuildRequires: python3-devel +BuildRequires: python3-mako +BuildRequires: vulkan-headers +BuildRequires: glslang +%if 0%{?with_vulkan_hw} +BuildRequires: pkgconfig(vulkan) +%endif + +%description +%{summary}. + +%package filesystem +Summary: Mesa driver filesystem +Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: mesa-dri-filesystem < %{?epoch:%{epoch}:}%{version}-%{release} + +%description filesystem +%{summary}. + +%package libGL +Summary: Mesa libGL runtime libraries +Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libglvnd-glx%{?_isa} >= 1:1.3.2 + +%description libGL +%{summary}. + +%package libGL-devel +Summary: Mesa libGL development package +Requires: %{name}-libGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libglvnd-devel%{?_isa} >= 1:1.3.2 +Provides: libGL-devel +Provides: libGL-devel%{?_isa} +Recommends: gl-manpages + +%description libGL-devel +%{summary}. + +%package libEGL +Summary: Mesa libEGL runtime libraries +Requires: libglvnd-egl%{?_isa} >= 1:1.3.2 + +%description libEGL +%{summary}. + +%package libEGL-devel +Summary: Mesa libEGL development package +Requires: %{name}-libEGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libglvnd-devel%{?_isa} >= 1:1.3.2 +Requires: %{name}-khr-devel%{?_isa} +Provides: libEGL-devel +Provides: libEGL-devel%{?_isa} + +%description libEGL-devel +%{summary}. + +%package dri-drivers +Summary: Mesa-based DRI drivers +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description dri-drivers +%{summary}. + +%if 0%{?with_omx} +%package omx-drivers +Summary: Mesa-based OMX drivers +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description omx-drivers +%{summary}. +%endif + +%if 0%{?with_vdpau} +%package vdpau-drivers +Summary: Mesa-based VDPAU drivers +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description vdpau-drivers +%{summary}. +%endif + +%package libOSMesa +Summary: Mesa offscreen rendering libraries +Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libOSMesa +Provides: libOSMesa%{?_isa} + +%description libOSMesa +%{summary}. + +%package libOSMesa-devel +Summary: Mesa offscreen rendering development package +Requires: %{name}-libOSMesa%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libOSMesa-devel +%{summary}. + +%package libgbm +Summary: Mesa gbm runtime library +Provides: libgbm +Provides: libgbm%{?_isa} + +%description libgbm +%{summary}. + +%package libgbm-devel +Summary: Mesa libgbm development package +Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libgbm-devel +Provides: libgbm-devel%{?_isa} + +%description libgbm-devel +%{summary}. + +%if 0%{?with_xa} +%package libxatracker +Summary: Mesa XA state tracker +Provides: libxatracker +Provides: libxatracker%{?_isa} + +%description libxatracker +%{summary}. + +%package libxatracker-devel +Summary: Mesa XA state tracker development package +Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libxatracker-devel +Provides: libxatracker-devel%{?_isa} + +%description libxatracker-devel +%{summary}. +%endif + +%package libglapi +Summary: Mesa shared glapi +Provides: libglapi +Provides: libglapi%{?_isa} + +%description libglapi +%{summary}. + +%if 0%{?with_opencl} +%package libOpenCL +Summary: Mesa OpenCL runtime library +Requires: ocl-icd%{?_isa} +Requires: libclc%{?_isa} +Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: opencl-filesystem + +%description libOpenCL +%{summary}. + +%package libOpenCL-devel +Summary: Mesa OpenCL development package +Requires: %{name}-libOpenCL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libOpenCL-devel +%{summary}. +%endif + +%if 0%{?with_nine} +%package libd3d +Summary: Mesa Direct3D9 state tracker + +%description libd3d +%{summary}. + +%package libd3d-devel +Summary: Mesa Direct3D9 state tracker development package +Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libd3d-devel +%{summary}. +%endif + +%package vulkan-drivers +Summary: Mesa Vulkan drivers +Requires: vulkan%{_isa} +Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release} + +%description vulkan-drivers +The drivers with support for the Vulkan API. + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +%define _lto_cflags %{nil} + +%meson \ + -Dplatforms=x11,wayland \ + -Ddri3=enabled \ + -Dosmesa=true \ +%if 0%{?with_hardware} + -Dgallium-drivers=swrast,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,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}%{?with_vulkan_hw:,zink} \ +%else + -Dgallium-drivers=swrast,virgl \ +%endif + -Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \ + -Dgallium-xvmc=disabled \ + -Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \ + -Dgallium-va=%{?with_vaapi:enabled}%{!?with_vaapi:disabled} \ + -Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \ + -Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \ + -Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \ + -Dvulkan-drivers=%{?vulkan_drivers} \ + -Dvulkan-layers=device-select \ + -Dshared-glapi=enabled \ + -Dgles1=disabled \ + -Dgles2=enabled \ + -Dopengl=true \ + -Dgbm=enabled \ + -Dglx=dri \ + -Degl=enabled \ + -Dglvnd=true \ + -Dmicrosoft-clc=disabled \ + -Dllvm=enabled \ + -Dshared-llvm=enabled \ + -Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \ + -Dbuild-tests=false \ + -Dselinux=true \ + %{nil} +%meson_build + +%install +%meson_install + +# libvdpau opens the versioned name, don't bother including the unversioned +rm -vf %{buildroot}%{_libdir}/vdpau/*.so +# likewise glvnd +rm -vf %{buildroot}%{_libdir}/libGLX_mesa.so +rm -vf %{buildroot}%{_libdir}/libEGL_mesa.so +# XXX can we just not build this +rm -vf %{buildroot}%{_libdir}/libGLES* + +# glvnd needs a default provider for indirect rendering where it cannot +# determine the vendor +ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0 + +# this keeps breaking, check it early. note that the exit from eu-ftr is odd. +pushd %{buildroot}%{_libdir} +for i in libOSMesa*.so libGL.so ; do + eu-findtextrel $i && exit 1 +done +popd + +%files filesystem +%dir %{_libdir}/dri +%if 0%{?with_hardware} +%if 0%{?with_vdpau} +%dir %{_libdir}/vdpau +%endif +%endif + +%files libGL +%{_libdir}/libGLX_mesa.so.0* +%{_libdir}/libGLX_system.so.0* +%files libGL-devel +%dir %{_includedir}/GL/internal +%{_includedir}/GL/internal/dri_interface.h +%{_libdir}/pkgconfig/dri.pc +%{_libdir}/libglapi.so + +%files libEGL +%{_datadir}/glvnd/egl_vendor.d/50_mesa.json +%{_libdir}/libEGL_mesa.so.0* +%files libEGL-devel +%dir %{_includedir}/EGL +%{_includedir}/EGL/eglmesaext.h +%{_includedir}/EGL/eglextchromium.h + +%files libglapi +%{_libdir}/libglapi.so.0 +%{_libdir}/libglapi.so.0.* + +%files libOSMesa +%{_libdir}/libOSMesa.so.8* +%files libOSMesa-devel +%dir %{_includedir}/GL +%{_includedir}/GL/osmesa.h +%{_libdir}/libOSMesa.so +%{_libdir}/pkgconfig/osmesa.pc + +%files libgbm +%{_libdir}/libgbm.so.1 +%{_libdir}/libgbm.so.1.* +%files libgbm-devel +%{_libdir}/libgbm.so +%{_includedir}/gbm.h +%{_libdir}/pkgconfig/gbm.pc + +%if 0%{?with_xa} +%files libxatracker +%if 0%{?with_hardware} +%{_libdir}/libxatracker.so.2 +%{_libdir}/libxatracker.so.2.* +%endif + +%files libxatracker-devel +%if 0%{?with_hardware} +%{_libdir}/libxatracker.so +%{_includedir}/xa_tracker.h +%{_includedir}/xa_composite.h +%{_includedir}/xa_context.h +%{_libdir}/pkgconfig/xatracker.pc +%endif +%endif + +%if 0%{?with_opencl} +%files libOpenCL +%{_libdir}/libMesaOpenCL.so.* +%{_sysconfdir}/OpenCL/vendors/mesa.icd +%files libOpenCL-devel +%{_libdir}/libMesaOpenCL.so +%endif + +%if 0%{?with_nine} +%files libd3d +%dir %{_libdir}/d3d/ +%{_libdir}/d3d/*.so.* + +%files libd3d-devel +%{_libdir}/pkgconfig/d3d.pc +%{_includedir}/d3dadapter/ +%{_libdir}/d3d/*.so +%endif + +%files dri-drivers +%dir %{_datadir}/drirc.d +%{_datadir}/drirc.d/00-mesa-defaults.conf +%{_libdir}/dri/kms_swrast_dri.so +%{_libdir}/dri/swrast_dri.so +%{_libdir}/dri/virtio_gpu_dri.so + +%if 0%{?with_hardware} +%if 0%{?with_r300} +%{_libdir}/dri/r300_dri.so +%endif +%if 0%{?with_radeonsi} +%if 0%{?with_r600} +%{_libdir}/dri/r600_dri.so +%endif +%{_libdir}/dri/radeonsi_dri.so +%endif +%ifarch x86_64 +%{_libdir}/dri/crocus_dri.so +%{_libdir}/dri/iris_dri.so +%endif +%ifarch aarch64 +%{_libdir}/dri/ingenic-drm_dri.so +%{_libdir}/dri/imx-drm_dri.so +%{_libdir}/dri/kirin_dri.so +%{_libdir}/dri/komeda_dri.so +%{_libdir}/dri/mali-dp_dri.so +%{_libdir}/dri/mcde_dri.so +%{_libdir}/dri/mxsfb-drm_dri.so +%{_libdir}/dri/rcar-du_dri.so +%{_libdir}/dri/stm_dri.so +%endif +%if 0%{?with_vc4} +%{_libdir}/dri/vc4_dri.so +%endif +%if 0%{?with_v3d} +%{_libdir}/dri/v3d_dri.so +%endif +%if 0%{?with_freedreno} +%{_libdir}/dri/kgsl_dri.so +%{_libdir}/dri/msm_dri.so +%endif +%if 0%{?with_etnaviv} +%{_libdir}/dri/etnaviv_dri.so +%endif +%if 0%{?with_tegra} +%{_libdir}/dri/tegra_dri.so +%endif +%if 0%{?with_lima} +%{_libdir}/dri/lima_dri.so +%endif +%if 0%{?with_panfrost} +%{_libdir}/dri/panfrost_dri.so +%endif +%{_libdir}/dri/nouveau_dri.so +%if 0%{?with_vmware} +%{_libdir}/dri/vmwgfx_dri.so +%endif +%{_libdir}/dri/nouveau_drv_video.so +%if 0%{?with_r600} +%{_libdir}/dri/r600_drv_video.so +%endif +%if 0%{?with_radeonsi} +%{_libdir}/dri/radeonsi_drv_video.so +%endif +%endif +%if 0%{?with_opencl} +%dir %{_libdir}/gallium-pipe +%{_libdir}/gallium-pipe/*.so +%endif +%if 0%{?with_kmsro} +%{_libdir}/dri/armada-drm_dri.so +%{_libdir}/dri/exynos_dri.so +%{_libdir}/dri/hx8357d_dri.so +%{_libdir}/dri/ili9225_dri.so +%{_libdir}/dri/ili9341_dri.so +%{_libdir}/dri/imx-dcss_dri.so +%{_libdir}/dri/mediatek_dri.so +%{_libdir}/dri/meson_dri.so +%{_libdir}/dri/mi0283qt_dri.so +%{_libdir}/dri/pl111_dri.so +%{_libdir}/dri/repaper_dri.so +%{_libdir}/dri/rockchip_dri.so +%{_libdir}/dri/st7586_dri.so +%{_libdir}/dri/st7735r_dri.so +%{_libdir}/dri/sun4i-drm_dri.so +%endif +%if 0%{?with_vulkan_hw} +%{_libdir}/dri/zink_dri.so +%endif + +%if 0%{?with_omx} +%files omx-drivers +%{_libdir}/bellagio/libomx_mesa.so +%endif +%if 0%{?with_vdpau} +%files vdpau-drivers +%{_libdir}/vdpau/libvdpau_nouveau.so.1* +%if 0%{?with_r300} +%{_libdir}/vdpau/libvdpau_r300.so.1* +%endif +%if 0%{?with_r600} +%{_libdir}/vdpau/libvdpau_r600.so.1* +%endif +%if 0%{?with_radeonsi} +%{_libdir}/vdpau/libvdpau_radeonsi.so.1* +%endif +%endif + +%files vulkan-drivers +%{_libdir}/libvulkan_lvp.so +%{_datadir}/vulkan/icd.d/lvp_icd.*.json +%{_libdir}/libVkLayer_MESA_device_select.so +%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json +%if 0%{?with_vulkan_hw} +%{_libdir}/libvulkan_radeon.so +%{_datadir}/vulkan/icd.d/radeon_icd.*.json +%ifarch x86_64 +%{_libdir}/libvulkan_intel.so +%{_datadir}/vulkan/icd.d/intel_icd.*.json +%endif +%ifarch aarch64 +%{_libdir}/libvulkan_broadcom.so +%{_datadir}/vulkan/icd.d/broadcom_icd.*.json +%{_libdir}/libvulkan_freedreno.so +%{_datadir}/vulkan/icd.d/freedreno_icd.*.json +%{_libdir}/libvulkan_panfrost.so +%{_datadir}/vulkan/icd.d/panfrost_icd.*.json +%endif +%endif + +%changelog +* Fri Apr 15 2022 Yuanhong Peng - 22.0.1-1 +- Init package from upstream v22.0.1