Contents of /trunk/extras/mesa/mesa-19.2.1-r1.smage2
Parent Directory | Revision Log
Revision 33140 -
(show annotations)
(download)
Fri Oct 18 17:27:04 2019 UTC (4 years, 11 months ago) by niro
File size: 12612 byte(s)
Fri Oct 18 17:27:04 2019 UTC (4 years, 11 months ago) by niro
File size: 12612 byte(s)
-fixed vdpau installation
1 | # $Id$ |
2 | |
3 | PNAME="mesa" |
4 | PVER="19.2.1" |
5 | PBUILD="r1" |
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 | |
415 | src_install_mesa-xa-tracker() |
416 | { |
417 | DESTDIR=${BINDIR} mninja install || die |
418 | |
419 | zapmost ${BINDIR} \ |
420 | usr/$(mlibdir)/libxatracker.* \ |
421 | $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.*') \ |
422 | || die |
423 | } |
424 | |
425 | src_install_mesa-dri-i915() |
426 | { |
427 | install_dri_driver i915 || die |
428 | } |
429 | |
430 | src_install_mesa-dri-i965() |
431 | { |
432 | install_dri_driver i965 || die |
433 | } |
434 | |
435 | src_install_mesa-dri-nouveau() |
436 | { |
437 | install_dri_driver nouveau nouveau_vieux || die |
438 | } |
439 | |
440 | src_install_mesa-dri-r200() |
441 | { |
442 | install_dri_driver r200 || die |
443 | } |
444 | |
445 | src_install_mesa-dri-r100() |
446 | { |
447 | install_dri_driver radeon || die |
448 | } |
449 | |
450 | src_install_mesa-dri-r300() |
451 | { |
452 | install_dri_driver r300 || die |
453 | } |
454 | |
455 | src_install_mesa-dri-r600() |
456 | { |
457 | install_dri_driver r600 || die |
458 | } |
459 | |
460 | src_install_mesa-dri-radeonsi() |
461 | { |
462 | install_dri_driver radeonsi || die |
463 | } |
464 | |
465 | src_install_mesa-dri-swrast() |
466 | { |
467 | install_dri_driver swrast kms_swrast || die |
468 | } |
469 | |
470 | src_install_mesa-dri-svga() |
471 | { |
472 | install_dri_driver vmwgfx || die |
473 | } |
474 | |
475 | src_install_mesa-dri-virgl() |
476 | { |
477 | install_dri_driver virtio_gpu || die |
478 | } |
479 | |
480 | src_install_mesa-dri-iris() |
481 | { |
482 | install_dri_driver iris || die |
483 | } |
484 | |
485 | src_install_mesa-vulkan-radeon() |
486 | { |
487 | install_vulkan_driver radeon || die |
488 | } |
489 | |
490 | src_install_mesa-vulkan-intel() |
491 | { |
492 | install_vulkan_driver intel || die |
493 | } |
494 | |
495 | src_install_mesa-vdpau-nouveau() |
496 | { |
497 | install_vdpau_driver nouveau || die |
498 | } |
499 | |
500 | src_install_mesa-vdpau-r300() |
501 | { |
502 | install_vdpau_driver r300 || die |
503 | } |
504 | |
505 | src_install_mesa-vdpau-r600() |
506 | { |
507 | install_vdpau_driver r600 || die |
508 | } |
509 | |
510 | src_install_mesa-vdpau-radeonsi() |
511 | { |
512 | install_vdpau_driver radeonsi || die |
513 | } |
514 | |
515 | src_install_mesa-vaapi-nouveau() |
516 | { |
517 | install_vaapi_driver nouveau || die |
518 | } |
519 | |
520 | src_install_mesa-vaapi-r600() |
521 | { |
522 | install_vaapi_driver r600 || die |
523 | } |
524 | |
525 | src_install_mesa-vaapi-radeonsi() |
526 | { |
527 | install_vaapi_driver radeonsi || die |
528 | } |
529 | |
530 | preinstall_mesa() |
531 | { |
532 | local i |
533 | |
534 | # clean up deprecated dynamic opengl symlinks in favor of libglvnd |
535 | for i in GL/{gl,glx,glext,glxext}.h \ |
536 | EGL/{eglextchromium,eglext,egl,eglmesaext,eglplatform}.h \ |
537 | GLES/{egl,glextm,gl,glplatform}.h \ |
538 | GLES2/{gl2ext,gl2,gl2platform}.h \ |
539 | GLES3/{gl31,gl3ext,gl3,gl3platform}.h \ |
540 | KHR/khrplatform.h |
541 | do |
542 | if [ -L ${MROOT}/usr/include/${i} ] |
543 | then |
544 | echo "pruning dynamic opengl symlink '${MROOT}/usr/include/${i}'" |
545 | rm ${MROOT}/usr/include/${i} |
546 | fi |
547 | done |
548 | for i in lib{GL,GLESv1_CM,GLESv2,EGL}.so |
549 | do |
550 | if [ -L ${MROOT}/usr/$(mlibdir)/${i} ] |
551 | then |
552 | echo "pruning dynamic opengl symlink '${MROOT}/usr/$(mlibdir)/${i}'" |
553 | rm ${MROOT}/usr/$(mlibdir)/${i} |
554 | fi |
555 | if [[ $(mlibdir) != lib ]] |
556 | then |
557 | if [ -L ${MROOT}/usr/lib/${i} ] |
558 | then |
559 | echo "pruning dynamic opengl symlink '${MROOT}/usr/lib/${i}'" |
560 | rm ${MROOT}/usr/lib/${i} |
561 | fi |
562 | fi |
563 | done |
564 | } |
565 | |
566 | postinstall_mesa() |
567 | { |
568 | echo "Searching deprecated package 'opengl-update'..." |
569 | if [[ ! -z $(magequery -n opengl-update) ]] |
570 | then |
571 | echo "Uninstalling deprecated package 'opengl-update'..." |
572 | mage uninstall opengl-update |
573 | fi |
574 | } |