X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=Mesa.spec;h=162c55527c6811f45dcbe3f55704595c5d14cb97;hb=refs%2Fheads%2FMESA_7_7;hp=1d1884ebac5bd28df3411108329bd7c57b1ec5aa;hpb=9204e9931ed46c1707b2495a128f733e197dfe0b;p=packages%2FMesa.git diff --git a/Mesa.spec b/Mesa.spec index 1d1884e..162c555 100644 --- 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 @@ -13,37 +22,51 @@ # (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