Here's the promised spec file for building a Mesa that is compatible with the latest and greatest XFree86... -- ********************************* Tell me and I may forget, Show me and I may remember, Involve me and I will understand. *********************************
Name: CompatMesa Version: 3.1 Release: 0.1mdk Summary: OpenGL 1.2 compatible 3D graphics library Group: Libraries BuildRoot: %{_tmppath}/mesa-root Source: ftp://ftp.mesa3d.org/pub/Mesa/MesaLib-3.1.tar.bz2 Source1: ftp://ftp.mesa3d.org/pub/Mesa/MesaDemos-3.1.tar.bz2 Patch0: Mesa-3.0-pthread.patch.bz2 Patch1: Mesa-3.1-ppc.patch.bz2 Copyright: LGPL Prefix: /usr/X11R6 Requires: XFree86 >= 4.0 %package devel Summary: development files for Mesa (OpenGL compatible 3D lib) Group: Development/Libraries Requires: CompatMesa >= %{version} %package demos Summary: demos for Mesa (OpenGL compatible 3D lib) Group: Applications/Graphics Requires: CompatMesa >= %{version} %description Mesa is an OpenGL 1.2 compatible 3D graphics library. This version is intended for XFree86 4.0 %description devel Mesa is an OpenGL 1.2 compatible 3D graphics library. This package contains the headers needed to compile Mesa programs. %description demos Mesa is an OpenGL 1.2 compatible 3D graphics library. This package contains some demo programs for the Mesa library. %prep %setup -n Mesa-3.1 #Mesa-demos tar xvfy %{SOURCE1} -C ../ # %patch0 -p1 # Use patch0 if you want to build a threaded library %ifarch ppc %patch1 -p1 -b .ppc %endif perl -p -i -e "s/-O3/$RPM_OPT_FLAGS/" Make-config pushd demos && { for i in *.c; do perl -pi -e "s|\.\./images/|%{prefix}/lib/mesa-demos-data/|" $i ; done perl -pi -e "s|isosurf.dat|%{prefix}/lib/mesa-demos-data/isosurf.dat|" isosurf.c } && popd %build %ifarch i386 i486 i586 k6 i686 ./configure --prefix=%{prefix} --target=%{_target_cpu}-mandrake-linux-gnu %else ./configure --prefix=%{prefix} \ --target=%{_target_cpu}-mandrake-linux-gnu \ --without-3dnow %endif %ifarch i386 i486 i586 k6 i686 #make linux-386-pthread-shared if [ x"$SMP" != x"" ]; then (make MAKE="make -j $SMP -k" ; exit 0) make else make fi %else # I dunno why this is here (ax) if [ x"$SMP" != x"" ]; then (make MAKE="make -j $SMP -k" ; exit 0) make else make fi %endif pushd demos for i in bounce clearspd drawpix gamma gears glinfo glutfx isosurf morph3d \ multiarb osdemo paltex pointblast reflect renormal \ spectex stex3d tessdemo texcyl texobj trispd winpos; do make $i done popd %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/mesa-demos-data mkdir -p $RPM_BUILD_ROOT/usr/include mkdir -p $RPM_BUILD_ROOT%{prefix}/etc/X11 make DESTDIR=$RPM_BUILD_ROOT install # Clean up and make it look like old Mesa #mv $RPM_BUILD_ROOT%{prefix}/include/GL $RPM_BUILD_ROOT/usr/include mkdir -p $RPM_BUILD_ROOT%{prefix}/bin for i in bounce clearspd drawpix gamma gears glinfo glutfx isosurf morph3d \ multiarb osdemo paltex pointblast reflect renormal \ spectex stex3d tessdemo texcyl texobj trispd winpos; do cp -v demos/.libs/$i $RPM_BUILD_ROOT%{prefix}/bin done # (fg) So that demos at least work :) cp -v images/*rgb demos/isosurf.dat $RPM_BUILD_ROOT%{prefix}/lib/mesa-demos-data cd $RPM_BUILD_ROOT/%{prefix}/lib/ ln -sf libGLU.so.1 libGLU.so ln -sf libglut.so.3 libglut.so %post ldconfig %postun ldconfig %files %defattr(-,root,root) %{prefix}/lib/libGLU.so.* %{prefix}/lib/libglut.so.* %{prefix}/etc/mesa.conf %files devel %defattr(-,root,root) %dir %{prefix}/include/GL %{prefix}/include/GL/glu.h %{prefix}/include/GL/glu_mangle.h %{prefix}/include/GL/osmesa.h %ifarch i386 i486 i586 i686 k6 %{prefix}/include/GL/svgamesa.h %endif %{prefix}/include/GL/xmesa.h %{prefix}/include/GL/xmesa_x.h %{prefix}/include/GL/xmesa_xf86.h %{prefix}/include/GL/glut.h %{prefix}/lib/libGLU.so %{prefix}/lib/libglut.so %{prefix}/lib/libGLU.la %{prefix}/lib/libglut.la %files demos %defattr(-,root,root) %{prefix}/bin/* %dir %{prefix}/lib/mesa-demos-data %{prefix}/lib/mesa-demos-data/* %changelog * Sun Mar 26 2000 John Cavan <[EMAIL PROTECTED]> - converted to support XFree86 4.0 * Sun Mar 19 2000 John Buswell <[EMAIL PROTECTED]> 3.1-8mdk - Added patch for PPC arch - Included PPC in GLX skip - Added ifarch * Fri Jan 28 2000 Francis Galiegue <[EMAIL PROTECTED]> - Added .so symlinks in -devel * Mon Jan 17 2000 Francis Galiegue <[EMAIL PROTECTED]> - Made demos fully functional * Mon Jan 17 2000 Francis Galiegue <[EMAIL PROTECTED]> - Also skip svgalib for sparcs * Thu Jan 13 2000 Chmouel Boudjnah <[EMAIL PROTECTED]> 3.1-4mdk - Make sure to get the right link. * Tue Jan 11 2000 Pixel <[EMAIL PROTECTED]> - fix build for non-svgalib architectures * Mon Dec 20 1999 Axalon Bloodstone <[EMAIL PROTECTED]> - id k6 chipset as i586 for glx * Tue Dec 14 1999 Axalon Bloodstone <[EMAIL PROTECTED]> - Mesa 3.1 final. - rewrite files * Sat Dec 11 1999 Axalon Bloodstone <[EMAIL PROTECTED]> - Really fix alpha build (no glx for you) - and use _tmppath in Buildroot * Tue Dec 07 1999 Axalon Bloodstone <[EMAIL PROTECTED]> - Fix alpha build (i think) - Clean up .spec (scared chmou, big wuss) ;) - make cheesie 'glx' script to LD_PRELOAD the libGL.so.1.0 for the demos * Fri Nov 26 1999 Axalon Bloodstone <[EMAIL PROTECTED]> - Update cvs snaps - Use new --with-chipset=both for glx - (this is not backwards compatible, you must recompile) don't blame me ask the Mesa people - use the right --target (must say they did a damned fine job of optimizing the code * Tue Nov 02 1999 Axalon Bloodstone <[EMAIL PROTECTED]> - add arch's, defattr - integrate glx (mga_gxl.so, tnt_glx.so) * Mon Oct 11 1999 Chmouel Boudjnah <[EMAIL PROTECTED]> - Back to old Mesa lib. * Fri Jul 16 1999 Bernhard Rosenkraenzer <[EMAIL PROTECTED]> - remove the -ffast-math removal stuff - Mesa 3.1 works with -ffast-math and is actually 11.7% faster than without it. * Fri Jul 16 1999 Bernhard Rosenkraenzer <[EMAIL PROTECTED]> - 3.1beta2 * Wed Jun 30 1999 Chmouel Boudjnah <[EMAIL PROTECTED]> - Build in the new environement (rel: 3mdk). * Thu May 06 1999 Chmouel Boudjnah <[EMAIL PROTECTED]> - ldconfig to %post and %postun. * Mon Feb 15 1999 Bernhard Rosenkraenzer <[EMAIL PROTECTED]> - initial RPM; changes to base: - Handle RPM_OPT_FLAGS - link with pthread library