%bcond_without gallium_nouveau # gallium nouveau driver
%bcond_without egl # EGL libraries
%bcond_without gbm # Graphics Buffer Manager
-%bcond_without opencl # OpenCL library
+%bcond_without opencl # OpenCL support
+%bcond_without ocl_icd # OpenCL as ICD (installable client driver)
+%bcond_without omx # OpenMAX (Bellagio OMXIL) support
%bcond_without wayland # Wayland EGL
%bcond_without xa # XA state tracker (for vmwgfx xorg driver)
%bcond_with static_libs # static libraries [not supported for DRI, thus broken currently]
# glapi version (glapi tables in dri drivers and libglx must be in sync);
# set to current Mesa version on ABI break, when xserver tables get regenerated
# (until they start to be somehow versioned themselves)
-%define glapi_ver 7.1.0
+%define glapi_ver 7.1.0
# minimal supported xserver version
-%define xserver_ver 1.5.0
+%define xserver_ver 1.5.0
# other packages
-%define libdrm_ver 2.4.46
-%define dri2proto_ver 2.6
-%define glproto_ver 1.4.14
+%define libdrm_ver 2.4.54
+%define dri2proto_ver 2.6
+%define dri3proto_ver 1.0
+%define glproto_ver 1.4.14
+%define presentproto_ver 1.0
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 10.0.0
+Version: 10.2.5
Release: 1
License: MIT (core) and others - see license.html file
Group: X11/Libraries
-Source0: ftp://ftp.freedesktop.org/pub/mesa/10.0/%{name}Lib-%{version}.tar.bz2
-# Source0-md5: f3fe55d9735bea158bbe97ed9a0da819
-Patch0: %{name}-link.patch
+Source0: ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{name}Lib-%{version}.tar.bz2
+# Source0-md5: f82b1c2b42f44073d8b889d2a7ee9292
URL: http://www.mesa3d.org/
BuildRequires: autoconf >= 2.60
BuildRequires: automake
%{?with_opencl:BuildRequires: clang-devel >= 3.1}
+BuildRequires: elfutils-devel
BuildRequires: expat-devel
BuildRequires: gcc >= 5:3.3
-%{?with_opencl:BuildRequires: gcc >= 6:4.6}
+%{?with_opencl:BuildRequires: gcc-c++ >= 6:4.7}
BuildRequires: libdrm-devel >= %{libdrm_ver}
BuildRequires: libselinux-devel
BuildRequires: libstdc++-devel >= 5:3.3.0
BuildRequires: libtalloc-devel >= 2:2.0.1
BuildRequires: libtool >= 2:2.2
BuildRequires: libvdpau-devel >= 0.4.1
-BuildRequires: libxcb-devel >= 1.9
+BuildRequires: libxcb-devel >= 1.10
BuildRequires: llvm-devel >= 3.3
%{?with_opencl:BuildRequires: llvm-libclc}
+%{?with_ocl_icd:BuildRequires: ocl-icd-devel}
+%{?with_omx:BuildRequires: libomxil-bellagio-devel}
BuildRequires: perl-base
BuildRequires: pixman-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(talloc) >= 2.0.1
+BuildRequires: pkgconfig(xcb-dri3)
+BuildRequires: pkgconfig(xcb-present)
BuildRequires: python >= 2
-BuildRequires: python-libxml2
BuildRequires: python-modules >= 2
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: sed >= 4.0
%{?with_egl:BuildRequires: udev-devel >= 1:151}
# wayland-{client,server}
-%{?with_wayland:BuildRequires: wayland-devel >= 1.0.2}
+%{?with_wayland:BuildRequires: wayland-devel >= 1.2.0}
BuildRequires: xorg-lib-libXdamage-devel
BuildRequires: xorg-lib-libXext-devel >= 1.0.5
BuildRequires: xorg-lib-libXfixes-devel
BuildRequires: xorg-lib-libXt-devel
BuildRequires: xorg-lib-libXvMC-devel >= 1.0.6
BuildRequires: xorg-lib-libXxf86vm-devel
+BuildRequires: xorg-lib-libxshmfence-devel >= 1.1
BuildRequires: xorg-proto-dri2proto-devel >= %{dri2proto_ver}
+BuildRequires: xorg-proto-dri3proto-devel >= %{dri3proto_ver}
BuildRequires: xorg-proto-glproto-devel >= %{glproto_ver}
+BuildRequires: xorg-proto-presentproto-devel >= %{presentproto_ver}
BuildRequires: xorg-util-makedepend
BuildRequires: xorg-xserver-server-devel >= %{xserver_ver}
%if %{with gallium}
%if %{without gallium}
%undefine with_gallium_intel
%undefine with_gallium_nouveau
+%undefine with_ocl_icd
%undefine with_opencl
%undefine with_xa
%endif
Requires: OpenGL >= 1.2
Requires: libdrm >= %{libdrm_ver}
Requires: libxcb >= 1.9
-%{?with_wayland:Requires: wayland >= 1.0.2}
+%{?with_wayland:Requires: wayland >= 1.2.0}
%if %{with gallium}
# for egl_gallium.so
Requires: %{name}-libOpenVG = %{version}-%{release}
Requires: libdrm-devel >= %{libdrm_ver}
Requires: xorg-lib-libX11-devel
Requires: xorg-lib-libXdamage-devel
-Requires: xorg-lib-libXext-devel
+Requires: xorg-lib-libXext-devel >= 1.0.5
Requires: xorg-lib-libXfixes-devel
Requires: xorg-lib-libXxf86vm-devel
Requires: xorg-proto-dri2proto-devel >= %{dri2proto_ver}
Group: X11/Libraries
Requires: %{name}-libglapi = %{version}-%{release}
Requires: libdrm >= %{libdrm_ver}
-Provides: OpenGL = 3.1
+Provides: OpenGL = 3.3
Provides: OpenGL-GLX = 1.4
Obsoletes: Mesa
Obsoletes: Mesa-dri
+Obsoletes: Mesa-dri-core < 10.0.0
Obsoletes: X11-OpenGL-libGL < 1:7.0.0
Obsoletes: XFree86-OpenGL-libGL < 1:7.0.0
Requires: libdrm-devel >= %{libdrm_ver}
Requires: xorg-lib-libX11-devel
Requires: xorg-lib-libXdamage-devel
-Requires: xorg-lib-libXext-devel
+Requires: xorg-lib-libXext-devel >= 1.0.5
Requires: xorg-lib-libXxf86vm-devel
Requires: xorg-proto-dri2proto-devel >= %{dri2proto_ver}
Requires: xorg-proto-glproto-devel >= %{glproto_ver}
Suggests: OpenGL-doc-man
Provides: OpenGL-GLX-devel = 1.4
-Provides: OpenGL-devel = 3.1
+Provides: OpenGL-devel = 3.3
Obsoletes: Mesa-devel
Obsoletes: X11-OpenGL-devel < 1:7.0.0
Obsoletes: X11-OpenGL-devel-base < 1:7.0.0
License: MIT
Group: X11/Development/Libraries
Requires: %{name}-libGL-devel = %{version}-%{release}
-Provides: OpenGL-static = 3.1
+Provides: OpenGL-static = 3.3
Obsoletes: Mesa-static
Obsoletes: X11-OpenGL-static < 1:7.0.0
Obsoletes: XFree86-OpenGL-static < 1:7.0.0
%description libOSMesa-static -l pl.UTF-8
Biblioteka statyczna OSMesa (renderująca bitmapy w pamięci).
+%package OpenCL-icd
+Summary: Mesa implementation of OpenCL (Compuing Language) API ICD
+Summary(pl.UTF-8): Implementacja Mesa API OpenCL (języka obliczeń) ICD
+License: MIT
+Group: Libraries
+Requires: filesystem >= 4.0-29
+Requires: libdrm >= %{libdrm_ver}
+Requires: llvm-libclc
+Requires: udev-libs >= 1:151
+Provides: OpenCL = 1.1
+
+%description OpenCL-icd
+This package contains Mesa implementation of OpenCL - standard for
+cross-platform, parallel programming of modern processors found in
+personal computers, servers and handheld/embedded devices. OpenCL
+specification can be found on Khronos Group site:
+<http://www.khronos.org/opencl/>. Mesa implements OpenCL 1.1.
+
+The implementation is provided as an installable client driver (ICD)
+for use with the ocl-icd loader.
+
+%description OpenCL-icd -l pl.UTF-8
+Ten pakiet zawiera implementację Mesa standardu OpenCL - standardu
+wieloplatformowego, równoległego programowania nowoczesnych
+procesorów, jakie znajdują się w komputerach osobistych, serwerach
+oraz urządzeniach przenośnych/wbudowanych. Specyfikację OpenCL można
+znaleźć na stronie Khronos Group: <http://www.khronos.org/opencl/>.
+Mesa zawiera implementację OpenCL w wersji 1.1.
+
+Implementacja dostarczona jest w postaci instalowalnego sterownika klienta
+(ICD), który może być użyty z loaderem ocl-icd.
+
%package libOpenCL
Summary: Mesa implementation of OpenCL (Compuing Language) API
Summary(pl.UTF-8): Implementacja Mesa API OpenCL (języka obliczeń)
Sterownik Mesa radeonsi dla API vdpau. Obsługuje karty ATI Radeon
oparte na układach Southern Islands.
+%package -n omxil-mesa-nouveau
+Summary: Mesa nouveau driver for Bellagio OpenMAX IL API
+Summary(pl.UTF-8): Sterownik Mesa nouveau dla API Bellagio OpenMAX IL
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libxcb >= 1.8
+Requires: libomxil-bellagio
+
+%description -n omxil-mesa-nouveau
+Mesa nouveau driver for Bellagio OpenMAX IL API. It supports NVidia
+adapters (NV40-NV96, NVa0).
+
+%description -n omxil-mesa-nouveau -l pl.UTF-8
+Sterownik Mesa nouveau dla API Bellagio OpenMAX IL. Obsługuje karty
+NVidia (NV40-NV96, NVa0).
+
+%package -n omxil-mesa-r600
+Summary: Mesa r600 driver for Bellagio OpenMAX IL API
+Summary(pl.UTF-8): Sterownik Mesa r600 dla API Bellagio OpenMAX IL
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libxcb >= 1.8
+Requires: libomxil-bellagio
+
+%description -n omxil-mesa-r600
+Mesa r600 driver for Bellagio OpenMAX IL API. It supports ATI Radeon
+adapters based on R600/R700 chips.
+
+%description -n omxil-mesa-r600 -l pl.UTF-8
+Sterownik Mesa r600 dla API Bellagio OpenMAX IL. Obsługuje karty ATI
+Radeon oparte na układach R600/R700.
+
+%package -n omxil-mesa-radeonsi
+Summary: Mesa radeonsi driver for Bellagio OpenMAX IL API
+Summary(pl.UTF-8): Sterownik Mesa radeonsi dla API Bellagio OpenMAX IL
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libxcb >= 1.8
+Requires: libomxil-bellagio
+
+%description -n omxil-mesa-radeonsi
+Mesa radeonsi driver for Bellagio OpenMAX IL API. It supports ATI
+Radeon adapters based on Southern Islands chips.
+
+%description -n omxil-mesa-radeonsi -l pl.UTF-8
+Sterownik Mesa radeonsi dla API Bellagio OpenMAX IL. Obsługuje karty
+ATI Radeon oparte na układach Southern Islands.
+
%prep
%setup -q
-%patch0 -p1
%build
%{__libtoolize}
%endif
%if %{with gallium}
--enable-gallium-llvm \
- --with-llvm-shared-libs \
+ --enable-llvm-shared-libs \
%{__enable egl gallium-egl} \
%{__enable gbm gallium-gbm} \
- %{?with_opencl:--enable-opencl} \
+ %{__enable ocl_icd opencl-icd} \
+ %{__enable opencl opencl} \
%{?with_egl:--enable-openvg} \
--enable-vdpau \
+ %{?with_omx:--enable-omx} \
%{?with_xa:--enable-xa} \
--enable-xvmc \
--with-gallium-drivers=${gallium_drivers} \
# not used externally
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libglapi.so
# dlopened
+%{?with_omx:%{__rm} $RPM_BUILD_ROOT%{_libdir}/bellagio/libomx_*.la}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/egl/egl_*.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/gallium-pipe/pipe_*.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/gbm/gbm_*.la
%files libGL
%defattr(644,root,root,755)
-%doc docs/{*.html,README.{MITS,QUAKE,THREADS,UVD},relnotes/*.html}
+%doc docs/{*.html,README.UVD,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
%endif
%if %{with opencl}
+%if %{with ocl_icd}
+%files OpenCL-icd
+%defattr(644,root,root,755)
+/etc/OpenCL/vendors/mesa.icd
+%attr(755,root,root) %{_libdir}/libMesaOpenCL.so
+%attr(755,root,root) %{_libdir}/libMesaOpenCL.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libMesaOpenCL.so.1
+%else
%files libOpenCL
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libOpenCL.so.*.*.*
%attr(755,root,root) %{_libdir}/libOpenCL.so
%{_includedir}/CL
%endif
+%endif
%if %{with egl} && %{with gallium}
%files libOpenVG
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_radeonsi.so.1
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_radeonsi.so
%endif
+
+%if %{with gallium} && %{with omx}
+%if %{with gallium_nouveau}
+%files -n omxil-mesa-nouveau
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/bellagio/libomx_nouveau.so
+%endif
+
+%files -n omxil-mesa-r600
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/bellagio/libomx_r600.so
+
+%files -n omxil-mesa-radeonsi
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/bellagio/libomx_radeonsi.so
+%endif