/[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 88247 - (show annotations) (download)
Tue Apr 19 10:05:39 2011 UTC (13 years ago) by tv
File size: 16027 byte(s)
remove white spaces at the end of lines

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: %{libglname} = %{version}-%{release}
210 Provides: lib%{glname}-devel = %{version}-%{release}
211 Provides: %{glname}-devel = %{version}-%{release}
212 Provides: GL-devel
213 Obsoletes: %{oldlibglname}-devel < 6.4
214 Provides: %{oldlibglname}-devel = %{version}-%{release}
215 Provides: libMesaGL-devel = %{version}-%{release}
216 Provides: MesaGL-devel = %{version}-%{release}
217
218 %package -n %{libgluname}
219 Summary: Files for Mesa (GLU libs)
220 Group: System/Libraries
221 Obsoletes: %{oldlibgluname} < 6.4
222 Provides: %{oldlibgluname} = %{version}-%{release}
223 Provides: %{libgluname_virt} = %{version}-%{release}
224
225 %package -n %{libgluname}-devel
226 Summary: Development files for GLU libs
227 Group: Development/C
228 Requires: %{libgluname} = %{version}-%{release}
229 Provides: lib%{gluname}-devel = %{version}-%{release}
230 Provides: %{gluname}-devel = %{version}-%{release}
231 Obsoletes: %{oldlibgluname}-devel < 6.4
232 Provides: %{oldlibgluname}-devel = %{version}-%{release}
233 Provides: libMesaGLU-devel = %{version}-%{release}
234 Provides: MesaGLU-devel = %{version}-%{release}
235
236 %if %{with_mesaglut}
237 %package -n %{libglutname}
238 Summary: Files for Mesa (glut libs)
239 Group: System/Libraries
240 Requires: %{libgluname} = %{version}-%{release}
241 Provides: Mesa-common = %{version}-%{release} hackMesa-common = %{version}
242 Obsoletes: Mesa-common <= %{version} hackMesa-common <= %{version}
243 Obsoletes: %{oldlibglutname} < 6.4
244 Provides: %{oldlibglutname} = %{version}-%{release}
245 Provides: %{libglutname_virt} = %{version}-%{release}
246
247 %package -n %{libglutname}-devel
248 Summary: Development files for glut libs
249 Group: Development/C
250 Requires: %{libglutname} = %{version}-%{release} %{libgluname}-devel = %{version}-%{release}
251 # (gc) /usr/lib/pkgconfig/glut.pc depends on /usr/lib/pkgconfig/{x11,xmu,xi}.pc (Requires.private) and pkg-config --list-all
252 # goes wild without these deps
253 Requires: libx11-devel libxmu-devel libxi-devel
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 %configure2_5x --with-driver=dri \
410 --with-dri-driverdir=%{driver_dir} \
411 --with-dri-drivers="%{dri_drivers}" \
412 --with-state-trackers=dri \
413 --enable-gallium-nouveau \
414 %if %{enable_egl}
415 --enable-egl \
416 %else
417 --disable-egl \
418 %endif
419 %if %{with_mesaglut}
420 --enable-glut
421 %else
422 --disable-glut
423 %endif
424
425 --with-demos
426
427 # (cg) Parallel build breaks the dricore shared stuff.
428 make -j 1
429
430 %install
431 rm -rf %{buildroot}
432 make DESTDIR=$RPM_BUILD_ROOT install
433
434 # (blino) hardlink libGL files in %{_libdir}/mesa
435 # to prevent proprietary driver installers from removing them
436 mkdir -p $RPM_BUILD_ROOT%{_libdir}/mesa
437 pushd $RPM_BUILD_ROOT%{_libdir}/mesa
438 for l in ../libGL.so.*; do cp -a $l .; done
439 popd
440
441 %ifarch %{x86_64}
442 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/dri
443 %endif
444
445 %if !%{with_mesaglut}
446 rm -f %{buildroot}/%{_includedir}/GL/glut.h
447 rm -f %{buildroot}/%{_includedir}/GL/glutf90.h
448 %endif
449
450 %clean
451 rm -fr $RPM_BUILD_ROOT
452
453 %files
454 %defattr(-,root,root)
455 %doc docs/COPYING docs/README.*
456
457 %if %{enable_egl}
458 %files -n %{libeglname}
459 %defattr(-,root,root)
460 %{_libdir}/libEGL.so.1*
461 %{_libdir}/libegldri.so.1*
462
463 %files -n %{libeglname}-devel
464 %defattr(-,root,root)
465 %{_libdir}/libEGL.so
466 %{_libdir}/libegldri.so
467 %{_includedir}/gles/egl*.h
468 %endif
469
470 %files -n %{libglname}
471 %defattr(-,root,root)
472 %doc docs/COPYING
473 %{_libdir}/libGL.so.*
474 %dir %{_libdir}/mesa
475 %{_libdir}/mesa/libGL.so.*
476
477 %files -n %{dridrivers}
478 %defattr(-,root,root)
479 %doc docs/COPYING
480 %ifnarch ppc64
481 %dir %{_libdir}/dri
482 #%{_libdir}/dri/libdricore.so
483 %{_libdir}/dri/*_dri.so
484 %exclude %{_libdir}/dri/nouveau_dri.so
485 %ifnarch %arm %mips
486 %exclude %{_libdir}/dri/nouveau_vieux_dri.so
487 %endif
488 %endif
489
490 %files -n %{dridrivers}-experimental
491 %defattr(-,root,root)
492 %doc docs/COPYING
493 %doc README.install.urpmi
494 %{_libdir}/dri/nouveau_dri.so
495 %ifnarch %arm %mips
496 %{_libdir}/dri/nouveau_vieux_dri.so
497 %endif
498
499 %files -n %{libglname}-devel
500 %defattr(-,root,root)
501 %doc docs/COPYING
502 %{_includedir}/GL/gl.h
503 %{_includedir}/GL/glext.h
504 %{_includedir}/GL/gl_mangle.h
505 %{_includedir}/GL/osmesa.h
506 %{_includedir}/GL/wglext.h
507 %{_includedir}/GL/glx.h
508 %{_includedir}/GL/glxext.h
509 %{_includedir}/GL/glx_mangle.h
510 %{_libdir}/libGL.so
511 %_libdir/pkgconfig/*.pc
512
513 #FIXME: check those headers
514 %{_includedir}/GL/glfbdev.h
515 %{_includedir}/GL/vms_x_fix.h
516 %{_includedir}/GL/wmesa.h
517 %dir %{_includedir}/GL/internal
518 %{_includedir}/GL/internal/dri_interface.h
519
520 %files -n %{libgluname}
521 %defattr(-,root,root)
522 %doc docs/COPYING
523 %{_libdir}/libGLU.so.*
524
525 %if %{with_mesaglut}
526 %files -n %{libglutname}
527 %defattr(-,root,root)
528 %doc docs/COPYING
529 %{_libdir}/libglut.so.*
530 %endif
531
532 %files -n %{libglwname}
533 %defattr(-,root,root)
534 %doc docs/COPYING
535 %{_libdir}/libGLw.so.*
536
537
538 %files -n %{libgluname}-devel
539 %defattr(-,root,root)
540 %doc docs/COPYING
541 %{_includedir}/GL/glu.h
542 %{_includedir}/GL/glu_mangle.h
543 %{_includedir}/GL/mesa_wgl.h
544 %{_libdir}/libGLU.so
545
546 %if %{with_mesaglut}
547 %files -n %{libglutname}-devel
548 %defattr(-,root,root)
549 %doc docs/COPYING
550 %{_includedir}/GL/glut.h
551 %{_includedir}/GL/glutf90.h
552 %{_libdir}/libglut.so
553 %endif
554
555 %files common-devel
556 %defattr(-,root,root)
557
558 %files -n %{libglwname}-devel
559 %defattr(-,root,root)
560 %doc docs/COPYING
561 %{_includedir}/GL/GLwDrawA.h
562 %{_includedir}/GL/GLwDrawAP.h
563 %{_includedir}/GL/GLwMDrawA.h
564 %{_includedir}/GL/GLwMDrawAP.h
565 %{_libdir}/libGLw.so
566
567
568

  ViewVC Help
Powered by ViewVC 1.1.30