Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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