--- cauldron/mesa/current/SPECS/mesa.spec 2018/01/09 20:55:13 1191955 +++ cauldron/mesa/current/SPECS/mesa.spec 2019/03/06 20:09:21 1372063 @@ -1,9 +1,3 @@ -%if "%distro_section" == "tainted" -%global build_plf 1 -%else -%global build_plf 0 -%endif - # (cg) Cheater... %define Werror_cflags %nil @@ -12,13 +6,13 @@ # https://cgit.freedesktop.org/mesa/mesa/commit/?h=13.0&id=3bb0415ab96f74183f7aa58c1a543448653ccb3e %define git 0 -%define git_branch 17.3 +%define git_branch 18.0 %define opengl_ver 4.5 # define version, RC & release -%define main_version 17.3.2 -#define relc 1 +%define main_version 19.0.0 +%define relc 7 %define rel 1 %define release %mkrel %{?relc:0.rc%{relc}.}%{rel} @@ -43,7 +37,7 @@ %define gbmname gbm %define waylandeglname wayland-egl %define xaname xatracker -%define vulkanname vulkan +%define vulkanname mesavulkan %define d3dmajor 1 %define eglmajor 1 @@ -68,10 +62,13 @@ %define libwaylandeglname %mklibname %{waylandeglname} %{waylandeglmajor} %define libosmesaname %mklibname osmesa %{osmesamajor} %define libxaname %mklibname %{xaname} %{xamajor} -%define libvulkanname %mklibname %{vulkanname} %define dridrivers %mklibname dri-drivers +%define vulkandrivers %mklibname %{vulkanname}-drivers +%define vulkandevel %mklibname %{vulkanname} -d + +%define khrdevel %mklibname mesakhr -d %define osmesadevel %mklibname osmesa -d # Architecture-independent Virtual provides: @@ -86,14 +83,21 @@ %define libwaylandeglname_virt lib%{waylandeglname} %define libxaname_virt lib%{xaname} -%define oldlibglname %mklibname MesaGL 1 - %define mesasrcdir %{_prefix}/src/Mesa/ -# (akien) Not adding on arm as it would break the build there -%define enable_vulkan 0 +%define with_vaapi 1 + %ifarch %{ix86} x86_64 -%define enable_vulkan 1 +%define vulkan_drivers --with-vulkan-drivers=intel,radeon +%else +%define vulkan_drivers --with-vulkan-drivers=radeon +%endif + + +%ifarch %{arm} aarch64 +%define with_etnaviv 1 +%define with_freedreno 1 +%define with_vc4 1 %endif %define base_drivers swrast,nouveau,radeon,r200 @@ -101,6 +105,9 @@ %define platform_drivers ,i915,i965 %define gallium_platform_drivers ,svga %endif + +%define with_wayland_egl 0 + %define dri_drivers --with-dri-drivers=%{?base_drivers}%{?platform_drivers} Name: mesa @@ -121,27 +128,32 @@ BuildRequires: pkgconfig(expat) >= 2.0.1 BuildRequires: gccmakedep BuildRequires: x11-proto-devel >= 7.3 -BuildRequires: pkgconfig(libdrm) >= 2.4.60 +BuildRequires: pkgconfig(libdrm) >= 2.4.91 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) BuildRequires: pkgconfig(talloc) -BuildRequires: libxml2-python -BuildRequires: python-mako +BuildRequires: python2-libxml2 +BuildRequires: python2-mako +BuildRequires: python3-libxml2 +BuildRequires: python3-mako BuildRequires: makedepend BuildRequires: bison BuildRequires: flex BuildRequires: pkgconfig(libelf) BuildRequires: llvm-devel >= 3.9.1-5 BuildRequires: pkgconfig(libudev) +%if 0%{?with_vaapi} BuildRequires: pkgconfig(libva) +%endif BuildRequires: pkgconfig(vdpau) -BuildRequires: wayland-devel -%if %{enable_vulkan} +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wayland-protocols) BuildRequires: libgcrypt-devel -%endif BuildRequires: pkgconfig(wayland-protocols) >= 1.8 URL: http://www.mesa3d.org @@ -154,35 +166,11 @@ %endif Source3: make-git-snapshot.sh -# Instructions to setup your repository clone -# git://git.freedesktop.org/git/mesa/mesa -# git checkout mesa_7_5_branch -# git branch mdv-cherry-picks -# git am ../02??-*.patch -# git branch mdv-redhat -# git am ../03??-*.patch -# git branch mdv-patches -# git am ../09??-*.patch -# In order to update to the branch via patches, issue this command: -# git format-patch --start-number 100 mesa_7_5_1..mesa_7_5_branch | sed 's/^0\([0-9]\+\)-/Patch\1: 0\1-/' - -# from mesa master: https://cgit.freedesktop.org/mesa/mesa/commit/?id=c591b1e59454db2e8854e36852e0d413ce38b2f2 -Patch100: i965-expose-SRGB-visuals-and-turn-on-EGL_KHR_gl-colorspace.patch - -# Cherry picks -# git format-patch --start-number 200 mesa_7_5_branch..mdv-cherry-picks - -# Patches "liberated" from Fedora: -# http://pkgs.fedoraproject.org/cgit/rpms/mesa.git/ -# git format-patch --start-number 300 mdv-cherry-picks..mdv-redhat +Patch000: fix-linking.patch -# https://cgit.freedesktop.org/~ajax/mesa/log/?h=mesa-17.2-s3tc +# mesa staging/18.3 branch from 1 -# Patches from ChromiumOS -# http://git.chromium.org/gitweb/?p=chromiumos/overlays/chromiumos-overlay.git;a=tree;f=media-libs/mesa/files;hb=HEAD - -# Mageia/Mandriva patches -# git format-patch --start-number 900 mdv-redhat..mdv-patches +# mesa master branch from 201 #------------------------------------------------------------------------------ @@ -197,8 +185,6 @@ %package -n %{libglname} Summary: Files for Mesa (GL and GLX libs) Group: System/Libraries -Obsoletes: %{oldlibglname} < 6.4 -Provides: %{oldlibglname} = %{version}-%{release} Provides: %{libglname_virt} = %{version}-%{release} Requires: %{dridrivers} >= %{version}-%{release} @@ -233,11 +219,10 @@ 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: GL-devel -Obsoletes: %{oldlibglname}-devel < 6.4 -Provides: %{oldlibglname}-devel = %{version}-%{release} Provides: libMesaGL-devel = %{version}-%{release} Provides: MesaGL-devel = %{version}-%{release} Provides: libgl-devel @@ -251,11 +236,17 @@ Summary: Development files for Mesa (EGL libs) Group: Development/C Requires: %{libeglname} = %{version}-%{release} +Requires: %{khrdevel} = %{version}-%{release} Provides: EGL-devel Provides: lib%{eglname}-devel Provides: %{eglname}-devel Provides: libegl-devel +%package -n %{khrdevel} +Summary: Mesa Khronos development headers +Group: Development/C +Provides: mesakhr-devel = %{version}-%{release} + %package -n %{libosmesaname} Summary: Mesa offscreen rendering library Group: System/Libraries @@ -288,6 +279,7 @@ 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 @@ -301,7 +293,7 @@ Summary: Development files for glesv2 libs Group: Development/C Requires: %{libglesv2name} = %{version}-%{release} -Requires: %{libeglname}-devel = %{version}-%{release} +Requires: %{khrdevel} = %{version}-%{release} Provides: lib%{glesv2name}-devel Provides: %{glesv2name}-devel Provides: libglesv2-devel @@ -318,6 +310,7 @@ Provides: lib%{gbmname}-devel Provides: %{gbmname}-devel +%if %{?with_wayland_egl} %package -n %{libwaylandeglname} Summary: Files for Mesa (Wayland EGL libs) Group: System/Libraries @@ -329,6 +322,7 @@ Requires: %{libwaylandeglname} = %{version}-%{release} Provides: lib%{waylandeglname}-devel Provides: %{waylandeglname}-devel +%endif %package -n %{_lib}vdpau-driver-nouveau Summary: VDPAU plugin for nouveau driver @@ -366,22 +360,22 @@ Provides: lib%{xaname}-devel Provides: %{libxaname}-devel -%if %{enable_vulkan} -%package -n %{libvulkanname}_intel -Summary: Mesa vulkan driver for Intel GPU -Group: System/Libraries - -%package -n %{libvulkanname}_radeon -Summary: Mesa vulkan driver for Radeon GPU +%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 %{libvulkanname}-devel -Summary: Mesa's Vulkan development files +%package -n %{vulkandevel} +Summary: Mesa's Vulkan development files for Intel and Radeon drivers Group: Development/C -Requires: %{libvulkanname}_intel = %{version}-%{release} -Provides: libvulkan-devel -Provides: libvulkan_intel-devel -%endif +Requires: %{vulkandrivers} = %{version}-%{release} +Obsoletes: %{_lib}vulkan-devel < 0:18.3.0-4 +Provides: %{vulkanname}-devel = %{version}-%{release} %package common-devel Summary: Meta package for mesa devel @@ -432,6 +426,9 @@ 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. @@ -472,6 +469,7 @@ Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. GBM (Graphics Buffer Manager) development parts. +%if %{?with_wayland_egl} %description -n %{libwaylandeglname} Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. Wayland EGL platform parts. @@ -479,6 +477,7 @@ %description -n %{libwaylandeglname}-devel Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. Wayland EGL platform development parts. +%endif %description -n %{libxaname} This packages provides the xa shared library used by gallium. @@ -502,26 +501,17 @@ This packages provides a VPDAU plugin to enable video acceleration with the radeonsi driver. -%if %{enable_vulkan} -%description -n %{libvulkanname}_intel -This package contains the Vulkan parts for Mesa's Intel driver. +%description -n %{vulkandrivers} +This package contains the Vulkan parts for Mesa's Intel and Radeon drivers. -%description -n %{libvulkanname}_radeon -This package contains the Vulkan parts for Mesa's Radeon driver. - -%description -n %{libvulkanname}-devel +%description -n %{vulkandevel} This package contains the development files for Mesa's Vulkan implementation. -%endif #------------------------------------------------------------------------------ %prep %autosetup -n %{name}-%{version}%{?relc:-rc%{relc}} -p1 -# this is a hack for S3TC support. r200_screen.c is symlinked to -# radeon_screen.c in git, but is its own file in the tarball. -cp -f src/mesa/drivers/dri/{radeon,r200}/radeon_screen.c - %build # (re)generate auto* generated files using our autotools and libtoolize autoreconf -vfi @@ -530,9 +520,6 @@ automake --add-missing %configure2_5x \ -%if %{enable_vulkan} - --with-vulkan-drivers=intel,radeon \ -%endif --enable-gallium-osmesa \ --with-dri-driverdir=%{_libdir}/dri \ --enable-egl \ @@ -540,8 +527,8 @@ --enable-gles2 \ --disable-xvmc \ --enable-vdpau \ - --enable-va \ - --with-platforms=x11,wayland,drm \ + %{?with_vaapi:--enable-va} \ + --with-platforms=x11,drm,surfaceless,wayland \ --enable-shared-glapi \ --enable-gbm \ --enable-glx \ @@ -551,7 +538,9 @@ --enable-dri \ --enable-xa \ --enable-nine \ - --with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,virgl%{?gallium_platform_drivers} \ + --enable-autotools \ + --with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,%{?with_freedreno:freedreno,}%{?with_etnaviv:etnaviv,}%{?with_vc4:vc4,}virgl%{?gallium_platform_drivers} \ + %{?vulkan_drivers} \ %{?dri_drivers} # end of configure options @@ -582,10 +571,21 @@ # remove .la files find %{buildroot} -name '*.la' -delete +# remove libwayland-egl on F28+ where it's built as part of wayland source package +%if !%{?with_wayland_egl} +rm -f %{buildroot}%{_libdir}/libwayland-egl.so* +rm -f %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc +%endif + +%ifnarch %{ix86} x86_64 +# To have something to package for mesavulkan-devel on arm/aarch64 for now +mkdir %{buildroot}%{_includedir}/vulkan +%endif + #------------------------------------------------------------------------------ %files -%config(noreplace) %{_sysconfdir}/drirc +/usr/share/drirc.d/ %files -n %{dridrivers} %dir %{_libdir}/dri @@ -619,9 +619,11 @@ %{_libdir}/libgbm.so.%{gbmmajor} %{_libdir}/libgbm.so.%{gbmmajor}.* +%if %{?with_wayland_egl} %files -n %{libwaylandeglname} %{_libdir}/libwayland-egl.so.%{waylandeglmajor} %{_libdir}/libwayland-egl.so.%{waylandeglmajor}.* +%endif %files -n %{libxaname} %{_libdir}/libxatracker.so.%{xamajor}{,.*} @@ -645,10 +647,12 @@ %files -n %{libeglname}-devel %{_includedir}/EGL -%{_includedir}/KHR %{_libdir}/libEGL.so %{_libdir}/pkgconfig/egl.pc +%files -n %{khrdevel} +%{_includedir}/KHR + %files -n %{osmesadevel} %dir %{_includedir}/GL %{_includedir}/GL/osmesa.h @@ -679,9 +683,11 @@ %{_includedir}/gbm.h %{_libdir}/pkgconfig/gbm.pc +%if %{?with_wayland_egl} %files -n %{libwaylandeglname}-devel %{_libdir}/libwayland-egl.so %{_libdir}/pkgconfig/wayland-egl.pc +%endif %files -n %{libxaname}-devel %{_libdir}/libxatracker.so @@ -702,21 +708,18 @@ %files -n %{_lib}vdpau-driver-radeonsi %{_libdir}/vdpau/libvdpau_radeonsi.so.* -%if %{enable_vulkan} -%files -n %{libvulkanname}_intel +%files -n %{vulkandrivers} %dir %{_datadir}/vulkan %dir %{_datadir}/vulkan/icd.d +%ifarch %{ix86} x86_64 %{_datadir}/vulkan/icd.d/intel_icd*.json -# (akien) No lib major? %{_libdir}/libvulkan_intel.so - -%files -n %{libvulkanname}_radeon -%dir %{_datadir}/vulkan -%dir %{_datadir}/vulkan/icd.d +%endif %{_datadir}/vulkan/icd.d/radeon_icd*.json -# (akien) No lib major? %{_libdir}/libvulkan_radeon.so -%files -n %{libvulkanname}-devel -%{_includedir}/vulkan/ +%files -n %{vulkandevel} +%dir %{_includedir}/vulkan +%ifarch %{ix86} x86_64 +%{_includedir}/vulkan/vulkan_intel.h %endif