File Mesa.spec of Package A_sr-Mesa

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