/[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 2103284 - (show annotations) (download)
Fri Oct 4 13:59:32 2024 UTC (9 days, 10 hours ago) by ghibo
File size: 33665 byte(s)
Enable nvk
1 %define git 0
2 %define git_branch 24.2
3
4 %define opengl_ver 4.6
5
6 # define version, RC & release
7 %define main_version 24.2.4
8 #define relc 1
9 %define rel 2
10
11 %define release %mkrel %{?relc:0.rc%{relc}.}%{rel}
12
13 %if %{git}
14 %if %{?relc:1}%{!?relc:0}
15 %define release %mkrel 1~rc%{relc}.1.git%{git}.%{rel}
16 %else
17 %define release 1.git%{git}.%{rel}
18 %endif
19 %endif
20
21 # exclude libgallium-<mesa-version>.so from being required as a devel library
22 %global __requires_exclude devel\\(libgallium
23
24 %define build_tainted 0
25 %if "%{distro_section}" == "tainted"
26 %define build_tainted 1
27 %endif
28
29 %define clname mesaopencl
30 %define rusticlname mesarusticl
31 %define d3dname d3d
32 %define eglname mesaegl
33 %define eglname_glvnd egl
34 %define glname mesagl
35 %define glname_glvnd gl
36 %define glwname mesaglw
37 %define glesv1name mesaglesv1
38 %define glesv2name mesaglesv2
39 %define glesv1name_glvnd glesv1_cm
40 %define glesv2name_glvnd glesv2
41 %define gldispatchname_glvnd gldispatch
42 %define glxname_glvnd glx
43 %define glapiname glapi
44 %define gbmname gbm
45 %define xaname xatracker
46 %define vulkanname mesavulkan
47
48 %define clmajor 1
49 %define rusticlmajor 1
50 %define d3dmajor 1
51 %define eglmajor 1
52 %define eglmajor_glvnd 1
53 %define glmajor 1
54 %define glmajor_glvnd 1
55 %define glwmajor 1
56 %define glesv1major 1
57 %define glesv2major 2
58 %define gldispatchmajor 0
59 %define glxmajor 0
60 %define glapimajor 0
61 %define gbmmajor 1
62 %define waylandeglmajor 1
63 %define osmesamajor 8
64 %define xamajor 2
65
66 %define libclname %mklibname %{clname} %{clmajor}
67 %define librusticlname %mklibname %{rusticlname} %{rusticlmajor}
68 %define libd3dname %mklibname %{d3dname} %{d3dmajor}
69 %define devd3dname %mklibname %{d3dname} -d
70 %define libeglname %mklibname %{eglname} %{eglmajor}
71 %define deveglname %mklibname %{eglname} -d
72 %define libeglname_glvnd %mklibname %{eglname_glvnd} %{eglmajor_glvnd}
73 %define libglname %mklibname %{glname} %{glmajor}
74 %define devglname %mklibname %{glname} -d
75 %define libglname_glvnd %mklibname %{glname_glvnd} %{glmajor_glvnd}
76 %define libglwname %mklibname %{glwname} %{glwmajor}
77 %define libglesv1name %mklibname %{glesv1name}_ %{glesv1major}
78 %define devglesv1name %mklibname %{glesv1name} -d
79 %define libglesv1name_glvnd %mklibname %{glesv1name_glvnd} %{glesv1major}
80 %define libglesv2name %mklibname %{glesv2name}_ %{glesv2major}
81 %define devglesv2name %mklibname %{glesv2name} -d
82 %define libglesv2name_glvnd %mklibname %{glesv2name_glvnd} %{glesv2major}
83 %define libgldispatchname_glvnd %mklibname %{gldispatchname_glvnd} %{gldispatchmajor}
84 %define libglxname_glvnd %mklibname %{glxname_glvnd} %{glxmajor}
85 %define libglapiname %mklibname %{glapiname} %{glapimajor}
86 %define devglapiname %mklibname %{glapiname} -d
87 %define libgbmname %mklibname %{gbmname} %{gbmmajor}
88 %define devgbmname %mklibname %{gbmname} -d
89 %define libwaylandeglname %mklibname %{waylandeglname} %{waylandeglmajor}
90 %define libosmesaname %mklibname osmesa %{osmesamajor}
91 %define libxaname %mklibname %{xaname} %{xamajor}
92 %define devxaname %mklibname %{xaname} -d
93
94 %define dridrivers %mklibname dri-drivers
95
96 %define vulkandrivers %mklibname %{vulkanname}-drivers
97 %define vulkandevel %mklibname %{vulkanname} -d
98
99 %define libcldevel %mklibname mesaopencl -d
100 %define librusticldevel %mklibname mesarusticl -d
101 %define khrdevel %mklibname mesakhr -d
102 %define osmesadevel %mklibname osmesa -d
103
104 %define glvnd_devname %mklibname glvnd -d
105
106 # Architecture-independent Virtual provides:
107 %define libd3dname_virt lib%{d3dname}
108 %define libeglname_virt lib%{eglname}
109 %define libglname_virt lib%{glname}
110 %define libglwname_virt lib%{glwname}
111 %define libglesv1name_virt lib%{glesv1name}
112 %define libglesv2name_virt lib%{glesv2name}
113 %define libglapiname_virt lib%{glapiname}
114 %define libgbmname_virt lib%{gbmname}
115 %define libwaylandeglname_virt lib%{waylandeglname}
116 %define libxaname_virt lib%{xaname}
117
118 %define mesasrcdir %{_prefix}/src/Mesa/
119
120 %define with_valgrind 1
121
122 # Note for packagers: to "bootstrap" mesa when switching to
123 # libglvnd, you have to disable vaapi (commenting with_vaapi
124 # below), as vaapi depends on mesa, so it would lead to a
125 # cyclical dependency. Re-enable vaapi once bootstrapped.
126
127 # undefine one of the following entries to disable
128 %global with_hardware 1
129 %global with_vulkan_hw 1
130 %global with_nvk 1
131 #global with_nvk_allow_download 1
132 #global with_nvk_allow_crates_updates 1
133 %global with_vdpau 1
134 %global with_vaapi 1
135 %global with_nine 1
136 %global with_omx 1
137 %global with_opencl 1
138 %global with_rusticl 1
139 %global base_vulkan ,amd,virtio
140 %if 0%{?mageia} < 8
141 %global with_glvnd 0
142 %else
143 %global with_glvnd 1
144 %endif
145
146 %ifarch %{ix86} x86_64
147 %global with_crocus 1
148 %global with_i915 1
149 %global with_iris 1
150 %global with_vmware 1
151 %global with_xa 1
152 %global platform_vulkan ,intel,intel_hasvk
153 %global with_intel_clc 1
154 %endif
155 %ifarch x86_64
156 %global with_intel_vk_rt 1
157 %endif
158
159 %ifarch %{arm} aarch64
160 %global with_etnaviv 1
161 %global with_freedreno 1
162 #global with_kmsro 1
163 %global with_lima 1
164 %global with_panfrost 1
165 %global with_tegra 1
166 %global with_vc4 1
167 %global with_v3d 1
168 %global with_xa 1
169 %global platform_vulkan ,broadcom,freedreno,panfrost,imagination-experimental
170 %endif
171
172 # define with_newname above to have:
173 # lib(64)mesagl1 renamed as lib(64)glx_mesa0 and
174 # lib(64)egl1 renamed as lib(64)egl_mesa0
175 #global with_newname 1
176 %if 0%{?with_newname}
177 %define eglname egl_mesa
178 %define glname glx_mesa
179 %define glmajor 0
180 %define eglmajor 0
181 %define old_eglname mesaegl
182 %define old_glname mesagl
183 %define old_eglmajor 1
184 %define old_glmajor 1
185 %define libold_eglname %mklibname %{old_eglname} %{old_eglmajor}
186 %define libold_glname %mklibname %{old_glname} %{old_glmajor}
187 %endif
188
189 %ifnarch %{arm}
190 %global with_radeonsi 1
191 %endif
192
193 #global with_docs 1
194
195 %global vulkan_drivers swrast%{?base_vulkan}%{?platform_vulkan}%{?with_nvk:,nouveau}
196
197 %if %{mgaversion} < 10
198 %define bindgendeps rust-bindgen
199 %else
200 %define bindgendeps bindgen-cli
201 %endif
202
203 Name: mesa
204 Version: %{main_version}
205 Release: %{release}
206 Summary: OpenGL %{opengl_ver} compatible 3D graphics library
207 Group: System/Libraries
208
209 # force new gcc
210 BuildRequires: gcc >= 12.3.0-1
211 BuildRequires: binutils >= 1:2.40-10
212
213 # for building docs
214 %if 0%{?with_docs}
215 BuildRequires: doxygen
216 %endif
217
218 BuildRequires: pkgconfig(libdrm) >= 2.4.119
219 BuildRequires: pkgconfig(expat)
220 BuildRequires: pkgconfig(zlib) >= 1.2.3
221 BuildRequires: pkgconfig(wayland-protocols) >= 1.34
222 BuildRequires: pkgconfig(wayland-scanner)
223 BuildRequires: pkgconfig(wayland-client) >= 1.18
224 BuildRequires: pkgconfig(wayland-server) >= 1.18
225 BuildRequires: pkgconfig(wayland-egl-backend) >= 3
226 BuildRequires: pkgconfig(x11)
227 BuildRequires: pkgconfig(xext)
228 BuildRequires: pkgconfig(xdamage) >= 1.1
229 BuildRequires: pkgconfig(xfixes)
230 BuildRequires: pkgconfig(xt) >= 1.0.5
231 BuildRequires: pkgconfig(xmu) >= 1.0.3
232 BuildRequires: x11-proto-devel >= 7.3
233 BuildRequires: pkgconfig(xcb-glx) >= 1.8.1
234 BuildRequires: pkgconfig(xxf86vm)
235 BuildRequires: pkgconfig(xcb)
236 BuildRequires: pkgconfig(x11-xcb)
237 BuildRequires: pkgconfig(xcb-dri2) >= 1.8
238 BuildRequires: pkgconfig(xcb-dri3)
239 BuildRequires: pkgconfig(xcb-present)
240 BuildRequires: pkgconfig(xcb-sync)
241 BuildRequires: pkgconfig(xshmfence) >= 1.1
242 BuildRequires: pkgconfig(dri2proto) >= 2.8
243 BuildRequires: pkgconfig(glproto) >= 1.4.14
244 BuildRequires: pkgconfig(xcb-xfixes)
245 BuildRequires: pkgconfig(xcb-randr)
246 BuildRequires: pkgconfig(xi) >= 1.3
247 BuildRequires: pkgconfig(xrandr) >= 1.3
248 BuildRequires: bison
249 BuildRequires: flex
250 BuildRequires: pkgconfig(vdpau) >= 1.1
251 %if 0%{?with_vaapi}
252 BuildRequires: pkgconfig(libva) >= 0.38.0
253 %endif
254 %if 0%{?with_omx}
255 BuildRequires: pkgconfig(libomxil-bellagio)
256 %endif
257 BuildRequires: pkgconfig(libelf)
258 %if 0%{?with_glvnd}
259 BuildRequires: pkgconfig(libglvnd) >= 1.3.2
260 %endif
261 BuildRequires: llvm-devel >= 7.0.0
262 %if 0%{?with_radeonsi}
263 BuildRequires: llvm-devel >= 15.0.0
264 %endif
265 %if 0%{?with_opencl}
266 BuildRequires: clang-devel
267 BuildRequires: libclc-devel >= 12.0.0-0.rc4.1
268 BuildRequires: polly
269 %if 0%{?with_rusticl} || 0%{?with_nvk}
270 BuildRequires: pkgconfig(LLVMSPIRVLib)
271 BuildRequires: pkgconfig(SPIRV-Tools)
272 BuildRequires: rust
273 BuildRequires: %{bindgendeps} >= 0.65.0
274 %endif
275 %endif
276 %if 0%{?with_nvk}
277 BuildRequires: cbindgen
278 %endif
279 BuildRequires: pkgconfig(talloc)
280 BuildRequires: meson >= 1.4
281 BuildRequires: pkgconfig(libudev)
282 %if 0%{?with_valgrind}
283 BuildRequires: pkgconfig(valgrind)
284 %endif
285 %if 0%{?mageia} < 8
286 BuildRequires: python2-libxml2
287 BuildRequires: python2-mako
288 %endif
289 BuildRequires: python3-libxml2
290 BuildRequires: python3-mako
291 BuildRequires: python3-pycparser >= 2.20
292 BuildRequires: python3-yaml
293 BuildRequires: vulkan-headers
294 BuildRequires: glslang
295 %if 0%{?with_vulkan_hw}
296 BuildRequires: pkgconfig(vulkan)
297 %endif
298 BuildRequires: libgcrypt-devel
299 BuildRequires: lm_sensors-devel
300 BuildRequires: pkgconfig(libzstd)
301 BuildRequires: pkgconfig(libunwind)
302 %if 0%{?with_intel_clc}
303 BuildRequires: python3-ply
304 %endif
305 %if %{build_tainted}
306 BuildRequires: pkgconfig(x264)
307 BuildRequires: pkgconfig(x265)
308 %endif
309
310 URL: https://www.mesa3d.org
311 %if %{git}
312 #Source0: %{name}-%{git}.tar.bz2
313 # (blino) snapshot of 13.0 branch
314 Source0: %{name}-%{git_branch}-%{git}.tar.xz
315 %else
316 Source0: https://mesa.freedesktop.org/archive/mesa-%{main_version}%{?relc:-rc%{relc}}.tar.xz
317 %endif
318 Source3: make-git-snapshot.sh
319
320 # Note for packagers:
321 #
322 # build with nvk requires the rust crates listed below. The meson setup can
323 # download them when it is allowed to do so. Thus setting
324 # %%with_nvk_allow_crates_updates and %%with_nvk_allow_downloads to 1 at the
325 # top of the SPEC file would allow to update to a newer version of crates
326 # (the complete list is contained in the file crates_sources.txt located in
327 # in the BUILDROOT), and then it copies automatically the newer crates
328 # binaries, if any, to the SOURCES dir. Once completed, paste the codes of
329 # crates_source.txt below and unset the above conditional flags at the top
330 # of the SPEC file to produce the final release.
331 #
332 # list of crates required for nvk
333 Source20: https://crates.io/api/v1/crates/paste/1.0.14/download#/paste-1.0.14.tar.gz
334 Source21: https://crates.io/api/v1/crates/proc-macro2/1.0.86/download#/proc-macro2-1.0.86.tar.gz
335 Source22: https://crates.io/api/v1/crates/quote/1.0.33/download#/quote-1.0.33.tar.gz
336 Source23: https://crates.io/api/v1/crates/syn/2.0.68/download#/syn-2.0.68.tar.gz
337 Source24: https://crates.io/api/v1/crates/unicode-ident/1.0.12/download#/unicode-ident-1.0.12.tar.gz
338
339 # mesa staging/24.1 branch from 1 (https://www.mesa3d.org/releasing.html#stagingbranch)
340 # https://gitlab.freedesktop.org/mesa/mesa/-/tree/staging/24.1?ref_type=heads
341 #Patch0100: mesa-24.2-coalesced-20240928.patch
342
343 # mesa master branch from 200
344 # https://gitlab.freedesktop.org/mesa/mesa/
345 # https://gitlab.freedesktop.org/mesa/mesa/-/issues/11863
346 Patch0203: 3288-fix-FTBFS-clover-use-.getDataLayout-with-LLVM-20.patch
347
348 # mesa pending fixes from 300
349 Patch0310: gnome-shell-glthread-disable.patch
350
351 # Mageia patches
352 # nvidia+zink race condition, see https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27521
353 Patch0504: 27220.patch
354 #
355 # https://bugzilla.redhat.com/show_bug.cgi?id=2277018
356 # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28923
357 Patch0505: 28923.patch
358
359 # from FC
360
361 # from Omv
362 Patch0702: enable-vulkan-video-decode.patch
363 # Fix https://bugs.winehq.org/show_bug.cgi?id=41930
364 # https://gitlab.freedesktop.org/mesa/mesa/-/issues/5094
365 # Ported from https://gitlab.freedesktop.org/bvarner/mesa/-/tree/feature/osmesa-preserve-buffer
366 Patch0704: mesa-24.0-osmesa-fix-civ3.patch
367
368 # from Deb
369 # for arm and llvm19
370 Patch0800: fix-armhf-build.diff
371
372 #------------------------------------------------------------------------------
373
374 # package mesa
375 License: MIT
376 Requires: %{libglname} = %{version}-%{release}
377 Requires: %{vulkandrivers} = %{version}-%{release}
378
379 %package -n %{libglname}
380 Summary: Files for Mesa (GL and GLX libs)
381 Group: System/Libraries
382 Provides: %{libglname_virt} = %{version}-%{release}
383 Requires: %{dridrivers} >= %{version}-%{release}
384 %if 0%{?with_glvnd}
385 Requires: %{libglname_glvnd} >= 1.3.1-7
386 Requires: %{libgldispatchname_glvnd} >= 1.3.1-7
387 Requires: %{libglxname_glvnd} >= 1.3.1-7
388 Requires: libglvnd >= 1.3.1-7
389 %endif
390 %if 0%{?with_newname}
391 Obsoletes: %{libold_glname} < %{version}-%{release}
392 Provides: %{libold_glname} = %{version}-%{release}
393 %endif
394
395 %package -n %{dridrivers}
396 Summary: Mesa DRI drivers
397 Group: System/Libraries
398 Provides: mesa-dri-drivers
399 # do not require exact release to avoid conflicts when having
400 # x86_64 dri drivers from tainted and i586 dri drivers from core
401 Requires: mesa = %{version}
402
403 %if 0%{?with_omx}
404 %package omx-drivers
405 Summary: Mesa-based OMX drivers
406 %endif
407
408 %package -n %{libd3dname}
409 Summary: Mesa Direct3D9 state tracker
410 Group: System/Libraries
411 Provides: %{libd3dname_virt} = %{version}-%{release}
412
413 %package -n %{devd3dname}
414 Summary: Development files for Mesa Direct3D9 state tracker
415 Group: Development/C
416 Requires: %{libd3dname} = %{version}-%{release}
417 Provides: lib%{d3dname}-devel
418 Provides: %{d3dname}-devel
419 Provides: libd3d-devel
420 Obsoletes: %{_lib}d3d1-devel < 21.0.0-0.rc5.4
421
422 %package -n %{devglname}
423 Summary: Development files for Mesa (OpenGL compatible 3D lib)
424 Group: Development/C
425 Requires: %{libglname} = %{version}-%{release}
426 Requires: %{khrdevel} = %{version}-%{release}
427 Provides: lib%{glname}-devel = %{version}-%{release}
428 Provides: %{glname}-devel = %{version}-%{release}
429 Provides: libMesaGL-devel = %{version}-%{release}
430 Provides: MesaGL-devel = %{version}-%{release}
431 Provides: libgl-devel
432 %if 0%{?with_glvnd}
433 Requires: %{glvnd_devname}
434 %else
435 Provides: GL-devel
436 %endif
437 %if 0%{?with_newname}
438 Obsoletes: %{libold_glname}-devel < %{version}-%{release}
439 Provides: %{libold_glname}-devel = %{version}-%{release}
440 %endif
441 Obsoletes: %{_lib}mesagl1-devel < 21.0.0-0.rc5.4
442
443 %package -n %{libeglname}
444 Summary: Files for Mesa (EGL libs)
445 Group: System/Libraries
446 Provides: %{libeglname_virt} = %{version}-%{release}
447 %if 0%{?with_glvnd}
448 Requires: %{libeglname_glvnd} >= 1.3.1-7
449 Requires: %{libgldispatchname_glvnd} >= 1.3.1-7
450 Requires: %{libglxname_glvnd} >= 1.3.1-7
451 Requires: libglvnd >= 1.3.1-7
452 %endif
453 %if 0%{?with_newname}
454 Obsoletes: %{libold_eglname} < %{version}-%{release}
455 Provides: %{libold_eglname} = %{version}-%{release}
456 %endif
457
458 %package -n %{deveglname}
459 Summary: Development files for Mesa (EGL libs)
460 Group: Development/C
461 Requires: %{libeglname} = %{version}-%{release}
462 Requires: %{khrdevel} = %{version}-%{release}
463 Provides: lib%{eglname}-devel
464 Provides: %{eglname}-devel
465 Provides: libegl-devel
466 %if 0%{?with_glvnd}
467 Requires: %{glvnd_devname}
468 %else
469 Provides: EGL-devel
470 %endif
471 %if 0%{?with_newname}
472 Obsoletes: %{libold_eglname}-devel < %{version}-%{release}
473 Provides: %{libold_eglname}-devel = %{version}-%{release}
474 %endif
475 Obsoletes: %{_lib}mesaegl1-devel < 21.0.0-0.rc5.4
476
477 %package -n %{khrdevel}
478 Summary: Mesa Khronos development headers
479 Group: Development/C
480 Provides: mesakhr-devel = %{version}-%{release}
481 # ease upgrade mga6 -> mga7 (mga#25625)
482 Conflicts: %{_lib}mesaegl1-devel < 17.3.9-2
483 %if 0%{?with_glvnd}
484 Requires: %{glvnd_devname}
485 %endif
486
487 %package -n %{libosmesaname}
488 Summary: Mesa off-screen rendering library
489 Group: System/Libraries
490
491 %package -n %{osmesadevel}
492 Summary: Development files for libosmesa
493 Group: Development/C
494 Requires: %{libosmesaname} = %{version}-%{release}
495 Provides: osmesa-devel = %{version}-%{release}
496 %if 0%{?with_glvnd}
497 Requires: %{glvnd_devname}
498 %endif
499
500 %package -n %{libglapiname}
501 Summary: Files for mesa (glapi libs)
502 Group: System/Libraries
503 Provides: %{libglapiname_virt} = %{version}-%{release}
504
505 %package -n %{devglapiname}
506 Summary: Development files for glapi libs
507 Group: Development/C
508 Requires: %{libglapiname_virt} = %{version}-%{release}
509 Provides: lib%{glapiname}-devel
510 Provides: %{libglapiname}-devel
511 Obsoletes: %{_lib}glapi0-devel < 21.0.0-0.rc5.4
512
513 %if 0%{?with_opencl}
514 %package -n %libclname
515 Summary: Mesa OpenCL runtime library
516
517 %package -n %libcldevel
518 Summary: Mesa OpenCL development package
519 Requires: %libclname%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
520
521 %if 0%{?with_rusticl}
522 %package -n %librusticlname
523 Summary: Mesa RustiCL runtime library
524
525 %package -n %librusticldevel
526 Summary: Mesa RustiCL development package
527 Requires: %librusticlname%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
528 %endif
529 %endif
530
531 %package -n %{libglesv1name}
532 Summary: Files for Mesa (glesv1 libs)
533 Group: System/Libraries
534 Provides: %{libglesv1name_virt} = %{version}-%{release}
535 %if 0%{?with_glvnd}
536 Requires: %{libglesv1name_glvnd} >= 1.3.1-7
537 %endif
538
539 %package -n %{devglesv1name}
540 Summary: Development files for glesv1 libs
541 Group: Development/C
542 Requires: %{libglesv1name} = %{version}-%{release}
543 Requires: %{khrdevel} = %{version}-%{release}
544 Provides: lib%{glesv1name}-devel
545 Provides: %{glesv1name}-devel
546 Provides: libglesv1-devel
547 %if 0%{?with_glvnd}
548 Requires: %{glvnd_devname}
549 %endif
550 Obsoletes: %{_lib}mesaglesv1_1-devel < 21.0.0-0.rc5.4
551
552 %package -n %{libglesv2name}
553 Summary: Files for Mesa (glesv2 libs)
554 Group: System/Libraries
555 Provides: %{libglesv2name_virt} = %{version}-%{release}
556 %if 0%{?with_glvnd}
557 Requires: %{libglesv2name_glvnd} >= 1.3.1-7
558 %endif
559
560 %package -n %{devglesv2name}
561 Summary: Development files for glesv2 libs
562 Group: Development/C
563 Requires: %{libglesv2name} = %{version}-%{release}
564 Requires: %{khrdevel} = %{version}-%{release}
565 Provides: lib%{glesv2name}-devel
566 Provides: %{glesv2name}-devel
567 Provides: libglesv2-devel
568 %if 0%{?with_glvnd}
569 Requires: %{glvnd_devname}
570 %endif
571 Obsoletes: %{_lib}mesaglesv2_2-devel < 21.0.0-0.rc5.4
572
573 %package -n %{libgbmname}
574 Summary: Files for Mesa (gbm libs)
575 Group: System/Libraries
576 Provides: %{libgbmname_virt} = %{version}-%{release}
577
578 %package -n %{devgbmname}
579 Summary: Development files for Mesa (gbm libs)
580 Group: Development/C
581 Requires: %{libgbmname} = %{version}-%{release}
582 Provides: lib%{gbmname}-devel
583 Provides: %{gbmname}-devel
584 Obsoletes: %{_lib}gbm1-devel < 21.0.0-0.rc5.4
585
586 %package -n %{_lib}vdpau-driver-nouveau
587 Summary: VDPAU plugin for nouveau driver
588 Group: System/Libraries
589 # temporary:
590 %rename vdpau-driver-nouveau
591
592 %package -n %{_lib}vdpau-driver-r600
593 Summary: VDPAU plugin for r600 driver
594 Group: System/Libraries
595 # temporary:
596 %rename vdpau-driver-r600
597
598 %package -n %{_lib}vdpau-driver-radeonsi
599 Summary: VDPAU plugin for radeonsi driver
600 Group: System/Libraries
601 # temporary:
602 %rename vdpau-driver-radeonsi
603
604 %package -n %{_lib}vdpau-driver-virtio_gpu
605 Summary: VDPAU plugin for Virtio GPU driver
606 Group: System/Libraries
607
608 %package -n %{_lib}vdpau-driver-gallium
609 Summary: VDPAU plugin for gallium driver
610 Group: System/Libraries
611
612 %package -n %{libxaname}
613 Summary: Files for Mesa XA state tracker
614 Group: System/Libraries
615 Provides: %{libxaname_virt} = %{version}-%{release}
616
617 %package -n %{devxaname}
618 Summary: Development files for XA libs
619 Group: Development/C
620 Requires: %{libxaname_virt} = %{version}-%{release}
621 Provides: lib%{xaname}-devel
622 Provides: %{libxaname}-devel
623 Obsoletes: %{_lib}xatracker2-devel < 21.0.0-0.rc5.4
624
625 %package -n %{vulkandrivers}
626 Summary: Mesa Vulkan driver for Intel and Radeon GPUs
627 Group: System/Libraries
628 %ifarch %{ix86} x86_64
629 Obsoletes: %{_lib}vulkan_intel < 18.3.0-4
630 Provides: %{_lib}vulkan_intel = %{version}-%{release}
631 %endif
632 Obsoletes: %{_lib}vulkan_radeon < 18.3.0-4
633 Provides: %{_lib}vulkan_radeon = %{version}-%{release}
634
635 %package -n %{vulkandevel}
636 Summary: Mesa Vulkan development files for Intel and Radeon drivers
637 Group: Development/C
638 Requires: %{vulkandrivers} = %{version}-%{release}
639 Obsoletes: %{_lib}vulkan-devel < 0:18.3.0-4
640 Provides: %{vulkanname}-devel = %{version}-%{release}
641
642 %package common-devel
643 Summary: Meta package for mesa devel
644 Group: Development/C
645 Requires: %{devglname} = %{version}
646 Requires: mesaglu-devel
647 Requires: freeglut-devel
648 Requires: %{deveglname} = %{version}
649 Requires: %{devglesv1name} = %{version}
650 Requires: %{devglesv2name} = %{version}
651
652 #------------------------------------------------------------------------------
653
654 %description
655 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
656
657 %description common-devel
658 Mesa common metapackage devel
659
660 %description -n %{libeglname}
661 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
662 EGL parts.
663
664 %description -n %{deveglname}
665 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
666 EGL development parts.
667
668 %description -n %{libglname}
669 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
670 GL and GLX parts.
671
672 %description -n %{dridrivers}
673 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
674 DRI drivers.
675
676 %if 0%{?with_omx}
677 %description omx-drivers
678 Mesa-based OMX drivers
679 %endif
680
681 %description -n %{devglname}
682 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
683
684 This package contains the headers needed to compile Mesa programs.
685
686 %description -n %{libglesv1name}
687 OpenGL ES is a low-level, lightweight API for advanced embedded graphics using
688 well-defined subset profiles of OpenGL.
689
690 This package provides the OpenGL ES library version 1.
691
692 %description -n %{khrdevel}
693 Mesa Khronos development headers.
694
695 %description -n %{libosmesaname}
696 Mesa off-screen rendering libraries for rendering OpenGL into
697 application-allocated blocks of memory.
698
699 %description -n %{osmesadevel}
700 This package contains the headers needed to compile programs against
701 the Mesa off-screen rendering library.
702
703 %description -n %{libglapiname}
704 This packages provides the glapi shared library used by gallium.
705
706 %description -n %{devglapiname}
707 This package contains the headers needed to compile programs against glapi shared library.
708
709 %if 0%{?with_opencl}
710 %description -n %libclname
711 Mesa OpenCL runtime library
712
713 %description -n %libcldevel
714 Mesa OpenCL development package
715
716 %if 0%{?with_rusticl}
717 %description -n %librusticlname
718 Mesa RustiCL runtime library
719
720 %description -n %librusticldevel
721 Mesa RustiCL development package
722 %endif
723 %endif
724
725 %description -n %{devglesv1name}
726 This package contains the headers needed to compile OpenGL ES 1 programs.
727
728 %description -n %{libd3dname}
729 Mesa Direct3D9 state tracker.
730
731 %description -n %{devd3dname}
732 Mesa Direct3D9 state tracker development package.
733
734 %description -n %{libglesv2name}
735 OpenGL ES is a low-level, lightweight API for advanced embedded graphics using
736 well-defined subset profiles of OpenGL.
737
738 This package provides the OpenGL ES library version 2.
739
740 %description -n %{devglesv2name}
741 This package contains the headers needed to compile OpenGL ES 2 programs.
742
743 %description -n %{libgbmname}
744 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
745 GBM (Graphics Buffer Manager) parts.
746
747 %description -n %{devgbmname}
748 Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library.
749 GBM (Graphics Buffer Manager) development parts.
750
751 %description -n %{libxaname}
752 This packages provides the xa shared library used by gallium.
753
754 %description -n %{devxaname}
755 This package contains the headers needed to compile programs against xa shared library.
756
757 %description -n %{_lib}vdpau-driver-nouveau
758 This packages provides a VPDAU plugin to enable video acceleration
759 with the nouveau driver.
760
761 %description -n %{_lib}vdpau-driver-r600
762 This packages provides a VPDAU plugin to enable video acceleration
763 with the r600 driver.
764
765 %description -n %{_lib}vdpau-driver-radeonsi
766 This packages provides a VPDAU plugin to enable video acceleration
767 with the radeonsi driver.
768
769 %description -n %{_lib}vdpau-driver-virtio_gpu
770 This packages provides a VPDAU plugin to enable video acceleration
771 with the virtio_gpu driver.
772
773 %description -n %{_lib}vdpau-driver-gallium
774 This package provides a VDPAU plugin to enable video acceleration
775 with the gallium driver.
776
777 %description -n %{vulkandrivers}
778 This package contains the Vulkan parts for Mesa's Intel and Radeon drivers.
779
780 %description -n %{vulkandevel}
781 This package contains the development files for Mesa's Vulkan implementation.
782
783 #------------------------------------------------------------------------------
784
785 %prep
786 %autosetup -n %{name}-%{version}%{?relc:-rc%{relc}} -p1
787 #
788
789 # remove unused docs
790 rm -f docs/README.WIN32
791
792 %if 0%{?mageia} >= 8
793 # Make sure the build uses gnu++14 as llvm 10 headers require that
794 sed -i -e 's/cpp_std=gnu++11/cpp_std=gnu++14/g' meson.build
795 %endif
796
797 %build
798 # Disable LTO
799 %define _lto_cflags %{nil}
800
801 %if 0%{?with_nvk}
802 mkdir -p %_builddir/%name-%version/subprojects/packagecache/
803 cp -p %{SOURCE20} %_builddir/%name-%version/subprojects/packagecache/
804 cp -p %{SOURCE21} %_builddir/%name-%version/subprojects/packagecache/
805 cp -p %{SOURCE22} %_builddir/%name-%version/subprojects/packagecache/
806 cp -p %{SOURCE23} %_builddir/%name-%version/subprojects/packagecache/
807 cp -p %{SOURCE24} %_builddir/%name-%version/subprojects/packagecache/
808 %endif
809
810 %meson \
811 %if 0%{?with_nvk_allow_download}
812 --wrap-mode=default \
813 %endif
814 -Dcpp_std=gnu++17 \
815 -Db_lto=false \
816 -Dplatforms=x11,wayland \
817 -Ddri3=enabled \
818 -Dosmesa=true \
819 %ifarch %{ix86}
820 -Dsse2=false \
821 %endif
822 %if 0%{?with_hardware}
823 -Dgallium-drivers=swrast,virgl,nouveau,r300%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_kmsro:,kmsro}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink} \
824 %else
825 -Dgallium-drivers=swrast,virgl \
826 %endif
827 -Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
828 -Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \
829 -Dgallium-va=%{?with_vaapi:enabled}%{!?with_vaapi:disabled} \
830 -Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
831 -Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
832 %if 0%{?with_opencl}
833 -Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \
834 %if 0%{?with_rusticl}
835 -Dgallium-rusticl=%{?with_rusticl:true}%{!?with_rusticl:false} \
836 %endif
837 %endif
838 -Dvulkan-drivers=%{?vulkan_drivers} \
839 -Dvulkan-layers=device-select,intel-nullhw,overlay \
840 -Dshared-glapi=enabled \
841 -Dgles1=enabled \
842 -Dgles2=enabled \
843 -Dopengl=true \
844 -Dgbm=enabled \
845 -Dglx=dri \
846 -Degl=enabled \
847 %if 0%{?with_glvnd}
848 -Dglvnd=enabled \
849 %endif
850 -Dgallium-extra-hud=true \
851 -Dlmsensors=enabled \
852 %if 0%{?with_intel_clc}
853 -Dintel-clc=enabled \
854 %endif
855 -Dintel-rt=%{?with_intel_vk_rt:enabled}%{!?with_intel_vk_rt:disabled} \
856 -Dmicrosoft-clc=disabled \
857 -Dllvm=enabled \
858 -Dshared-llvm=enabled \
859 -Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \
860 -Dbuild-tests=false \
861 -Dselinux=false \
862 -Dandroid-libbacktrace=disabled \
863 %if %{build_tainted}
864 -Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec,av1dec,av1enc,vp9dec \
865 %endif
866 %{nil}
867
868 # This code updates the crates and the list of crates required for build with
869 # nvk enabledd and let meson retrieve them from the network. The newer list will
870 # be contained in file crates_sources.txt, to be copied near %SOURCE20...24
871 # above.
872 %if 0%{?with_nvk_allow_download}
873 crates="$(%_bindir/ls %_builddir/%name-%version/subprojects/packagecache/)"
874 if [ ! -z "$crates" ]; then
875 j=20;
876 echo "# list of crates required for nvk" > crates_sources.txt
877 for i in $crates; do
878 crate_filename="$i"
879 crate_name="$(echo $i | sed 's/-[0-9].*//')"
880 crate_url="$(cat %_builddir/%name-%version/subprojects/$crate_name.wrap | grep source_url | awk -F= '{print $2}')"
881 echo "Source$j: $crate_url#/$crate_filename" >> crates_sources.txt
882 %if 0%{?with_nvk_allow_crates_updates}
883 if [ ! -e "%_sourcedir/$crate_filename" ]; then
884 cp -p "%_builddir/%name-%version/subprojects/packagecache/$crate_filename" %_sourcedir/
885 fi
886 %endif
887 ((j++))
888 done
889 fi
890
891 %if 0%{?with_nvk_allow_crates_updates}
892 echo "Please update the crates list in the spec file according to file %_builddir/crates_source.txt"
893 exit 1
894 %endif
895
896 %endif
897
898 %meson_build
899
900 # build docs
901 %if 0%{?with_docs}
902 (cd doxygen
903 make
904 )
905 %endif
906
907 %install
908 %meson_install
909
910 # FIXME: strip will likely break the hardlink
911 # (blino) hardlink libGL files in %%{_libdir}/mesa
912 # to prevent proprietary driver installers from removing them
913 mkdir -p $RPM_BUILD_ROOT%{_libdir}/mesa
914 pushd $RPM_BUILD_ROOT%{_libdir}/mesa
915 for l in \
916 %if 0%{?with_glvnd}
917 ../libGLX_mesa.so.* \
918 %else
919 ../libGL.so.* \
920 %endif
921 ; do cp -a $l .; done
922 popd
923
924 %if 0%{?with_glvnd}
925 # default provider for indirect rendering when vendor is not determined
926 ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
927 ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0
928 %endif
929
930 %ifarch %{x86_64}
931 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/dri
932 %endif
933
934 # libvdpau opens the versioned name, don't bother including the unversioned
935 rm -f %{buildroot}%{_libdir}/vdpau/*.so
936
937 # strip out useless headers
938 rm -f %{buildroot}%{_includedir}/GL/w*.h
939
940 # remove .la files
941 find %{buildroot} -name '*.la' -delete
942
943 #------------------------------------------------------------------------------
944
945 %files
946 %{_bindir}/mesa-overlay-control.py
947 %{_datadir}/drirc.d/
948
949 %files -n %{dridrivers}
950 %dir %{_libdir}/dri
951 %{_libdir}/libgallium-*.so
952 %{_libdir}/dri/*_dri.so
953 %if 0%{?with_vaapi}
954 %{_libdir}/dri/*_drv*.so
955 %endif
956 %if 0%{?with_opencl}
957 %dir %{_libdir}/gallium-pipe
958 %{_libdir}/gallium-pipe/*.so
959 %endif
960
961 %if 0%{?with_omx}
962 %files omx-drivers
963 %{_libdir}/bellagio/libomx_mesa.so
964 %endif
965
966 %if 0%{?with_opencl}
967 %files -n %libclname
968 %{_libdir}/libMesaOpenCL.so.*
969 %{_sysconfdir}/OpenCL/vendors/mesa.icd
970
971 %files -n %libcldevel
972 %{_libdir}/libMesaOpenCL.so
973
974 %if 0%{?with_rusticl}
975 %files -n %librusticlname
976 %{_libdir}/libRusticlOpenCL.so.*
977 %{_sysconfdir}/OpenCL/vendors/rusticl.icd
978
979 %files -n %librusticldevel
980 %{_libdir}/libRusticlOpenCL.so
981 %endif
982 %endif
983
984 %files -n %{libglname}
985 %dir %{_libdir}/mesa
986 %if 0%{?with_glvnd}
987 %{_libdir}/libGLX_mesa.so.*
988 %{_libdir}/mesa/libGLX_mesa.so.*
989 %{_libdir}/libGLX_indirect.so.*
990 %{_libdir}/libGLX_system.so.*
991 %else
992 %{_libdir}/libGL.so.*
993 %{_libdir}/mesa/libGL.so.%{glmajor}{,.*}
994 %endif
995
996 %files -n %{libeglname}
997 %if 0%{?with_glvnd}
998 %{_libdir}/libEGL_mesa.so.*
999 %{_datadir}/glvnd/egl_vendor.d/50_mesa.json
1000 %else
1001 %{_libdir}/libEGL.so.%{eglmajor}{,.*}
1002 %endif
1003
1004 %files -n %{libosmesaname}
1005 %{_libdir}/libOSMesa.so.%{osmesamajor}{,.*}
1006
1007 %files -n %{libglapiname}
1008 %{_libdir}/libglapi.so.%{glapimajor}{,.*}
1009
1010 %files -n %{libglesv1name}
1011 %if 0%{?with_glvnd} == 0
1012 %{_libdir}/libGLESv1_CM.so.%{glesv1major}{,.*}
1013 %endif
1014
1015 %files -n %{libd3dname}
1016 %{_libdir}/d3d/*.so.*
1017
1018 %files -n %{libglesv2name}
1019 %if 0%{?with_glvnd} == 0
1020 %{_libdir}/libGLESv2.so.%{glesv2major}{,.*}
1021 %endif
1022
1023 %files -n %{libgbmname}
1024 %{_libdir}/libgbm.so.%{gbmmajor}
1025 %{_libdir}/libgbm.so.%{gbmmajor}.*
1026
1027 %files -n %{libxaname}
1028 %{_libdir}/libxatracker.so.%{xamajor}{,.*}
1029
1030 %files -n %{devglname}
1031 %dir %{_includedir}/GL
1032 %if 0%{?with_glvnd}
1033 %{_libdir}/libGLX_mesa.so
1034 %else
1035 %{_includedir}/GL/gl.h
1036 %{_includedir}/GL/glext.h
1037 %{_includedir}/GL/glx.h
1038 %{_includedir}/GL/glxext.h
1039 %{_includedir}/GL/glcorearb.h
1040 %{_libdir}/libGL.so
1041 %{_libdir}/pkgconfig/gl.pc
1042 %endif
1043 %dir %{_includedir}/GL/internal
1044 %{_includedir}/GL/internal/dri_interface.h
1045 %{_libdir}/pkgconfig/dri.pc
1046
1047 %files common-devel
1048
1049 %files -n %{deveglname}
1050 %{_includedir}/EGL
1051 %if 0%{?with_glvnd}
1052 %{_libdir}/libEGL_mesa.so
1053 %else
1054 %{_libdir}/libEGL.so
1055 %{_libdir}/pkgconfig/egl.pc
1056 %endif
1057
1058 %files -n %{khrdevel}
1059 %if 0%{?with_glvnd} == 0
1060 %{_includedir}/KHR
1061 %endif
1062
1063 %files -n %{osmesadevel}
1064 %if 0%{?with_docs}
1065 %doc docs doxygen/main
1066 %endif
1067 %dir %{_includedir}/GL
1068 %{_includedir}/GL/osmesa.h
1069 %{_libdir}/libOSMesa.so
1070 %{_libdir}/pkgconfig/osmesa.pc
1071
1072 %files -n %{devglapiname}
1073 %{_libdir}/libglapi.so
1074
1075 %files -n %{devglesv1name}
1076 %if 0%{?with_glvnd} == 0
1077 %{_includedir}/GLES
1078 %{_libdir}/libGLESv1_CM.so
1079 %{_libdir}/pkgconfig/glesv1_cm.pc
1080 %endif
1081
1082 %files -n %{devglesv2name}
1083 %if 0%{?with_glvnd} == 0
1084 %{_includedir}/GLES2
1085 %{_includedir}/GLES3
1086 %{_libdir}/libGLESv2.so
1087 %{_libdir}/pkgconfig/glesv2.pc
1088 %endif
1089
1090 %files -n %{devd3dname}
1091 %{_includedir}/d3dadapter
1092 %{_libdir}/d3d/*.so
1093 %{_libdir}/pkgconfig/d3d.pc
1094
1095 %files -n %{devgbmname}
1096 %{_libdir}/libgbm.so
1097 %{_includedir}/gbm.h
1098 %{_libdir}/pkgconfig/gbm.pc
1099
1100 %files -n %{devxaname}
1101 %{_libdir}/libxatracker.so
1102 %{_includedir}/xa_tracker.h
1103 %{_includedir}/xa_composite.h
1104 %{_includedir}/xa_context.h
1105 %{_libdir}/pkgconfig/xatracker.pc
1106
1107 %files -n %{_lib}vdpau-driver-nouveau
1108 %{_libdir}/vdpau/libvdpau_nouveau.so.*
1109
1110 %if 0%{?with_radeonsi}
1111 %files -n %{_lib}vdpau-driver-r600
1112 %{_libdir}/vdpau/libvdpau_r600.so.*
1113
1114 %files -n %{_lib}vdpau-driver-radeonsi
1115 %{_libdir}/vdpau/libvdpau_radeonsi.so.*
1116 %endif
1117
1118 %files -n %{_lib}vdpau-driver-virtio_gpu
1119 %{_libdir}/vdpau/libvdpau_virtio_gpu.so.*
1120
1121 %files -n %{_lib}vdpau-driver-gallium
1122 %{_libdir}/vdpau
1123
1124 %files -n %{vulkandrivers}
1125 %dir %{_datadir}/vulkan
1126 %dir %{_datadir}/vulkan/icd.d
1127 %{_libdir}/libvulkan_lvp.so
1128 %{_datadir}/vulkan/icd.d/lvp_icd.*.json
1129 %{_libdir}/libVkLayer_MESA_device_select.so
1130 %{_libdir}/libVkLayer_MESA_overlay.so
1131 %{_datadir}/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json
1132 %{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
1133 %if 0%{?with_vulkan_hw}
1134 %{_libdir}/libvulkan_radeon.so
1135 %{_datadir}/vulkan/icd.d/radeon_icd.*.json
1136 %if 0%{?with_nvk}
1137 %{_libdir}/libvulkan_nouveau.so
1138 %{_datadir}/vulkan/icd.d/nouveau_icd.*.json
1139 %endif
1140 %ifarch %{ix86} x86_64
1141 %{_libdir}/libvulkan_intel.so
1142 %{_datadir}/vulkan/icd.d/intel_icd.*.json
1143 %{_libdir}/libvulkan_intel_hasvk.so
1144 %{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json
1145 %{_libdir}/libVkLayer_INTEL_nullhw.so
1146 %{_datadir}/vulkan/explicit_layer.d/VkLayer_INTEL_nullhw.json
1147 %endif
1148 %ifarch %{arm} aarch64
1149 %{_libdir}/libvulkan_broadcom.so
1150 %{_datadir}/vulkan/icd.d/broadcom_icd.*.json
1151 %{_libdir}/libvulkan_freedreno.so
1152 %{_datadir}/vulkan/icd.d/freedreno_icd.*.json
1153 %{_libdir}/libvulkan_panfrost.so
1154 %{_datadir}/vulkan/icd.d/panfrost_icd.*.json
1155 %{_libdir}/libpowervr_rogue.so
1156 %{_libdir}/libvulkan_powervr_mesa.so
1157 %{_datadir}/vulkan/icd.d/powervr_mesa_icd.*.json
1158 %endif
1159 %{_libdir}/libvulkan_virtio.so
1160 %{_datadir}/vulkan/icd.d/virtio_icd.*.json
1161 %endif
1162
1163 %files -n %{vulkandevel}
1164

  ViewVC Help
Powered by ViewVC 1.1.30