%bcond_without xa # XA state tracker (for vmwgfx xorg driver)
%bcond_with static_libs # static libraries [not supported for DRI, thus broken currently]
#
-# minimal supported xserver version
-%define xserver_ver 1.5.0
# 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 libdrm_ver 2.4.39
+# internal API version (libdricore); a.b.c for Mesa-a.b.c, a.b.0 for Mesa-a.b
+%define int_sover 9.2.0
+# minimal supported xserver version
+%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 snap 20120921
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 9.1
-Release: 1
+Version: 9.2.0
+Release: 2
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: d3891e02215422e120271d976ff1947e
+Source0: ftp://ftp.freedesktop.org/pub/mesa/9.2/%{name}Lib-%{version}.tar.bz2
+# Source0-md5: 4185b6aae890bc62a964f4b24cc1aca8
Patch0: %{name}-link.patch
+Patch1: 0001-gallium-egl-Simplify-native_wayland_drm_bufmgr_helpe.patch
+Patch2: 0002-gallium-egl-Don-t-add-a-listener-for-wl_drm-twice-in.patch
+Patch3: 0003-egl-Update-to-Wayland-1.2-server-API.patch
+Patch4: 0004-gallium-egl-Commit-the-rest-of-the-native_wayland_dr.patch
URL: http://www.mesa3d.org/
BuildRequires: autoconf >= 2.60
BuildRequires: automake
BuildRequires: libtool >= 2:2.2
BuildRequires: libvdpau-devel >= 0.4.1
BuildRequires: libxcb-devel >= 1.9
-BuildRequires: llvm-devel >= 3.1
+BuildRequires: llvm-devel >= 3.3
%{?with_opencl:BuildRequires: llvm-libclc}
BuildRequires: perl-base
BuildRequires: pixman-devel
BuildRequires: python-modules >= 2
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: sed >= 4.0
-%{?with_egl:BuildRequires: udev-devel >= 1:150}
+%{?with_egl:BuildRequires: udev-devel >= 1:151}
# wayland-{client,server}
-%{?with_wayland:BuildRequires: wayland-devel >= 1.0.0}
+%{?with_wayland:BuildRequires: wayland-devel >= 1.0.2}
BuildRequires: xorg-lib-libXdamage-devel
BuildRequires: xorg-lib-libXext-devel >= 1.0.5
BuildRequires: xorg-lib-libXfixes-devel
# _glapi_tls_Dispatch is defined in libglapi, but it's some kind of symbol ldd -r doesn't notice(?)
# libdricore: internal library, not linked with libglapi
# libgbm: circular dependency with libEGL (wayland_buffer_is_drm symbol)
-%define skip_post_check_so libGLESv1_CM.so.1.* libGLESv2.so.2.* libGL.so.1.* libOSMesa.so.* libdricore.*.so.* libgbm.*.so.* libXvMCnouveau.so.* libvdpau_softpipe.so.*
+%define skip_post_check_so libGLESv1_CM.so.1.* libGLESv2.so.2.* libGL.so.1.* libOSMesa.so.* libdricore.*.so.* libgbm.*.so.*
# llvm build broken
%define filterout_ld -Wl,--as-needed
Requires: OpenGL >= 1.2
Requires: libdrm >= %{libdrm_ver}
Requires: libxcb >= 1.9
-%{?with_wayland:Requires: wayland >= 1.0.0}
+%{?with_wayland:Requires: wayland >= 1.0.2}
%if %{with gallium}
# for egl_gallium.so
Requires: %{name}-libOpenVG = %{version}-%{release}
-Requires: udev-libs >= 1:150
+Requires: udev-libs >= 1:151
%endif
%if %{with gbm}
Requires: %{name}-libgbm = %{version}-%{release}
Group: Libraries
Requires: libdrm >= %{libdrm_ver}
Requires: llvm-libclc
-Requires: udev-libs >= 1:150
+Requires: udev-libs >= 1:151
Provides: OpenCL = 1.1
%description libOpenCL
Summary: Mesa Graphics Buffer Manager library
Summary(pl.UTF-8): Biblioteka Mesa Graphics Buffer Manager
Group: Libraries
-Requires: udev-libs >= 1:150
+Requires: %{name}-libglapi = %{version}-%{release}
+Requires: udev-libs >= 1:151
Conflicts: Mesa-libEGL < 8.0.1-2
%description libgbm
Summary(pl.UTF-8): Plik nagłówkowy biblioteki Mesa Graphics Buffer Manager
Group: Development/Libraries
Requires: %{name}-libgbm = %{version}-%{release}
-Requires: udev-devel >= 1:150
+Requires: udev-devel >= 1:151
%description libgbm-devel
Header file for Mesa Graphics Buffer Manager library.
Summary(pl.UTF-8): Sterownik i915 dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-opencl-driver-i915
%description gbm-driver-i915
i915 driver for Mesa Graphics Buffer Manager. It supports Intel
Summary(pl.UTF-8): Sterownik nouveau dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-opencl-driver-nouveau
%description gbm-driver-nouveau
nouveau driver for Mesa Graphics Buffer Manager. It supports NVidia
Summary(pl.UTF-8): Sterownik r300 dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-opencl-driver-r300
%description gbm-driver-r300
r300 driver for Mesa Graphics Buffer Manager. It supports ATI Radeon
Summary(pl.UTF-8): Sterownik r600 dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-libllvmradeon
+Obsoletes: Mesa-opencl-driver-r600
%description gbm-driver-r600
r600 driver for Mesa Graphics Buffer Manager. It supports ATI Radeon
Summary(pl.UTF-8): Sterownik radeonsi dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-libllvmradeon
+Obsoletes: Mesa-opencl-driver-radeonsi
%description gbm-driver-radeonsi
radeonsi driver for Mesa Graphics Buffer Manager. It supports ATI
Summary(pl.UTF-8): Sterownik programowy (swrast) dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-opencl-driver-swrast
%description gbm-driver-swrast
Software (swrast) driver for Mesa Graphics Buffer Manager.
Summary(pl.UTF-8): Sterownik vmwgfx dla szkieletu Mesa GBM
Group: Libraries
Requires: %{name}-libgbm = %{version}-%{release}
+Obsoletes: Mesa-opencl-driver-vmwgfx
%description gbm-driver-vmwgfx
vmwgfx driver for Mesa Graphics Buffer Manager. It supports VMware
Requires: libdrm >= %{libdrm_ver}
Requires: libvdpau >= 0.4.1
Conflicts: libvdpau-driver-mesa
+Obsoletes: Mesa-libllvmradeon
%description -n libvdpau-driver-mesa-radeonsi
Mesa radeonsi driver for the vdpau API. It supports ATI Radeon
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
%{__libtoolize}
%if %{without gallium_intel}
i915 \
%endif
-i965
-nouveau
+i965 \
+nouveau \
%ifarch sparc sparcv9 sparc64
ffb \
%endif
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-# omitted by make install (as of 9.0)
-cp -pr include/CL $RPM_BUILD_ROOT%{_includedir}
# strip out undesirable headers
%{__rm} $RPM_BUILD_ROOT%{_includedir}/GL/{wglext,wmesa}.h
# dlopened by soname
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libXvMC*.so
# not used externally
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{dricore%{version}.0,glapi}.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{dricore%{int_sover},glapi}.so
# dlopened
+%{__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
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/vdpau/libvdpau_*.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/dri/*.la
# not defined by standards; and not needed, there is pkg-config support
%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/vdpau/lib*.la
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gbm/gbm*.la
# remove "OS ABI: Linux 2.4.20" tag, so private copies (nvidia or fglrx),
# set up via /etc/ld.so.conf.d/*.conf will be preferred over this
%files libGL
%defattr(644,root,root,755)
-%doc docs/{*.html,README.{MITS,QUAKE,THREADS},RELNOTES*}
+%doc docs/{*.html,README.{MITS,QUAKE,THREADS,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
%files libGL-devel
%defattr(644,root,root,755)
-%doc docs/*.spec
+%doc docs/specs/*
%dir %{_includedir}/GL
%{_includedir}/GL/gl.h
%{_includedir}/GL/glext.h
%files dri-core
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libdricore%{version}.0.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libdricore%{version}.0.so.1
+%attr(755,root,root) %{_libdir}/libdricore%{int_sover}.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libdricore%{int_sover}.so.1
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/drirc
%files dri-driver-ati-radeon-R100