# - consider:
# --enable-shared-dricore
# - subpackage with non-dri libGL for use with X-servers with missing GLX extension?
-# - resurrect static if it's useful
+# - resurrect static if it's useful (using plain xorg target? DRI doesn't support static)
#
# Conditional build:
%bcond_without egl # EGL libraries
%bcond_without gallium # gallium drivers
%bcond_with gallium_intel # gallium i915 driver (but doesn't work with AIGLX)
-%bcond_without gallium_nouveau # gallium nouveau driver
+%bcond_with gallium_nouveau # gallium nouveau driver
%bcond_without osmesa # OSMesa libraries
-%bcond_without gbm # with Graphics Buffer Manager
-%bcond_with static_libs # static libraries
+%bcond_without gbm # Graphics Buffer Manager
+%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]
#
# minimal supported xserver version
%define xserver_ver 1.5.0
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 8.0.1
-Release: 1
+Version: 8.0.3
+Release: 5
License: MIT (core), SGI (GLU) and others - see license.html file
Group: X11/Libraries
Source0: ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{name}Lib-%{version}.tar.bz2
-# Source0-md5: 24eeebf66971809d8f40775a379b36c9
+# Source0-md5: cc5ee15e306b8c15da6a478923797171
+Patch100: %{name}-git.patch
Patch0: %{name}-realclean.patch
+Patch1: %{name}-link.patch
+Patch2: %{name}-wayland.patch
+Patch3: llvm-3.1.patch
URL: http://www.mesa3d.org/
-BuildRequires: autoconf >= 2.59
+BuildRequires: autoconf >= 2.60
BuildRequires: automake
BuildRequires: expat-devel
BuildRequires: gcc >= 5:3.3
BuildRequires: python-modules
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: sed >= 4.0
+# wayland-{client,server}
+%{?with_wayland:BuildRequires: wayland-devel}
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-proto-dri2proto-devel >= %{dri2proto_ver}
BuildRequires: xorg-proto-glproto-devel >= %{glproto_ver}
BuildRequires: xorg-util-makedepend
-BuildRequires: xorg-xserver-server-devel
+BuildRequires: xorg-xserver-server-devel >= %{xserver_ver}
%if %{with egl}
BuildRequires: libxcb-devel
BuildRequires: udev-devel >= 1:150
%if %{without gallium}
%undefine with_gallium_intel
%undefine with_gallium_nouveau
+%undefine with_xa
%endif
%if %{without egl}
%undefine with_gbm
+%undefine with_wayland
%endif
# _glapi_tls_Dispatch is defined in libglapi, but it's some kind of symbol ldd -r doesn't notice(?)
-%define skip_post_check_so libGLESv1_CM.so.1.* libGLESv2.so.2.* libGL.so.1.* libXvMCnouveau.so.1.* libXvMCr300.so.1.* libXvMCr600.so.1.* libXvMCsoftpipe.so.1.* libvdpau_nouveau.so.1.*
+%define skip_post_check_so libGLESv1_CM.so.1.* libGLESv2.so.2.* libGL.so.1.*
+
+# llvm build broken
+%define filterout_ld -Wl,--as-needed
%description
Mesa is a 3-D graphics library with an API which is very similar to
Summary(pl.UTF-8): Implementacja Mesa biblioteki interfejsu EGL
License: MIT
Group: Libraries
+Requires: %{name}-libglapi = %{version}-%{release}
# glx driver in libEGL dlopens libGL.so
Requires: OpenGL >= 1.2
Requires: libdrm >= %{libdrm_ver}
%if %{with gallium}
# for egl_gallium.so
-Requires: Mesa-libOpenVG = %{version}-%{release}
+Requires: %{name}-libOpenVG = %{version}-%{release}
Requires: udev-libs >= 1:150
%endif
+%if %{with gbm}
+Requires: %{name}-libgbm = %{version}-%{release}
+%endif
Provides: EGL = 1.4
%description libEGL
Summary(pl.UTF-8): Pliki nagłówkowe implementacji Mesa biblioteki EGL
License: MIT
Group: Development/Libraries
+Requires: %{name}-khrplatform-devel = %{version}-%{release}
Requires: %{name}-libEGL = %{version}-%{release}
Requires: libdrm-devel >= %{libdrm_ver}
Requires: xorg-lib-libX11-devel
Summary(pl.UTF-8): Wolnodostępna implementacja Mesa3D biblioteki libGL ze standardu OpenGL
License: MIT
Group: X11/Libraries
+Requires: %{name}-libglapi = %{version}-%{release}
Requires: libdrm >= %{libdrm_ver}
Provides: OpenGL = 2.1
Provides: OpenGL-GLX = 1.4
Summary: Mesa implementation of GLES (OpenGL ES) libraries
Summary(pl.UTF-8): Implementacja Mesa bibliotek GLES (OpenGL ES)
Group: Libraries
-# only for libglapi.so.0
-Requires: %{name}-libEGL = %{version}-%{release}
+Requires: %{name}-libglapi = %{version}-%{release}
+Provides: OpenGLES
+Provides: OpenGLESv1 = 1.1
+Provides: OpenGLESv2 = 2.0
%description libGLES
This package contains shared libraries of Mesa implementation of GLES
Summary: Header files for Mesa GLES libraries
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Mesa GLES
Group: Development/Libraries
-# EGL for libglapi.so, <KHR/khrplatform.h> always required, <EGL/egl.h> for <GLES/egl.h>
+Requires: %{name}-khrplatform-devel = %{version}-%{release}
+# <EGL/egl.h> for <GLES/egl.h>
Requires: %{name}-libEGL-devel = %{version}-%{release}
Requires: %{name}-libGLES = %{version}-%{release}
+Provides: OpenGLES-devel
+Provides: OpenGLESv1-devel = 1.1
+Provides: OpenGLESv2-devel = 2.0
%description libGLES-devel
Header files for Mesa GLES libraries.
Summary(pl.UTF-8): Biblioteka OSMesa (renderująca bitmapy w pamięci)
License: MIT
Group: Libraries
-# doesn't require base
%description libOSMesa
OSMesa (off-screen renderer) library.
Summary(pl.UTF-8): Implementacja Mesa API OpenVG (akceleracji grafiki wektorowej)
License: MIT
Group: Libraries
-# doesn't require base
+Provides: OpenVG = 1.1
%description libOpenVG
This package contains Mesa implementation of OpenVG - cross-platform
Summary(pl.UTF-8): Plik nagłówkowy biblioteki Mesa OpenVG
License: MIT
Group: Development/Libraries
-# EGL headers for <KHR/khrplatform.h>
-Requires: %{name}-libEGL-devel = %{version}-%{release}
+Requires: %{name}-khrplatform-devel = %{version}-%{release}
Requires: %{name}-libOpenVG = %{version}-%{release}
+Provides: OpenVG-devel = 1.1
%description libOpenVG-devel
Header file for Mesa OpenVG library.
%description libOpenVG-devel -l pl.UTF-8
Plik nagłówkowy biblioteki Mesa OpenVG.
-%package libXvMC
-Summary: Mesa implementations of XvMC API
-Summary(pl.UTF-8): Implementacje Mesa API XvMC
+%package libXvMC-nouveau
+Summary: Mesa implementation of XvMC API for NVidia adapters
+Summary(pl.UTF-8): Implementacja Mesa API XvMC dla kart NVidia
+License: MIT
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: xorg-lib-libXvMC >= 1.0.6
+Conflicts: Mesa-libXvMC
+
+%description libXvMC-nouveau
+Mesa implementation of XvMC API for NVidia adapters (NV40-NV96, NVa0).
+
+%description libXvMC-nouveau -l pl.UTF-8
+Implementacja Mesa API XvMC dla kart NVidia (NV40-NV96, NVa0).
+
+%package libXvMC-r300
+Summary: Mesa implementation of XvMC API for ATI Radeon R300 series adapters
+Summary(pl.UTF-8): Implementacja Mesa API XvMC dla kart ATI Radeon z serii R300
+License: MIT
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: xorg-lib-libXvMC >= 1.0.6
+Conflicts: Mesa-libXvMC
+
+%description libXvMC-r300
+Mesa implementation of XvMC API for ATI Radeon adapters based on
+R300/R400/RS690/R500 chips.
+
+%description libXvMC-r300 -l pl.UTF-8
+Implementacja Mesa API XvMC dla kart ATI Radeon opartych na układach
+R300/R400/RS690/R500.
+
+%package libXvMC-r600
+Summary: Mesa implementation of XvMC API for ATI Radeon R600 series adapters
+Summary(pl.UTF-8): Implementacja Mesa API XvMC dla kart ATI Radeon z serii R600
License: MIT
Group: Libraries
Requires: libdrm >= %{libdrm_ver}
-# doesn't require base
+Requires: xorg-lib-libXvMC >= 1.0.6
+Conflicts: Mesa-libXvMC
+
+%description libXvMC-r600
+Mesa implementation of XvMC API for ATI Radeon adapters based on
+R600/R700 chips.
+
+%description libXvMC-r600 -l pl.UTF-8
+Implementacja Mesa API XvMC dla kart ATI Radeon opartych na układach
+R600/R700.
+
+%package libXvMC-softpipe
+Summary: Mesa softpipe implementation of XvMC API
+Summary(pl.UTF-8): Implementacja Mesa softpipe API XvMC
+License: MIT
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: xorg-lib-libXvMC >= 1.0.6
+Conflicts: Mesa-libXvMC
+
+%description libXvMC-softpipe
+Mesa softpipe implementation of XvMC API.
+
+%description libXvMC-softpipe -l pl.UTF-8
+Implementacja Mesa softpipe API XvMC.
+
+%package libgbm
+Summary: Mesa Graphics Buffer Manager library
+Summary(pl.UTF-8): Biblioteka Mesa Graphics Buffer Manager
+Group: Libraries
+Requires: udev-libs >= 1:150
+Conflicts: Mesa-libEGL < 8.0.1-2
+
+%description libgbm
+Mesa Graphics Buffer Manager library.
+
+%description libgbm -l pl.UTF-8
+Biblioteka Mesa Graphics Buffer Manager (zarządcy bufora graficznego).
+
+%package libgbm-devel
+Summary: Header file for Mesa Graphics Buffer Manager library
+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
+
+%description libgbm-devel
+Header file for Mesa Graphics Buffer Manager library.
+
+%description libgbm-devel -l pl.UTF-8
+Plik nagłówkowy biblioteki Mesa Graphics Buffer Manager (zarządcy
+bufora graficznego).
+
+%package gbm-driver-i915
+Summary: i915 driver for Mesa GBM framework
+Summary(pl.UTF-8): Sterownik i915 dla szkieletu Mesa GBM
+Group: Libraries
+Requires: %{name}-libgbm = %{version}-%{release}
+
+%description gbm-driver-i915
+i915 driver for Mesa Graphics Buffer Manager. It supports Intel
+915/945/G33/Q33/Q35/Pineview chips.
+
+%description gbm-driver-i915 -l pl.UTF-8
+Sterownik i915 dla szkieletu Mesa Graphics Buffer Manager (zarządcy
+bufora graficznego). Obsługuje układy Intela z serii
+915/945/G33/Q33/Q35/Pineview.
+
+%package gbm-driver-nouveau
+Summary: nouveau driver for Mesa GBM framework
+Summary(pl.UTF-8): Sterownik nouveau dla szkieletu Mesa GBM
+Group: Libraries
+Requires: %{name}-libgbm = %{version}-%{release}
+
+%description gbm-driver-nouveau
+nouveau driver for Mesa Graphics Buffer Manager. It supports NVidia
+adapters.
+
+%description gbm-driver-nouveau -l pl.UTF-8
+Sterownik nouveau dla szkieletu Mesa Graphics Buffer Manager (zarządcy
+bufora graficznego). Obsługuje karty graficzne firmy NVidia.
+
+%package gbm-driver-r300
+Summary: r300 driver for Mesa GBM framework
+Summary(pl.UTF-8): Sterownik r300 dla szkieletu Mesa GBM
+Group: Libraries
+Requires: %{name}-libgbm = %{version}-%{release}
+
+%description gbm-driver-r300
+r300 driver for Mesa Graphics Buffer Manager. It supports ATI Radeon
+adapters based on R300/R400/RS690/R500 chips.
+
+%description gbm-driver-r300 -l pl.UTF-8
+Sterownik r300 dla szkieletu Mesa Graphics Buffer Manager (zarządcy
+bufora graficznego). Obsługuje karty graficzne ATI Radeon oparte na
+układach R300/R400/RS690/R500.
+
+%package gbm-driver-r600
+Summary: r600 driver for Mesa GBM framework
+Summary(pl.UTF-8): Sterownik r600 dla szkieletu Mesa GBM
+Group: Libraries
+Requires: %{name}-libgbm = %{version}-%{release}
+
+%description gbm-driver-r600
+r600 driver for Mesa Graphics Buffer Manager. It supports ATI Radeon
+adapters based on R600/R700 chips.
+
+%description gbm-driver-r600 -l pl.UTF-8
+Sterownik r600 dla szkieletu Mesa Graphics Buffer Manager (zarządcy
+bufora graficznego). Obsługuje karty graficzne ATI Radeon oparte na
+układach R600/R700.
+
+%package gbm-driver-vmwgfx
+Summary: vmwgfx driver for Mesa GBM framework
+Summary(pl.UTF-8): Sterownik vmwgfx dla szkieletu Mesa GBM
+Group: Libraries
+Requires: %{name}-libgbm = %{version}-%{release}
+
+%description gbm-driver-vmwgfx
+vmwgfx driver for Mesa Graphics Buffer Manager. It supports VMware
+virtual video adapter.
+
+%description gbm-driver-vmwgfx -l pl.UTF-8
+Sterownik vmwgfx dla szkieletu Mesa Graphics Buffer Manager (zarządcy
+bufora graficznego). Obsługuje wirtualną kartę graficzną VMware.
+
+%package libglapi
+Summary: Mesa GL API shared library
+Summary(pl.UTF-8): Biblioteka współdzielona Mesa GL API
+Group: Libraries
+Conflicts: Mesa-libEGL < 8.0.1-2
-%description libXvMC
-Mesa implementations of XvMC API.
+%description libglapi
+Mesa GL API shared library, common for various APIs (EGL, GL, GLES).
-%description libXvMC -l pl.UTF-8
-Implementacje Mesa API XvMC.
+%description libglapi -l pl.UTF-8
+Biblioteka współdzielona Mesa GL API, wspólna dla różnych API (EGL,
+GL, GLES).
+
+%package libwayland-egl
+Summary: Wayland EGL library
+Summary(pl.UTF-8): Biblioteka Wayland EGL
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+
+%description libwayland-egl
+Wayland EGL platform library.
+
+%description libwayland-egl -l pl.UTF-8
+Biblioteka platformy EGL Wayland.
+
+%package libwayland-egl-devel
+Summary: Development files for Wayland EGL library
+Summary(pl.UTF-8): Pliki programistyczne biblioteki Wayland EGL
+Group: Development/Libraries
+Requires: %{name}-libwayland-egl = %{version}-%{release}
+Requires: libdrm-devel >= %{libdrm_ver}
+Requires: wayland-devel
+
+%description libwayland-egl-devel
+Development files for Wayland EGL platform library.
+
+%description libwayland-egl-devel -l pl.UTF-8
+Pliki programistyczne biblioteki platformy EGL Wayland.
+
+%package libxatracker
+Summary: Xorg Gallium3D accelleration library
+Summary(pl.UTF-8): Biblioteka akceleracji Gallium3D dla Xorg
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+
+%description libxatracker
+Xorg Gallium3D accelleration library (used by new vmwgfx driver).
+
+%description libxatracker -l pl.UTF-8
+Biblioteka akceleracji Gallium3D dla Xorg (używana przez nowy
+sterownik vmwgfx).
+
+%package libxatracker-devel
+Summary: Header files for Xorg Gallium3D accelleration library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki akceleracji Gallium3D dla Xorg
+Group: X11/Development/Libraries
+Requires: %{name}-libxatracker = %{version}-%{release}
+Requires: libdrm-devel >= %{libdrm_ver}
+
+%description libxatracker-devel
+Header files for Xorg Gallium3D accelleration library.
+
+%description libxatracker-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki akceleracji Gallium3D dla Xorg.
+
+%package khrplatform-devel
+Summary: Khronos platform header file
+Summary(pl.UTF-8): Plik nagłówkowy platformy Khronos
+Group: Development/Libraries
+Conflicts: Mesa-libEGL-devel < 8.0.1-2
+
+%description khrplatform-devel
+Khronos platform header file.
+
+%description khrplatform-devel -l pl.UTF-8
+Plik nagłówkowy platformy Khronos.
%package dri-driver-ati-radeon-R100
Summary: X.org DRI driver for ATI R100 card family
Obsoletes: X11-driver-radeon-dri < 1:7.0.0
%description dri-driver-ati-radeon-R300
-X.org DRI driver for ATI R300 card family.
+X.org DRI driver for ATI R300/R400/RS690/R500 card family.
%description dri-driver-ati-radeon-R300 -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart ATI R300.
+Sterownik X.org DRI dla rodziny kart ATI R300/R400/RS690/R500.
%package dri-driver-ati-radeon-R600
Summary: X.org DRI driver for ATI R600 card family
Requires: xorg-xserver-server >= %{xserver_ver}
%description dri-driver-ati-radeon-R600
-X.org DRI driver for ATI R600 card family.
+X.org DRI driver for ATI R600/R700 card family.
%description dri-driver-ati-radeon-R600 -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart ATI R600.
+Sterownik X.org DRI dla rodziny kart ATI R600/R700.
%package dri-driver-intel-i915
Summary: X.org DRI driver for Intel i915 card family
Obsoletes: X11-driver-i810-dri < 1:7.0.0
%description dri-driver-intel-i915
-X.org DRI driver for Intel i915 card family.
+X.org DRI driver for Intel i915 card family (915, 945, G33, Q33, Q35,
+Pineview).
%description dri-driver-intel-i915 -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart Intel i915.
+Sterownik X.org DRI dla rodziny kart Intel i915 (915, 945, G33, Q33,
+Q35, Pineview).
%package dri-driver-intel-i965
Summary: X.org DRI driver for Intel i965 card family
Obsoletes: X11-driver-i810-dri < 1:7.0.0
%description dri-driver-intel-i965
-X.org DRI driver for Intel i965 card family.
+X.org DRI driver for Intel i965 card family (946GZ, 965G, 965Q, 965GM,
+965GME, GM45, G41, B43, Q45, G45);
%description dri-driver-intel-i965 -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart Intel i965.
+Sterownik X.org DRI dla rodziny kart Intel i965 (946GZ, 965G, 965Q,
+965GM, 965GME, GM45, G41, B43, Q45, G45).
%package dri-driver-nouveau
Summary: X.org DRI driver for NVIDIA card family
%description dri-driver-vmwgfx -l pl.UTF-8
Sterownik X.org DRI dla VMware.
-%package -n libvdpau-driver-mesa
-Summary: Mesa drivers for the vdpau API
-Summary(pl.UTF-8): Sterowniki Mesa dla API vdpau
+%package -n libvdpau-driver-mesa-nouveau
+Summary: Mesa nouveau driver for the vdpau API
+Summary(pl.UTF-8): Sterownik Mesa nouveau dla API vdpau
License: MIT
Group: X11/Libraries
Requires: libdrm >= %{libdrm_ver}
Requires: libvdpau >= 0.4.1
+Conflicts: libvdpau-driver-mesa
-%description -n libvdpau-driver-mesa
-Mesa drivers for the vdpau API.
+%description -n libvdpau-driver-mesa-nouveau
+Mesa nouveau driver for the vdpau API. It supports NVidia adapters
+(NV40-NV96, NVa0).
-%description -n libvdpau-driver-mesa -l pl.UTF-8
-Sterowniki Mesa dla API vdpau.
+%description -n libvdpau-driver-mesa-nouveau -l pl.UTF-8
+Sterownik Mesa nouveau dla API vdpau. Obsługuje karty NVidia
+(NV40-NV96, NVa0).
-# llvm build broken
-%define filterout_ld -Wl,--as-needed
+%package -n libvdpau-driver-mesa-r300
+Summary: Mesa r300 driver for the vdpau API
+Summary(pl.UTF-8): Sterownik Mesa r300 dla API vdpau
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libvdpau >= 0.4.1
+Conflicts: libvdpau-driver-mesa
+
+%description -n libvdpau-driver-mesa-r300
+Mesa r300 driver for the vdpau API. It supports ATI Radeon adapters
+based on R300/R400/RS690/R500 chips.
+
+%description -n libvdpau-driver-mesa-r300 -l pl.UTF-8
+Sterownik Mesa r300 dla API vdpau. Obsługuje karty ATI Radeon oparte
+na układach R300/R400/RS690/R500.
+
+%package -n libvdpau-driver-mesa-r600
+Summary: Mesa r600 driver for the vdpau API
+Summary(pl.UTF-8): Sterownik Mesa r600 dla API vdpau
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libvdpau >= 0.4.1
+Conflicts: libvdpau-driver-mesa
+
+%description -n libvdpau-driver-mesa-r600
+Mesa r600 driver for the vdpau API. It supports ATI Radeon adapters
+based on R600/R700 chips.
+
+%description -n libvdpau-driver-mesa-r600 -l pl.UTF-8
+Sterownik Mesa r600 dla API vdpau. Obsługuje karty ATI Radeon oparte
+na układach R600/R700.
+
+%package -n libvdpau-driver-mesa-softpipe
+Summary: Mesa softpipe driver for the vdpau API
+Summary(pl.UTF-8): Sterownik Mesa softpipe dla API vdpau
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libvdpau >= 0.4.1
+Conflicts: libvdpau-driver-mesa
+
+%description -n libvdpau-driver-mesa-softpipe
+Mesa softpipe driver for the vdpau API.
+
+%description -n libvdpau-driver-mesa-softpipe -l pl.UTF-8
+Sterownik Mesa softpipe dla API vdpau.
%prep
%setup -q
+#%patch100 -p1
%patch0 -p0
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
%{__aclocal}
dri_drivers="r200 radeon \
%if %{without gallium_intel}
-i915 i965 \
+i915 \
%endif
+i965
%ifarch sparc sparcv9 sparc64
ffb \
%endif
--enable-egl \
--enable-gles1 \
--enable-gles2 \
+ --with-egl-platforms=x11%{?with_gbm:,drm}%{?with_wayland:,wayland} \
%endif
%if %{with gallium}
--enable-gallium-llvm \
%{__enable egl gallium-egl} \
%{__enable gbm gallium-gbm} \
- --enable-openvg \
+ %{?with_egl:--enable-openvg} \
--enable-vdpau \
+ %{?with_xa:--enable-xa} \
--enable-xvmc \
--with-gallium-drivers=${gallium_drivers} \
%else
# strip out undesirable headers
%{__rm} $RPM_BUILD_ROOT%{_includedir}/GL/{vms_x_fix,wglext,wmesa}.h
+# dlopened by soname
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libXvMC*.so
+# not used externally
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libglapi.so
# 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
%post libOpenVG -p /sbin/ldconfig
%postun libOpenVG -p /sbin/ldconfig
-%post libXvMC -p /sbin/ldconfig
-%postun libXvMC -p /sbin/ldconfig
+%post libXvMC-nouveau -p /sbin/ldconfig
+%postun libXvMC-nouveau -p /sbin/ldconfig
+%post libXvMC-r300 -p /sbin/ldconfig
+%postun libXvMC-r300 -p /sbin/ldconfig
+%post libXvMC-r600 -p /sbin/ldconfig
+%postun libXvMC-r600 -p /sbin/ldconfig
+%post libXvMC-softpipe -p /sbin/ldconfig
+%postun libXvMC-softpipe -p /sbin/ldconfig
+
+%post libgbm -p /sbin/ldconfig
+%postun libgbm -p /sbin/ldconfig
+
+%post libglapi -p /sbin/ldconfig
+%postun libglapi -p /sbin/ldconfig
+
+%post libwayland-egl -p /sbin/ldconfig
+%postun libwayland-egl -p /sbin/ldconfig
+
+%post libxatracker -p /sbin/ldconfig
+%postun libxatracker -p /sbin/ldconfig
%if %{with egl}
%files libEGL
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libEGL.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libEGL.so.1
-%attr(755,root,root) %{_libdir}/libglapi.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libglapi.so.0
-%if %{with gbm}
-%attr(755,root,root) %{_libdir}/libgbm.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgbm.so.1
-%endif
%if %{with gallium}
%dir %{_libdir}/egl
%attr(755,root,root) %{_libdir}/egl/egl_gallium.so
-%if %{with gbm}
-%dir %{_libdir}/gbm
-%attr(755,root,root) %{_libdir}/gbm/gbm_gallium_drm.so
-%attr(755,root,root) %{_libdir}/gbm/pipe_r300.so
-%attr(755,root,root) %{_libdir}/gbm/pipe_r600.so
-%attr(755,root,root) %{_libdir}/gbm/pipe_vmwgfx.so
-%if %{with gallium_intel}
-%attr(755,root,root) %{_libdir}/gbm/pipe_i915.so
-%endif
-%if %{with gallium_nouveau}
-%attr(755,root,root) %{_libdir}/gbm/pipe_nouveau.so
-%endif
-%endif
%endif
%files libEGL-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libEGL.so
-%attr(755,root,root) %{_libdir}/libglapi.so
%dir %{_includedir}/EGL
%{_includedir}/EGL/egl.h
%{_includedir}/EGL/eglext.h
%{_includedir}/EGL/eglmesaext.h
%{_includedir}/EGL/eglplatform.h
-%dir %{_includedir}/KHR
-%{_includedir}/KHR/khrplatform.h
%{_pkgconfigdir}/egl.pc
-%if %{with gbm}
-%attr(755,root,root) %{_libdir}/libgbm.so
-%{_includedir}/gbm.h
-%{_pkgconfigdir}/gbm.pc
-%endif
%if %{with static_libs}
%files libEGL-static
%endif
%endif
-%if %{with gallium}
+%if %{with egl} && %{with gallium}
%files libOpenVG
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libOpenVG.so.*.*.*
%endif
%if %{with gallium}
-%files libXvMC
+%if %{with gallium_nouveau}
+%files libXvMC-nouveau
%defattr(644,root,root,755)
-%attr(755,root,root) %ghost %{_libdir}/libXvMCnouveau.so.1
%attr(755,root,root) %{_libdir}/libXvMCnouveau.so.1.0
-%attr(755,root,root) %ghost %{_libdir}/libXvMCr300.so.1
+%attr(755,root,root) %ghost %{_libdir}/libXvMCnouveau.so.1
+%endif
+
+%files libXvMC-r300
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libXvMCr300.so.1.0
-%attr(755,root,root) %ghost %{_libdir}/libXvMCr600.so.1
+%attr(755,root,root) %ghost %{_libdir}/libXvMCr300.so.1
+
+%files libXvMC-r600
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libXvMCr600.so.1.0
-%attr(755,root,root) %ghost %{_libdir}/libXvMCsoftpipe.so.1
+%attr(755,root,root) %ghost %{_libdir}/libXvMCr600.so.1
+
+%files libXvMC-softpipe
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libXvMCsoftpipe.so.1.0
+%attr(755,root,root) %ghost %{_libdir}/libXvMCsoftpipe.so.1
+%endif
+
+%if %{with gbm}
+%files libgbm
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgbm.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgbm.so.1
+%if %{with gallium}
+%dir %{_libdir}/gbm
+%attr(755,root,root) %{_libdir}/gbm/gbm_gallium_drm.so
+%endif
+
+%files libgbm-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgbm.so
+%{_includedir}/gbm.h
+%{_pkgconfigdir}/gbm.pc
+%endif
+
+%if %{with gallium}
+%if %{with gallium_intel}
+%files gbm-driver-i915
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gbm/pipe_i915.so
+%endif
+
+%if %{with gallium_nouveau}
+%files gbm-driver-nouveau
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gbm/pipe_nouveau.so
+%endif
+
+%files gbm-driver-r300
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gbm/pipe_r300.so
+
+%files gbm-driver-r600
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gbm/pipe_r600.so
+
+%files gbm-driver-vmwgfx
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gbm/pipe_vmwgfx.so
+%endif
+
+%files libglapi
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libglapi.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libglapi.so.0
+# libglapi-devel? nothing seems to need it atm.
+#%attr(755,root,root) %{_libdir}/libglapi.so
+
+%if %{with wayland}
+%files libwayland-egl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libwayland-egl.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libwayland-egl.so.1
+
+%files libwayland-egl-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libwayland-egl.so
+%{_pkgconfigdir}/wayland-egl.pc
+%endif
+
+%if %{with xa}
+%files libxatracker
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libxatracker.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libxatracker.so.1
+
+%files libxatracker-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libxatracker.so
+%{_includedir}/xa_composite.h
+%{_includedir}/xa_context.h
+%{_includedir}/xa_tracker.h
+%{_pkgconfigdir}/xatracker.pc
+%endif
+
+%if %{with egl}
+%files khrplatform-devel
+%defattr(644,root,root,755)
+%dir %{_includedir}/KHR
+%{_includedir}/KHR/khrplatform.h
%endif
%files dri-driver-ati-radeon-R100
%files dri-driver-ati-radeon-R600
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/xorg/modules/dri/r600_dri.so
-%endif
%files dri-driver-intel-i915
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/xorg/modules/dri/nouveau_dri.so
%endif
+%endif
%files dri-driver-swrast
%defattr(644,root,root,755)
%endif
%if %{with gallium}
-%files -n libvdpau-driver-mesa
+# ldconfig is not used in vdpau tree, so package all symlinks
+%if %{with gallium_nouveau}
+%files -n libvdpau-driver-mesa-nouveau
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_nouveau.so.1.0
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_nouveau.so.1
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_nouveau.so
+%endif
+
+%files -n libvdpau-driver-mesa-r300
%defattr(644,root,root,755)
-# there is no ldconfig here, so package all symlinks
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_softpipe.so.1.0
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_softpipe.so.1
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_softpipe.so
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so.1.0
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so.1
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so
+
+%files -n libvdpau-driver-mesa-r600
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r600.so.1.0
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r600.so.1
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r600.so
-%if %{with gallium_nouveau}
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_nouveau.so.1.0
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_nouveau.so.1
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_nouveau.so
-%endif
+
+%files -n libvdpau-driver-mesa-softpipe
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_softpipe.so.1.0
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_softpipe.so.1
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_softpipe.so
%endif