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

  ViewVC Help
Powered by ViewVC 1.1.30