]> git.pld-linux.org Git - packages/Mesa.git/blobdiff - Mesa.spec
- rel 3; disable nouveau
[packages/Mesa.git] / Mesa.spec
index 1d1884ebac5bd28df3411108329bd7c57b1ec5aa..162c55527c6811f45dcbe3f55704595c5d14cb97 100644 (file)
--- a/Mesa.spec
+++ b/Mesa.spec
@@ -1,10 +1,19 @@
 #
 # TODO:
 # - subpackage with non-dri libGL for use with X-servers with missing GLX extension?
+# - resurrect static if it's useful
+# - subpackage egl?
 #
 # Conditional build:
+%bcond_without demos   # don't build demos
+%bcond_with    egl     # don't build egl
+%bcond_without gallium # don't build gallium
+%bcond_with    gallium_intel # gallium i915 driver (but doesn't work with AIGLX)
+%bcond_with    gallium_nouveau # doesn't build due to libdrm API changes (fixed in Mesa 7.8)
 %bcond_without motif   # build static libGLw without Motif interface
 %bcond_with    multigl # package libGL in a way allowing concurrent install with nvidia/fglrx drivers
+%bcond_without osmesa  # don't build osmesa
+%bcond_with    static
 #
 # minimal supported xserver version
 %define                xserver_ver     1.5.0
 # (until they start to be somehow versioned themselves)
 %define                glapi_ver       7.1.0
 #
-%define                snap    rc2
+%define                libdrm_ver      2.4.18
+%define                dri2proto_ver   1.99.3
+#
 Summary:       Free OpenGL implementation
 Summary(pl.UTF-8):     WolnodostÄ™pna implementacja standardu OpenGL
 Name:          Mesa
-Version:       7.3
-Release:       0.1%{?with_multigl:.mgl}
+Version:       7.7
+Release:       3%{?with_multigl:.mgl}
 License:       MIT (core), SGI (GLU,libGLw) and others - see license.html file
 Group:         X11/Libraries
-# Source0:     http://dl.sourceforge.net/mesa3d/%{name}Lib-%{version}.tar.bz2
-Source0:       http://www.mesa3d.org/beta/MesaLib-%{version}-%{snap}.tar.gz
-# Source0-md5: 510fbb088d60cb08cd79314129b26c14
-# Source1:     http://dl.sourceforge.net/mesa3d/%{name}Demos-%{version}.tar.bz2
-Source1:       http://www.mesa3d.org/beta/MesaDemos-%{version}-%{snap}.tar.gz
-# Source1-md5: 46ddb982e9d673b9852bb58a327388b9
+Source0:       ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{name}Lib-%{version}.tar.bz2
+# Source0-md5: e3fa64a1508bc23dd9de9dd2cea7cfb1
+Source1:       ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{name}Demos-%{version}.tar.bz2
+# Source1-md5: 6fd616b27b9826d0faa23e08e05d9435
 Patch0:                %{name}-realclean.patch
+Patch1:                %{name}-tgsi_dump.patch
 URL:           http://www.mesa3d.org/
+%{?with_demos:BuildRequires:   OpenGL-glut-devel >= 3.8}
+BuildRequires: autoconf
+BuildRequires: automake
 BuildRequires: expat-devel
-BuildRequires: libdrm-devel >= 2.4.3
+%{?with_demos:BuildRequires:   glew-devel}
+BuildRequires: libdrm-devel >= %{libdrm_ver}
+BuildRequires: libselinux-devel
 BuildRequires: libstdc++-devel
 BuildRequires: libtool >= 2:1.4d
 %{?with_motif:BuildRequires:   motif-devel}
+BuildRequires: pkgconfig
+BuildRequires: python
+BuildRequires: rpmbuild(macros) >= 1.470
 BuildRequires: sed >= 4.0
 BuildRequires: xorg-lib-libXdamage-devel
+BuildRequires: xorg-lib-libXext-devel >= 1.0.5
 BuildRequires: xorg-lib-libXt-devel
 BuildRequires: xorg-lib-libXxf86vm-devel
-BuildRequires: xorg-proto-dri2proto-devel >= 1.99.3
+BuildRequires: xorg-proto-dri2proto-devel >= %{dri2proto_ver}
 BuildRequires: xorg-proto-glproto-devel
 BuildRequires: xorg-proto-printproto-devel
 BuildRequires: xorg-util-makedepend
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%if %{without gallium}
+%undefine      with_gallium_intel
+%endif
+
 %description
 Mesa is a 3-D graphics library with an API which is very similar to
 that of OpenGL(R). To the extent that Mesa utilizes the OpenGL command
