Magellan Linux

Contents of /smage/trunk/core/mesa/mesa-20.1.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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