File Mesa.spec of Package A_sr-Mesa
1427
1
#
2
# spec file for package Mesa
3
#
4
# Copyright (c) 2025 SUSE LLC
5
#
6
# All modifications and additions to the file contributed by third parties
7
# remain the property of their copyright owners, unless otherwise agreed
8
# upon. The license for this file, and modifications and additions to the
9
# file, is the same license as for the pristine package itself (unless the
10
# license for the pristine package is not an Open Source License, in which
11
# case the license is the MIT License). An "Open Source License" is a
12
# license that conforms to the Open Source Definition (Version 1.9)
13
# published by the Open Source Initiative.
14
15
# Please submit bugfixes or comments via https://bugs.opensuse.org/
16
#
17
18
19
#!BuildIgnore: Mesa-dri
20
21
%global flavor @BUILD_FLAVOR@%{nil}
22
%if "%{flavor}" == "drivers"
23
%global psuffix -drivers
24
%else
25
%global psuffix %{nil}
26
%endif
27
28
%ifarch %{ix86} x86_64 armv6l armv6hl
29
%define _lto_cflags %{nil}
30
%endif
31
32
# Possible patent issues, see
33
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15258
34
# for more details
35
%if 0%{?BUILD_ORIG}
36
%define video_codecs 1
37
%else
38
%define video_codecs 0
39
%endif
40
41
%define drivers 0
42
43
%define glamor 1
44
%define _name_archive mesa
45
%ifnarch s390x
46
%define _version 25.0.3
47
%else
48
%define _version 24.1.7
49
%endif
50
%define with_opencl 0
51
%define with_rusticl 0
52
%define with_vulkan 0
53
%define with_llvm 0
54
55
%ifarch %{ix86} x86_64 %{arm} aarch64 ppc64 ppc64le riscv64
56
%define gallium_loader 1
57
%else
58
%define gallium_loader 0
59
%endif
60
61
%define vdpau_nouveau 0
62
%define vdpau_radeon 0
63
%define vdpau_virtio_gpu 0
64
%define vdpau_d3d12 0
65
66
%ifarch %{ix86} x86_64 aarch64 %{arm} ppc64 ppc64le riscv64
67
%define vdpau_nouveau 1
68
%define vdpau_radeon 1
69
%define vdpau_virtio_gpu 1
70
%ifarch %{ix86} x86_64
71
%define vdpau_d3d12 1
72
%endif
73
%endif
74
75
%ifarch %{ix86} x86_64
76
%define with_nine 1
77
%endif
78
79
%if 0%{gallium_loader}
80
%define with_opencl 1
81
%ifarch %{ix86} x86_64
82
%define with_vulkan 1
83
%if 0%{?suse_version} > 1600
84
%define vulkan_drivers swrast,amd,intel,intel_hasvk,nouveau
85
%else
86
%define vulkan_drivers swrast,amd,intel,intel_hasvk
87
%endif
88
%endif
89
%ifarch %{arm} aarch64
90
%define with_vulkan 1
91
%if 0%{?suse_version} > 1600
92
%define vulkan_drivers swrast,amd,broadcom,freedreno,intel,intel_hasvk,nouveau,panfrost
93
%else
94
%define vulkan_drivers swrast,amd,broadcom,freedreno,intel,intel_hasvk
95
%endif
96
%endif
97
%ifarch riscv64
98
%define with_vulkan 1
99
%define vulkan_drivers swrast,amd,intel,intel_hasvk
100
%endif
101
%endif
102
103
%ifarch aarch64 %{arm} ppc64 ppc64le riscv64 s390x %{ix86} x86_64 ix86
104
%define with_llvm 1
105
%endif
106
107
%if 0%{with_opencl}
108
%define have_gallium 1
109
%else
110
%define have_gallium 0
111
%endif
112
113
%if "%{flavor}" == "drivers"
114
%define glamor 1
115
%if 0%{?suse_version} >= 1550 && 0%{with_opencl}
116
%define with_rusticl 1
117
%endif
118
%else
119
# No llvm dependencies
120
%define with_llvm 0
121
122
# OpenCL requires clang (LLVM)
123
%define with_opencl 0
124
125
# nine requires at least one non-swrast gallium driver
126
%define with_nine 0
127
128
# Not built because radeon driver is not built.
129
%define vdpau_radeon 0
130
131
# Not built because nouveau driver is not built.
132
%define vdpau_nouveau 0
133
134
# Not built because virtio_gpu driver is not built.
135
%define vdpau_virtio_gpu 0
136
137
# Not built because d3d12 driver is not built.
138
%define vdpau_d3d12 0
139
140
# Vulkan includes radv driver which requires llvm
141
%define with_vulkan 0
142
%endif
143
144
# NVK aka Vulkan Nouveau dependencies
145
%global _unicode_ident_crate_ver 1.0.12
146
%global _syn_crate_ver 2.0.68
147
%global _quote_crate_ver 1.0.33
148
%global _proc_macro2_ver 1.0.86
149
%global _paste_crate_ver 1.0.14
150
151
# Leap 15 and SLES 15 defaults to GCC 7, which does not have stable C++17 ABI.
152
# See https://bugzilla.suse.com/show_bug.cgi?id=1235697
153
%if 0%{?gcc_version} < 13
154
%define gcc_version 13
155
%endif
156
157
Name: Mesa%{psuffix}
158
%ifnarch s390x
159
Version: 25.0.3
160
%else
161
Version: 24.1.7
162
%endif
163
Release: 0
164
Summary: System for rendering 3-D graphics
165
License: MIT
166
Group: System/Libraries
167
URL: https://www.mesa3d.org
168
#Git-Clone: git://anongit.freedesktop.org/mesa/mesa
169
Source0: https://archive.mesa3d.org/%{_name_archive}-%{_version}.tar.xz
170
Source1: https://archive.mesa3d.org/%{_name_archive}-%{_version}.tar.xz.sig
171
# NVK aka Vulkan Nouveau dependencies
172
# Explainer:
173
# Since Rust crates are not installed or discouraged to be installed as system
174
# dependencies because of the maintenance burden of being the next crates.io,
175
# we will have to download the following crates as vendored dependencies.
176
# Hence, do not be scared if the dependencies are done like this
177
# To check new crates or update the versions, just go to the subprojects folder and
178
# run `grep -r crates .` then set versions appropriately.
179
Source2: http://crates.io/api/v1/crates/unicode-ident/%{_unicode_ident_crate_ver}/download#/unicode-ident-%{_unicode_ident_crate_ver}.tar.gz
180
Source3: http://crates.io/api/v1/crates/syn/%{_syn_crate_ver}/download#/syn-%{_syn_crate_ver}.tar.gz
181
Source4: http://crates.io/api/v1/crates/quote/%{_quote_crate_ver}/download#/quote-%{_quote_crate_ver}.tar.gz
182
Source5: http://crates.io/api/v1/crates/proc-macro2/%{_proc_macro2_ver}/download#/proc-macro2-%{_proc_macro2_ver}.tar.gz
183
Source6: http://crates.io/api/v1/crates/paste/%{_paste_crate_ver}/download#/paste-%{_paste_crate_ver}.tar.gz
184
Source7: baselibs.conf
185
Source8: README.updates
186
Source9: manual-pages.tar.bz2
187
Source10: Mesa-rpmlintrc
188
Source11: Mesa.keyring
189
Source12: README-suse-maintenance.md
190
Source20: https://archive.mesa3d.org/%{_name_archive}-25.0.3.tar.xz
191
Source21: https://archive.mesa3d.org/%{_name_archive}-25.0.3.tar.xz.sig
192
Patch2: n_add-Mesa-headers-again.patch
193
Patch11: u_0001-intel-genxml-Drop-from-__future__-import-annotations.patch
194
Patch12: u_0002-intel-genxml-Add-a-untyped-OrderedDict-fallback-for-.patch
195
%ifnarch s390x
196
Patch13: python36-buildfix1.patch
197
%else
198
Patch13: python36-buildfix1-s390x.patch
199
%endif
200
Patch14: python36-buildfix2.patch
201
Patch17: tlsdesc_test.patch
202
# never to be upstreamed
203
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
204
Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch
205
Patch400: n_stop-iris-flicker.patch
206
%ifnarch s390x
207
Patch500: u_dep_xcb.patch
208
%else
209
Patch500: u_dep_xcb-s390x.patch
210
%endif
211
%ifnarch s390x
212
Patch700: u_meson-lower-python-version-requirement.patch
213
Patch701: u_intel-drop-annotations-from-spv2hex.patch
214
Patch702: U_clover-Don-t-include-libclc-headers.patch
215
%endif
216
%ifnarch s390x
217
Patch1222040: u_mesa-CVE-2023-45913.patch
218
%else
219
Patch1222040: u_mesa-CVE-2023-45913-s390x.patch
220
%endif
221
Patch1222041: u_mesa-CVE-2023-45919.patch
222
Patch1222042: u_mesa-CVE-2023-45922.patch
223
224
# Reverts a possible regression
225
# https://gitlab.freedesktop.org/mesa/mesa/-/commit/8c91624614c1f939974fe0d2d1a3baf83335cecb
226
# https://bugzilla.opensuse.org/show_bug.cgi?id=1239657
227
Patch2000000: revert_8c91624614c1f939974fe0d2d1a3baf83335cecb.patch
228
229
%ifarch %{ix86} x86_64
230
BuildRequires: DirectX-Headers >= 1.613.0
231
%endif
232
BuildRequires: bison
233
BuildRequires: cmake
234
BuildRequires: fdupes
235
BuildRequires: flex
236
BuildRequires: gcc%{?gcc_version} >= 9
237
BuildRequires: gcc%{?gcc_version}-c++ >= 9
238
BuildRequires: glslang-devel
239
BuildRequires: imake
240
BuildRequires: libtool
241
BuildRequires: memory-constraints
242
%if 0%{with_rusticl}
243
BuildRequires: meson >= 1.4.0
244
%else
245
BuildRequires: meson >= 1.1.0
246
%endif
247
BuildRequires: pkgconfig
248
BuildRequires: python3-base
249
# dataclasses is in standard library of python >= 3.7
250
%if 0%{?suse_version} < 1550
251
BuildRequires: python3-dataclasses
252
%endif
253
BuildRequires: python3-Mako
254
BuildRequires: python3-PyYAML
255
BuildRequires: python3-xml
256
BuildRequires: pkgconfig(dri2proto)
257
BuildRequires: pkgconfig(dri3proto)
258
BuildRequires: pkgconfig(expat)
259
BuildRequires: pkgconfig(glproto)
260
BuildRequires: pkgconfig(libdrm) >= 2.4.109
261
BuildRequires: pkgconfig(libdrm_amdgpu) >= 2.4.121
262
BuildRequires: pkgconfig(libdrm_nouveau) >= 2.4.66
263
BuildRequires: pkgconfig(libdrm_radeon) >= 2.4.71
264
BuildRequires: pkgconfig(libglvnd) >= 1.3.2
265
%ifarch aarch64 x86_64 ppc64le s390x riscv64
266
BuildRequires: pkgconfig(valgrind)
267
%endif
268
BuildRequires: pkgconfig(libva)
269
BuildRequires: pkgconfig(presentproto)
270
%if "%{flavor}" == "drivers"
271
BuildRequires: pkgconfig(vdpau) >= 1.5
272
%ifarch %{ix86} x86_64
273
BuildRequires: pkgconfig(vulkan)
274
%endif
275
%endif
276
BuildRequires: pkgconfig(x11)
277
BuildRequires: pkgconfig(x11-xcb)
278
BuildRequires: pkgconfig(xcb-dri2)
279
BuildRequires: pkgconfig(xcb-dri3)
280
BuildRequires: pkgconfig(xcb-glx)
281
BuildRequires: pkgconfig(xcb-present)
282
BuildRequires: pkgconfig(xdamage)
283
BuildRequires: pkgconfig(xext)
284
BuildRequires: pkgconfig(xfixes)
285
BuildRequires: pkgconfig(xrandr)
286
BuildRequires: pkgconfig(xshmfence)
287
BuildRequires: pkgconfig(xxf86vm)
288
BuildRequires: pkgconfig(zlib)
289
Provides: Mesa7 = %{version}
290
Obsoletes: Mesa7 < %{version}
291
Provides: intel-i810-Mesa = %{version}
292
Obsoletes: intel-i810-Mesa < %{version}
293
Provides: Mesa-libIndirectGL1 = %{version}
294
Obsoletes: Mesa-libIndirectGL1 < %{version}
295
Provides: Mesa-nouveau3d = %{version}
296
Provides: xorg-x11-Mesa = %{version}
297
Obsoletes: Mesa-nouveau3d < %{version}
298
Obsoletes: xorg-x11-Mesa < %{version}
299
Provides: s2tc = %{version}
300
Obsoletes: s2tc < %{version}
301
Provides: libXvMC_nouveau = %{version}
302
Obsoletes: libXvMC_nouveau < %{version}
303
Provides: libXvMC_r600 = %{version}
304
Obsoletes: libXvMC_r600 < %{version}
305
Provides: libtxc_dxtn = %{version}
306
Obsoletes: libtxc_dxtn < %{version}
307
%ifarch %{arm} aarch64
308
%if 0%{?suse_version} >= 1550
309
BuildRequires: python3-pycparser >= 2.20
310
BuildRequires: pkgconfig(libdrm_etnaviv) >= 2.4.89
311
%endif
312
BuildRequires: pkgconfig(libdrm_freedreno) >= 2.4.74
313
BuildRequires: pkgconfig(libelf)
314
%endif
315
%ifarch x86_64 %{ix86} aarch64 %{arm} riscv64
316
BuildRequires: libelf-devel
317
BuildRequires: pkgconfig(libdrm_intel) >= 2.4.75
318
%else
319
%if 0%{with_opencl}
320
BuildRequires: libelf-devel
321
%endif
322
%endif
323
# Requirements for wayland bumped up from 17.0
324
BuildRequires: pkgconfig(wayland-client) >= 1.11
325
BuildRequires: pkgconfig(wayland-protocols) >= 1.8
326
BuildRequires: pkgconfig(wayland-server) >= 1.11
327
%if 0%{with_llvm}
328
%if 0%{?suse_version} >= 1550
329
BuildRequires: llvm-devel
330
%else
331
%if 0%{?sle_version} >= 150600
332
BuildRequires: llvm20-devel
333
%endif
334
%endif
335
%endif
336
337
%if 0%{with_opencl}
338
%if 0%{?suse_version} >= 1550
339
BuildRequires: clang-devel
340
%else
341
%if 0%{?sle_version} >= 150600
342
BuildRequires: clang20-devel
343
%endif
344
%endif
345
BuildRequires: libclc
346
BuildRequires: pkgconfig(LLVMSPIRVLib)
347
BuildRequires: pkgconfig(SPIRV-Tools)
348
# For NVK or libvulkan_nouveau.so
349
# Rust Cbindgen >=0.25 is required
350
# but it's only available on tumbleweed
351
%if 0%{?suse_version} > 1600
352
BuildRequires: rust-cbindgen >= 0.25
353
%endif
354
%if 0%{with_rusticl}
355
BuildRequires: rust
356
BuildRequires: rust-bindgen
357
%endif
358
%endif
359
360
Requires: Mesa-libEGL1 = %{version}
361
Requires: Mesa-libGL1 = %{version}
362
Requires: libglvnd >= 0.1.0
363
364
# This dependency on Mesa-dri and Mesa-gallium is here to make sure users that
365
# do not install recommends on their system still get working Mesa. It is
366
# ignored in obs when Mesa is installed as build dependency.
367
Requires: Mesa-dri = %{version}
368
%if 0%{have_gallium}
369
Requires: Mesa-gallium = %{version}
370
%endif
371
372
%description
373
Mesa is a 3-D graphics library with an API which is very similar to
374
that of OpenGL.* To the extent that Mesa utilizes the OpenGL command
375
syntax or state machine, it is being used with authorization from
376
Silicon Graphics, Inc.(SGI). However, the author does not possess an
377
OpenGL license from SGI, and makes no claim that Mesa is in any way a
378
compatible replacement for OpenGL or associated with SGI. Those who
379
want a licensed implementation of OpenGL should contact a licensed
380
vendor.
381
382
Please do not refer to the library as MesaGL (for legal reasons). It's
383
just Mesa or The Mesa 3-D graphics library.
384
385
* OpenGL is a trademark of Silicon Graphics Incorporated.
386
387
%package devel
388
Summary: Libraries, includes and more to develop Mesa applications
389
Group: Development/Libraries/X11
390
Requires: Mesa = %{version}
391
Requires: Mesa-dri-devel = %{version}
392
Requires: Mesa-libEGL-devel = %{version}
393
Requires: Mesa-libGL-devel = %{version}
394
Requires: Mesa-libGLESv1_CM-devel = %{version}
395
Requires: Mesa-libGLESv2-devel = %{version}
396
%ifarch s390x
397
Requires: Mesa-libglapi-devel = %{version}
398
%endif
399
Requires: libOSMesa-devel = %{version}
400
Requires: libgbm-devel = %{version}
401
Provides: Mesa-devel-static = %{version}
402
Provides: xorg-x11-Mesa-devel = %{version}
403
Requires: libglvnd-devel >= 1.2.0
404
Obsoletes: Mesa-devel-static < %{version}
405
Obsoletes: xorg-x11-Mesa-devel < %{version}
406
Provides: Mesa-libIndirectGL-devel = %{version}
407
Obsoletes: Mesa-libIndirectGL-devel < %{version}
408
Provides: s2tc-devel = %{version}
409
Obsoletes: s2tc-devel < %{version}
410
Provides: libtxc_dxtn-devel = %{version}
411
Obsoletes: libtxc_dxtn-devel < %{version}
412
413
%description devel
414
Mesa is a 3-D graphics library with an API which is very similar to
415
that of OpenGL.* To the extent that Mesa utilizes the OpenGL command
416
syntax or state machine, it is being used with authorization from
417
Silicon Graphics, Inc.(SGI). However, the author does not possess an
418
OpenGL license from SGI, and makes no claim that Mesa is in any way a
419
compatible replacement for OpenGL or associated with SGI. Those who
420
want a licensed implementation of OpenGL should contact a licensed
421
vendor.
422
423
Please do not refer to the library as MesaGL (for legal reasons). It's
424
just Mesa or The Mesa 3-D graphics library.
425
426
* OpenGL is a trademark of Silicon Graphics Incorporated.
427
428
%package libEGL1
429
# Kudos to Debian for the descriptions
430
Summary: EGL API implementation
431
Group: System/Libraries
432
Requires: libglvnd >= 0.1.0
433
434
%description libEGL1
435
This package contains the EGL native platform graphics interface
436
library. EGL provides a platform-agnostic mechanism for creating
437
rendering surfaces for use with other graphics libraries, such as
438
OpenGL|ES and OpenVG.
439
440
This package contains modules to interface with the existing system
441
GLX or DRI2 drivers to provide OpenGL via EGL. The Mesa main package
442
provides drivers to provide hardware-accelerated OpenGL|ES and OpenVG
443
support.
444
445
%package libEGL-devel
446
Summary: Development files for the EGL API
447
Group: Development/Libraries/C and C++
448
Requires: Mesa-KHR-devel = %{version}
449
Requires: Mesa-libEGL1 = %{version}
450
Requires: libglvnd-devel >= 0.1.0
451
Requires: pkgconfig(x11)
452
# Other requires taken care of by pkgconfig already
453
454
%description libEGL-devel
455
This package contains the development environment required for
456
compiling programs against EGL native platform graphics interface
457
library. EGL provides a platform-agnostic mechanism for creating
458
rendering surfaces for use with other graphics libraries, such as
459
OpenGL|ES and OpenVG.
460
461
This package provides the development environment for compiling
462
programs against the EGL library.
463
464
%package KHR-devel
465
Summary: Mesa Khronos development headers
466
Group: Development/Libraries/C and C++
467
Provides: Mesa-libGL-devel:/usr/include/KHR/khrplatform.h
468
469
%description KHR-devel
470
Mesa Khronos development headers.
471
472
%package libGL1
473
Summary: The GL/GLX runtime of the Mesa 3D graphics library
474
Group: System/Libraries
475
Requires: Mesa = %{version}
476
Requires: libglvnd >= 0.1.0
477
478
%description libGL1
479
Mesa is a software library for 3D computer graphics that provides a
480
generic OpenGL implementation for rendering three-dimensional
481
graphics.
482
483
GLX ("OpenGL Extension to the X Window System") provides the
484
interface connecting OpenGL and the X Window System: it enables
485
programs wishing to use OpenGL to do so within a window provided by
486
the X Window System.
487
488
%package libGL-devel
489
Summary: GL/GLX development files of the OpenGL API
490
Group: Development/Libraries/C and C++
491
Requires: Mesa-KHR-devel = %{version}
492
Requires: Mesa-libGL1 = %{version}
493
Requires: libglvnd-devel >= 0.1.0
494
Requires: pkgconfig(x11)
495
496
%description libGL-devel
497
Mesa is a software library for 3D computer graphics that provides a
498
generic OpenGL implementation for rendering three-dimensional
499
graphics.
500
501
This package includes headers and static libraries for compiling
502
programs with Mesa.
503
504
%package libGLESv1_CM-devel
505
Summary: Development files for the OpenGL ES 1.x Common Profile API
506
Group: Development/Libraries/C and C++
507
Requires: Mesa-KHR-devel = %{version}
508
Requires: libglvnd-devel >= 0.1.0
509
Requires: pkgconfig(egl)
510
511
%description libGLESv1_CM-devel
512
OpenGL|ES is an API for full-function 2D and 3D
513
graphics on embedded systems - including consoles, phones, appliances
514
and vehicles. It contains a subset of OpenGL plus a number of
515
extensions for the special needs of embedded systems.
516
517
OpenGL|ES 1.x provides an API for fixed-function hardware.
518
519
This package provides a development environment for building programs
520
using the OpenGL|ES 1.x Common Profile APIs.
521
522
%package libGLESv2-devel
523
Summary: Development files for the OpenGL ES 2.x API
524
Group: Development/Libraries/C and C++
525
Requires: Mesa-KHR-devel = %{version}
526
Requires: libglvnd-devel >= 0.1.0
527
Requires: pkgconfig(egl)
528
529
%description libGLESv2-devel
530
OpenGL|ES is an API for full-function 2D and 3D
531
graphics on embedded systems - including consoles, phones, appliances
532
and vehicles. It contains a subset of OpenGL plus a number of
533
extensions for the special needs of embedded systems.
534
535
OpenGL|ES 2.x provides an API for programmable hardware including
536
vertex and fragment shaders.
537
538
This package provides a development environment for building
539
applications using the OpenGL|ES 2.x APIs.
540
541
%package libGLESv3-devel
542
Summary: Development files for the OpenGL ES 3.x API
543
Group: Development/Libraries/C and C++
544
Requires: Mesa-KHR-devel = %{version}
545
Requires: pkgconfig(egl)
546
547
%description libGLESv3-devel
548
OpenGL|ES is an API for full-function 2D and 3D
549
graphics on embedded systems - including consoles, phones, appliances
550
and vehicles. It contains a subset of OpenGL plus a number of
551
extensions for the special needs of embedded systems.
552
553
This package provides a development environment for building
554
applications using the OpenGL|ES 3.x APIs.
555
556
%package -n libOSMesa8
557
Summary: Mesa Off-screen rendering extension
558
# Wrongly named package shipped .so.8
559
Group: System/Libraries
560
Obsoletes: libOSMesa9 < %{version}
561
Provides: libOSMesa9 = %{version}
562
563
%description -n libOSMesa8
564
OSmesa is a Mesa extension that allows programs to render to an
565
off-screen buffer using the OpenGL API without having to create a
566
rendering context on an X Server. It uses a pure software renderer.
567
568
%package libglapi0
569
Summary: Free implementation of the GL API
570
Group: System/Libraries
571
572
%description libglapi0
573
The Mesa GL API module is responsible for dispatching all the gl*
574
functions. It is intended to be mainly used by the Mesa-libGLES*
575
packages.
576
577
%package libglapi-devel
578
Summary: Development files for the Mesa GL API implementation
579
Group: Development/Libraries/C and C++
580
Requires: Mesa-libglapi0 = %{version}
581
582
%description libglapi-devel
583
Development files for the Mesa GL API module which is responsible for
584
dispatching all the gl* functions. It is intended to be mainly used by
585
the Mesa-libGLES* packages.
586
587
%package -n libOSMesa-devel
588
Summary: Development files for the Mesa Offscreen Rendering extension
589
Group: Development/Libraries/C and C++
590
Requires: libOSMesa8 = %{version}
591
592
%description -n libOSMesa-devel
593
Development files for the OSmesa Mesa extension that allows programs to render to an
594
off-screen buffer using the OpenGL API without having to create a
595
rendering context on an X Server. It uses a pure software renderer.
596
597
%package -n Mesa-dri
598
Summary: DRI plug-ins for 3D acceleration
599
Group: System/Libraries
600
Requires: Mesa = %{version}
601
%if 0%{with_vulkan}
602
Requires: libvulkan1
603
Requires: libvulkan_lvp
604
%endif
605
Supplements: Mesa
606
# merged into libgallium in 24.2.3
607
Provides: libvdpau_gallium = %{version}-%{release}
608
Obsoletes: libvdpau_gallium < %{version}-%{release}
609
# merged into libgallium in 25.0.0
610
%ifnarch s390x
611
Obsoletes: Mesa-libglapi0 < 25.0.0
612
%endif
613
614
%description -n Mesa-dri
615
This package contains Mesa DRI drivers for 3D acceleration.
616
617
%package dri-devel
618
Summary: Development files for the DRI API
619
Group: Development/Libraries/C and C++
620
Requires: Mesa = %{version}
621
622
%description dri-devel
623
This package contains the development environment required for
624
compiling programs and libraries using the DRI API.
625
626
%package -n Mesa-dri-nouveau
627
Summary: Mesa DRI plug-in for 3D acceleration via Nouveau
628
Group: System/Libraries
629
Requires: Mesa = %{version}
630
631
%description -n Mesa-dri-nouveau
632
This package contains nouveau_dri.so, which is necessary for
633
Nouveau's 3D acceleration to work. It is packaged separately
634
since it is still experimental.
635
636
%package -n Mesa-dri-vc4
637
Summary: Mesa DRI plug-in for 3D acceleration on Raspberry Pi
638
Group: System/Libraries
639
Requires: Mesa = %{version}
640
641
%description -n Mesa-dri-vc4
642
This package contains vc4_dri.so, which is necessary for 3D
643
acceleration on the Raspberry Pi to work. It is packaged separately
644
since it is still experimental.
645
646
%package -n Mesa-gallium
647
Summary: Mesa Gallium GPU drivers
648
Group: System/Libraries
649
Requires: Mesa = %{version}
650
Supplements: Mesa
651
652
%description -n Mesa-gallium
653
This package contains Mesa Gallium drivers for 3D acceleration.
654
655
%package -n libgbm1
656
Summary: Generic buffer management API
657
Group: System/Libraries
658
659
%description -n libgbm1
660
This package contains the GBM buffer management library. It provides
661
a mechanism for allocating buffers for graphics rendering tied to
662
Mesa.
663
664
GBM is intended to be used as a native platform for EGL on drm or
665
openwfd.
666
667
%package -n libgbm-devel
668
Summary: Development files for the EGL API
669
Group: Development/Libraries/C and C++
670
Requires: libgbm1 = %{version}
671
672
%description -n libgbm-devel
673
This package contains the GBM buffer management library. It provides
674
a mechanism for allocating buffers for graphics rendering tied to
675
Mesa.
676
677
GBM is intended to be used as a native platform for EGL on drm or
678
openwfd.
679
680
This package provides the development environment for compiling
681
programs against the GBM library.
682
683
%package -n Mesa-libd3d
684
Summary: Mesa Direct3D9 state tracker
685
# Manually provide d3d library (bnc#918294)
686
Group: System/Libraries
687
%ifarch x86_64 s390x ppc64 ppc64le aarch64 riscv64
688
Provides: d3dadapter9.so.1()(64bit)
689
%else
690
Provides: d3dadapter9.so.1
691
%endif
692
693
%description -n Mesa-libd3d
694
Mesa Direct3D9 state tracker
695
696
%package -n Mesa-libd3d-devel
697
Summary: Mesa Direct3D9 state tracker development package
698
Group: Development/Libraries/C and C++
699
Requires: Mesa-libd3d = %{version}
700
701
%description -n Mesa-libd3d-devel
702
Mesa Direct3D9 state tracker development package
703
704
%package -n libvdpau_nouveau
705
Summary: VDPAU state tracker for Nouveau
706
Group: System/Libraries
707
Supplements: modalias(pci:v000010DEd*sv*sd*bc03sc*i*)
708
Supplements: modalias(pci:v000012D2d*sv*sd*bc03sc*i*)
709
710
%description -n libvdpau_nouveau
711
This package contains the VDPAU state tracker for Nouveau.
712
713
%package -n libvdpau_r600
714
Summary: VDPAU state tracker for R600
715
Group: System/Libraries
716
Supplements: modalias(pci:v00001002d*sv*sd*bc03sc*i*)
717
718
%description -n libvdpau_r600
719
This package contains the VDPAU state tracker for R600.
720
721
%package -n libvdpau_radeonsi
722
Summary: VDPAU state tracker for radeonsi
723
Group: System/Libraries
724
Supplements: modalias(pci:v00001002d*sv*sd*bc03sc*i*)
725
726
%description -n libvdpau_radeonsi
727
This package contains the VDPAU state tracker for radeonsi.
728
729
%package -n libvdpau_virtio_gpu
730
Summary: VDPAU state tracker for VirtIO GPU
731
Group: System/Libraries
732
733
%description -n libvdpau_virtio_gpu
734
This package contains the VDPAU state tracker for VirtIO GPU.
735
736
%package -n libvdpau_d3d12
737
Summary: VDPAU state tracker for d3d12
738
Group: System/Libraries
739
740
%description -n libvdpau_d3d12
741
This package contains the VDPAU state tracker for d3d12
742
743
%package -n Mesa-libOpenCL
744
Summary: Mesa OpenCL implementation (Clover)
745
Group: System/Libraries
746
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150300
747
Requires: libclc(llvm%{_llvm_sonum})
748
%else
749
Requires: libclc
750
%endif
751
752
%description -n Mesa-libOpenCL
753
This package contains the Mesa OpenCL implementation or GalliumCompute.
754
755
%package -n Mesa-libRusticlOpenCL
756
Summary: Mesa OpenCL implementation (Rusticl)
757
Group: System/Libraries
758
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150300
759
Requires: libclc(llvm%{_llvm_sonum})
760
%else
761
Requires: libclc
762
%endif
763
764
%description -n Mesa-libRusticlOpenCL
765
This package contains the Mesa Rust-written OpenCL implementation.
766
767
%package -n Mesa-libva
768
Summary: Mesa VA-API implementation
769
Group: System/Libraries
770
Supplements: Mesa
771
772
%description -n Mesa-libva
773
This package contains the Mesa VA-API implementation provided through gallium.
774
775
%package -n libvulkan_intel
776
Summary: Mesa vulkan driver for Intel GPU
777
Group: System/Libraries
778
Supplements: modalias(pci:v00008086d*sv*sd*bc03sc*i*)
779
Requires: Mesa-vulkan-device-select = %{version}
780
# get rid of this package, which is no longer neeeded at all
781
Provides: Mesa-libVulkan-devel = 22.0.0
782
Obsoletes: Mesa-libVulkan-devel < 22.0.0
783
784
%description -n libvulkan_intel
785
This package contains the Vulkan parts for Mesa.
786
787
# Only available on Tumbleweed because of rust-cbindgen >= 1.25 requirement
788
%if 0%{?suse_version} > 1600
789
%package -n libvulkan_nouveau
790
Summary: Mesa vulkan driver for NVK (Nouveau Vulkan)
791
Group: System/Libraries
792
Requires: Mesa-vulkan-device-select = %{version}
793
794
%description -n libvulkan_nouveau
795
This package contains the Vulkan parts for Mesa.
796
%endif
797
798
%package -n libvulkan_radeon
799
Summary: Mesa vulkan driver for AMD GPU
800
Group: System/Libraries
801
Supplements: modalias(pci:v00001002d*sv*sd*bc03sc*i*)
802
Requires: Mesa-vulkan-device-select = %{version}
803
804
%description -n libvulkan_radeon
805
This package contains the Vulkan parts for Mesa.
806
807
%package -n libvulkan_lvp
808
Summary: Mesa vulkan driver for LVP
809
Group: System/Libraries
810
Requires: Mesa-vulkan-device-select = %{version}
811
812
%description -n libvulkan_lvp
813
This package contains the Vulkan parts for Mesa.
814
815
%ifarch %{arm} aarch64
816
%package -n libvulkan_broadcom
817
Summary: Mesa vulkan driver for Broadcom
818
Group: System/Libraries
819
820
%description -n libvulkan_broadcom
821
This package contains the Vulkan parts for Mesa.
822
823
%package -n libvulkan_freedreno
824
Summary: Mesa vulkan driver for Freedreno
825
Group: System/Libraries
826
827
%description -n libvulkan_freedreno
828
This package contains the Vulkan parts for Mesa.
829
830
%package -n libvulkan_panfrost
831
Summary: Mesa vulkan driver for ARM Mali
832
Group: System/Libraries
833
834
%description -n libvulkan_panfrost
835
This package contains the Vulkan parts for Mesa.
836
%endif
837
838
%package -n Mesa-vulkan-device-select
839
Summary: Vulkan layer to select Vulkan devices provided by Mesa
840
Group: System/Libraries
841
842
%description -n Mesa-vulkan-device-select
843
This package contains the VK_MESA_device_select Vulkan layer
844
845
%package -n Mesa-vulkan-overlay
846
Summary: Mesa Vulkan Overlay layer
847
Group: System/Libraries
848
849
%description -n Mesa-vulkan-overlay
850
This package contains the VK_MESA_Overlay Vulkan layer
851
852
%package -n libxatracker2
853
Version: 1.0.0
854
Summary: XA state tracker
855
Group: System/Libraries
856
857
%description -n libxatracker2
858
This package contains the XA state tracker for gallium3D driver.
859
It superseeds the Xorg state tracker and provides an infrastructure
860
to accelerate Xorg 2D operations. It is currently used by vmwgfx
861
video driver.
862
863
%package -n libxatracker-devel
864
Version: 1.0.0
865
Summary: Development files for the XA API
866
Group: Development/Libraries/C and C++
867
Requires: libxatracker2 = %{version}
868
869
%description -n libxatracker-devel
870
This package contains the XA state tracker for gallium3D driver.
871
It superseeds the Xorg state tracker and provides an infrastructure
872
to accelerate Xorg 2D operations. It is currently used by vmwgfx
873
video driver.
874
875
This package provides the development environment for compiling
876
programs against the XA state tracker.
877
878
%prep
879
%setup -q -n %{_name_archive}-%{_version} -b9
880
# remove some docs
881
rm -rf docs/README.{VMS,WIN32,OS2}
882
883
# Rust crates to subprojects
884
mkdir -p subprojects/packagecache
885
cp %{SOURCE2} subprojects/packagecache/
886
cp %{SOURCE3} subprojects/packagecache/
887
cp %{SOURCE4} subprojects/packagecache/
888
cp %{SOURCE5} subprojects/packagecache/
889
cp %{SOURCE6} subprojects/packagecache/
890
891
%patch -P 2 -p1
892
# fixes build against python 3.6
893
%patch -P 11 -p1
894
%patch -P 12 -p1
895
%patch -P 13 -p1
896
%if 0%{?suse_version} < 1550
897
%patch -P 14 -p1
898
%endif
899
%patch -P 17 -p1
900
# no longer needed since gstreamer-plugins-vaapi 1.18.4
901
%if 0%{?suse_version} < 1550
902
%patch -P 54 -p1
903
%endif
904
%patch -P 100 -p1
905
%patch -P 400 -p1
906
%patch -P 500 -p1
907
%ifnarch s390x
908
%patch -P 700 -p1
909
%patch -P 701 -p1
910
%patch -P 702 -p1
911
%endif
912
%patch -P 1222040 -p1
913
%patch -P 1222041 -p1
914
%patch -P 1222042 -p1
915
%ifnarch s390x
916
%patch -P 2000000 -p1
917
%endif
918
# Remove requires to vulkan libs from baselibs.conf on platforms
919
# where vulkan build is disabled; ugly ...
920
%if 0%{?with_vulkan} == 0
921
grep -v -i vulkan "%{_sourcedir}/baselibs.conf" >"%{_sourcedir}/temp" && \
922
mv "%{_sourcedir}/temp" "%{_sourcedir}/baselibs.conf"
923
%endif
924
925
%build
926
# try to avoid OOM on ppc64 (boo#1194739)
927
%ifarch ppc64 ppc64le
928
%limit_build -m 1024
929
%endif
930
export CC=gcc-%{gcc_version}
931
export CXX=g++-%{gcc_version}
932
933
egl_platforms=x11,wayland
934
935
# needed to fix build of Mesa 23.1
936
# Mesa-drivers: -Dshader-cache=enabled
937
# Mesa: -Dxlib-lease=enabled
938
# recommended for both Mesa and Mesa-drivers to avoid some scary messages when
939
# comparing fds: -Dallow-kcmp=enabled
940
# Credits for figuring this out go to "llyyr" <llyyr.public@gmail.com>
941
942
%meson \
943
--auto-features=disabled \
944
%if "%{flavor}" == "drivers"
945
-Dosmesa=false \
946
-Dglx=disabled \
947
-Dxmlconfig=enabled \
948
-Dexpat=enabled \
949
-Dshader-cache=enabled \
950
%else
951
-Dosmesa=true \
952
-Dglx=auto \
953
-Dllvm=disabled \
954
-Dvulkan-drivers= \
955
%endif
956
-Dxlib-lease=enabled \
957
-Dglvnd=enabled \
958
-Dgles1=enabled \
959
-Dgles2=enabled \
960
-Degl=enabled \
961
-Dallow-kcmp=enabled \
962
-Dplatforms=$egl_platforms \
963
-Dshared-glapi=enabled \
964
%if 0%{?with_nine}
965
-Dgallium-nine=true \
966
%endif
967
%if %{glamor}
968
-Dgbm=enabled \
969
%endif
970
%if 0%{with_opencl}
971
-Dgallium-opencl=icd \
972
%if 0%{?suse_version} >= 1550
973
--sysconfdir=%{_datadir} \
974
%endif
975
%if 0%{with_rusticl}
976
-Dgallium-rusticl=true \
977
-Drust_std=2021 \
978
%endif
979
%endif
980
%if 0%{with_llvm}
981
-Dllvm=enabled \
982
-Dshared-llvm=enabled \
983
%endif
984
%if "%{flavor}" == "drivers"
985
%if %{video_codecs}
986
-Dvideo-codecs=all \
987
%endif
988
%if %{gallium_loader}
989
-Dgallium-vdpau=enabled \
990
-Dgallium-va=enabled \
991
-Dgallium-xa=enabled \
992
%endif
993
%if 0%{with_vulkan}
994
-Dvulkan-drivers=%{?vulkan_drivers} \
995
-Dvulkan-layers=device-select,overlay \
996
-Dvulkan-beta=true \
997
%else
998
-Dvulkan-drivers= \
999
%endif
1000
%ifarch %{ix86} x86_64
1001
-Dgallium-drivers=r300,r600,radeonsi,nouveau,softpipe,llvmpipe,svga,virgl,iris,crocus,i915,d3d12,zink \
1002
-Dgallium-d3d12-video=enabled \
1003
-Dgallium-d3d12-graphics=enabled \
1004
-Dintel-rt=enabled \
1005
%else
1006
%ifarch %{arm} aarch64
1007
%if 0%{?suse_version} >= 1550
1008
-Dgallium-drivers=r300,r600,radeonsi,nouveau,softpipe,llvmpipe,virgl,iris,freedreno,vc4,etnaviv,lima,panfrost,v3d,svga,tegra,zink \
1009
%else
1010
-Dgallium-drivers=r300,r600,radeonsi,nouveau,softpipe,llvmpipe,virgl,iris,freedreno,vc4,lima,panfrost,v3d,svga,tegra,zink \
1011
%endif
1012
%else
1013
%ifarch ppc64 ppc64le riscv64
1014
-Dgallium-drivers=r300,r600,radeonsi,nouveau,softpipe,llvmpipe,virgl,iris,zink \
1015
%else
1016
-Dgallium-drivers=swrast \
1017
%endif
1018
%endif
1019
%endif
1020
%ifarch riscv64
1021
-Dllvm-orcjit=true \
1022
%endif
1023
%else
1024
%ifnarch s390x
1025
-Dgallium-drivers=softpipe \
1026
%else
1027
-Dgallium-drivers=swrast \
1028
%endif
1029
%endif
1030
%ifarch aarch64 x86_64 ppc64le s390x riscv64
1031
-Dvalgrind=enabled \
1032
%endif
1033
-Db_ndebug=true \
1034
-Dc_args="%{optflags}" \
1035
%ifarch %ix86
1036
-Dcpp_args="$(echo %{optflags}|sed 's/-flto=auto//')"
1037
%else
1038
-Dcpp_args="%{optflags}"
1039
%endif
1040
1041
%meson_build
1042
1043
%install
1044
export MESON_PACKAGE_CACHE_DIR="%{_sourcedir}"
1045
%meson_install
1046
find %{buildroot} -type f -name "*.la" -delete -print
1047
1048
# libwayland-egl is provided by wayland itself
1049
rm -fv %{buildroot}/%{_libdir}/libwayland-egl.so* \
1050
%{buildroot}/%{_libdir}/pkgconfig/wayland-egl.pc
1051
1052
%if "%{flavor}" == "drivers"
1053
# Delete things that we do not package in the Mesa-drivers variant, but can
1054
# not disable from buildling and installing.
1055
1056
rm -fv %{buildroot}/%{_libdir}/libEGL.so*
1057
# in Mesa-libEGL-devel
1058
rm -v %{buildroot}/%{_includedir}/EGL/egl.h \
1059
%{buildroot}/%{_includedir}/EGL/eglext.h \
1060
%{buildroot}/%{_includedir}/EGL/eglext_angle.h \
1061
%{buildroot}/%{_includedir}/EGL/eglmesaext.h \
1062
%{buildroot}/%{_includedir}/EGL/eglplatform.h
1063
1064
# in Mesa-libGL-devel
1065
rm -Rfv %{buildroot}/%{_includedir}/GL
1066
1067
#in Mesa-libGLESv1_CM-devel
1068
rm -Rfv %{buildroot}/%{_includedir}/GLES
1069
1070
#in Mesa-libGLESv2-devel
1071
rm -Rfv %{buildroot}/%{_includedir}/GLES2
1072
1073
#in Mesa-libGLESv3-devel
1074
rm -Rfv %{buildroot}/%{_includedir}/GLES3
1075
1076
#in Mesa-libEGL1
1077
rm -Rfv %{buildroot}/%{_libdir}/libEGL_mesa.so* \
1078
%{buildroot}/%{_datadir}/glvnd
1079
1080
# in Mesa-libglapi0
1081
%ifarch s390x
1082
rm -v %{buildroot}/%{_libdir}/libglapi.so*
1083
%endif
1084
1085
# in libwayland-egl1
1086
rm -fv %{buildroot}/%{_libdir}/libwayland-egl.so* \
1087
%{buildroot}/%{_libdir}/pkgconfig/wayland-egl.pc
1088
1089
# in Mesa-dri-devel
1090
rm -v %{buildroot}/%{_libdir}/pkgconfig/dri.pc
1091
1092
# in KHR-devel
1093
rm -Rfv %{buildroot}/%{_includedir}/KHR
1094
1095
# in libgbm-devel
1096
rm -fv %{buildroot}%{_includedir}/gbm.h \
1097
%{buildroot}%{_libdir}/libgbm.so* \
1098
%{buildroot}%{_libdir}/pkgconfig/gbm.pc
1099
1100
%else
1101
# package in Mesa-dri
1102
rm -Rfv %{buildroot}/%{_datadir}/drirc.d
1103
1104
rm -Rfv %{buildroot}/%{_libdir}/dri/*_dri.so \
1105
%{buildroot}%{_libdir}/libgallium-*.so \
1106
%{buildroot}%{_libdir}/gbm/ \
1107
%{buildroot}%{_libdir}/libGLES*
1108
# glvnd needs a default provider for indirect rendering where it cannot
1109
# determine the vendor
1110
ln -sv %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
1111
1112
# pickup pkgconfig files from libglvnd build
1113
for i in gl egl glesv1_cm glesv2; do
1114
rm -fv "%{buildroot}/%{_libdir}/pkgconfig/$i.pc"
1115
install -vm 0644 "%{_docdir}/libglvnd/pkgconfig/$i.pc" \
1116
%{buildroot}/%{_libdir}/pkgconfig/
1117
done
1118
1119
for dir in GL/gl GL/glx; do
1120
cd "../xc/doc/man/$dir"
1121
xmkmf -a
1122
%make_build V=1
1123
make install.man DESTDIR=%{buildroot} MANPATH=%{_mandir} LIBMANSUFFIX=3gl
1124
cd -
1125
done
1126
%endif
1127
1128
%fdupes -s %{buildroot}/%{_mandir}
1129
1130
%if "%{flavor}" != "drivers"
1131
# Use dummy README file that can be included in both Mesa and Mesa-32bit. This way Mesa-32bit will be build (otherwise it would be skipped as empty) and it can be used by the other *-32bit packages.
1132
echo "The \"Mesa\" package does not have the ability to render, but is supplemented by \"Mesa-dri\" and \"Mesa-gallium\" which contain the drivers for rendering" > docs/README.package.%{_arch}
1133
%endif
1134
1135
%ldconfig_scriptlets
1136
%ldconfig_scriptlets libEGL1
1137
%ldconfig_scriptlets libGL1
1138
%ldconfig_scriptlets -n libOSMesa8
1139
%ldconfig_scriptlets -n libgbm1
1140
%ldconfig_scriptlets -n libxatracker2
1141
%ldconfig_scriptlets libglapi0
1142
%ldconfig_scriptlets -n Mesa-libd3d
1143
1144
%if "%{flavor}" != "drivers"
1145
%files
1146
%license docs/license.rst
1147
%doc docs/README*
1148
1149
%files libEGL1
1150
%{_libdir}/libEGL_mesa.so*
1151
%dir %{_datadir}/glvnd
1152
%dir %{_datadir}/glvnd/egl_vendor.d
1153
%{_datadir}/glvnd/egl_vendor.d/50_mesa.json
1154
1155
%files libEGL-devel
1156
%{_includedir}/EGL
1157
%{_libdir}/pkgconfig/egl.pc
1158
1159
%files KHR-devel
1160
%{_includedir}/KHR
1161
1162
%files libGL1
1163
%{_libdir}/libGLX_mesa.so*
1164
%{_libdir}/libGLX_indirect.so*
1165
1166
%files libGL-devel
1167
%dir %{_includedir}/GL
1168
%{_includedir}/GL/*.h
1169
%exclude %{_includedir}/GL/osmesa.h
1170
%{_libdir}/pkgconfig/gl.pc
1171
%{_mandir}/man3/gl[A-Z]*
1172
1173
%files libGLESv1_CM-devel
1174
%{_includedir}/GLES
1175
%{_libdir}/pkgconfig/glesv1_cm.pc
1176
1177
%files libGLESv2-devel
1178
%{_includedir}/GLES2
1179
%{_libdir}/pkgconfig/glesv2.pc
1180
1181
%files libGLESv3-devel
1182
%{_includedir}/GLES3
1183
1184
%files -n libOSMesa8
1185
%{_libdir}/libOSMesa.so.8.0.0
1186
%{_libdir}/libOSMesa.so.8
1187
1188
%files -n libOSMesa-devel
1189
%{_includedir}/GL/osmesa.h
1190
%{_libdir}/libOSMesa.so
1191
%{_libdir}/pkgconfig/osmesa.pc
1192
1193
%files -n libgbm1
1194
%{_libdir}/libgbm.so.1*
1195
1196
%files -n libgbm-devel
1197
%{_includedir}/gbm.h
1198
%{_libdir}/libgbm.so
1199
%{_libdir}/pkgconfig/gbm.pc
1200
%endif
1201
1202
%if "%{flavor}" == "drivers"
1203
%ifarch aarch64 %{ix86} x86_64 %{arm} ppc64 ppc64le riscv64
1204
%files -n libxatracker2
1205
%{_libdir}/libxatracker.so.2*
1206
1207
%files -n libxatracker-devel
1208
%{_includedir}/xa_*.h
1209
%{_libdir}/libxatracker.so
1210
%{_libdir}/pkgconfig/xatracker.pc
1211
1212
%endif
1213
1214
%if %{vdpau_nouveau}
1215
%files -n libvdpau_nouveau
1216
%{_libdir}/vdpau/libvdpau_nouveau.so
1217
%{_libdir}/vdpau/libvdpau_nouveau.so.1
1218
%{_libdir}/vdpau/libvdpau_nouveau.so.1.0
1219
%{_libdir}/vdpau/libvdpau_nouveau.so.1.0.0
1220
%endif
1221
1222
%if %{vdpau_radeon}
1223
%files -n libvdpau_r600
1224
%{_libdir}/vdpau/libvdpau_r600.so
1225
%{_libdir}/vdpau/libvdpau_r600.so.1
1226
%{_libdir}/vdpau/libvdpau_r600.so.1.0
1227
%{_libdir}/vdpau/libvdpau_r600.so.1.0.0
1228
1229
%files -n libvdpau_radeonsi
1230
%{_libdir}/vdpau/libvdpau_radeonsi.so
1231
%{_libdir}/vdpau/libvdpau_radeonsi.so.1
1232
%{_libdir}/vdpau/libvdpau_radeonsi.so.1.0
1233
%{_libdir}/vdpau/libvdpau_radeonsi.so.1.0.0
1234
%endif
1235
1236
%if %{vdpau_virtio_gpu}
1237
%files -n libvdpau_virtio_gpu
1238
%{_libdir}/vdpau/libvdpau_virtio_gpu.so
1239
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1
1240
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1.0
1241
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1.0.0
1242
%endif
1243
1244
%if %{vdpau_d3d12}
1245
%files -n libvdpau_d3d12
1246
%{_libdir}/vdpau/libvdpau_d3d12.so
1247
%{_libdir}/vdpau/libvdpau_d3d12.so.1
1248
%{_libdir}/vdpau/libvdpau_d3d12.so.1.0
1249
%{_libdir}/vdpau/libvdpau_d3d12.so.1.0.0
1250
%endif
1251
%endif
1252
1253
%ifarch s390x
1254
%if "%{flavor}" != "drivers"
1255
%files libglapi0
1256
%{_libdir}/libglapi.so.0*
1257
1258
%files libglapi-devel
1259
%{_libdir}/libglapi.so
1260
%endif
1261
%endif
1262
1263
%if "%{flavor}" == "drivers"
1264
%files -n Mesa-dri
1265
%dir %{_datadir}/drirc.d
1266
%config %{_datadir}/drirc.d/*
1267
%dir %{_libdir}/dri
1268
%{_libdir}/dri/*_dri.so
1269
%ifarch %{ix86} x86_64 aarch64 %{arm} ppc64 ppc64le riscv64
1270
%exclude %{_libdir}/dri/nouveau_dri.so
1271
%endif
1272
%ifarch %{arm} aarch64
1273
%exclude %{_libdir}/dri/vc4_dri.so
1274
%endif
1275
%ifnarch s390x
1276
%{_libdir}/libgallium-%{_version}.so
1277
%dir %{_libdir}/gbm/
1278
%{_libdir}/gbm/dri_gbm.so
1279
%endif
1280
1281
%if 0%{with_opencl}
1282
# only built with opencl
1283
%files -n Mesa-gallium
1284
%dir %{_libdir}/gallium-pipe/
1285
%{_libdir}/gallium-pipe/pipe_*.so
1286
%endif
1287
1288
%ifarch %{ix86} x86_64 aarch64 %{arm} ppc64 ppc64le riscv64
1289
%files -n Mesa-dri-nouveau
1290
%{_libdir}/dri/nouveau_dri.so
1291
%endif
1292
1293
%ifarch aarch64 %{arm}
1294
%files -n Mesa-dri-vc4
1295
%{_libdir}/dri/vc4_dri.so
1296
%endif
1297
1298
# drivers
1299
%endif
1300
1301
%if "%{flavor}" != "drivers"
1302
%files dri-devel
1303
%{_includedir}/GL/internal
1304
%{_libdir}/pkgconfig/dri.pc
1305
1306
%files devel
1307
%doc docs/*.rst
1308
1309
# !drivers
1310
%endif
1311
1312
%if 0%{?with_nine}
1313
%files -n Mesa-libd3d
1314
%dir %{_libdir}/d3d/
1315
%{_libdir}/d3d/*.so.*
1316
1317
%files -n Mesa-libd3d-devel
1318
%{_libdir}/pkgconfig/d3d.pc
1319
%{_includedir}/d3dadapter/
1320
%{_libdir}/d3d/*.so
1321
%endif
1322
1323
%if 0%{with_opencl}
1324
%files -n Mesa-libOpenCL
1325
%if 0%{?suse_version} >= 1550
1326
%dir %{_datadir}/OpenCL
1327
%dir %{_datadir}/OpenCL/vendors
1328
%{_datadir}/OpenCL/vendors/mesa.icd
1329
%else
1330
%dir %{_sysconfdir}/OpenCL
1331
%dir %{_sysconfdir}/OpenCL/vendors
1332
%{_sysconfdir}/OpenCL/vendors/mesa.icd
1333
%endif
1334
%{_libdir}/libMesaOpenCL.so*
1335
%endif
1336
1337
%if 0%{with_rusticl}
1338
%files -n Mesa-libRusticlOpenCL
1339
%if 0%{?suse_version} >= 1550
1340
%dir %{_datadir}/OpenCL
1341
%dir %{_datadir}/OpenCL/vendors
1342
%{_datadir}/OpenCL/vendors/rusticl.icd
1343
%else
1344
%dir %{_sysconfdir}/OpenCL
1345
%dir %{_sysconfdir}/OpenCL/vendors
1346
%{_sysconfdir}/OpenCL/vendors/rusticl.icd
1347
%endif
1348
%{_libdir}/libRusticlOpenCL.so*
1349
%endif
1350
1351
%if "%{flavor}" == "drivers"
1352
%ifarch %{ix86} x86_64 aarch64 %{arm} ppc64 ppc64le riscv64
1353
%files -n Mesa-libva
1354
%{_libdir}/dri/*_drv_video.so
1355
%endif
1356
%endif
1357
1358
%if 0%{with_vulkan}
1359
%ifarch %{ix86} x86_64 aarch64 %{arm} riscv64
1360
%files -n libvulkan_intel
1361
%dir %{_datadir}/vulkan
1362
%dir %{_datadir}/vulkan/icd.d
1363
%{_datadir}/vulkan/icd.d/intel_icd.*.json
1364
%{_libdir}/libvulkan_intel.so
1365
%{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json
1366
%{_libdir}/libvulkan_intel_hasvk.so
1367
%endif
1368
1369
%ifarch %{ix86} x86_64 aarch64 %{arm}
1370
# Only available on Tumbleweed because of rust-cbindgen >= 1.25 requirement
1371
%if 0%{?suse_version} > 1600
1372
%files -n libvulkan_nouveau
1373
%{_libdir}/libvulkan_nouveau.so
1374
%{_datadir}/vulkan/icd.d/nouveau_icd.*.json
1375
%dir %{_datadir}/vulkan
1376
%dir %{_datadir}/vulkan/icd.d
1377
%endif
1378
%endif
1379
1380
%files -n libvulkan_radeon
1381
%{_libdir}/libvulkan_radeon.so
1382
%dir %{_datadir}/vulkan
1383
%dir %{_datadir}/vulkan/icd.d
1384
%{_datadir}/vulkan/icd.d/radeon_icd.*.json
1385
1386
%files -n libvulkan_lvp
1387
%{_libdir}/libvulkan_lvp.so
1388
%dir %{_datadir}/vulkan
1389
%dir %{_datadir}/vulkan/icd.d
1390
%{_datadir}/vulkan/icd.d/lvp_icd.*.json
1391
1392
%ifarch %{arm} aarch64
1393
%files -n libvulkan_broadcom
1394
%{_libdir}/libvulkan_broadcom.so
1395
%dir %{_datadir}/vulkan
1396
%dir %{_datadir}/vulkan/icd.d
1397
%{_datadir}/vulkan/icd.d/broadcom_icd.*.json
1398
1399
%files -n libvulkan_freedreno
1400
%{_libdir}/libvulkan_freedreno.so
1401
%dir %{_datadir}/vulkan
1402
%dir %{_datadir}/vulkan/icd.d
1403
%{_datadir}/vulkan/icd.d/freedreno_icd.*.json
1404
1405
%files -n libvulkan_panfrost
1406
%{_libdir}/libvulkan_panfrost.so
1407
%dir %{_datadir}/vulkan
1408
%dir %{_datadir}/vulkan/icd.d
1409
%{_datadir}/vulkan/icd.d/panfrost_icd.*.json
1410
%endif
1411
1412
%files -n Mesa-vulkan-device-select
1413
%{_libdir}/libVkLayer_MESA_device_select.so
1414
%dir %{_datadir}/vulkan
1415
%dir %{_datadir}/vulkan/implicit_layer.d
1416
%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
1417
1418
%files -n Mesa-vulkan-overlay
1419
%{_bindir}/mesa-overlay-control.py
1420
%{_libdir}/libVkLayer_MESA_overlay.so
1421
%dir %{_datadir}/vulkan
1422
%dir %{_datadir}/vulkan/explicit_layer.d
1423
%{_datadir}/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json
1424
%endif
1425
1426
%changelog
1427