@@ -64,7 +87,7 @@ Summary:      Free Mesa3D implementation of libGL OpenGL library
 Summary(pl.UTF-8):     WolnodostÄ™pna implementacja Mesa3D biblioteki libGL ze standardu OpenGL
 License:       MIT
 Group:         X11/Libraries
-Requires:      libdrm >= 2.2.0
+Requires:      libdrm >= %{libdrm_ver}
 Provides:      OpenGL = 2.1
 # reports version 1.3, but supports glXGetProcAddress() from 1.4
 Provides:      OpenGL-GLX = 1.4
@@ -101,9 +124,15 @@ License:   MIT
 Group:         X11/Development/Libraries
 # loose dependency on libGL to use with other libGL binaries
 Requires:      OpenGL >= 1.5
+Requires:      libdrm-devel >= %{libdrm_ver}
 Requires:      xorg-lib-libX11-devel
-Provides:      OpenGL-devel = 2.1
+Requires:      xorg-lib-libXdamage-devel
+Requires:      xorg-lib-libXext-devel
+Requires:      xorg-lib-libXxf86vm-devel
+Requires:      xorg-proto-dri2proto-devel >= %{dri2proto_ver}
+Suggests:      OpenGL-doc-man
 Provides:      OpenGL-GLX-devel = 1.4
+Provides:      OpenGL-devel = 2.1
 Obsoletes:     Mesa-devel
 Obsoletes:     X11-OpenGL-devel < 1:7.0.0
 Obsoletes:     X11-OpenGL-devel-base < 1:7.0.0
@@ -360,6 +389,22 @@ X.org DRI driver for ATI R300 card family.
 %description dri-driver-ati-radeon-R300 -l pl.UTF-8
 Sterownik X.org DRI dla rodziny kart ATI R300.
 
+%package dri-driver-ati-radeon-R600
+Summary:       X.org DRI driver for ATI R600 card family
+Summary(pl.UTF-8):     Sterownik X.org DRI dla rodziny kart ATI R600
+License:       MIT
+Group:         X11/Libraries
+Requires:      radeon-ucode
+Requires:      xorg-driver-video-ati
+Requires:      xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires:      xorg-xserver-server >= %{xserver_ver}
+
+%description dri-driver-ati-radeon-R600
+X.org DRI driver for ATI R600 card family.
+
+%description dri-driver-ati-radeon-R600 -l pl.UTF-8
+Sterownik X.org DRI dla rodziny kart ATI R600.
+
 %package dri-driver-ati-rage128
 Summary:       X.org DRI driver for ATI Rage128 card family
 Summary(pl.UTF-8):     Sterownik X.org DRI dla rodziny kart ATI Rage128
@@ -473,20 +518,20 @@ X.org DRI drivers for Matrox G card family.
 %description dri-driver-matrox -l pl.UTF-8
 Sterowniki X.org DRI dla rodziny kart Matrox G.
 
-%package dri-driver-s3virge
-Summary:       X.org DRI driver for S3 Virge card family
-Summary(pl.UTF-8):     Sterownik X.org DRI dla rodziny kart S3 Virge
+%package dri-driver-nouveau
+Summary:       X.org DRI driver for NVIDIA card family
+Summary(pl.UTF-8):     Sterownik X.org DRI dla rodziny kart NVIDIA
 License:       MIT
 Group:         X11/Libraries
-Requires:      xorg-driver-video-s3virge
+Requires:      xorg-driver-video-nouveau
 Requires:      xorg-xserver-libglx(glapi) = %{glapi_ver}
 Requires:      xorg-xserver-server >= %{xserver_ver}
 
-%description dri-driver-s3virge
-X.org DRI driver for S3 Virge card family.
+%description dri-driver-nouveau
+X.org DRI drivers for NVIDIA card family.
 
-%description dri-driver-s3virge -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart S3 Virge.
+%description dri-driver-nouveau -l pl.UTF-8
+Sterowniki X.org DRI dla rodziny kart NVIDIA.
 
 %package dri-driver-savage
 Summary:       X.org DRI driver for S3 Savage card family
@@ -552,21 +597,6 @@ and Velocity 100/200).
 Sterownik X.org DRI dla rodziny kart 3DFX Voodoo. (Voodoo 3,4,5,
 Banshee i Velocity 100/200).
 
