/[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 210130 - (show annotations) (download)
Fri Feb 17 17:27:05 2012 UTC (12 years, 8 months ago) by tv
File size: 16609 byte(s)
new release
1 %define bootstrap 0
2 %{?_without_bootstrap: %global bootstrap 0}
3 %{?_with_bootstrap: %global bootstrap 1}
4
5 %if "%distro_section" == "tainted"
6 %global build_plf 1
7 %else
8 %global build_plf 0
9 %endif
10
11 # (cg) Cheater...
12 %define Werror_cflags %nil
13
14 # (aco) Needed for the dri drivers
15 %define _disable_ld_no_undefined 1
16
17
18 %define git 0
19 %define with_hardware 1
20
21 %define relc 0
22 %define name mesa
23 %define version 8.0.1
24 %define rel 1
25
26 %define release %mkrel %{rel}
27 %define src_type tar.bz2
28 #define vsuffix %{expand:}
29 %define vsuffix %nil
30
31 %if %{relc}
32 %define release %mkrel 0.rc%{relc}.%{rel}
33 %define vsuffix -rc%{relc}
34 %define src_type tar.bz2
35 %endif
36
37 %if %{git}
38 %if %{relc}
39 %define release %mkrel 0.rc%{relc}.1.git%{git}.%{rel}
40 %else
41 %define release %mkrel 0.git%{git}.%{rel}
42 %endif
43 %endif
44
45 %define makedepend %{_bindir}/gccmakedep
46
47 %define eglname mesaegl
48 %define glname mesagl
49 %define gluname mesaglu
50 %define glwname mesaglw
51 %define glesv1name mesaglesv1
52 %define glesv2name mesaglesv2
53 %define openvgname mesaopenvg
54 %define glapiname glapi
55
56 %define eglmajor 1
57 %define glmajor 1
58 %define glumajor 1
59 %define glwmajor 1
60 %define glesv1major 1
61 %define glesv2major 2
62 %define openvgmajor 1
63 %define glapimajor 0
64
65 %define libeglname %mklibname %{eglname} %{eglmajor}
66 %define libglname %mklibname %{glname} %{glmajor}
67 %define libgluname %mklibname %{gluname} %{glumajor}
68 %define libglwname %mklibname %{glwname} %{glwmajor}
69 %define libglesv1name %mklibname %{glesv1name}_ %{glesv1major}
70 %define libglesv2name %mklibname %{glesv2name}_ %{glesv2major}
71 %define libopenvgname %mklibname %{openvgname} %{openvgmajor}
72 %define libglapiname %mklibname %{glapiname} %{glapimajor}
73
74 %define dridrivers %mklibname dri-drivers
75
76 # Architecture-independent Virtual provides:
77 %define libeglname_virt lib%{eglname}
78 %define libglname_virt lib%{glname}
79 %define libgluname_virt lib%{gluname}
80 %define libglwname_virt lib%{glwname}
81 %define libglesv1name_virt lib%{glesv1name}
82 %define libglesv2name_virt lib%{glesv2name}
83 %define libopenvgname_virt lib%{openvgname}
84 %define libglapiname_virt lib%{glapiname}
85
86 %define oldlibglname %mklibname MesaGL 1
87 %define oldlibgluname %mklibname MesaGLU 1
88
89 %define mesasrcdir %{_prefix}/src/Mesa/
90 %define driver_dir %{_libdir}/dri
91
92 %define enable_egl 1
93
94 #FIXME: (for 386/485) unset SSE, MMX and 3dnow flags
95 #FIXME: (for >=i586) disable sse
96 # SSE seems to have problem on some apps (gtulpas) for probing.
97 %define dri_drivers_i386 "i915,i965,nouveau,r200,radeon,swrast"
98 %define dri_drivers_x86_64 %{dri_drivers_i386}
99 %define dri_drivers_ppc "r200,radeon,swrast"
100 %define dri_drivers_ppc64 ""
101 %define dri_drivers_ia64 "i915,i965,mga,r200,radeon,swrast"
102 %define dri_drivers_alpha "r200,radeon,swrast"
103 %define dri_drivers_sparc "ffb,radeon,swrast"
104 %define dri_drivers_mipsel "r200,radeon,swrast"
105 %define dri_drivers_arm "swrast"
106 %define dri_drivers %{expand:%{dri_drivers_%{_arch}}}
107
108 Name: %{name}
109 Version: %{version}
110 Release: %{release}
111 Summary: OpenGL 2.1 compatible 3D graphics library
112 Group: System/Libraries
113
114 BuildRequires: pkgconfig(xfixes) >= 4.0.3
115 BuildRequires: pkgconfig(xt) >= 1.0.5
116 BuildRequires: pkgconfig(xmu) >= 1.0.3
117 BuildRequires: pkgconfig(x11) >= 1.3.3
118 BuildRequires: pkgconfig(xdamage) >= 1.1.1
119 BuildRequires: libexpat-devel >= 2.0.1
120 BuildRequires: gccmakedep
121 BuildRequires: x11-proto-devel >= 7.3
122 BuildRequires: pkgconfig(libdrm) >= 2.4.21
123
124 BuildRequires: pkgconfig(xext) >= 1.1.1
125 BuildRequires: pkgconfig(xxf86vm) >= 1.1.0
126 BuildRequires: pkgconfig(xi) >= 1.3
127 BuildRequires: pkgconfig(talloc)
128 BuildRequires: libxml2-python
129 BuildRequires: makedepend
130 BuildRequires: bison flex
131 BuildRequires: llvm
132 BuildRequires: pkgconfig(libudev)
133
134 URL: http://www.mesa3d.org
135 %if %{git}
136 # (cg) Current commit ref: origin/mesa_7_5_branch
137 Source0: %{name}-%{git}.tar.bz2
138 %else
139 Source0: ftp://ftp.freedesktop.org/pub/mesa/%version/MesaLib-%{version}%{vsuffix}.%{src_type}
140 %endif
141 Source3: make-git-snapshot.sh
142 Source5: mesa-driver-install
143
144
145 # Instructions to setup your repository clone
146 # git://git.freedesktop.org/git/mesa/mesa
147 # git checkout mesa_7_5_branch
148 # git branch mdv-cherry-picks
149 # git am ../02??-*.patch
150 # git branch mdv-redhat
151 # git am ../03??-*.patch
152 # git branch mdv-patches
153 # git am ../09??-*.patch
154
155 # In order to update to the branch via patches, issue this command:
156 # git format-patch --start-number 100 mesa_7_5_1..mesa_7_5_branch | sed 's/^0\([0-9]\+\)-/Patch\1: 0\1-/'
157
158 # Cherry picks
159 # git format-patch --start-number 200 mesa_7_5_branch..mdv-cherry-picks
160 Patch201: 0201-revert-fix-glxinitializevisualconfigfromtags-handling.patch
161 Patch202: 0202-fix-includes-for-latest-libdrm.patch
162
163 # Patches "liberated" from Fedora:
164 # http://cvs.fedoraproject.org/viewvc/rpms/mesa/devel/
165 # git format-patch --start-number 300 mdv-cherry-picks..mdv-redhat
166
167 # Mandriva patches
168 # git format-patch --start-number 900 mdv-redhat..mdv-patches
169 Patch902: 0902-remove-unfinished-GLX_ARB_render_texture.patch
170 Patch903: 0903-Fix-NULL-pointer-dereference-in-viaXMesaWindowMoved.patch
171 Patch904: Mesa-7.9-salome.patch
172
173 Patch2004: mesa_652_mips.patch
174
175 #------------------------------------------------------------------------------
176
177 # package mesa
178 License: MIT
179 Requires: %{libglname} = %{version}-%{release}
180 Provides: hackMesa = %{version}
181 Obsoletes: hackMesa <= %{version}
182 Provides: Mesa = %{version}
183 Obsoletes: Mesa < %{version}
184
185 %package -n %{libglname}
186 Summary: Files for Mesa (GL and GLX libs)
187 Group: System/Libraries
188 Obsoletes: %{oldlibglname} < 6.4
189 Provides: %{oldlibglname} = %{version}-%{release}
190 Provides: %{libglname_virt} = %{version}-%{release}
191 Requires: %{dridrivers} >= %{version}-%{release}
192 %if %{build_plf}
193 Requires: %mklibname txc-dxtn
194 %endif
195
196 # (anssi) Forces the upgrade of x11-server-common to happen before
197 # alternatives removal, which allows x11-server-common to grab the symlink.
198 Conflicts: x11-server-common < 1.3.0.0-17
199
200 %package -n %{dridrivers}
201 Summary: Mesa DRI drivers
202 Group: System/Libraries
203 Conflicts: %{_lib}MesaGL1 < 7.7-5
204 Obsoletes: %{_lib}dri-drivers-experimental < 7.11.2-4
205 Provides: %{_lib}dri-drivers-experimental = %{version}-%{release}
206
207 %package -n %{libglname}-devel
208 Summary: Development files for Mesa (OpenGL compatible 3D lib)
209 Group: Development/C
210 Requires: %{libglname} = %{version}-%{release}
211 Provides: lib%{glname}-devel = %{version}-%{release}
212 Provides: %{glname}-devel = %{version}-%{release}
213 Provides: GL-devel
214 Obsoletes: %{oldlibglname}-devel < 6.4
215 Provides: %{oldlibglname}-devel = %{version}-%{release}
216 Provides: libMesaGL-devel = %{version}-%{release}
217 Provides: MesaGL-devel = %{version}-%{release}
218 Provides: libgl-devel
219
220 %package -n %{libgluname}
221 Summary: Files for Mesa (GLU libs)
222 Group: System/Libraries
223 Obsoletes: %{oldlibgluname} < 6.4
224 Provides: %{oldlibgluname} = %{version}-%{release}
225 Provides: %{libgluname_virt} = %{version}-%{release}
226
227 %package -n %{libgluname}-devel
228 Summary: Development files for GLU libs
229 Group: Development/C
230 Requires: %{libgluname} = %{version}-%{release}
231 Provides: lib%{gluname}-devel = %{version}-%{release}
232 Provides: %{gluname}-devel = %{version}-%{release}
233 Obsoletes: %{oldlibgluname}-devel < 6.4
234 Provides: %{oldlibgluname}-devel = %{version}-%{release}
235 Provides: libMesaGLU-devel = %{version}-%{release}
236 Provides: MesaGLU-devel = %{version}-%{release}
237 Provides: libglu-devel
238 # pkgconfig files moved from libgl-devel:
239 Conflicts: %{libglname}-devel < 7.10.2-4
240
241 %if %{enable_egl}
242 %package -n %{libeglname}
243 Summary: Files for Mesa (EGL libs)
244 Group: System/Libraries
245 Provides: %{libeglname_virt} = %{version}-%{release}
246
247 %package -n %{libeglname}-devel
248 Summary: Development files for Mesa (EGL libs)
249 Group: Development/C
250 Requires: %{libeglname} = %{version}-%{release}
251 Provides: EGL-devel
252 Provides: lib%{eglname}-devel
253 Provides: %{eglname}-devel
254 Provides: libegl-devel
255 %endif
256
257 %package -n %{libglapiname}
258 Summary: Files for mesa (glapi libs)
259 Group: System/Libraries
260 Provides: %{libglapiname_virt} = %{version}-%{release}
261
262 %package -n %{libglapiname}-devel
263 Summary: Development files for glapi libs
264 Group: Development/C
265 Requires: %{libglapiname_virt} = %{version}-%{release}
266 Provides: lib%{glapiname}-devel
267 Provides: %{libglapiname}-devel
268
269 %package -n %{libglesv1name}
270 Summary: Files for Mesa (glesv1 libs)
271 Group: System/Libraries
272 Provides: %{libglesv1name_virt} = %{version}-%{release}
273
274 %package -n %{libglesv1name}-devel
275 Summary: Development files for glesv1 libs
276 Group: Development/C
277 Requires: %{libglesv1name} = %{version}-%{release}
278 Provides: lib%{glesv1name}-devel
279 Provides: %{glesv1name}-devel
280 Provides: libglesv1-devel
281
282 %package -n %{libglesv2name}
283 Summary: Files for Mesa (glesv2 libs)
284 Group: System/Libraries
285 Provides: %{libglesv2name_virt} = %{version}-%{release}
286
287 %package -n %{libglesv2name}-devel
288 Summary: Development files for glesv2 libs
289 Group: Development/C
290 Requires: %{libglesv2name} = %{version}-%{release}
291 Provides: lib%{glesv2name}-devel
292 Provides: %{glesv2name}-devel
293 Provides: libglesv2-devel
294
295 %package -n %{libopenvgname}
296 Summary: Files for MESA (OpenVG libs)
297 Group: System/Libraries
298 Provides: %{libopenvgname_virt} = %{version}-%{release}
299
300 %package -n %{libopenvgname}-devel
301 Summary: Development files vor OpenVG libs
302 Group: Development/C
303 Requires: %{libopenvgname} = %{version}-%{release}
304 Provides: lib%{openvgname}-devel
305 Provides: %{openvgname}-devel
306 Provides: libopenvg-devel
307
308 %package common-devel
309 Summary: Meta package for mesa devel
310 Group: Development/C
311 Provides: Mesa-common-devel = %{version}-%{release}
312 Provides: hackMesa-common-devel = %{version}
313 Obsoletes: Mesa-common-devel < %{version}
314 Obsoletes: hackMesa-common-devel < %{version}
315 Requires: %{libglname}-devel = %{version}
316 Requires: %{libgluname}-devel = %{version}
317 Requires: freeglut-devel
318 Requires: %{libeglname}-devel = %{version}
319 Requires: %{libglesv1name}-devel = %{version}
320 Requires: %{libglesv2name}-devel = %{version}
321
322 #------------------------------------------------------------------------------
323
324 %description
325 Mesa is an OpenGL 2.1 compatible 3D graphics library.
326 %if %{build_plf}
327
328 This package is in the "tainted" section because it enables some
329 OpenGL extentions that are covered by software patents.
330 %endif
331
332 %description common-devel
333 Mesa common metapackage devel
334
335 %if %{enable_egl}
336 %description -n %{libeglname}
337 Mesa is an OpenGL 2.1 compatible 3D graphics library.
338 EGL parts.
339
340 %description -n %{libeglname}-devel
341 Mesa is an OpenGL 2.1 compatible 3D graphics library.
342 EGL development parts.
343 %endif
344
345 %description -n %{libglname}
346 Mesa is an OpenGL 2.1 compatible 3D graphics library.
347 GL and GLX parts.
348
349 %if %{build_plf}
350 This package is in the "tainted" section because it enables some
351 OpenGL extentions that are covered by software patents.
352 %endif
353
354 %description -n %{dridrivers}
355 Mesa is an OpenGL 2.1 compatible 3D graphics library.
356 DRI drivers.
357
358 %description -n %{libglname}-devel
359 Mesa is an OpenGL 2.1 compatible 3D graphics library.
360
361 This package contains the headers needed to compile Mesa programs.
362
363 %description -n %{libgluname}
364 GLU is the OpenGL Utility Library.
365 It provides a number of functions upon the base OpenGL library to provide
366 higher-level drawing routines from the more primitive routines provided by
367 OpenGL.
368
369 %description -n %{libgluname}-devel
370 This package contains the headers needed to compile programs with GLU.
371
372 %description -n %{libglesv1name}
373 OpenGL ES is a low-level, lightweight API for advanced embedded graphics using
374 well-defined subset profiles of OpenGL.
375
376 This package provides the OpenGL ES library version 1.
377
378 %description -n %{libglapiname}
379 This packages provides the glapi shared library used by gallium.
380
381 %description -n %{libglapiname}-devel
382 This package contains the headers needed to compile programes against glapi shared library.
383
384 %description -n %{libglesv1name}-devel
385 This package contains the headers needed to compile OpenGL ES 1 programs.
386
387 %description -n %{libglesv2name}
388 OpenGL ES is a low-level, lightweight API for advanced embedded graphics using
389 well-defined subset profiles of OpenGL.
390
391 This package provides the OpenGL ES library version 2.
392
393 %description -n %{libglesv2name}-devel
394 This package contains the headers needed to compile OpenGL ES 2 programs.
395
396 %description -n %{libopenvgname}
397 OpenVG is a royalty-free, cross-platform API that provides a low-level hardware
398 acceleration interface for vector graphics libraries such as Flash and SVG.
399
400 %description -n %{libopenvgname}-devel
401 Development files for OpenVG library.
402
403 #------------------------------------------------------------------------------
404
405 %prep
406 %if %{git}
407 %setup -q -n mesa-%{git}
408 %else
409 %setup -q -n Mesa-%{version}%{vsuffix}
410 %endif
411
412 %patch201 -p1
413 #%patch202 -p1
414
415 #%patch902 -p1
416 #%patch903 -p1
417 #%patch904 -p1
418
419 #%patch2004 -p1
420
421 chmod +x %{SOURCE5}
422
423 %build
424 %if %{git}
425 ./autogen.sh -v
426 %endif
427
428 # Required by patch200:
429 autoreconf -vfi
430 %configure2_5x --with-driver=dri \
431 --with-dri-driverdir=%{driver_dir} \
432 --with-dri-drivers="%{dri_drivers}" \
433 --with-state-trackers=dri \
434 --enable-shared-dricore \
435 --enable-gallium-nouveau \
436 %if %{enable_egl}
437 --enable-egl \
438 %else
439 --disable-egl \
440 %endif
441 --enable-gles1 \
442 --enable-gles2 \
443 --enable-openvg \
444 --enable-gallium-egl \
445 %if %{with_hardware}
446 --with-gallium-drivers=r300,r600,nouveau,swrast \
447 --enable-gallium-llvm \
448 %else
449 --disable-gallium-llvm \
450 --with-gallium-drivers=swrast \
451 %endif
452 %if %{build_plf}
453 --enable-texture-float \
454 %endif
455 --disable-glut
456
457 %make
458
459 %install
460 %makeinstall_std
461
462 # (blino) hardlink libGL files in %{_libdir}/mesa
463 # to prevent proprietary driver installers from removing them
464 mkdir -p $RPM_BUILD_ROOT%{_libdir}/mesa
465 pushd $RPM_BUILD_ROOT%{_libdir}/mesa
466 for l in ../libGL.so.*; do cp -a $l .; done
467 popd
468
469 %ifarch %{x86_64}
470 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/dri
471 %endif
472
473 rm -f %{buildroot}/%{_includedir}/GL/glut.h
474 rm -f %{buildroot}/%{_includedir}/GL/glutf90.h
475
476 # use swrastg if built (Anssi 12/2011)
477 [ -e %{buildroot}%{_libdir}/dri/swrastg_dri.so ] && mv %{buildroot}%{_libdir}/dri/swrast{g,}_dri.so
478
479 #------------------------------------------------------------------------------
480
481 %files
482 %defattr(-,root,root)
483 %doc docs/COPYING docs/README.*
484
485 %files -n %{dridrivers}
486 %defattr(-,root,root)
487 %doc docs/COPYING
488 %ifnarch ppc64
489 %dir %{_libdir}/dri
490 %{_libdir}/dri/libdricore.so
491 %{_libdir}/dri/libglsl.so
492 %{_libdir}/dri/*_dri.so
493 %endif
494
495 %files -n %{libglname}
496 %defattr(-,root,root)
497 %doc docs/COPYING
498 %{_libdir}/libGL.so.*
499 %dir %{_libdir}/mesa
500 %{_libdir}/mesa/libGL.so.%{glmajor}*
501
502 %files -n %{libgluname}
503 %defattr(-,root,root)
504 %doc docs/COPYING
505 %{_libdir}/libGLU.so.%{glumajor}*
506
507 %if %{enable_egl}
508 %files -n %{libeglname}
509 %defattr(-,root,root)
510 %doc docs/COPYING
511 %{_libdir}/libEGL.so.%{eglmajor}*
512 %dir %{_libdir}/egl
513 %{_libdir}/egl/st_GL.so
514 %{_libdir}/egl/egl_gallium.so
515 %endif
516
517 %files -n %{libglapiname}
518 %defattr(-,root,root)
519 %{_libdir}/libglapi.so.%{glapimajor}*
520
521 %files -n %{libglesv1name}
522 %defattr(-,root,root)
523 %doc docs/COPYING
524 %{_libdir}/libGLESv1_CM.so.%{glesv1major}*
525
526 %files -n %{libglesv2name}
527 %defattr(-,root,root)
528 %doc docs/COPYING
529 %{_libdir}/libGLESv2.so.%{glesv2major}*
530
531 %files -n %{libopenvgname}
532 %defattr(-,root,root)
533 %doc docs/COPYING
534 %{_libdir}/libOpenVG.so.%{openvgmajor}*
535
536
537 %files -n %{libglname}-devel
538 %defattr(-,root,root)
539 %doc docs/COPYING
540 %{_includedir}/GL/gl.h
541 %{_includedir}/GL/glext.h
542 %{_includedir}/GL/gl_mangle.h
543 %{_includedir}/GL/osmesa.h
544 %{_includedir}/GL/wglext.h
545 %{_includedir}/GL/glx.h
546 %{_includedir}/GL/glxext.h
547 %{_includedir}/GL/glx_mangle.h
548 %{_libdir}/libGL.so
549 %{_libdir}/pkgconfig/gl.pc
550 %{_libdir}/pkgconfig/dri.pc
551
552 #FIXME: check those headers
553 %{_includedir}/GL/vms_x_fix.h
554 %{_includedir}/GL/wmesa.h
555 %dir %{_includedir}/GL/internal
556 %{_includedir}/GL/internal/dri_interface.h
557
558 %files -n %{libgluname}-devel
559 %defattr(-,root,root)
560 %doc docs/COPYING
561 %{_includedir}/GL/glu.h
562 %{_includedir}/GL/glu_mangle.h
563 %{_libdir}/libGLU.so
564 %{_libdir}/pkgconfig/glu.pc
565
566 %files common-devel
567 %defattr(-,root,root)
568
569 %if %{enable_egl}
570 %files -n %{libeglname}-devel
571 %defattr(-,root,root)
572 %doc docs/COPYING
573 %{_includedir}/EGL
574 %{_includedir}/KHR
575 %{_libdir}/libEGL.so
576 %{_libdir}/pkgconfig/egl.pc
577 %endif
578
579 %files -n %{libglapiname}-devel
580 %defattr(-,root,root)
581 %{_libdir}/libglapi.so
582
583 %files -n %{libglesv1name}-devel
584 %defattr(-,root,root)
585 %{_includedir}/GLES
586 %{_libdir}/libGLESv1_CM.so
587 %{_libdir}/pkgconfig/glesv1_cm.pc
588
589 %files -n %{libglesv2name}-devel
590 %defattr(-,root,root)
591 %{_includedir}/GLES2
592 %{_libdir}/libGLESv2.so
593 %{_libdir}/pkgconfig/glesv2.pc
594
595 %files -n %{libopenvgname}-devel
596 %defattr(-,root,root)
597 %{_includedir}/VG
598 %{_libdir}/libOpenVG.so
599 %{_libdir}/pkgconfig/vg.pc

  ViewVC Help
Powered by ViewVC 1.1.30