]>
Commit | Line | Data |
---|---|---|
22b32543 JB |
1 | # TODO: is separate libGLX_mesa needed for classic DRI versions, or >=22.x is still compatible? |
2 | # | |
3 | # Conditional build: | |
4 | %bcond_with sse2 # SSE2 instructions | |
5 | %bcond_with tests # tests | |
6 | # | |
7 | # glapi version (glapi tables in dri drivers and libglx must be in sync); | |
8 | # set to current Mesa version on ABI break, when xserver tables get regenerated | |
9 | # (until they start to be somehow versioned themselves) | |
10 | %define glapi_ver 7.1.0 | |
11 | # other packages | |
12 | %define libdrm_ver 2.4.107 | |
13 | %define dri2proto_ver 2.8 | |
14 | %define glproto_ver 1.4.14 | |
15 | %define zlib_ver 1.2.8 | |
16 | %define libglvnd_ver 1.3.4-2 | |
17 | %define llvm_ver 11.0.0 | |
18 | %define gcc_ver 6:4.8.0 | |
19 | ||
20 | %ifarch %{x86_with_sse2} | |
21 | %define with_sse2 1 | |
22 | %endif | |
23 | ||
24 | Summary: Free OpenGL implementation | |
25 | Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL | |
26 | Name: Mesa-legacy-classic | |
88a9e079 JB |
27 | Version: 21.3.9 |
28 | Release: 1 | |
22b32543 JB |
29 | License: MIT (core) and others - see license.html file |
30 | Group: X11/Libraries | |
31 | #Source0: ftp://ftp.freedesktop.org/pub/mesa/mesa-%{version}.tar.xz | |
32 | ## Source0-md5: 7c61a801311fb8d2f7b3cceb7b5cf308 | |
33 | Source0: https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-%{version}/mesa-mesa-%{version}.tar.bz2 | |
88a9e079 | 34 | # Source0-md5: 627bdfbc3a58fa4b004f2bb49228ebee |
22b32543 JB |
35 | URL: https://www.mesa3d.org/ |
36 | %{?with_gallium_zink:BuildRequires: Vulkan-Loader-devel} | |
37 | BuildRequires: bison > 2.3 | |
38 | BuildRequires: elfutils-devel | |
39 | BuildRequires: expat-devel >= 1.95 | |
40 | BuildRequires: flex | |
41 | BuildRequires: gcc >= %{gcc_ver} | |
42 | BuildRequires: libdrm-devel >= %{libdrm_ver} | |
43 | BuildRequires: libglvnd-devel >= %{libglvnd_ver} | |
44 | BuildRequires: libselinux-devel | |
45 | BuildRequires: libstdc++-devel >= %{gcc_ver} | |
46 | BuildRequires: libunwind-devel | |
47 | BuildRequires: libxcb-devel >= 1.13 | |
48 | BuildRequires: meson >= 0.52 | |
49 | BuildRequires: ninja >= 1.5 | |
50 | BuildRequires: pkgconfig | |
51 | BuildRequires: pkgconfig(talloc) >= 2.0.1 | |
52 | BuildRequires: pkgconfig(xcb-dri2) >= 1.8 | |
53 | BuildRequires: pkgconfig(xcb-dri3) >= 1.13 | |
54 | BuildRequires: pkgconfig(xcb-glx) >= 1.8.1 | |
55 | BuildRequires: pkgconfig(xcb-present) >= 1.13 | |
56 | BuildRequires: pkgconfig(xcb-randr) >= 1.12 | |
57 | BuildRequires: python3 >= 1:3.2 | |
58 | BuildRequires: python3-Mako >= 0.8.0 | |
59 | BuildRequires: rpmbuild(macros) >= 2.007 | |
60 | BuildRequires: sed >= 4.0 | |
61 | BuildRequires: xorg-lib-libX11-devel | |
62 | BuildRequires: xorg-lib-libXext-devel >= 1.0.5 | |
63 | BuildRequires: xorg-lib-libXfixes-devel >= 2.0 | |
64 | BuildRequires: xorg-lib-libXrandr-devel >= 1.3 | |
65 | BuildRequires: xorg-lib-libXv-devel | |
66 | BuildRequires: xorg-lib-libXxf86vm-devel | |
67 | BuildRequires: xorg-lib-libxshmfence-devel >= 1.1 | |
68 | BuildRequires: xorg-proto-dri2proto-devel >= %{dri2proto_ver} | |
69 | BuildRequires: xorg-proto-glproto-devel >= %{glproto_ver} | |
70 | BuildRequires: zlib-devel >= %{zlib_ver} | |
71 | BuildRequires: zstd-devel | |
72 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
73 | ||
74 | # _glapi_tls_Dispatch is defined in libglapi, but it's some kind of symbol ldd -r doesn't notice(?) | |
75 | %define skip_post_check_so libGL.so.1.* libGLX_mesa.so.0.* | |
76 | ||
77 | %description | |
78 | Mesa is a 3-D graphics library with an API which is very similar to | |
79 | that of OpenGL(R). To the extent that Mesa utilizes the OpenGL command | |
80 | syntax or state machine, it is being used with authorization from | |
81 | Silicon Graphics, Inc. However, the author does not possess an OpenGL | |
82 | license from SGI, and makes no claim that Mesa is in any way a | |
83 | compatible replacement for OpenGL or associated with SGI. | |
84 | ||
85 | %description -l pl.UTF-8 | |
86 | Mesa jest biblioteką grafiki 3D z API bardzo podobnym do OpenGL(R). Do | |
87 | tego stopnia, że Mesa używa składni i automatu OpenGL jest używana z | |
88 | autoryzacją Silicon Graphics, Inc. Jednak autor nie posiada licencji | |
89 | OpenGL od SGI i nie twierdzi, że Mesa jest kompatybilnym zamiennikiem | |
90 | OpenGL ani powiązana z SGI. | |
91 | ||
92 | %package libGL | |
93 | Summary: Free Mesa3D implementation of libGL OpenGL library | |
94 | Summary(pl.UTF-8): Wolnodostępna implementacja Mesa3D biblioteki libGL ze standardu OpenGL | |
95 | License: MIT | |
96 | Group: X11/Libraries | |
97 | Requires: %{name}-libglapi = %{version}-%{release} | |
98 | Requires: libdrm >= %{libdrm_ver} | |
99 | Requires: libxcb >= 1.13 | |
100 | Requires: libglvnd-libGL >= %{libglvnd_ver} | |
101 | Provides: OpenGL = 4.6 | |
102 | Provides: OpenGL-GLX = 1.4 | |
103 | Obsoletes: Mesa < 6.4-2 | |
104 | Obsoletes: Mesa-dri < 6.4.1-3 | |
105 | Obsoletes: Mesa-dri-core < 10.0.0 | |
106 | Obsoletes: X11-OpenGL-libGL < 1:7.0.0 | |
107 | Obsoletes: XFree86-OpenGL-libGL < 1:7.0.0 | |
108 | ||
109 | %description libGL | |
110 | Mesa is a 3-D graphics library with an API which is very similar to | |
111 | that of OpenGL(R). To the extent that Mesa utilizes the OpenGL command | |
112 | syntax or state machine, it is being used with authorization from | |
113 | Silicon Graphics, Inc. However, the author does not possess an OpenGL | |
114 | license from SGI, and makes no claim that Mesa is in any way a | |
115 | compatible replacement for OpenGL or associated with SGI. | |
116 | ||
117 | This package contains libGL which implements OpenGL 4.6 and GLX 1.4 | |
118 | specifications. It uses DRI for rendering. | |
119 | ||
120 | %description libGL -l pl.UTF-8 | |
121 | Mesa jest biblioteką grafiki 3D z API bardzo podobnym do OpenGL(R). Do | |
122 | tego stopnia, że Mesa używa składni i automatu OpenGL jest używana z | |
123 | autoryzacją Silicon Graphics, Inc. Jednak autor nie posiada licencji | |
124 | OpenGL od SGI i nie twierdzi, że Mesa jest kompatybilnym zamiennikiem | |
125 | OpenGL ani powiązana z SGI. | |
126 | ||
127 | Ten pakiet zawiera libGL implementującą specyfikacje OpenGL 4.6 oraz | |
128 | GLX 1.4. Używa DRI do renderowania. | |
129 | ||
130 | %package libGL-devel | |
131 | Summary: Header files for Mesa3D libGL library | |
132 | Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libGL z projektu Mesa3D | |
133 | License: MIT | |
134 | Group: X11/Development/Libraries | |
135 | Requires: libglvnd-libGL-devel >= %{libglvnd_ver} | |
136 | Suggests: OpenGL-doc-man | |
137 | Obsoletes: Mesa-devel < 6.4-2 | |
138 | Obsoletes: Mesa-libGL-static < 18.3 | |
139 | Obsoletes: Mesa-static < 6.4-2 | |
140 | Obsoletes: X11-OpenGL-devel < 1:7.0.0 | |
141 | Obsoletes: X11-OpenGL-devel-base < 1:7.0.0 | |
142 | Obsoletes: X11-OpenGL-static < 1:7.0.0 | |
143 | Obsoletes: XFree86-OpenGL-devel < 1:7.0.0 | |
144 | Obsoletes: XFree86-OpenGL-devel-base < 1:7.0.0 | |
145 | Obsoletes: XFree86-OpenGL-static < 1:7.0.0 | |
146 | ||
147 | %description libGL-devel | |
148 | Header files for Mesa3D libGL library. | |
149 | ||
150 | %description libGL-devel -l pl.UTF-8 | |
151 | Pliki nagłówkowe biblioteki libGL z projektu Mesa3D. | |
152 | ||
153 | %package libglapi | |
154 | Summary: Mesa GL API shared library | |
155 | Summary(pl.UTF-8): Biblioteka współdzielona Mesa GL API | |
156 | Group: Libraries | |
157 | Conflicts: Mesa-libEGL < 8.0.1-2 | |
158 | ||
159 | %description libglapi | |
160 | Mesa GL API shared library, common for various APIs (EGL, GL, GLES). | |
161 | ||
162 | %description libglapi -l pl.UTF-8 | |
163 | Biblioteka współdzielona Mesa GL API, wspólna dla różnych API (EGL, | |
164 | GL, GLES). | |
165 | ||
166 | %package khrplatform-devel | |
167 | Summary: Khronos platform header file | |
168 | Summary(pl.UTF-8): Plik nagłówkowy platformy Khronos | |
169 | Group: Development/Libraries | |
170 | Provides: khrplatform-devel | |
171 | Conflicts: Mesa-libEGL-devel < 8.0.1-2 | |
172 | ||
173 | %description khrplatform-devel | |
174 | Khronos platform header file. | |
175 | ||
176 | %description khrplatform-devel -l pl.UTF-8 | |
177 | Plik nagłówkowy platformy Khronos. | |
178 | ||
179 | %package dri-devel | |
180 | Summary: Direct Rendering Infrastructure interface header file | |
181 | Summary(pl.UTF-8): Plik nagłówkowy interfejsu DRI (Direct Rendering Infrastructure) | |
182 | Group: Development/Libraries | |
183 | Requires: libdrm-devel >= %{libdrm_ver} | |
184 | # <GL/gl.h> | |
185 | Requires: libglvnd-libGL-devel >= %{libglvnd_ver} | |
186 | Conflicts: Mesa-libGL-devel < 21.1.0-2 | |
187 | ||
188 | %description dri-devel | |
189 | Direct Rendering Infrastructure interface header file. | |
190 | ||
191 | %description dri-devel -l pl.UTF-8 | |
192 | Plik nagłówkowy interfejsu DRI (Direct Rendering Infrastructure). | |
193 | ||
194 | %package -n Mesa-dri-driver-ati-radeon-R100 | |
195 | Summary: X.org DRI driver for ATI R100 card family | |
196 | Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI R100 | |
197 | License: MIT | |
198 | Group: X11/Libraries | |
199 | Requires: zlib >= %{zlib_ver} | |
200 | Suggests: xorg-driver-video-amdgpu | |
201 | Suggests: xorg-driver-video-ati | |
202 | Obsoletes: X11-driver-radeon-dri < 1:7.0.0 | |
203 | Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver} | |
204 | Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver} | |
205 | ||
206 | %description -n Mesa-dri-driver-ati-radeon-R100 | |
207 | X.org DRI driver for ATI R100 card family (Radeon 7000-7500). It | |
208 | supports R100, RV100, RS100, RV200, RS200, RS250. | |
209 | ||
210 | %description -n Mesa-dri-driver-ati-radeon-R100 -l pl.UTF-8 | |
211 | Sterownik X.org DRI dla rodziny kart ATI R100 (Radeon 7000-7500). | |
212 | Obsługuje układy R100, RV100, RS100, RV200, RS200, RS250. | |
213 | ||
214 | %package -n Mesa-dri-driver-ati-radeon-R200 | |
215 | Summary: X.org DRI driver for ATI R200 card family | |
216 | Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI R200 | |
217 | License: MIT | |
218 | Group: X11/Libraries | |
219 | Requires: zlib >= %{zlib_ver} | |
220 | Suggests: xorg-driver-video-amdgpu | |
221 | Suggests: xorg-driver-video-ati | |
222 | Obsoletes: X11-driver-radeon-dri < 1:7.0.0 | |
223 | Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver} | |
224 | Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver} | |
225 | ||
226 | %description -n Mesa-dri-driver-ati-radeon-R200 | |
227 | X.org DRI driver for ATI R200 card family (Radeon 8500-92xx). It | |
228 | supports R200, RV250, RV280, RS300, RS350 chips. | |
229 | ||
230 | %description -n Mesa-dri-driver-ati-radeon-R200 -l pl.UTF-8 | |
231 | Sterownik X.org DRI dla rodziny kart ATI R200 (Radeon 8500-92xx). | |
232 | Obsługuje układy R200, RV250, RV280, RS300, RS350. | |
233 | ||
234 | %package -n Mesa-dri-driver-intel-i915 | |
235 | Summary: X.org DRI driver for Intel i915 card family | |
236 | Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart Intel i915 | |
237 | License: MIT | |
238 | Group: X11/Libraries | |
239 | Requires: zlib >= %{zlib_ver} | |
240 | Obsoletes: Mesa-dri-driver-intel-i830 < 6.5 | |
241 | Obsoletes: X11-driver-i810-dri < 1:7.0.0 | |
242 | Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver} | |
243 | Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver} | |
244 | ||
245 | %description -n Mesa-dri-driver-intel-i915 | |
246 | X.org DRI driver for Intel i915 card family (830, 845, 852/855, 865, | |
247 | 915, 945, G33, Q33, Q35, Pineview). | |
248 | ||
249 | %description -n Mesa-dri-driver-intel-i915 -l pl.UTF-8 | |
250 | Sterownik X.org DRI dla rodziny kart Intel i915 (830, 845, 852/855, | |
251 | 865, 915, 945, G33, Q33, Q35, Pineview). | |
252 | ||
253 | %package -n Mesa-dri-driver-intel-i965 | |
254 | Summary: X.org DRI driver for Intel i965 card family | |
255 | Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart Intel i965 | |
256 | License: MIT | |
257 | Group: X11/Libraries | |
258 | Requires: zlib >= %{zlib_ver} | |
259 | Obsoletes: Mesa-dri-driver-intel-i830 < 6.5 | |
260 | Obsoletes: X11-driver-i810-dri < 1:7.0.0 | |
261 | Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver} | |
262 | Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver} | |
263 | ||
264 | %description -n Mesa-dri-driver-intel-i965 | |
265 | X.org (non-Gallium) DRI driver for Intel i965 card family (946GZ, | |
266 | 965G, 965Q, 965GM, 965GME, GM45, G41, B43, Q45/Q43, G45/G43, Ironlake, | |
267 | Sandybridge, Ivybridge, Haswell, Ray Trail, Broadwell, Cherrytrail, | |
268 | Braswell, Cherryview, Skylake, Broxton, Kabylake, Coffeelake, | |
269 | Geminilake, Whiskey Lake, Comet Lake, Cannonlake, Ice Lake, Elkhart | |
270 | Lake). | |
271 | ||
272 | %description -n Mesa-dri-driver-intel-i965 -l pl.UTF-8 | |
273 | Sterownik X.org DRI (nie Gallium) dla rodziny kart Intel i965 (946GZ, | |
274 | 965G, 965Q, 965GM, 965GME, GM45, G41, B43, Q45/Q43, G45/G43, Ironlake, | |
275 | Sandybridge, Ivybridge, Haswell, Ray Trail, Broadwell, Cherrytrail, | |
276 | Braswell, Cherryview, Skylake, Broxton, Kabylake, Coffeelake, | |
277 | Geminilake, Whiskey Lake, Comet Lake, Cannonlake, Ice Lake, Elkhart | |
278 | Lake). | |
279 | ||
280 | %package -n Mesa-dri-driver-nouveau | |
281 | Summary: X.org DRI driver for NVIDIA card family | |
282 | Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart NVIDIA | |
283 | License: MIT | |
284 | Group: X11/Libraries | |
285 | Requires: zlib >= %{zlib_ver} | |
286 | Suggests: xorg-driver-video-nouveau | |
287 | Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver} | |
288 | Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver} | |
289 | ||
290 | %description -n Mesa-dri-driver-nouveau | |
291 | X.org DRI drivers for NVIDIA card family. | |
292 | ||
293 | %description -n Mesa-dri-driver-nouveau -l pl.UTF-8 | |
294 | Sterowniki X.org DRI dla rodziny kart NVIDIA. | |
295 | ||
296 | %prep | |
297 | %setup -q -n mesa-mesa-%{version} | |
298 | ||
299 | %build | |
300 | dri_drivers="nouveau r100 r200 \ | |
301 | %ifarch %{ix86} %{x8664} x32 | |
302 | i965 i915 \ | |
303 | %endif | |
304 | " | |
305 | ||
306 | dri_drivers=$(echo $dri_drivers | xargs | tr ' ' ',') | |
307 | ||
308 | %meson build \ | |
309 | -Dplatforms=x11 \ | |
310 | -Ddri3=enabled \ | |
311 | -Ddri-drivers=${dri_drivers} \ | |
312 | -Ddri-drivers-path=%{_libdir}/xorg/modules/dri \ | |
313 | -Degl=disabled \ | |
314 | -Dgallium-drivers= \ | |
315 | -Dgbm=disabled \ | |
316 | -Dgles1=disabled \ | |
317 | -Dgles2=disabled \ | |
318 | -Dglvnd=true \ | |
319 | -Dlibunwind=enabled \ | |
320 | -Dosmesa=false \ | |
321 | -Dselinux=true \ | |
322 | -Dsse2=%{__true_false sse2} \ | |
323 | -Dvulkan-drivers= | |
324 | ||
325 | %ninja_build -C build | |
326 | ||
327 | %{?with_tests:%ninja_test -C build} | |
328 | ||
329 | %install | |
330 | rm -rf $RPM_BUILD_ROOT | |
331 | ||
332 | %ninja_install -C build | |
333 | ||
334 | # not used externally | |
335 | %{__rm} $RPM_BUILD_ROOT%{_libdir}/libglapi.so | |
336 | ||
337 | %clean | |
338 | rm -rf $RPM_BUILD_ROOT | |
339 | ||
340 | %post libGL -p /sbin/ldconfig | |
341 | %postun libGL -p /sbin/ldconfig | |
342 | ||
343 | %post libglapi -p /sbin/ldconfig | |
344 | %postun libglapi -p /sbin/ldconfig | |
345 | ||
346 | ### libraries | |
347 | ||
348 | %if 0 | |
349 | # see TODO question | |
350 | %files libGL | |
351 | %defattr(644,root,root,755) | |
352 | %doc docs/{*.rst,README.UVD,features.txt,relnotes/*.rst} | |
353 | %attr(755,root,root) %{_libdir}/libGLX_mesa.so.*.* | |
354 | %attr(755,root,root) %ghost %{_libdir}/libGLX_mesa.so.0 | |
355 | %attr(755,root,root) %{_libdir}/libGLX_mesa.so | |
356 | %{_datadir}/drirc.d | |
357 | ||
358 | %files libGL-devel | |
359 | %defattr(644,root,root,755) | |
360 | %doc docs/_extra/specs/* | |
361 | ||
362 | %files libglapi | |
363 | %defattr(644,root,root,755) | |
364 | %attr(755,root,root) %{_libdir}/libglapi.so.*.* | |
365 | %attr(755,root,root) %ghost %{_libdir}/libglapi.so.0 | |
366 | # libglapi-devel? nothing seems to need it atm. | |
367 | #%attr(755,root,root) %{_libdir}/libglapi.so | |
368 | ||
369 | %files dri-devel | |
370 | %defattr(644,root,root,755) | |
371 | %dir %{_includedir}/GL/internal | |
372 | %{_includedir}/GL/internal/dri_interface.h | |
373 | %{_pkgconfigdir}/dri.pc | |
374 | %endif | |
375 | ||
376 | ### drivers: dri | |
377 | ||
378 | %files -n Mesa-dri-driver-ati-radeon-R100 | |
379 | %defattr(644,root,root,755) | |
380 | %attr(755,root,root) %{_libdir}/xorg/modules/dri/radeon_dri.so | |
381 | ||
382 | %files -n Mesa-dri-driver-ati-radeon-R200 | |
383 | %defattr(644,root,root,755) | |
384 | %attr(755,root,root) %{_libdir}/xorg/modules/dri/r200_dri.so | |
385 | ||
386 | %ifarch %{ix86} %{x8664} x32 | |
387 | %files -n Mesa-dri-driver-intel-i915 | |
388 | %defattr(644,root,root,755) | |
389 | %attr(755,root,root) %{_libdir}/xorg/modules/dri/i830_dri.so | |
390 | %attr(755,root,root) %{_libdir}/xorg/modules/dri/i915_dri.so | |
391 | ||
392 | %files -n Mesa-dri-driver-intel-i965 | |
393 | %defattr(644,root,root,755) | |
394 | %attr(755,root,root) %{_libdir}/xorg/modules/dri/i965_dri.so | |
395 | %endif | |
396 | ||
397 | %files -n Mesa-dri-driver-nouveau | |
398 | %defattr(644,root,root,755) | |
399 | %attr(755,root,root) %{_libdir}/xorg/modules/dri/nouveau_vieux_dri.so |