-%package dri-driver-trident
-Summary:       X.org DRI driver for Trident card family
-Summary(pl.UTF-8):     Sterownik X.org DRI dla rodziny kart Trident
-License:       MIT
-Group:         X11/Libraries
-Requires:      xorg-driver-video-trident
-Requires:      xorg-xserver-libglx(glapi) = %{glapi_ver}
-Requires:      xorg-xserver-server >= %{xserver_ver}
-
-%description dri-driver-trident
-X.org DRI drivers for Trident card family.
-
-%description dri-driver-trident -l pl.UTF-8
-Sterowniki X.org DRI dla rodziny kart Trident.
-
 %package dri-driver-via-unichrome
 Summary:       X.org DRI driver for VIA Unichrome card family
 Summary(pl.UTF-8):     Sterownik X.org DRI dla rodziny kart VIA Unichrome
@@ -582,121 +612,119 @@ X.org DRI driver for VIA Unichrome card family.
 %description dri-driver-via-unichrome -l pl.UTF-8
 Sterownik X.org DRI dla rodziny kart VIA Unichrome.
 
+%package dri-driver-vmwgfx
+Summary:       X.org DRI driver for VMware
+Summary(pl.UTF-8):     Sterownik X.org DRI dla VMware
+License:       MIT
+Group:         X11/Libraries
+Requires:      xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires:      xorg-xserver-server >= %{xserver_ver}
+
+%description dri-driver-vmwgfx
+X.org DRI driver for VMWare.
+
+%description dri-driver-vmwgfx -l pl.UTF-8
+Sterownik X.org DRI dla VMware.
+
 %prep
-%setup -q -b1 -n %{name}-%{version}-%{snap}
+%setup -q -b1
 %patch0 -p0
+%patch1 -p1
 
 # fix demos
 find progs -type f|xargs sed -i -e "s,\.\./images/,%{_examplesdir}/%{name}-%{version}/images/,g"
 
-# s3v, sis, trident missing there - don't override list from linux-dri
-sed -i -e '/^DRI_DIRS/d' configs/linux-dri-x86-64
-
-# add swrast driver
-sed -i -e 's/ i810 / swrast i810 /' configs/linux-dri
+%build
+%{__aclocal}
+%{__autoconf}
 
-%ifnarch sparc sparcv9 sparc64
-# for sunffb driver - useful on sparc only
-sed -i -e 's/ ffb\>//' configs/linux-dri
+dri_drivers="i810 i965 mach64 mga r128 r200 r300 r600 radeon savage \
+%if %{without gallium_intel}
+i915 \
 %endif
-
-%ifnarch %{ix86} %{x8664}
-# sis needs write-memory barrier
-sed -i -e 's/ sis / /' configs/linux-dri
+%ifarch sparc sparcv9 sparc64
+ffb \
+%endif
+%ifarch %{ix86} %{x8664}
+sis \
+%endif
+swrast tdfx unichrome"
+
+dri_drivers=$(echo $dri_drivers | xargs | tr ' ' ',')
+
+common_flags="\
+       --enable-shared \
+       --enable-selinux \
+       --enable-pic \
+       --enable-glx-tls \
+       --%{?with_egl:en}%{!?with_egl:dis}able-egl \
+       --with%{!?with_demos:out}-demos"
+
+%if %{with osmesa}
+# osmesa variants
+%configure $common_flags \
+       --with-driver=osmesa \
+       --disable-asm \
+       --with-osmesa-bits=8
+%{__make} \
+       SRC_DIRS=mesa
+mv %{_lib} osmesa8
+%{__make} clean
+
+%configure $common_flags \
+       --with-driver=osmesa \
+       --disable-asm \
+       --with-osmesa-bits=16
+%{__make} \
+       SRC_DIRS=mesa
+mv %{_lib} osmesa16
+%{__make} clean
+
+%configure $common_flags \
+       --with-driver=osmesa \
+       --disable-asm \
+       --with-osmesa-bits=32
+%{__make} \
+       SRC_DIRS=mesa
+mv %{_lib} osmesa32
+%{__make} clean
 %endif
 
