# TODO:
# - check if gallium_intel note is still valid, switch the bcond if not
# - consider:
+# - ARM drivers (ilo,freedreno,vc4)?
# - subpackage with non-dri libGL for use with X-servers with missing GLX extension?
# - resurrect static if it's useful (using plain xorg target? DRI doesn't support static)
#
%bcond_without gallium_nouveau # gallium nouveau driver
%bcond_without gallium_radeon # gallium radeon drivers
%bcond_without egl # EGL libraries
-# "Cannot enable OpenVG, because egl_gallium has been removed and
-# OpenVG hasn't been integrated into standard libEGL yet"
-%bcond_with openvg # OpenVG
+%bcond_with openvg # OpenVG library [not builind since 10.4, dropped in 10.6]
%bcond_without gbm # Graphics Buffer Manager
+%bcond_without nine # Nine Direct3D 9+ state tracker (for Wine)
%bcond_without opencl # OpenCL support
%bcond_without ocl_icd # OpenCL as ICD (installable client driver)
%bcond_without omx # OpenMAX (Bellagio OMXIL) support
+%bcond_without va # VA library
%bcond_without wayland # Wayland EGL
%bcond_without xa # XA state tracker (for vmwgfx xorg driver)
+%bcond_with texture_float # floating-point textures and renderbuffers (SGI patent in US)
%bcond_with static_libs # static libraries [not supported for DRI, thus broken currently]
%bcond_with tests # tests
#
# minimal supported xserver version
%define xserver_ver 1.5.0
# other packages
-%define libdrm_ver 2.4.56
+%define libdrm_ver 2.4.60
%define dri2proto_ver 2.6
%define dri3proto_ver 1.0
%define glproto_ver 1.4.14
%define presentproto_ver 1.0
-# no clang/llvm on x32 yet
%ifarch x32
-%undefine with_gallium
+# ICE in src/gallium/targets/d3dadapter9/getproc.c
+%undefine with_nine
%endif
%if %{without gallium}
%undefine with_gallium_intel
%undefine with_gallium_nouveau
%undefine with_gallium_radeon
+%undefine with_nine
%undefine with_ocl_icd
%undefine with_omx
%undefine with_opencl
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 10.4.2
+Version: 10.6.6
Release: 1
License: MIT (core) and others - see license.html file
Group: X11/Libraries
-Source0: ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{name}Lib-%{version}.tar.bz2
-# Source0-md5: ca915badc9c676f811a5ee514748ef78
+Source0: ftp://ftp.freedesktop.org/pub/mesa/%{version}/mesa-%{version}.tar.xz
+# Source0-md5: ce091e6e969392f7c63ca8c0275bbc0f
Patch0: missing-type.patch
URL: http://www.mesa3d.org/
BuildRequires: autoconf >= 2.60
%{?with_opencl:BuildRequires: clang-devel >= 3.1}
BuildRequires: elfutils-devel
BuildRequires: expat-devel
-BuildRequires: gcc >= 5:3.3
+BuildRequires: gcc >= 6:4.2.0
%{?with_opencl:BuildRequires: gcc-c++ >= 6:4.7}
BuildRequires: libdrm-devel >= %{libdrm_ver}
BuildRequires: libselinux-devel
-BuildRequires: libstdc++-devel >= 5:3.3.0
+BuildRequires: libstdc++-devel >= 6:4.2.0
BuildRequires: libtalloc-devel >= 2:2.0.1
BuildRequires: libtool >= 2:2.2
+%{?with_va:BuildRequires: libva-devel >= 1.3.0}
+%{?with_va:BuildRequires: pkgconfig(libva) >= 0.35.0}
BuildRequires: libvdpau-devel >= 0.4.1
BuildRequires: libxcb-devel >= 1.10
%{?with_gallium_radeon:BuildRequires: llvm-devel >= 3.4.2}
%{?with_opencl:BuildRequires: llvm-libclc}
+# for SHA1 (could use also libmd/libsha1/libgcrypt/openssl instead)
+BuildRequires: nettle-devel
%{?with_ocl_icd:BuildRequires: ocl-icd-devel}
%{?with_omx:BuildRequires: libomxil-bellagio-devel}
BuildRequires: perl-base
BuildRequires: pkgconfig(xcb-dri3)
BuildRequires: pkgconfig(xcb-present)
BuildRequires: python >= 2
+BuildRequires: python-Mako >= 0.3.4
BuildRequires: python-modules >= 2
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: sed >= 4.0
Requires: libxcb >= 1.9
%{?with_wayland:Requires: wayland >= 1.2.0}
%if %{with gallium}
-%if %{with openvg}
-# for egl_gallium.so
-Requires: %{name}-libOpenVG = %{version}-%{release}
-%endif
Requires: udev-libs >= 1:151
%endif
%if %{with gbm}
Requires: llvm-libclc
Requires: udev-libs >= 1:151
Provides: OpenCL = 1.1
+Provides: ocl-icd-driver
%description OpenCL-icd
This package contains Mesa implementation of OpenCL - standard for
Summary: VA driver for Gallium State Tracker
Summary(pl.UTF-8): Sterownik VA do Gallium
Group: Libraries
+Requires: libva >= 1.3.0
%description -n libva-driver-gallium
VA driver for Gallium State Tracker.
%description dri-driver-vmwgfx -l pl.UTF-8
Sterownik X.org DRI dla VMware.
+%package d3d
+Summary: Nine Direct3D9 driver (for Wine)
+Summary(pl.UTF-8): Sterownik Direct3D9 Nine (dla Wine)
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+
+%description d3d
+Nine Direct3D9 driver (for Wine).
+
+%description d3d -l pl.UTF-8
+Sterownik Direct3D9 Nine (dla Wine).
+
+%package d3d-devel
+Summary: Nine Direct3D9 driver API
+Summary(pl.UTF-8): API sterownika Direct3D9 Nine
+Group: Development/Libraries
+Requires: libdrm-devel >= %{libdrm_ver}
+
+%description d3d-devel
+Nine Direct3D9 driver API.
+
+%description d3d-devel -l pl.UTF-8
+API sterownika Direct3D9 Nine.
+
%package -n libvdpau-driver-mesa-nouveau
Summary: Mesa nouveau driver for the vdpau API
Summary(pl.UTF-8): Sterownik Mesa nouveau dla API vdpau
ATI Radeon oparte na układach Southern Islands.
%prep
-%setup -q
+%setup -q -n mesa-%{version}
%patch0 -p1
%build
%configure \
--disable-silent-rules \
- --enable-shared \
- --enable-glx-tls \
- --enable-selinux \
- %{?with_static_libs:--enable-static} \
%{__enable gbm} \
+ --enable-glx-tls \
--enable-osmesa \
+ --enable-selinux \
+ --enable-shared \
--enable-shared-glapi \
+ %{?with_static_libs:--enable-static} \
+ %{?with_texture_float:--enable-texture-float} \
%if %{with egl}
--enable-egl \
--enable-gles1 \
%{__enable egl gallium-egl} \
%{__enable gbm gallium-gbm} \
%{__enable ocl_icd opencl-icd} \
- %{__enable opencl opencl} \
- %{?with_egl:%{?with_openvg:--enable-openvg}} \
+ %{?with_nine:--enable-nine} \
+ %{__enable opencl} \
--enable-vdpau \
%{?with_omx:--enable-omx} \
%{?with_xa:--enable-xa} \
%else
--without-gallium-drivers \
%endif
- --with-va-libdir=%{_libdir}/libva/dri \
--with-dri-drivers=${dri_drivers} \
- --with-dri-driverdir=%{_libdir}/xorg/modules/dri
+ --with-dri-driverdir=%{_libdir}/xorg/modules/dri \
+ --with-sha1=libnettle \
+ --with-va-libdir=%{_libdir}/libva/dri
%{__make}
DESTDIR=$RPM_BUILD_ROOT
# strip out undesirable headers
-%{__rm} $RPM_BUILD_ROOT%{_includedir}/GL/{wglext,wmesa}.h
+%{__rm} $RPM_BUILD_ROOT%{_includedir}/GL/wglext.h
# dlopened by soname
%{?with_gallium:%{__rm} $RPM_BUILD_ROOT%{_libdir}/libXvMC*.so}
%{?with_gallium:%{__rm} $RPM_BUILD_ROOT%{_libdir}/libXvMC*.so.1.0}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libglapi.so
# dlopened
%{?with_omx:%{__rm} $RPM_BUILD_ROOT%{_libdir}/bellagio/libomx_*.la}
+%{?with_nine:%{__rm} $RPM_BUILD_ROOT%{_libdir}/d3d/d3dadapter9.la}
%{?with_gallium:%{__rm} $RPM_BUILD_ROOT%{_libdir}/gallium-pipe/pipe_*.la}
# not defined by standards; and not needed, there is pkg-config support
%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
%files libGL
%defattr(644,root,root,755)
-%doc docs/{*.html,README.UVD,relnotes/*.html}
+%doc docs/{*.html,README.UVD,patents.txt,relnotes/*.html}
%attr(755,root,root) %{_libdir}/libGL.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libGL.so.1
# symlink for binary apps which fail to conform Linux OpenGL ABI
%attr(755,root,root) %ghost %{_libdir}/libXvMCr600.so.1
%endif
+%if %{with va}
%files -n libva-driver-gallium
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libva/dri/gallium_drv_video.so
%endif
+%endif
%if %{with gbm}
%files libgbm
%attr(755,root,root) %ghost %{_libdir}/libgbm.so.1
%if %{with gallium}
%dir %{_libdir}/gallium-pipe
-%if %{with openvg}
-%dir %{_libdir}/gbm
-%attr(755,root,root) %{_libdir}/gbm/gbm_gallium_drm.so
-%endif
%endif
%files libgbm-devel
%attr(755,root,root) %{_libdir}/xorg/modules/dri/vmwgfx_dri.so
%endif
+%if %{with nine}
+%files d3d
+%defattr(644,root,root,755)
+%dir %{_libdir}/d3d
+%attr(755,root,root) %{_libdir}/d3d/d3dadapter9.so*
+
+%files d3d-devel
+%defattr(644,root,root,755)
+%{_includedir}/d3dadapter
+%{_pkgconfigdir}/d3d.pc
+%endif
+
%if %{with gallium}
# ldconfig is not used in vdpau tree, so package all symlinks
%if %{with gallium_nouveau}