/[packages]/cauldron/mesa/current/SPECS/mesa.spec
ViewVC logotype

Contents of /cauldron/mesa/current/SPECS/mesa.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 88236 - (show annotations) (download)
Tue Apr 19 09:54:26 2011 UTC (12 years, 11 months ago) by tv
File size: 16317 byte(s)
don't remove files that don't exist

1 %define bootstrap 0
2 %{?_without_bootstrap: %global bootstrap 0}
3 %{?_with_bootstrap: %global bootstrap 1}
4
5 # (cg) Cheater...
6 %define Werror_cflags %nil
7
8 # (aco) Needed for the dri drivers
9 %define _disable_ld_no_undefined 1
10
11 # freeglut should replace mesaglut soon
12 %define with_mesaglut 1
13
14 %define git 0
15 %define relc 0
16 %define name mesa
17 %define version 7.10.2
18 %define rel 2
19
20 %define release %mkrel %{rel}
21 %define src_type tar.bz2
22 %define vsuffix %{expand:}
23
24 %if %{relc}
25 %define release %mkrel 0.rc%{relc}.%{rel}
26 %define vsuffix -rc%{relc}
27 %define src_type tar.bz2
28 %endif
29
30 %if %{git}
31 %if %{relc}
32 %define release %mkrel 0.rc%{relc}.2.git%{git}.%{rel}
33 %else
34 %define release %mkrel 0.git%{git}.%{rel}
35 %endif
36 %endif
37
38 %define makedepend %{_bindir}/gccmakedep
39
40 %define eglname mesaegl
41 %define glname mesagl
42 %define gluname mesaglu
43 %define glutname mesaglut
44 %define glwname mesaglw
45 %define eglmajor 1
46 %define glmajor 1
47 %define glumajor 1
48 %define glutmajor 3
49 %define glwmajor 1
50 %define libeglname %mklibname %{eglname} %{eglmajor}
51 %define libglname %mklibname %{glname} %{glmajor}
52 %define libgluname %mklibname %{gluname} %{glumajor}
53 %define libglutname %mklibname %{glutname} %{glutmajor}
54 %define libglwname %mklibname %{glwname} %{glwmajor}
55
56 %define dridrivers %mklibname dri-drivers
57
58 # Architecture-independent Virtual provides:
59 %define libeglname_virt lib%{eglname}
60 %define libglname_virt lib%{glname}
61 %define libgluname_virt lib%{gluname}
62 %define libglutname_virt lib%{glutname}
63 %define libglwname_virt lib%{glwname}
64
65 %define oldlibglname %mklibname MesaGL 1
66 %define oldlibgluname %mklibname MesaGLU 1
67 %define oldlibglutname %mklibname Mesaglut 3
68
69 %define mesasrcdir %{_prefix}/src/Mesa/
70 %define driver_dir %{_libdir}/dri
71
72 %define enable_egl 0
73
74 #FIXME: (for 386/485) unset SSE, MMX and 3dnow flags
75 #FIXME: (for >=i586) disable sse
76 # SSE seems to have problem on some apps (gtulpas) for probing.
77 %define dri_drivers_i386 "i810,i915,i965,mga,mach64,nouveau,r128,r200,r300,r600,radeon,savage,sis,unichrome,tdfx,swrast"
78 %define dri_drivers_x86_64 %{dri_drivers_i386}
79 %define dri_drivers_ppc "mach64,r128,r200,r300,radeon,tdfx,swrast"
80 %define dri_drivers_ppc64 ""
81 %define dri_drivers_ia64 "i810,i915,i965,mga,r128,r200,radeon,swrast"
82 %define dri_drivers_alpha "mga,r128,r200,radeon,swrast"
83 %define dri_drivers_sparc "ffb,mach64,mga,radeon,savage,swrast"
84 %define dri_drivers_mipsel "mach64,mga,r128,r200,radeon,savage,tdfx,swrast"
85 %define dri_drivers_arm "swrast"
86 %define dri_drivers %{expand:%{dri_drivers_%{_arch}}}
87
88 Name: %{name}
89 Version: %{version}
90 Release: %{release}
91 Summary: OpenGL 2.1 compatible 3D graphics library
92 Group: System/Libraries
93
94 BuildRequires: tcl
95 BuildRequires: texinfo
96 BuildRequires: libxfixes-devel >= 4.0.3
97 BuildRequires: libxt-devel >= 1.0.5
98 BuildRequires: libxmu-devel >= 1.0.3
99 BuildRequires: libx11-devel >= 1.3.3
100 BuildRequires: libxdamage-devel >= 1.1.1
101 BuildRequires: libexpat-devel >= 2.0.1
102 BuildRequires: gccmakedep
103 BuildRequires: x11-proto-devel >= 7.3
104 BuildRequires: libdrm-devel >= 2.4.21
105
106 BuildRequires: libxext-devel >= 1.1.1
107 BuildRequires: libxxf86vm-devel >= 1.1.0
108 BuildRequires: libxi-devel >= 1.3
109 BuildRequires: talloc-devel libxml2-python
110 BuildRequires: makedepend
111
112 %if !%bootstrap
113 BuildRequires: libglew-devel
114 %endif
115 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
116 URL: http://www.mesa3d.org
117 %if %{git}
118 # (cg) Current commit ref: origin/mesa_7_5_branch
119 Source0: %{name}-%{git}.tar.bz2
120 %else
121 Source0: ftp://ftp.freedesktop.org/pub/mesa/%version/MesaLib-%{version}%{vsuffix}.%{src_type}
122 Source2: ftp://ftp.freedesktop.org/pub/mesa/%version/MesaGLUT-%{version}%{vsuffix}.%{src_type}
123 %endif
124 Source3: make-git-snapshot.sh
125 Source5: mesa-driver-install
126
127
128 # Instructions to setup your repository clone
129 # git://git.freedesktop.org/git/mesa/mesa
130 # git checkout mesa_7_5_branch
131 # git branch mdv-cherry-picks
132 # git am ../02??-*.patch
133 # git branch mdv-redhat
134 # git am ../03??-*.patch
135 # git branch mdv-patches
136 # git am ../09??-*.patch
137
138 # In order to update to the branch via patches, issue this command:
139 # git format-patch --start-number 100 mesa_7_5_1..mesa_7_5_branch | sed 's/^0\([0-9]\+\)-/Patch\1: 0\1-/'
140
141 # Cherry picks
142 # git format-patch --start-number 200 mesa_7_5_branch..mdv-cherry-picks
143 Patch201: 0201-revert-fix-glxinitializevisualconfigfromtags-handling.patch
144 Patch202: 0202-fix-includes-for-latest-libdrm.patch
145
146 # Patches "liberated" from Fedora:
147 # http://cvs.fedoraproject.org/viewvc/rpms/mesa/devel/
148 # git format-patch --start-number 300 mdv-cherry-picks..mdv-redhat
149 Patch300: 0300-RH-mesa-7.1-nukeglthread-debug-v1.1.patch
150 Patch301: 0301-RH-mesa-7.1-link-shared-v1.7.patch
151
152 # Mandriva patches
153 # git format-patch --start-number 900 mdv-redhat..mdv-patches
154 Patch902: 0902-remove-unfinished-GLX_ARB_render_texture.patch
155 Patch903: 0903-Fix-NULL-pointer-dereference-in-viaXMesaWindowMoved.patch
156 Patch904: Mesa-7.9-salome.patch
157
158 # (tmb) speeds up OpenGL on SandyBridge
159 Patch1000: i965-bump-CS-thread-number-on-SNB.patch
160
161 Patch2004: mesa_652_mips.patch
162
163 License: MIT
164 Requires: %{libglname} = %{version}-%{release}
165 Provides: hackMesa = %{version}
166 Obsoletes: hackMesa <= %{version}
167 Provides: Mesa = %{version}
168 Obsoletes: Mesa < %{version}
169
170 %if %{enable_egl}
171 %package -n %{libeglname}
172 Summary: Files for Mesa (EGL libs)
173 Group: System/Libraries
174 Provides: %{libeglname_virt} = %{version}-%{release}
175
176 %package -n %{libeglname}-devel
177 Summary: Development files for Mesa (EGL libs)
178 Group: Development/C
179 Requires: %{name} = %{version}
180 Provides: EGL-devel
181 %endif
182
183 %package -n %{libglname}
184 Summary: Files for Mesa (GL and GLX libs)
185 Group: System/Libraries
186 Obsoletes: %{oldlibglname} < 6.4
187 Provides: %{oldlibglname} = %{version}-%{release}
188 Provides: %{libglname_virt} = %{version}-%{release}
189 Requires: %{dridrivers} >= %{version}-%{release}
190
191 # (anssi) Forces the upgrade of x11-server-common to happen before
192 # alternatives removal, which allows x11-server-common to grab the symlink.
193 Conflicts: x11-server-common < 1.3.0.0-17
194
195 %package -n %{dridrivers}
196 Summary: Mesa DRI drivers
197 Group: System/Libraries
198 Conflicts: %{_lib}MesaGL1 < 7.7-5
199
200 %package -n %{dridrivers}-experimental
201 Summary: Mesa DRI - unstable experimental drivers
202 Group: System/Libraries
203 # for dri driver directory
204 Requires: %{dridrivers}
205
206 %package -n %{libglname}-devel
207 Summary: Development files for Mesa (OpenGL compatible 3D lib)
208 Group: Development/C
209 Requires: %{name} = %{version}
210 # (gc) /usr/lib/pkgconfig/glut.pc depends on /usr/lib/pkgconfig/{x11,xmu,xi}.pc (Requires.private) and pkg-config --list-all
211 # goes wild without these deps
212 Requires: libx11-devel libxmu-devel libxi-devel
213 Provides: lib%{glname}-devel = %{version}-%{release}
214 Provides: %{glname}-devel = %{version}-%{release}
215 Provides: GL-devel
216 Obsoletes: %{oldlibglname}-devel < 6.4
217 Provides: %{oldlibglname}-devel = %{version}-%{release}
218 Provides: libMesaGL-devel = %{version}-%{release}
219 Provides: MesaGL-devel = %{version}-%{release}
220
221 %package -n %{libgluname}
222 Summary: Files for Mesa (GLU libs)
223 Group: System/Libraries
224 Obsoletes: %{oldlibgluname} < 6.4
225 Provides: %{oldlibgluname} = %{version}-%{release}
226 Provides: %{libgluname_virt} = %{version}-%{release}
227
228 %package -n %{libgluname}-devel
229 Summary: Development files for GLU libs
230 Group: Development/C
231 Requires: %{libgluname} = %{version}-%{release}
232 Provides: lib%{gluname}-devel = %{version}-%{release}
233 Provides: %{gluname}-devel = %{version}-%{release}
234 Obsoletes: %{oldlibgluname}-devel < 6.4
235 Provides: %{oldlibgluname}-devel = %{version}-%{release}
236 Provides: libMesaGLU-devel = %{version}-%{release}
237 Provides: MesaGLU-devel = %{version}-%{release}
238
239 %if %{with_mesaglut}
240 %package -n %{libglutname}
241 Summary: Files for Mesa (glut libs)
242 Group: System/Libraries
243 Requires: %{libgluname} = %{version}-%{release}
244 Provides: Mesa-common = %{version}-%{release} hackMesa-common = %{version}
245 Obsoletes: Mesa-common <= %{version} hackMesa-common <= %{version}
246 Obsoletes: %{oldlibglutname} < 6.4
247 Provides: %{oldlibglutname} = %{version}-%{release}
248 Provides: %{libglutname_virt} = %{version}-%{release}
249
250 %package -n %{libglutname}-devel
251 Summary: Development files for glut libs
252 Group: Development/C
253 Requires: %{libglutname} = %{version}-%{release} %{libgluname}-devel = %{version}-%{release}
254 Provides: lib%{glutname}-devel = %{version}-%{release}
255 Provides: %{glutname}-devel = %{version}-%{release}
256 Obsoletes: %{oldlibglutname}-devel < 6.4
257 Provides: %{oldlibglutname}-devel = %{version}-%{release}
258 Provides: libMesaGLUT-devel = %{version}-%{release}
259 Provides: MesaGLUT-devel = %{version}-%{release}
260 %endif
261
262 %package -n %{libglwname}
263 Summary: Files for Mesa (glw libs)
264 Group: System/Libraries
265 Provides: Mesa-common = %{version}-%{release} hackMesa-common = %{version}
266 Obsoletes: Mesa-common <= %{version} hackMesa-common <= %{version}
267 Provides: %{libglwname_virt} = %{version}-%{release}
268
269 %package -n %{libglwname}-devel
270 Summary: Development files for glw libs
271 Group: Development/C
272 Requires: %{libglwname} = %{version}-%{release}
273 Provides: lib%{glwname}-devel = %{version}-%{release}
274 Provides: %{glwname}-devel = %{version}-%{release}
275
276 %package common-devel
277 Summary: Meta package for mesa devel
278 Group: Development/C
279 Provides: Mesa-common-devel = %{version}-%{release}
280 Provides: hackMesa-common-devel = %{version}
281 Obsoletes: Mesa-common-devel < %{version}
282 Obsoletes: hackMesa-common-devel < %{version}
283 Requires: %{libglname}-devel = %{version}
284 Requires: %{libglwname}-devel = %{version}
285 Requires: %{libgluname}-devel = %{version}
286 %if %{with_mesaglut}
287 Requires: %{libglutname}-devel = %{version}
288 %else
289 Requires: libglut-devel
290 %endif
291
292
293 %description
294 Mesa is an OpenGL 2.1 compatible 3D graphics library.
295
296 %description common-devel
297 Mesa common metapackage devel
298
299 %if %{enable_egl}
300 %description -n %{libeglname}
301 Mesa is an OpenGL 2.1 compatible 3D graphics library.
302 EGL parts.
303
304 %description -n %{libeglname}-devel
305 Mesa is an OpenGL 2.1 compatible 3D graphics library.
306 EGL development parts.
307 %endif
308
309 %description -n %{libglname}
310 Mesa is an OpenGL 2.1 compatible 3D graphics library.
311 GL and GLX parts.
312
313 %description -n %{dridrivers}
314 Mesa is an OpenGL 2.1 compatible 3D graphics library.
315 DRI drivers.
316
317 %description -n %{dridrivers}-experimental
318 Mesa is an OpenGL 2.1 compatible 3D graphics library.
319 Experimental unstable DRI drivers.
320
321 This package contains experimental DRI drivers for NVIDIA cards, for
322 OpenGL acceleration with nouveau driver. These drivers are not stable
323 and may crash your system. Please do not report bugs encountered with
324 these drivers.
325
326 %description -n %{libglname}-devel
327 Mesa is an OpenGL 2.1 compatible 3D graphics library.
328
329 This package contains the headers needed to compile Mesa programs.
330
331 %description -n %{libgluname}
332 GLU is the OpenGL Utility Library.
333 It provides a number of functions upon the base OpenGL library to provide
334 higher-level drawing routines from the more primitive routines provided by
335 OpenGL.
336
337 %description -n %{libgluname}-devel
338 This package contains the headers needed to compile programs with GLU.
339
340 %if %{with_mesaglut}
341 %description -n %{libglutname}
342 GLUT (OpenGL Utility Toolkit) is a addon library for OpenGL programs. It
343 provides them utilities to define and control windows, input from the keyboard
344 and the mouse, drawing some geometric primitives (cubes, spheres, ...).
345 GLUT can even create pop-up windows.
346
347 %description -n %{libglutname}-devel
348 Mesa is an OpenGL 2.1 compatible 3D graphics library.
349 glut parts.
350 %endif
351
352 This package contains the headers needed to compile Mesa programs.
353
354 %description -n %{libglwname}
355 GLw adds Motif bindings to the OpenGL "canvas" (Xt/Motif/OpenGL widget code).
356
357 %description -n %{libglwname}-devel
358 Mesa is an OpenGL 2.1 compatible 3D graphics library.
359 GLw parts.
360
361 This package contains the headers needed to compile Mesa programs.
362
363 %prep
364 %if %{git}
365 %setup -q -n mesa-%{git}
366 %else
367 %setup -q -n Mesa-%{version}%{vsuffix} -b2
368 %endif
369
370 %patch201 -p1
371 %patch202 -p1
372
373 %patch300 -p1
374 ## (Anssi 03/2010) FIXME: Currently results in either missing NEEDED tag or
375 ## NEEDED tag with '../../../../../lib/libdricore.so', while NEEDED tag of libdricore.so
376 ## is wanted.
377 #%patch301 -p1
378
379 %patch902 -p1
380 %patch903 -p1
381 %patch904 -p1
382
383 %patch1000 -p1
384
385 %patch2004 -p1
386
387 %if %{enable_egl}
388 # (cg) Need to fix this post 7.4.1 - patch not yet migrated
389 #patch1001 -p1
390 %endif
391
392 chmod +x %{SOURCE5}
393
394 # for dri-drivers-experimental
395 cat > README.install.urpmi <<EOF
396 This package contains experimental DRI drivers for NVIDIA cards, for
397 OpenGL acceleration with nouveau driver. These drivers are not stable
398 and may crash your system. Please do not report bugs encountered with
399 these drivers.
400 EOF
401
402 %build
403 #%if %{git}
404 #./autogen.sh -v
405 #%endif
406
407 # Required by patch200:
408 autoreconf -vfi
409
410 LIB_DIR=%{_lib}
411 INCLUDE_DIR=$RPM_BUILD_ROOT%{_includedir}
412 DRI_DRIVER_DIR="%{driver_dir}"
413 export LIB_DIR INCLUDE_DIR DRI_DRIVER_DIR
414
415 %configure2_5x --with-driver=dri \
416 --with-dri-driverdir=%{driver_dir} \
417 --with-dri-drivers="%{dri_drivers}" \
418 --with-state-trackers=dri \
419 --enable-gallium-nouveau \
420 %if %{enable_egl}
421 --enable-egl \
422 %else
423 --disable-egl \
424 %endif
425 %if %{with_mesaglut}
426 --enable-glut
427 %else
428 --disable-glut
429 %endif
430
431 --with-demos
432
433 # (cg) Parallel build breaks the dricore shared stuff.
434 make -j 1
435
436 %install
437 rm -rf %{buildroot}
438 make DESTDIR=$RPM_BUILD_ROOT install
439
440 mkdir -p $RPM_BUILD_ROOT%{_bindir}
441
442
443 # (blino) hardlink libGL files in %{_libdir}/mesa
444 # to prevent proprietary driver installers from removing them
445 mkdir -p $RPM_BUILD_ROOT%{_libdir}/mesa
446 pushd $RPM_BUILD_ROOT%{_libdir}/mesa
447 for l in ../libGL.so.*; do cp -a $l .; done
448 popd
449
450 # clean any .la file with still reference to tmppath.
451 perl -pi -e "s|\S+$RPM_BUILD_DIR\S*||g" $RPM_BUILD_ROOT/%{_libdir}/*.la
452
453 %ifarch %{x86_64}
454 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/dri
455 %endif
456
457 %if !%{with_mesaglut}
458 rm -f %{buildroot}/%{_includedir}/GL/glut.h
459 rm -f %{buildroot}/%{_includedir}/GL/glutf90.h
460 %endif
461
462 %clean
463 rm -fr $RPM_BUILD_ROOT
464
465 %files
466 %defattr(-,root,root)
467 %doc docs/COPYING docs/README.*
468
469 %if %{enable_egl}
470 %files -n %{libeglname}
471 %defattr(-,root,root)
472 %{_libdir}/libEGL.so.1*
473 %{_libdir}/libegldri.so.1*
474
475 %files -n %{libeglname}-devel
476 %defattr(-,root,root)
477 %{_libdir}/libEGL.so
478 %{_libdir}/libegldri.so
479 %{_includedir}/gles/egl*.h
480 %endif
481
482 %files -n %{libglname}
483 %defattr(-,root,root)
484 %doc docs/COPYING
485 %{_libdir}/libGL.so.*
486 %dir %{_libdir}/mesa
487 %{_libdir}/mesa/libGL.so.*
488
489 %files -n %{dridrivers}
490 %defattr(-,root,root)
491 %doc docs/COPYING
492 %ifnarch ppc64
493 %dir %{_libdir}/dri
494 #%{_libdir}/dri/libdricore.so
495 %{_libdir}/dri/*_dri.so
496 %exclude %{_libdir}/dri/nouveau_dri.so
497 %ifnarch %arm %mips
498 %exclude %{_libdir}/dri/nouveau_vieux_dri.so
499 %endif
500 %endif
501
502 %files -n %{dridrivers}-experimental
503 %defattr(-,root,root)
504 %doc docs/COPYING
505 %doc README.install.urpmi
506 %{_libdir}/dri/nouveau_dri.so
507 %ifnarch %arm %mips
508 %{_libdir}/dri/nouveau_vieux_dri.so
509 %endif
510
511 %files -n %{libglname}-devel
512 %defattr(-,root,root)
513 %doc docs/COPYING
514 %{_includedir}/GL/gl.h
515 %{_includedir}/GL/glext.h
516 %{_includedir}/GL/gl_mangle.h
517 %{_includedir}/GL/osmesa.h
518 %{_includedir}/GL/wglext.h
519 %{_includedir}/GL/glx.h
520 %{_includedir}/GL/glxext.h
521 %{_includedir}/GL/glx_mangle.h
522 %{_libdir}/libGL.so
523 %_libdir/pkgconfig/*.pc
524
525 #FIXME: check those headers
526 %{_includedir}/GL/glfbdev.h
527 %{_includedir}/GL/vms_x_fix.h
528 %{_includedir}/GL/wmesa.h
529 %dir %{_includedir}/GL/internal
530 %{_includedir}/GL/internal/dri_interface.h
531
532 %files -n %{libgluname}
533 %defattr(-,root,root)
534 %doc docs/COPYING
535 %{_libdir}/libGLU.so.*
536
537 %if %{with_mesaglut}
538 %files -n %{libglutname}
539 %defattr(-,root,root)
540 %doc docs/COPYING
541 %{_libdir}/libglut.so.*
542 %endif
543
544 %files -n %{libglwname}
545 %defattr(-,root,root)
546 %doc docs/COPYING
547 %{_libdir}/libGLw.so.*
548
549
550 %files -n %{libgluname}-devel
551 %defattr(-,root,root)
552 %doc docs/COPYING
553 %{_includedir}/GL/glu.h
554 %{_includedir}/GL/glu_mangle.h
555 %{_includedir}/GL/mesa_wgl.h
556 %{_libdir}/libGLU.so
557
558 %if %{with_mesaglut}
559 %files -n %{libglutname}-devel
560 %defattr(-,root,root)
561 %doc docs/COPYING
562 %{_includedir}/GL/glut.h
563 %{_includedir}/GL/glutf90.h
564 %{_libdir}/libglut.so
565 %endif
566
567 %files common-devel
568 %defattr(-,root,root)
569
570 %files -n %{libglwname}-devel
571 %defattr(-,root,root)
572 %doc docs/COPYING
573 %{_includedir}/GL/GLwDrawA.h
574 %{_includedir}/GL/GLwDrawAP.h
575 %{_includedir}/GL/GLwMDrawA.h
576 %{_includedir}/GL/GLwMDrawAP.h
577 %{_libdir}/libGLw.so
578
579
580

  ViewVC Help
Powered by ViewVC 1.1.30