-%build
-# use $lib, not %{_lib} as Mesa uses lib64 only for *-x86-64* targets
-%ifarch %{x8664}
-targ=-x86-64
-lib=lib64
+%configure $common_flags \
+       --enable-glu \
+       --enable-glw \
+       --disable-glut \
+%if %{with gallium}
+       --enable-gallium \
+       --%{?with_gallium_intel:en}%{!?with_gallium_intel:dis}able-gallium-intel \
+       --enable-gallium-svga \
+       --%{?with_gallium_nouveau:en}%{!?with_gallium_nouveau:dis}able-gallium-nouveau \
+       --with-state-trackers=dri \
 %else
-lib=lib
-%ifarch %{ix86}
-targ=-x86
-%else
-targ=""
+       --disable-gallium \
 %endif
+       --with-driver=dri \
+       --with-dri-drivers=${dri_drivers} \
+       --with-dri-driverdir=%{_libdir}/xorg/modules/dri
+
+%{__make}
+%{__make} -C progs/xdemos glxgears glxinfo
+%if %{with demos}
+%{__make} -C progs/demos
 %endif
 
-# required for -bc --short-circuit
-%{__make} realclean
-# as above - existing directory makes mv move into instead of rename
-rm -rf lib-{dri,osmesa,static}
-
-%{__make} linux${targ}-static \
-       CC="%{__cc}" \
-       CXX="%{__cxx}" \
-       OPT_FLAGS="%{rpmcppflags} %{rpmcflags} -fno-strict-aliasing" \
-       XLIB_DIR=%{_libdir} \
-       GLW_SOURCES="GLwDrawA.c%{?with_motif: GLwMDrawA.c}" \
-       SRC_DIRS="mesa glu glw" \
-       PROGRAM_DIRS=
-mv -f ${lib} lib-static
-%{__make} realclean
-
-%{__make} linux-osmesa \
-       CC="%{__cc}" \
-       CXX="%{__cxx}" \
-       CFLAGS="%{rpmcppflags} %{rpmcflags} -fno-strict-aliasing -fPIC" \
-       XLIB_DIR=%{_libdir} \
-       SRC_DIRS="mesa" \
-       PROGRAM_DIRS=
-mv -f lib lib-osmesa
-%{__make} realclean
-
-%{__make} linux-dri${targ} \
-       CC="%{__cc}" \
-       CXX="%{__cxx}" \
-       MKDEP=makedepend \
-       OPT_FLAGS="%{rpmcppflags} %{rpmcflags} -fno-strict-aliasing" \
-       XLIB_DIR=%{_libdir} \
-       DRI_DRIVER_SEARCH_DIR=%{_libdir}/xorg/modules/dri \
-       SRC_DIRS="glx/x11 mesa glu glw" \
-       PROGRAM_DIRS=
-
-%{__make} -C progs/xdemos \
-       CC="%{__cc}" \
-       CXX="%{__cxx}" \
-       OPT_FLAGS="%{rpmcppflags} %{rpmcflags}" \
-       XLIB_DIR=%{_libdir} \
-       PROGS="glxgears" \
-       APP_LIB_DEPS="-L../../${lib} -lGL"
-
-%{__make} -C progs/xdemos \
-       CC="%{__cc}" \
-       CXX="%{__cxx}" \
-       OPT_FLAGS="%{rpmcppflags} %{rpmcflags}" \
-       XLIB_DIR=%{_libdir} \
-       PROGS="glxinfo" \
-       APP_LIB_DEPS="-L../../${lib} -lGL -lGLU"
-
-mv -f ${lib} lib-dri
-
-for d in mesa glu glw ; do
-       for f in src/$d/*.pc.in; do
-               %{__make} -C src/$d `basename $f .in` \
-                       INSTALL_DIR=%{_prefix} \
-                       LIB_DIR=%{_lib}
-       done
-done
-
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/GL/internal,%{_pkgconfigdir},%{_examplesdir}/%{name}-%{version}}
-install -d $RPM_BUILD_ROOT%{_libdir}/xorg/modules/dri
 
-cp -df lib-static/lib* $RPM_BUILD_ROOT%{_libdir}
-cp -df lib-osmesa/libOSMesa* $RPM_BUILD_ROOT%{_libdir}
-cp -df lib-dri/lib* $RPM_BUILD_ROOT%{_libdir}
-cp -rf include/GL/{gl[!f]*,osmesa.h*} src/glw/GLw*.h src/mesa/drivers/x11/xmesa*.h $RPM_BUILD_ROOT%{_includedir}/GL
-cp -rf include/GL/internal/dri_interface.h $RPM_BUILD_ROOT%{_includedir}/GL/internal
-cp -df lib-dri/*_dri.so $RPM_BUILD_ROOT%{_libdir}/xorg/modules/dri
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_examplesdir}/%{name}-%{version}}
 
-install src/mesa/gl.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
-install src/mesa/osmesa.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
-install src/glu/glu.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
-install src/glw/glw.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
+# libs without drivers
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+%if %{with osmesa}
+install osmesa*/* $RPM_BUILD_ROOT%{_libdir}
+%endif
 
 install progs/xdemos/{glxgears,glxinfo} $RPM_BUILD_ROOT%{_bindir}
 # work on copy to keep -bi --short-circuit working
