Magellan Linux

Contents of /trunk/extras/mesa/mesa-19.2.1-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33147 - (show annotations) (download)
Fri Oct 18 21:48:09 2019 UTC (4 years, 7 months ago) by niro
File size: 12414 byte(s)
-support indirect rendering and fixed preinstall_mesa(): do not remove solib symlinks or libglvnd breaks, as the dev .so links are missing
1 # $Id$
2
3 PNAME="mesa"
4 PVER="19.2.1"
5 PBUILD="r2"
6
7 SPLIT_PACKAGES="mesa mesa-xa-tracker"
8 # dri
9 SPLIT_PACKAGES+=" mesa-dri-i915"
10 SPLIT_PACKAGES+=" mesa-dri-i965"
11 SPLIT_PACKAGES+=" mesa-dri-nouveau"
12 SPLIT_PACKAGES+=" mesa-dri-r100"
13 SPLIT_PACKAGES+=" mesa-dri-r200"
14 # gallium
15 SPLIT_PACKAGES+=" mesa-dri-r300"
16 SPLIT_PACKAGES+=" mesa-dri-r600"
17 SPLIT_PACKAGES+=" mesa-dri-radeonsi"
18 SPLIT_PACKAGES+=" mesa-dri-swrast"
19 SPLIT_PACKAGES+=" mesa-dri-svga"
20 SPLIT_PACKAGES+=" mesa-dri-virgl"
21 SPLIT_PACKAGES+=" mesa-dri-iris"
22 # vulkan
23 SPLIT_PACKAGES+=" mesa-vulkan-radeon"
24 SPLIT_PACKAGES+=" mesa-vulkan-intel"
25 # vdpau
26 SPLIT_PACKAGES+=" mesa-vdpau-nouveau"
27 SPLIT_PACKAGES+=" mesa-vdpau-r300"
28 SPLIT_PACKAGES+=" mesa-vdpau-r600"
29 SPLIT_PACKAGES+=" mesa-vdpau-radeonsi"
30 # vaapi
31 SPLIT_PACKAGES+=" mesa-vaapi-nouveau"
32 SPLIT_PACKAGES+=" mesa-vaapi-r600"
33 SPLIT_PACKAGES+=" mesa-vaapi-radeonsi"
34
35 PCAT="media-libs"
36 HOMEPAGE="http://mesa3d.sourceforge.net/"
37
38 # hardcoded llvm version for libxatracker
39 LLVM_PVER="9.0.0"
40
41 MESA_DEPEND=">= dev-libs/expat-2.2
42 >= dev-libs/libffi-3.2
43 >= x11-libs/libX11-1.6
44 >= x11-libs/libXext-1.3
45 >= x11-libs/libXxf86vm-1.1
46 >= x11-libs/libXi-1.7
47 >= x11-libs/libXmu-1.1
48 >= x11-libs/libXrandr-1.5
49 >= x11-libs/libdrm-2.4.100
50 >= x11-libs/libICE-1
51 >= x11-libs/libglvnd-1.2
52 >= x11-libs/libxcb-1.11
53 >= x11-libs/libXfixes-5
54 >= x11-libs/libXdamage-1
55 >= x11-libs/libvdpau-1.1
56 >= x11-libs/libva-1.8
57 >= x11-libs/libXvMC-1
58 >= x11-libs/libxshmfence-1.1
59 >= sys-libs/libstdc++-9.2
60 >= sys-fs/libudev-242
61 >= sys-libs/libelf-0.177"
62
63 XA_TRACKER_DEPEND=">= sys-libs/llvm-libs-${LLVM_PVER}"
64
65 SDEPEND="${MESA_DEPEND}
66 ${XA_TRACKER_DEPEND}
67 >= dev-util/pkgconfig-0.25
68 >= x11-libs/libXxf86vm-1.1
69 >= virtual/glproto
70 >= virtual/xf86driproto
71 >= virtual/dri2proto
72 >= virtual/dri3proto
73 >= virtual/presentproto
74 >= virtual/xf86vidmodeproto
75 >= dev-lang/python3-3.7
76 >= dev-python/python3-mako-1
77 >= sys-dev/llvm-${LLVM_PVER}"
78
79 sminclude multilib xorg mtools meson cleanutils
80 msetfeature "!check"
81
82 # must be set *after* the include of xorg!
83 SRCFILE="${PNAME}-${PVER/_/-}.tar.xz"
84 # libs SRCDIR
85 SRCDIR="${BUILDDIR}/${PNAME}-${PVER/_/-}"
86
87 SRC_URI=(
88 ftp://ftp.freedesktop.org/pub/mesa/${PVER%_*}/${SRCFILE}
89 ftp://ftp.freedesktop.org/pub/mesa/${SRCFILE}
90 mirror://${PNAME}/${SRCFILE}
91 )
92
93 UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | highesttarball xz"
94
95 split_info_mesa()
96 {
97 DESCRIPTION="Mesa3D OpenGL graphics library."
98 DEPEND="${MESA_DEPEND}"
99
100 PROVIDE="virtual/opengl"
101 }
102
103 split_info_mesa-xa-tracker()
104 {
105 DESCRIPTION="Mesa XA state tracker."
106 DEPEND="== media-libs/mesa-${PVER}
107 ${XA_TRACKER_DEPEND}"
108 }
109
110 split_info_mesa-dri-i915()
111 {
112 DESCRIPTION="Mesa Intel i915 DRI driver."
113 DEPEND="== ${PCAT}/mesa-${PVER}"
114 }
115
116 split_info_mesa-dri-i965()
117 {
118 DESCRIPTION="Mesa Intel i965 DRI driver."
119 DEPEND="== ${PCAT}/mesa-${PVER}"
120 }
121
122 split_info_mesa-dri-r200()
123 {
124 DESCRIPTION="Mesa AMD Radeon r200 DRI driver."
125 DEPEND="== ${PCAT}/mesa-${PVER}"
126 }
127
128 split_info_mesa-dri-r100()
129 {
130 DESCRIPTION="Mesa ATI Radeon generic DRI driver."
131 DEPEND="== ${PCAT}/mesa-${PVER}"
132 }
133
134 split_info_mesa-dri-nouveau()
135 {
136 DESCRIPTION="Mesa Nvidia Nouveau DRI and Gallium driver."
137 DEPEND="== ${PCAT}/mesa-${PVER}
138 == ${PCAT}/mesa-xa-tracker-${PVER}"
139 }
140
141 split_info_mesa-dri-r300()
142 {
143 DESCRIPTION="Mesa Ati Radeon r300 DRI (Gallium) driver."
144 DEPEND="== ${PCAT}/mesa-${PVER}
145 == ${PCAT}/mesa-xa-tracker-${PVER}"
146 }
147
148 split_info_mesa-dri-r600()
149 {
150 DESCRIPTION="Mesa Ati Radeon r600 DRI (Gallium) driver."
151 DEPEND="== ${PCAT}/mesa-${PVER}
152 == ${PCAT}/mesa-xa-tracker-${PVER}"
153 }
154
155 split_info_mesa-dri-radeonsi()
156 {
157 DESCRIPTION="Mesa AMD Radeon radeonsi DRI (Gallium) driver."
158 DEPEND="== ${PCAT}/mesa-${PVER}
159 == ${PCAT}/mesa-xa-tracker-${PVER}"
160 }
161
162 split_info_mesa-dri-swrast()
163 {
164 DESCRIPTION="Mesa Software Raster DRI (Gallium) driver."
165 DEPEND="== ${PCAT}/mesa-${PVER}
166 == ${PCAT}/mesa-xa-tracker-${PVER}"
167 }
168
169 split_info_mesa-dri-svga()
170 {
171 DESCRIPTION="Mesa Vmware svga DRI (Gallium) driver."
172 DEPEND="== ${PCAT}/mesa-${PVER}
173 == ${PCAT}/mesa-xa-tracker-${PVER}"
174 }
175
176 split_info_mesa-dri-virgl()
177 {
178 DESCRIPTION="Mesa VirtualGL DRI (Gallium) driver."
179 DEPEND="== ${PCAT}/mesa-${PVER}
180 == ${PCAT}/mesa-xa-tracker-${PVER}"
181 }
182
183 split_info_mesa-dri-iris()
184 {
185 DESCRIPTION="Mesa Intel Iris DRI (Gallium) driver."
186 DEPEND="== ${PCAT}/mesa-${PVER}
187 == ${PCAT}/mesa-xa-tracker-${PVER}"
188 }
189
190 split_info_mesa-vulkan-radeon()
191 {
192 DESCRIPTION="Mesa AMD Radeon Vulkan driver."
193 DEPEND="== ${PCAT}/mesa-${PVER}
194 == ${PCAT}/mesa-xa-tracker-${PVER}"
195 }
196
197 split_info_mesa-vulkan-intel()
198 {
199 DESCRIPTION="Mesa Intel Vulkan driver."
200 DEPEND="== ${PCAT}/mesa-${PVER}
201 == ${PCAT}/mesa-xa-tracker-${PVER}"
202 }
203
204 split_info_mesa-vdpau-nouveau()
205 {
206 DESCRIPTION="Mesa NVIDIA Nouveau VDPAU driver."
207 DEPEND="== ${PCAT}/mesa-${PVER}"
208 }
209
210 split_info_mesa-vdpau-r300()
211 {
212 DESCRIPTION="Mesa AMD Radeon r300 VDPAU driver."
213 DEPEND="== ${PCAT}/mesa-${PVER}"
214 }
215
216 split_info_mesa-vdpau-r600()
217 {
218 DESCRIPTION="Mesa AMD Radeon r600 VDPAU driver."
219 DEPEND="== ${PCAT}/mesa-${PVER}"
220 }
221
222 split_info_mesa-vdpau-radeonsi()
223 {
224 DESCRIPTION="Mesa AMD Radeon radeonsi VDPAU driver."
225 DEPEND="== ${PCAT}/mesa-${PVER}"
226 }
227
228 split_info_mesa-vaapi-nouveau()
229 {
230 DESCRIPTION="Mesa NVIDIA Nouveau VAAPI driver."
231 DEPEND="== ${PCAT}/mesa-${PVER}"
232 }
233
234 split_info_mesa-vaapi-r600()
235 {
236 DESCRIPTION="Mesa AMD Radeon r600 VAAPI driver."
237 DEPEND="== ${PCAT}/mesa-${PVER}"
238 }
239
240 split_info_mesa-vaapi-radeonsi()
241 {
242 DESCRIPTION="Mesa AMD Radeon radeonsi VAAPI driver."
243 DEPEND="== ${PCAT}/mesa-${PVER}"
244 }
245
246 install_dri_driver()
247 {
248 local drivers="$@"
249 local dri_drivers
250 local i
251
252 for i in ${drivers}
253 do
254 case ${driver} in
255 *) dri_drivers="${i}_dri.so" ;;
256 esac
257 done
258
259 DESTDIR=${BINDIR} mninja install || die
260 zapmost ${BINDIR} \
261 $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \
262 $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \
263 || die
264 }
265
266 install_vulkan_driver()
267 {
268 local driver="$1"
269 local vulkan_drivers
270
271 case ${driver} in
272 *) vulkan_drivers="libvulkan_${driver}.so" ;;
273 esac
274
275 DESTDIR=${BINDIR} mninja install || die
276 zapmost ${BINDIR} \
277 $(for i in ${vulkan_drivers}; do echo "usr/$(mlibdir)/${i}"; done) \
278 $([[ $(mlibdir) != lib ]] && for i in ${vulkan_drivers}; do echo "usr/lib/${i}"; done) \
279 usr/include/vulkan/vulkan_${driver}.h \
280 usr/share/vulkan/icd.d/${driver}_icd\*.json \
281 || die
282 }
283
284 install_vdpau_driver()
285 {
286 local driver="$1"
287
288 DESTDIR=${BINDIR} mninja install || die
289 zapmost ${BINDIR} usr/$(mlibdir)/vdpau/libvdpau_${driver}.* || die
290 if [[ $(mlibdir) != lib ]]
291 then
292 zapmost ${BINDIR} usr/lib/vdpau/libvdpau_${driver}.* || die
293 fi
294 }
295
296 install_vaapi_driver()
297 {
298 local driver="$1"
299 local vaapi_drivers
300
301 case ${driver} in
302 *) vaapi_drivers="${driver}_drv_video.so" ;;
303 esac
304
305 DESTDIR=${BINDIR} mninja install || die
306 zapmost ${BINDIR} \
307 $(for i in ${vaapi_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \
308 $([[ $(mlibdir) != lib ]] && for i in ${vaapi_drivers}; do echo "usr/lib/dri/${i}"; done) \
309 || die
310 }
311
312 src_prepare()
313 {
314 munpack ${SRCFILE} || die
315
316 # get rid of glut includes
317 all-abis rm -f include/GL/glut*h || die
318 }
319
320 src_compile()
321 {
322 MESA_DRI_DRIVERS="i915,i965,r100,r200,nouveau"
323 MESA_GALLIUM_DRIVERS+="swrast,nouveau,r300,r600,radeonsi,svga,virgl,iris"
324 MESA_VULKAN_DRIVERS+="amd,intel"
325
326 meson_configure \
327 $(meson_opt platforms x11,drm,surfaceless) \
328 $(meson_opt dri-drivers-path /usr/'$(mlibdir)'/dri) \
329 $(meson_opt dri-drivers ${MESA_DRI_DRIVERS}) \
330 $(meson_opt gallium-drivers ${MESA_GALLIUM_DRIVERS}) \
331 $(meson_opt vulkan-drivers ${MESA_VULKAN_DRIVERS}) \
332 $(meson_bool_false vulkan-overlay-layer) \
333 $(meson_bool_true b_ndebug) \
334 $(meson_opt glx dri) \
335 $(meson_bool_true shared-glapi) \
336 $(meson_bool_true dri3) \
337 $(meson_bool_true egl) \
338 $(meson_bool_true gles1) \
339 $(meson_bool_true gles2) \
340 $(meson_bool_true gbm) \
341 $(meson_opt osmesa gallium) \
342 $(meson_opt xa gallium-xa) \
343 $(meson_bool_true llvm) \
344 $(meson_bool_true gallium-va) \
345 $(meson_bool_true gallium-vdpau) \
346 $(meson_bool_true gallium-xvmc) \
347 $(meson_bool_true gallium-nine) \
348 $(meson_bool_true shared-llvm) \
349 $(meson_bool_true glvnd) \
350 || die
351
352 mninja || die
353 }
354
355 src_install_mesa()
356 {
357 DESTDIR=${BINDIR} mninja install || die
358
359 # remove all la files
360 find ${BINDIR} -name \*.la | xargs rm -fv
361
362 # export LIBGL_DRIVER_PATH location.
363 # we are using '/usr/lib/dri' as hardcoded location.
364 # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'
365 # LIBGL_DRIVER_PATH overwrites the hardcoded location and
366 # if nvidia or ati driver are installed
367 # the dri modules will never be found by libGL
368 # use "LIBGL_DEBUG=verbose glxinfo" to check this issue
369 for abi in ${MULTILIB_ABIS}
370 do
371 [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
372 [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
373 cd ${SRCDIR}-${abi}
374
375 minstalldir /etc/env.d || die
376 MCONFIG=/etc/env.d/09mesa-${abi}
377 mclearconfig || die
378 maddconfig "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" || die
379 done
380
381 # remove xa-tracker
382 mdelete /usr/$(mlibdir)/libxatracker.\* || die
383 if [[ $(mlibdir) != lib ]]
384 then
385 mdelete /usr/lib/libxatracker.\* || die
386 fi
387
388 # remove dri-drivers
389 mdelete /usr/$(mlibdir)/dri/\*_dri.so || die
390 if [[ $(mlibdir) != lib ]]
391 then
392 mdelete /usr/lib/dri/\*_dri.so || die
393 fi
394
395 # remove vdpau-drivers, they are in extra packages
396 mdelete -r /usr/$(mlibdir)/vdpau || die
397 if [[ $(mlibdir) != lib ]]
398 then
399 mdelete -r /usr/lib/vdpau || die
400 fi
401
402 # remove vaapi-drivers, they are in extra packages
403 mdelete /usr/$(mlibdir)/dri/\*_drv_video.so || die
404 if [[ $(mlibdir) != lib ]]
405 then
406 mdelete /usr/lib/dri/\*_drv_video.so || die
407 fi
408
409 # remove vulkan drivers, headers, configs
410 mdelete -r /usr/include/vulkan || die
411 mdelete -r /usr/share/vulkan || die
412 mdelete /usr/$(mlibdir)/libvulkan_\*.so || die
413
414 # support indirect rendering
415 mlink libGLX_mesa.so.0 /usr/$(mlibdir)/libGLX_indirect.so.0 || die
416 if [[ $(mlibdir) != lib ]]
417 then
418 mlink libGLX_mesa.so.0 /usr/lib/libGLX_indirect.so.0 || die
419 fi
420 }
421
422 src_install_mesa-xa-tracker()
423 {
424 DESTDIR=${BINDIR} mninja install || die
425
426 zapmost ${BINDIR} \
427 usr/$(mlibdir)/libxatracker.* \
428 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.*') \
429 || die
430 }
431
432 src_install_mesa-dri-i915()
433 {
434 install_dri_driver i915 || die
435 }
436
437 src_install_mesa-dri-i965()
438 {
439 install_dri_driver i965 || die
440 }
441
442 src_install_mesa-dri-nouveau()
443 {
444 install_dri_driver nouveau nouveau_vieux || die
445 }
446
447 src_install_mesa-dri-r200()
448 {
449 install_dri_driver r200 || die
450 }
451
452 src_install_mesa-dri-r100()
453 {
454 install_dri_driver radeon || die
455 }
456
457 src_install_mesa-dri-r300()
458 {
459 install_dri_driver r300 || die
460 }
461
462 src_install_mesa-dri-r600()
463 {
464 install_dri_driver r600 || die
465 }
466
467 src_install_mesa-dri-radeonsi()
468 {
469 install_dri_driver radeonsi || die
470 }
471
472 src_install_mesa-dri-swrast()
473 {
474 install_dri_driver swrast kms_swrast || die
475 }
476
477 src_install_mesa-dri-svga()
478 {
479 install_dri_driver vmwgfx || die
480 }
481
482 src_install_mesa-dri-virgl()
483 {
484 install_dri_driver virtio_gpu || die
485 }
486
487 src_install_mesa-dri-iris()
488 {
489 install_dri_driver iris || die
490 }
491
492 src_install_mesa-vulkan-radeon()
493 {
494 install_vulkan_driver radeon || die
495 }
496
497 src_install_mesa-vulkan-intel()
498 {
499 install_vulkan_driver intel || die
500 }
501
502 src_install_mesa-vdpau-nouveau()
503 {
504 install_vdpau_driver nouveau || die
505 }
506
507 src_install_mesa-vdpau-r300()
508 {
509 install_vdpau_driver r300 || die
510 }
511
512 src_install_mesa-vdpau-r600()
513 {
514 install_vdpau_driver r600 || die
515 }
516
517 src_install_mesa-vdpau-radeonsi()
518 {
519 install_vdpau_driver radeonsi || die
520 }
521
522 src_install_mesa-vaapi-nouveau()
523 {
524 install_vaapi_driver nouveau || die
525 }
526
527 src_install_mesa-vaapi-r600()
528 {
529 install_vaapi_driver r600 || die
530 }
531
532 src_install_mesa-vaapi-radeonsi()
533 {
534 install_vaapi_driver radeonsi || die
535 }
536
537 preinstall_mesa()
538 {
539 local i
540
541 # clean up deprecated dynamic opengl symlinks in favor of libglvnd
542 for i in GL/{gl,glx,glext,glxext}.h \
543 EGL/{eglextchromium,eglext,egl,eglmesaext,eglplatform}.h \
544 GLES/{egl,glextm,gl,glplatform}.h \
545 GLES2/{gl2ext,gl2,gl2platform}.h \
546 GLES3/{gl31,gl3ext,gl3,gl3platform}.h \
547 KHR/khrplatform.h
548 do
549 if [ -L ${MROOT}/usr/include/${i} ]
550 then
551 echo "pruning dynamic opengl symlink '${MROOT}/usr/include/${i}'"
552 rm ${MROOT}/usr/include/${i}
553 fi
554 done
555 }
556
557 postinstall_mesa()
558 {
559 echo "Searching deprecated package 'opengl-update'..."
560 if [[ ! -z $(magequery -n opengl-update) ]]
561 then
562 echo "Uninstalling deprecated package 'opengl-update'..."
563 mage uninstall opengl-update
564 fi
565 }