Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33140 - (show annotations) (download)
Fri Oct 18 17:27:04 2019 UTC (4 years, 6 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 }