@@ -713,6 +741,13 @@ for l in util images ; do
 done
 rm -rf $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*/{.deps,CVS,Makefile.{BeOS*,win,cygnus,DJ,dja}}
 
+# strip out undesirable headers
+olddir=$(pwd)
+cd $RPM_BUILD_ROOT%{_includedir}/GL
+rm [a-fh-np-wyz]*.h gg*.h glf*.h
+cd $RPM_BUILD_ROOT%{_libdir}
+cd $olddir
+
 %if %{with multigl}
 install -d $RPM_BUILD_ROOT{%{_libdir}/Mesa,%{_sysconfdir}/ld.so.conf.d}
 
@@ -765,15 +800,14 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/GL/glx_mangle.h
 %dir %{_includedir}/GL/internal
 %{_includedir}/GL/internal/dri_interface.h
+%{_pkgconfigdir}/dri.pc
 %{_pkgconfigdir}/gl.pc
 
+%if %{with static}
 %files libGL-static
 %defattr(644,root,root,755)
 %{_libdir}/libGL.a
-# x11 (non-dri) Mesa API
-%{_includedir}/GL/xmesa.h
-%{_includedir}/GL/xmesa_x.h
-%{_includedir}/GL/xmesa_xf86.h
+%endif
 
 %files libGLU
 %defattr(644,root,root,755)
@@ -787,9 +821,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/GL/glu_mangle.h
 %{_pkgconfigdir}/glu.pc
 
+%if %{with static}
 %files libGLU-static
 %defattr(644,root,root,755)
 %{_libdir}/libGLU.a
+%endif
 
 %files libGLw
 %defattr(644,root,root,755)
@@ -805,24 +841,29 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/GL/GLwMDrawAP.h
 %{_pkgconfigdir}/glw.pc
 
+%if %{with static}
 %files libGLw-static
 %defattr(644,root,root,755)
 %{_libdir}/libGLw.a
+%endif
 
+%if %{with osmesa}
 %files libOSMesa
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libOSMesa.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libOSMesa.so.[0-9]
+%attr(755,root,root) %{_libdir}/libOSMesa*.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libOSMesa*.so.[0-9]
 
 %files libOSMesa-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libOSMesa.so
+%attr(755,root,root) %{_libdir}/libOSMesa*.so
 %{_includedir}/GL/osmesa.h
-%{_pkgconfigdir}/osmesa.pc
 
+%if %{with static}
 %files libOSMesa-static
 %defattr(644,root,root,755)
-%{_libdir}/libOSMesa.a
+%{_libdir}/libOSMesa*.a
+%endif
+%endif
 
 %files utils
 %defattr(644,root,root,755)
@@ -845,6 +886,10 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/xorg/modules/dri/r300_dri.so
 
+%files dri-driver-ati-radeon-R600
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/r600_dri.so
+
 %files dri-driver-ati-rage128
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/xorg/modules/dri/r128_dri.so
@@ -879,9 +924,13 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/xorg/modules/dri/mga_dri.so
 
-%files dri-driver-s3virge
+%if %{with gallium}
+%if %{with gallium_nouveau}
+%files dri-driver-nouveau
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/s3v_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/nouveau_dri.so
+%endif
+%endif
 
 %files dri-driver-savage
 %defattr(644,root,root,755)
@@ -901,14 +950,18 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/xorg/modules/dri/tdfx_dri.so
 
-%files dri-driver-trident
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/trident_dri.so
-
 %files dri-driver-via-unichrome
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/xorg/modules/dri/unichrome_dri.so
 
+%if %{with gallium}
+%files dri-driver-vmwgfx
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/vmwgfx_dri.so
+%endif
+
+%if %{with demos}
 %files demos
 %defattr(644,root,root,755)
 %{_examplesdir}/%{name}-%{version}
+%endif
This page took 0.048082 seconds and 4 git commands to generate.