--- smage/trunk/core/mesa/mesa-20.1.2-r1.smage2 2020/07/03 13:37:12 14164 +++ smage/trunk/core/mesa/mesa-20.1.2-r1.smage2 2020/07/06 07:50:15 14168 @@ -1,10 +1,61 @@ # $Id$ PNAME="mesa" -PVER="20.1.2" +PVER="19.2.2" PBUILD="r1" -SPLIT_PACKAGES="mesa-xa-tracker mesa mesa-dev" +# 1=enable mesa features +# 0=disable mesa features +ENABLE_VDPAU=0 +ENABLE_VAAPI=0 +ENABLE_XVMC=0 + +# 1=enable dev split packages +# 0=disable dev split packages +ENABLE_DEV_PACKAGES="1" + +SPLIT_PACKAGES="mesa" +if [[ ${ENABLE_DEV_PACKAGES} = 1 ]] +then + SPLIT_PACKAGES+=" mesa-dev" +fi +SPLIT_PACKAGES+=" mesa-xa-tracker" +if [[ ${ENABLE_DEV_PACKAGES} = 1 ]] +then + SPLIT_PACKAGES+=" mesa-xa-tracker-dev" +fi +# dri +SPLIT_PACKAGES+=" mesa-dri-i915" +SPLIT_PACKAGES+=" mesa-dri-i965" +SPLIT_PACKAGES+=" mesa-dri-nouveau" +SPLIT_PACKAGES+=" mesa-dri-r100" +SPLIT_PACKAGES+=" mesa-dri-r200" +# gallium +SPLIT_PACKAGES+=" mesa-dri-r300" +SPLIT_PACKAGES+=" mesa-dri-r600" +SPLIT_PACKAGES+=" mesa-dri-radeonsi" +SPLIT_PACKAGES+=" mesa-dri-swrast" +SPLIT_PACKAGES+=" mesa-dri-svga" +SPLIT_PACKAGES+=" mesa-dri-virgl" +SPLIT_PACKAGES+=" mesa-dri-iris" +# vulkan +SPLIT_PACKAGES+=" mesa-vulkan-radeon" +SPLIT_PACKAGES+=" mesa-vulkan-intel" +# vdpau +if [[ ${ENABLE_VDPAU} =1 ]] +then + SPLIT_PACKAGES+=" mesa-vdpau-nouveau" + SPLIT_PACKAGES+=" mesa-vdpau-r300" + SPLIT_PACKAGES+=" mesa-vdpau-r600" + SPLIT_PACKAGES+=" mesa-vdpau-radeonsi" +fi +# vaapi +if [[ ${ENABLE_VAAPI} = 1 ]] +then + SPLIT_PACKAGES+=" mesa-vaapi-nouveau" + SPLIT_PACKAGES+=" mesa-vaapi-r600" + SPLIT_PACKAGES+=" mesa-vaapi-radeonsi" +fi PCAT="media-libs" HOMEPAGE="http://mesa3d.sourceforge.net/" @@ -12,36 +63,49 @@ # hardcoded llvm version for libxatracker LLVM_PVER="10.0.0" -MESA_DEPEND=">= dev-libs/expat-2.1 +MESA_DEPEND=">= dev-libs/expat-2.2 >= dev-libs/libffi-3.3 >= x11-libs/libX11-1.6 >= x11-libs/libXext-1.3 >= x11-libs/libXxf86vm-1.1 >= x11-libs/libXi-1.7 >= x11-libs/libXmu-1.1 - >= x11-libs/libdrm-2.4.100 + >= x11-libs/libXrandr-1.5 + >= x11-libs/libdrm-2.4.102 >= x11-libs/libICE-1 - >= x11-base/opengl-update-2.3 + >= x11-libs/libglvnd-1.2 >= x11-libs/libxcb-1.14 >= x11-libs/libXfixes-5 >= x11-libs/libXdamage-1 >= x11-libs/libxshmfence-1.3 >= sys-libs/libstdc++-8.3 >= sys-fs/libudev-242 - >= sys-libs/libelf-0.176" -#>= x11-libs/libXvMC-1 -# >= x11-libs/libvdpau-1.1 -# >= x11-libs/libva-1.7 + >= sys-libs/libelf-0.179" +if [[ ${ENABLE_VDPAU} = 1 ]] +then + MESA_DEPEND="${MESA_DEPEND} + >= x11-libs/libvdpau-1.1" +fi +if [[ ${ENABLE_VAAPI} = 1 ]] +then + MESA_DEPEND="${MESA_DEPEND} + >= x11-libs/libva-1.8" +fi +if [[ ${ENABLE_XVMC} = 1 ]] +then + MESA_DEPEND="${MESA_DEPEND} + >= x11-libs/libXvMC-1" +fi # mesa-dev runtime deps -MESA_DEV_DEPEND=">= dev-libs/expat-dev-2.1 +MESA_DEV_DEPEND=">= dev-libs/expat-dev-2.2 >= dev-libs/libffi-dev-3.3 >= x11-libs/libX11-dev-1.6 >= x11-libs/libXext-dev-1.3 >= x11-libs/libXxf86vm-dev-1.1 >= x11-libs/libXi-dev-1.7 >= x11-libs/libXmu-dev-1.1 - >= x11-libs/libdrm-dev-2.4.100 + >= x11-libs/libdrm-dev-2.4.102 >= x11-libs/libICE-dev-1 >= x11-libs/libxcb-dev-1.14 >= x11-libs/libXfixes-dev-5 @@ -49,14 +113,28 @@ >= x11-libs/libxshmfence-dev-1.3 >= sys-libs/libstdc++-dev-8.3 >= sys-fs/libudev-dev-242 - >= sys-libs/libelf-dev-0.176" + >= sys-libs/libelf-dev-0.179" +if [[ ${ENABLE_VDPAU} = 1 ]] +then + MESA_DEPEND="${MESA_DEV_DEPEND} + >= x11-libs/libvdpau-dev-1.1" +fi +if [[ ${ENABLE_VAAPI} = 1 ]] +then + MESA_DEPEND="${MESA_DEV_DEPEND} + >= x11-libs/libva-dev-1.8" +fi +if [[ ${ENABLE_XVMC} = 1 ]] +then + MESA_DEPEND="${MESA_DEV_DEPEND} + >= x11-libs/libXvMC-dev-1" +fi XA_TRACKER_DEPEND=">= sys-libs/llvm-libs-${LLVM_PVER}" SDEPEND="${MESA_DEPEND} ${XA_TRACKER_DEPEND} >= dev-util/pkgconfig-0.25 - >= x11-misc/makedepend-1 >= x11-libs/libXxf86vm-1.1 >= virtual/glproto >= virtual/xf86driproto @@ -64,13 +142,11 @@ >= virtual/dri3proto >= virtual/presentproto >= virtual/xf86vidmodeproto - >= dev-lang/python-2.7 - >= sys-dev/llvm-${LLVM_PVER} - ${MESA_DEV_DEPEND}" - -# must be set before the include of multilib! -EMUL_LINUX_32=true -sminclude multilib xorg mtools mbuild cleanutils + >= dev-lang/python3-3.7 + >= dev-python/python3-mako-1 + >= sys-dev/llvm-${LLVM_PVER}" + +sminclude multilib xorg mtools meson cleanutils msetfeature "!check" # must be set *after* the include of xorg! @@ -78,1201 +154,501 @@ # libs SRCDIR SRCDIR="${BUILDDIR}/${PNAME}-${PVER/_/-}" -# known drivers: -# dri: dri-swrast,dri-i915,dri-i965,dri-r200,dri-radeon,dri-i810,dri-mach64,dri-mga, -# dri-r128,dri-r300,dri-r600,dri-savage,dri-sis,dri-tdfx,dri-unichrome -# gallium: gallium-i915,gallium-i965,gallium-r300,gallium-r600,gallium-vmwgfx,gallium-swrast,gallium-nouveau, gallium-radeonsi -MESA_DRIVERS="dri-swrast,dri-i915,dri-i965,dri-r200,dri-radeon,dri-nouveau" -MESA_DRIVERS+="," -MESA_DRIVERS+="gallium-i915,gallium-nouveau,gallium-r300,gallium-r600,gallium-radeonsi,gallium-vmwgfx,gallium-swrast" +SRC_URI=( + ftp://ftp.freedesktop.org/pub/mesa/${PVER%_*}/${SRCFILE} + ftp://ftp.freedesktop.org/pub/mesa/${SRCFILE} + mirror://${PNAME}/${SRCFILE} +) -# helper functions -driver_enabled() +UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | highesttarball xz" + +split_info_mesa() { - local driver="$1" + DESCRIPTION="Mesa3D OpenGL graphics library." + DEPEND="${MESA_DEPEND}" - if [[ ${MESA_DRIVERS//${driver}} != ${MESA_DRIVERS} ]] - then - return 0 - else - return 1 - fi + PROVIDE="virtual/opengl" } -add_dri_driver() +split_info_mesa-xa-tracker() { - local driver="$1" - - if [[ -z ${MESA_DRI_DRIVERS} ]] - then - MESA_DRI_DRIVERS="${driver}" - elif [[ ${MESA_DRI_DRIVERS//${driver}} = ${MESA_DRI_DRIVERS} ]] - then - MESA_DRI_DRIVERS+=",${driver}" - fi + DESCRIPTION="Mesa XA state tracker." + DEPEND="== media-libs/mesa-${PVER} + ${XA_TRACKER_DEPEND}" } -add_gallium_driver() +split_info_mesa-dri-i915() { - local driver="$1" - - if [[ -z ${MESA_GALLIUM_DRIVERS} ]] - then - MESA_GALLIUM_DRIVERS="${driver}" - elif [[ ${MESA_GALLIUM_DRIVERS//${driver}} = ${MESA_GALLIUM_DRIVERS} ]] - then - MESA_GALLIUM_DRIVERS+=",${driver}" - fi + DESCRIPTION="Mesa Intel i915 DRI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" } -install_dri_driver() +split_info_mesa-dri-i965() { - local driver="$1" - local dri_drivers - local i - - case ${driver} in - nouveau) dri_drivers="nouveau_vieux_dri.so" ;; - *) dri_drivers="${driver}_dri.so" ;; - esac - - # glapi install required beforehand - mmake -C src/mapi DESTDIR=${BINDIR} install || die - mmake -C src/mesa/drivers/dri DESTDIR=${BINDIR} install || die - zapmost ${BINDIR} \ - $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \ - $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \ - || die + DESCRIPTION="Mesa Intel i965 DRI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" } -install_gallium_driver() +split_info_mesa-dri-r200() { - local driver="$1" - local dri_drivers - - case ${driver} in - # honor kms-swrast - swrast) dri_drivers="swrast_dri.so kms_swrast_dri.so" ;; - *) dri_drivers="${driver}_dri.so" ;; - esac - - # glapi install required beforehand - mmake -C src/mapi DESTDIR=${BINDIR} install || die - mmake -C src/gallium/targets/dri DESTDIR=${BINDIR} install || die - zapmost ${BINDIR} \ - $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \ - $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \ - || die + DESCRIPTION="Mesa AMD Radeon r200 DRI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" } -install_gallium_pipe_driver() +split_info_mesa-dri-r100() { - local driver="$1" - -# not required anymore with 18.1.0 and higher -# # prereq - libllvmradeon${PVER}.so is needed to link the pipes -# mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} install || die - - mmake -C src/gallium/targets/pipe-loader DESTDIR=${BINDIR} install || die - zapmost ${BINDIR}/usr/$(mlibdir)/gallium-pipe pipe_${driver}.so || die - if [[ $(mlibdir) != lib ]] - then - zapmost ${BINDIR}/usr/lib/gallium-pipe pipe_${driver}.so || die - fi - -# not required anymore with 18.1.0 and higher -# # remove prereq libs -# mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} uninstall || die + DESCRIPTION="Mesa ATI Radeon generic DRI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" } -install_gallium_vdpau_driver() +split_info_mesa-dri-nouveau() { - local driver="$1" - - mmake -C src/gallium/targets/vdpau DESTDIR=${BINDIR} install || die - zapmost ${BINDIR}/usr/$(mlibdir)/vdpau libvdpau_${driver}.* || die - if [[ $(mlibdir) != lib ]] - then - zapmost ${BINDIR}/usr/lib/vdpau libvdpau_${driver}.* || die - fi + DESCRIPTION="Mesa Nvidia Nouveau DRI and Gallium driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" } -# setup_dynamic_dri $impl -# impl may be classic or gallium atm -setup_dynamic_dri() +split_info_mesa-dri-r300() { - local impl="$1" - local i - local abi - - [[ -z ${impl} ]] && die "missing dri implementation!" - case ${impl} in - classic|gallium) ;; - *) die "unkown dri implementation '${impl}'!" ;; - esac - - echo "settin up dynamic dri for a '${impl} implementation..." - if [[ -z ${MULTILIB_ABIS} ]] - then - minstalldir /usr/$(mlibdir)/mesa/${impl} || die - for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so - do - echo -n " processing ${i}:" - if [ -f ${i} -o -L ${i} ] - then - echo -n " moving" - mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}" - fi - done - else - for abi in ${MULTILIB_ABIS} - do - [[ ${abi} = m32 ]] && ABI_LIBDIR="lib" - [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64" - - minstalldir /usr/$(mlibdir)/mesa/${impl} || die - for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so - do - echo -n " processing ${i}" - if [ -f ${i} -o -L ${i} ] - then - echo -n " moving" - mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}" - fi - echo " done" - done - done - fi + DESCRIPTION="Mesa Ati Radeon r300 DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" } -SRC_URI=( - ftp://ftp.freedesktop.org/pub/mesa/${PVER%_*}/${SRCFILE} - ftp://ftp.freedesktop.org/pub/mesa/${SRCFILE} - mirror://${PNAME}/${SRCFILE} -) - -UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | highesttarball xz" -#UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | grep '/[0-9].*' | sed 's:.*/\(.*\)/:\1:' | upsort_pipe" - -split_info_mesa() +split_info_mesa-dri-r600() { - DESCRIPTION="Mesa3D OpenGL graphics library." - DEPEND="${MESA_DEPEND}" - - PROVIDE="virtual/opengl" + DESCRIPTION="Mesa Ati Radeon r600 DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" } -split_info_mesa-dev() +split_info_mesa-dri-radeonsi() { - DESCRIPTION="Dev package for mesa" - DEPEND="== media-libs/mesa-${PVER} - ${MESA_DEV_DEPEND}" - - PROVIDE="virtual/opengl-dev" + DESCRIPTION="Mesa AMD Radeon radeonsi DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" } -split_info_mesa-xa-tracker() +split_info_mesa-dri-swrast() { - DESCRIPTION="Mesa XA state tracker." - DEPEND="== media-libs/mesa-${PVER} - ${XA_TRACKER_DEPEND}" + DESCRIPTION="Mesa Software Raster DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" } -if driver_enabled dri-swrast -then - SPLIT_PACKAGES+=" mesa-dri-swrast" - add_dri_driver swrast - - split_info_mesa-dri-swrast() - { - DESCRIPTION="Mesa Software Raster DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-i810 -then - SPLIT_PACKAGES+=" mesa-dri-i810" - add_dri_driver i810 - - split_info_mesa-dri-i810() - { - DESCRIPTION="Mesa Intel i810 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-i915 -then - SPLIT_PACKAGES+=" mesa-dri-i915" - add_dri_driver i915 - - split_info_mesa-dri-i915() - { - DESCRIPTION="Mesa Intel i915 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-i965 -then - SPLIT_PACKAGES+=" mesa-dri-i965" - add_dri_driver i965 - - split_info_mesa-dri-i965() - { - DESCRIPTION="Mesa Intel i965 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-mach64 -then - SPLIT_PACKAGES+=" mesa-dri-mach64" - add_dri_driver mach64 - - split_info_mesa-dri-mach64() - { - DESCRIPTION="Mesa ATI mach64 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-mga -then - SPLIT_PACKAGES+=" mesa-dri-mga" - add_dri_driver mga - - split_info_mesa-dri-mga() - { - DESCRIPTION="Mesa Matrox mga DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-nouveau -then - SPLIT_PACKAGES+=" mesa-dri-nouveau" - add_dri_driver nouveau - - split_info_mesa-dri-nouveau() - { - DESCRIPTION="Mesa Nvidia Nouveau DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-r128 -then - SPLIT_PACKAGES+=" mesa-dri-r128" - add_dri_driver r128 - - split_info_mesa-dri-r128() - { - DESCRIPTION="Mesa ATI Rage128 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-r200 -then - SPLIT_PACKAGES+=" mesa-dri-r200" - add_dri_driver r200 - - split_info_mesa-dri-r200() - { - DESCRIPTION="Mesa ATI Radeon r200 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-r300 -then - SPLIT_PACKAGES+=" mesa-dri-r300" - add_dri_driver r300 - - split_info_mesa-dri-r300() - { - DESCRIPTION="Mesa ATI Radeon r300 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-r600 -then - SPLIT_PACKAGES+=" mesa-dri-r600" - add_dri_driver r600 - - split_info_mesa-dri-r600() - { - DESCRIPTION="Mesa ATI Radeon r600 DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-radeon -then - SPLIT_PACKAGES+=" mesa-dri-radeon" - add_dri_driver radeon - - split_info_mesa-dri-radeon() - { - DESCRIPTION="Mesa ATI Radeon generic DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi - -if driver_enabled dri-savage -then - SPLIT_PACKAGES+=" mesa-dri-savage" - add_dri_driver savage - - split_info_mesa-dri-savage() - { - DESCRIPTION="Mesa S3 Savage DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi +split_info_mesa-dri-svga() +{ + DESCRIPTION="Mesa Vmware svga DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" +} -if driver_enabled dri-sis -then - SPLIT_PACKAGES+=" mesa-dri-sis" - add_dri_driver sis +split_info_mesa-dri-virgl() +{ + DESCRIPTION="Mesa VirtualGL DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" +} - split_info_mesa-dri-sis() - { - DESCRIPTION="Mesa SIS generic DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi +split_info_mesa-dri-iris() +{ + DESCRIPTION="Mesa Intel Iris DRI (Gallium) driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" +} -if driver_enabled dri-tdfx -then - SPLIT_PACKAGES+=" mesa-dri-tdfx" - add_dri_driver tdfx +split_info_mesa-vulkan-radeon() +{ + DESCRIPTION="Mesa AMD Radeon Vulkan driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" +} - split_info_mesa-dri-tdfx() - { - DESCRIPTION="Mesa 3DFX Voodoo DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi +split_info_mesa-vulkan-intel() +{ + DESCRIPTION="Mesa Intel Vulkan driver." + DEPEND="== ${PCAT}/mesa-${PVER} + == ${PCAT}/mesa-xa-tracker-${PVER}" +} -if driver_enabled dri-unichrome -then - SPLIT_PACKAGES+=" mesa-dri-unichrome" - add_dri_driver unichrome +split_info_mesa-vdpau-nouveau() +{ + DESCRIPTION="Mesa NVIDIA Nouveau VDPAU driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} - split_info_mesa-dri-unichrome() - { - DESCRIPTION="Mesa VIA Chrome DRI driver." - DEPEND="== ${PCAT}/mesa-${PVER}" - } -fi +split_info_mesa-vdpau-r300() +{ + DESCRIPTION="Mesa AMD Radeon r300 VDPAU driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} -if driver_enabled gallium-i915 -then - SPLIT_PACKAGES+=" mesa-gallium-i915" - add_gallium_driver i915 +split_info_mesa-vdpau-r600() +{ + DESCRIPTION="Mesa AMD Radeon r600 VDPAU driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} - split_info_mesa-gallium-i915() - { - DESCRIPTION="Mesa Intel i915 Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi +split_info_mesa-vdpau-radeonsi() +{ + DESCRIPTION="Mesa AMD Radeon radeonsi VDPAU driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} -if driver_enabled gallium-i965 -then - SPLIT_PACKAGES+=" mesa-gallium-i965" - add_gallium_driver i965 +split_info_mesa-vaapi-nouveau() +{ + DESCRIPTION="Mesa NVIDIA Nouveau VAAPI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} - split_info_mesa-gallium-i965() - { - DESCRIPTION="Mesa Intel i965 Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi +split_info_mesa-vaapi-r600() +{ + DESCRIPTION="Mesa AMD Radeon r600 VAAPI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} -if driver_enabled gallium-nouveau -then - SPLIT_PACKAGES+=" mesa-gallium-nouveau" - add_gallium_driver nouveau +split_info_mesa-vaapi-radeonsi() +{ + DESCRIPTION="Mesa AMD Radeon radeonsi VAAPI driver." + DEPEND="== ${PCAT}/mesa-${PVER}" +} - split_info_mesa-gallium-nouveau() - { - DESCRIPTION="Mesa Nvidia Nouveau Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi +install_dri_driver() +{ + local drivers="$@" + local dri_drivers + local i -if driver_enabled gallium-r300 -then - SPLIT_PACKAGES+=" mesa-gallium-r300" - add_gallium_driver r300 + for i in ${drivers} + do + case ${driver} in + *) dri_drivers="${i}_dri.so" ;; + esac + done - split_info_mesa-gallium-r300() - { - DESCRIPTION="Mesa Ati Radeon r300 Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi + DESTDIR=${BINDIR} mninja install || die + zapmost ${BINDIR} \ + $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \ + $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \ + || die +} -if driver_enabled gallium-r600 -then - SPLIT_PACKAGES+=" mesa-gallium-r600" - add_gallium_driver r600 +install_vulkan_driver() +{ + local driver="$1" + local vulkan_drivers - split_info_mesa-gallium-r600() - { - DESCRIPTION="Mesa Ati Radeon r600 Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi + case ${driver} in + *) vulkan_drivers="libvulkan_${driver}.so" ;; + esac -if driver_enabled gallium-radeonsi -then - SPLIT_PACKAGES+=" mesa-gallium-radeonsi" - add_gallium_driver radeonsi + DESTDIR=${BINDIR} mninja install || die + zapmost ${BINDIR} \ + $(for i in ${vulkan_drivers}; do echo "usr/$(mlibdir)/${i}"; done) \ + $([[ $(mlibdir) != lib ]] && for i in ${vulkan_drivers}; do echo "usr/lib/${i}"; done) \ + usr/include/vulkan/vulkan_${driver}.h \ + usr/share/vulkan/icd.d/${driver}_icd\*.json \ + || die +} - split_info_mesa-gallium-radeonsi() - { - DESCRIPTION="Mesa Ati Radeon radeonsi Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi +install_vdpau_driver() +{ + local driver="$1" -if driver_enabled gallium-swrast -then - SPLIT_PACKAGES+=" mesa-gallium-swrast" - add_gallium_driver swrast + DESTDIR=${BINDIR} mninja install || die + zapmost ${BINDIR} usr/$(mlibdir)/vdpau/libvdpau_${driver}.* || die + if [[ $(mlibdir) != lib ]] + then + zapmost ${BINDIR} usr/lib/vdpau/libvdpau_${driver}.* || die + fi +} - split_info_mesa-gallium-swrast() - { - DESCRIPTION="Mesa Software Raster Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi +install_vaapi_driver() +{ + local driver="$1" + local vaapi_drivers -if driver_enabled gallium-vmwgfx -then - SPLIT_PACKAGES+=" mesa-gallium-vmwgfx" - add_gallium_driver svga + case ${driver} in + *) vaapi_drivers="${driver}_drv_video.so" ;; + esac - split_info_mesa-gallium-vmwgfx() - { - DESCRIPTION="Mesa Vmware generic Gallium driver." - DEPEND="== ${PCAT}/mesa-${PVER} - == ${PCAT}/mesa-xa-tracker-${PVER}" - } -fi + DESTDIR=${BINDIR} mninja install || die + zapmost ${BINDIR} \ + $(for i in ${vaapi_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \ + $([[ $(mlibdir) != lib ]] && for i in ${vaapi_drivers}; do echo "usr/lib/dri/${i}"; done) \ + || die +} src_prepare() { munpack ${SRCFILE} || die - # no debug code in the drives (gentoo) - all-abis 'find src/mesa/drivers/dri -name *.[hc] -exec egrep -l "\#define\W+DO_DEBUG\W+1" {} \; | xargs --no-run-if-empty sed -i -re "s/\#define\W+DO_DEBUG\W+1/\#define DO_DEBUG 0/" ;' - # get rid of glut includes all-abis rm -f include/GL/glut*h || die - - # fix an error in the libva detection -# all-abis 'sed -i "s:libva = 0.31.1:libva >= 0.31.1:" configure.ac' || die - - mautoreconf || die } src_compile() { - # build without rtti and exeptions, fixes issues with llvm as well - export CXXFLAGS="${CXXFLAGS} -fno-rtti -fno-exceptions -DNDEBUG" + local myconf - # texture-float has patent issues in non european contries - # disable this feature if this legal concern is affected - local myconf="--enable-texture-float" - - mconfigure \ - --with-dri-driverdir=/usr/'$(mlibdir)'/dri \ - --with-dri-drivers=${MESA_DRI_DRIVERS} \ - --with-gallium-drivers=${MESA_GALLIUM_DRIVERS} \ - --with-egl-platforms=x11,drm \ - --disable-debug \ - --enable-glx-tls \ - --enable-asm \ - --enable-shared-glapi \ - --enable-egl \ - --enable-gles1 \ - --enable-gles2 \ - --enable-gbm \ - --enable-osmesa \ - --enable-xa \ - --enable-gallium-egl \ - --enable-gallium-llvm \ - --disable-vdpau \ - --enable-llvm-shared-libs \ - ${myconf} \ - || die -# --enable-va \ + MESA_DRI_DRIVERS="i915,i965,r100,r200,nouveau" + MESA_GALLIUM_DRIVERS+="swrast,nouveau,r300,r600,radeonsi,svga,virgl,iris" + MESA_VULKAN_DRIVERS+="amd,intel" -# # only build software renderer on multilib arches for 32Bit -# if [[ ${ARCH} = x86_64 ]] -# then -# only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die -# fi + if [[ ${ENABLE_VDPAU} = 1 ]] + then + myopts=" $(meson_bool_true gallium-vdpau)" + else + myopts=" $(meson_bool_false gallium-vdpau)" + fi + if [[ ${ENABLE_VAAPI} = 1 ]] + then + myopts=" $(meson_bool_true gallium-va)" + else + myopts=" $(meson_bool_false gallium-va)" + fi + if [[ ${ENABLE_XVMC} = 1 ]] + then + myopts=" $(meson_bool_true gallium-xvmc)" + else + myopts=" $(meson_bool_false gallium-xvmc)" + fi - mmake -j1 || die + meson_configure \ + $(meson_opt platforms x11,drm,surfaceless) \ + $(meson_opt dri-drivers-path /usr/'$(mlibdir)'/dri) \ + $(meson_opt dri-drivers ${MESA_DRI_DRIVERS}) \ + $(meson_opt gallium-drivers ${MESA_GALLIUM_DRIVERS}) \ + $(meson_opt vulkan-drivers ${MESA_VULKAN_DRIVERS}) \ + $(meson_bool_false vulkan-overlay-layer) \ + $(meson_bool_true b_ndebug) \ + $(meson_opt glx dri) \ + $(meson_bool_true shared-glapi) \ + $(meson_bool_true dri3) \ + $(meson_bool_true egl) \ + $(meson_bool_true gles1) \ + $(meson_bool_true gles2) \ + $(meson_bool_true gbm) \ + $(meson_opt osmesa gallium) \ + $(meson_opt xa gallium-xa) \ + $(meson_bool_true llvm) \ + $(meson_bool_true gallium-nine) \ + $(meson_bool_true shared-llvm) \ + $(meson_bool_true glvnd) \ + ${myopts} \ + || die + + mninja || die } src_install_mesa() { - mmake DESTDIR=${BINDIR} install || die + DESTDIR=${BINDIR} mninja install || die # remove all la files find ${BINDIR} -name \*.la | xargs rm -fv - # setup included for dynamic opengl - # only target arch needed on multilib systems + # export LIBGL_DRIVER_PATH location. + # we are using '/usr/lib/dri' as hardcoded location. + # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri' + # LIBGL_DRIVER_PATH overwrites the hardcoded location and + # if nvidia or ati driver are installed + # the dri modules will never be found by libGL + # use "LIBGL_DEBUG=verbose glxinfo" to check this issue for abi in ${MULTILIB_ABIS} do [[ ${abi} = m32 ]] && ABI_LIBDIR="lib" [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64" cd ${SRCDIR}-${abi} - # setup dynamic opengl - minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die - minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die - - local x - for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.so.* - do - if [ -f ${x} -o -L ${x} ] - then - mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}" - fi - done - - # export LIBGL_DRIVER_PATH location. - # we are using '/usr/lib/dri' as hardcoded location. - # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri' - # LIBGL_DRIVER_PATH overwrites the hardcoded location and - # if nvidia or ati driver are installed - # the dri modules will never be found by libGL - # use "LIBGL_DEBUG=verbose glxinfo" to check this issue minstalldir /etc/env.d || die MCONFIG=/etc/env.d/09mesa-${abi} mclearconfig || die maddconfig "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" || die - - # remove dri-drivers, they are in extra packages - rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die - # remove vdpau-drivers, they are in extra packages -# rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die - # remove gbm-pipes, they are in extra packages -# rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die done - zapmost ${BINDIR} \ - usr/$(mlibdir)/*.so.* \ - $([[ $(mlibdir) != lib ]] && echo 'usr/lib/*.so.*') \ - usr/$(mlibdir)/dri \ - $([[ $(mlibdir) != lib ]] && echo 'usr/lib/dri') \ - usr/$(mlibdir)/opengl \ - $([[ $(mlibdir) != lib ]] && echo 'usr/lib/opengl') \ - || die -# usr/$(mlibdir)/egl \ -# $([[ $(mlibdir) != lib ]] && echo 'usr/lib/egl') - # remove xa-tracker mdelete /usr/$(mlibdir)/libxatracker.\* || die if [[ $(mlibdir) != lib ]] then mdelete /usr/lib/libxatracker.\* || die fi -} -src_install_mesa-dev() -{ - mmake DESTDIR=${BINDIR} install || die - - # remove all la files - find ${BINDIR} -name \*.la | xargs rm -fv + # remove dri-drivers + mdelete /usr/$(mlibdir)/dri/\*_dri.so || die + if [[ $(mlibdir) != lib ]] + then + mdelete /usr/lib/dri/\*_dri.so || die + fi - # setup included for dynamic opengl - # only target arch needed on multilib systems - minstalldir /usr/$(mlibdir)/opengl/xorg/include/GL || die - for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h} - do - if [ -f ${x} -o -L ${x} ] - then - mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include/GL || die "${x}" - fi - done - for x in ${BINDIR}/usr/include/{EGL,GLES*,VG,KHR} - do - if [ -d ${x} ] - then - mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}" - fi - done + # remove vdpau-drivers, they are in extra packages + mdelete -r /usr/$(mlibdir)/vdpau || die + if [[ $(mlibdir) != lib ]] + then + mdelete -r /usr/lib/vdpau || die + fi - for abi in ${MULTILIB_ABIS} - do - [[ ${abi} = m32 ]] && ABI_LIBDIR="lib" - [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64" - cd ${SRCDIR}-${abi} + # remove vaapi-drivers, they are in extra packages + mdelete /usr/$(mlibdir)/dri/\*_drv_video.so || die + if [[ $(mlibdir) != lib ]] + then + mdelete /usr/lib/dri/\*_drv_video.so || die + fi - # setup dynamic opengl - minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die - minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die - - local x - for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.{la,a,so} - do - if [ -f ${x} -o -L ${x} ] - then - mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}" - fi - done - - # remove dri-drivers, they are in extra packages - rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die - # remove vdpau-drivers, they are in extra packages -# rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die - # remove gbm-pipes, they are in extra packages -# rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die - done + # remove vulkan drivers, headers, configs + mdelete -r /usr/include/vulkan || die + mdelete -r /usr/share/vulkan || die + mdelete /usr/$(mlibdir)/libvulkan_\*.so || die - # includes in mesa package - rm -r ${BINDIR}/usr/$(mlibdir)/*.so.* || die - mdelete -r /usr/$(mlibdir)/dri || die -# mdelete -r /usr/$(mlibdir)/egl || die + # support indirect rendering + mlink libGLX_mesa.so.0 /usr/$(mlibdir)/libGLX_indirect.so.0 || die if [[ $(mlibdir) != lib ]] then - rm -r ${BINDIR}/usr/lib/*.so.* || die - mdelete -r /usr/lib/dri || die -# mdelete -r /usr/lib/egl || die + mlink libGLX_mesa.so.0 /usr/lib/libGLX_indirect.so.0 || die fi } src_install_mesa-xa-tracker() { - mmake DESTDIR=${BINDIR} install || die + DESTDIR=${BINDIR} mninja install || die zapmost ${BINDIR} \ - usr/$(mlibdir)/libxatracker.so.* \ - $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.so.*') \ + usr/$(mlibdir)/libxatracker.* \ + $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.*') \ || die } -if driver_enabled dri-swrast -then - src_install_mesa-dri-swrast() - { - install_dri_driver swrast || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-i810 -then - src_install_mesa-dri-i810() - { - install_dri_driver i810 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-i915 -then - src_install_mesa-dri-i915() - { - install_dri_driver i915 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-i965 -then - src_install_mesa-dri-i965() - { - install_dri_driver i965 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-mach64 -then - src_install_mesa-dri-mach64() - { - install_dri_driver mach64 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-mga -then - src_install_mesa-dri-mga() - { - install_dri_driver mga || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-r128 -then - src_install_mesa-dri-r128() - { - install_dri_driver r128 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-nouveau -then - src_install_mesa-dri-nouveau() - { - install_dri_driver nouveau || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-r200 -then - src_install_mesa-dri-r200() - { - install_dri_driver r200 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-r300 -then - src_install_mesa-dri-r300() - { - install_dri_driver r300 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-r600 -then - src_install_mesa-dri-r600() - { - install_dri_driver r600 || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-radeon -then - src_install_mesa-dri-radeon() - { - install_dri_driver radeon || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-savage -then - src_install_mesa-dri-savage() - { - install_dri_driver savage || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-sis -then - src_install_mesa-dri-sis() - { - install_dri_driver sis || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-tdfx -then - src_install_mesa-dri-tdfx() - { - install_dri_driver tdfx || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled dri-unichrome -then - src_install_mesa-dri-unichrome() - { - install_dri_driver unichrome || die - setup_dynamic_dri classic || die - } -fi - -if driver_enabled gallium-i915 -then - src_install_mesa-gallium-i915() - { - install_gallium_driver i915 || die - setup_dynamic_dri gallium || die - - # gbm -# install_gallium_pipe_driver i915 || die - } -fi - -if driver_enabled gallium-i965 -then - src_install_mesa-gallium-i965() - { - install_gallium_driver i965 || die - setup_dynamic_dri gallium || die - - # gbm -# install_gallium_pipe_driver i965 || die - } -fi - -if driver_enabled gallium-nouveau -then - src_install_mesa-gallium-nouveau() - { - install_gallium_driver nouveau || die - setup_dynamic_dri gallium || die - - # vdpau -# install_gallium_vdpau_driver nouveau || die - - # gbm -# install_gallium_pipe_driver nouveau || die - } -fi - -if driver_enabled gallium-r300 -then - src_install_mesa-gallium-r300() - { - install_gallium_driver r300 || die - setup_dynamic_dri gallium || die - - # vdpau -# install_gallium_vdpau_driver r300 || die - - # gbm -# install_gallium_pipe_driver r300 || die - } -fi - -if driver_enabled gallium-r600 -then - src_install_mesa-gallium-r600() - { - install_gallium_driver r600 || die - setup_dynamic_dri gallium || die - - # vdpau -# install_gallium_vdpau_driver r600 || die - - # gbm -# install_gallium_pipe_driver r600 || die - } -fi - -if driver_enabled gallium-radeonsi -then - src_install_mesa-gallium-radeonsi() - { - install_gallium_driver radeonsi || die - setup_dynamic_dri gallium || die - - # vdpau -# install_gallium_vdpau_driver radeonsi || die - - # gbm -# install_gallium_pipe_driver radeonsi || die - } -fi - -if driver_enabled gallium-swrast -then - src_install_mesa-gallium-swrast() - { - install_gallium_driver swrast || die - setup_dynamic_dri gallium || die - - # vdpau -# install_gallium_vdpau_driver softpipe || die - - # gbm -# install_gallium_pipe_driver swrast || die - } -fi - -if driver_enabled gallium-vmwgfx -then - src_install_mesa-gallium-vmwgfx() - { - install_gallium_driver vmwgfx || die - setup_dynamic_dri gallium || die - - # gbm -# install_gallium_pipe_driver vmwgfx || die - } -fi - -# setup_dynamic_dri $impl -# impl may be classic or gallium atm -setup_dynamic_dri() +src_install_mesa-dri-i915() { - local impl="$1" - local i - local abi - - [[ -z ${impl} ]] && die "missing dri implementation!" - case ${impl} in - classic|gallium) ;; - *) die "unkown dri implementation '${impl}'!" ;; - esac - - echo "settin up dynamic dri for a '${impl} implementation..." - if [[ -z ${MULTILIB_ABIS} ]] - then - minstalldir /usr/$(mlibdir)/mesa/${impl} || die - for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so - do - echo -n " processing ${i}:" - if [ -f ${i} -o -L ${i} ] - then - echo -n " moving" - mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}" - fi - done - else - for abi in ${MULTILIB_ABIS} - do - [[ ${abi} = m32 ]] && ABI_LIBDIR="lib" - [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64" - - minstalldir /usr/$(mlibdir)/mesa/${impl} || die - for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so - do - echo -n " processing ${i}" - if [ -f ${i} -o -L ${i} ] - then - echo -n " moving" - mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}" - fi - echo " done" - done - done - fi + install_dri_driver i915 || die } -postinstall_mesa() +src_install_mesa-dri-i965() { - ${MROOT}/usr/sbin/opengl-update --use-old xorg + install_dri_driver i965 || die } -postinstall_mesa-dev() +src_install_mesa-dri-nouveau() { - ${MROOT}/usr/sbin/opengl-update --use-old xorg + install_dri_driver nouveau nouveau_vieux || die } -if driver_enabled dri-swrast -then - postinstall_mesa-dri-swrast() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi - -if driver_enabled dri-i810 -then - postinstall_mesa-dri-i810() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi - -if driver_enabled dri-i915 -then - postinstall_mesa-dri-i915() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi - -if driver_enabled dri-i965 -then - postinstall_mesa-dri-i965() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-r200() +{ + install_dri_driver r200 || die +} -if driver_enabled dri-mach64 -then - postinstall_mesa-dri-mach64() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-r100() +{ + install_dri_driver radeon || die +} -if driver_enabled dri-mga -then - postinstall_mesa-dri-mga() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-r300() +{ + install_dri_driver r300 || die +} -if driver_enabled dri-nouveau -then - postinstall_mesa-dri-nouveau() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-r600() +{ + install_dri_driver r600 || die +} -if driver_enabled dri-r128 -then - postinstall_mesa-dri-r128() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-radeonsi() +{ + install_dri_driver radeonsi || die +} -if driver_enabled dri-r200 -then - postinstall_mesa-dri-r200() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-swrast() +{ + install_dri_driver swrast kms_swrast || die +} -if driver_enabled dri-r300 -then - postinstall_mesa-dri-r300() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-svga() +{ + install_dri_driver vmwgfx || die +} -if driver_enabled dri-r600 -then - postinstall_mesa-dri-r600() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-virgl() +{ + install_dri_driver virtio_gpu || die +} -if driver_enabled dri-radeon -then - postinstall_mesa-dri-radeon() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-dri-iris() +{ + install_dri_driver iris || die +} -if driver_enabled dri-savage -then - postinstall_mesa-dri-savage() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-vulkan-radeon() +{ + install_vulkan_driver radeon || die +} -if driver_enabled dri-sis -then - postinstall_mesa-dri-sis() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-vulkan-intel() +{ + install_vulkan_driver intel || die +} -if driver_enabled dri-tdfx -then - postinstall_mesa-dri-tdfx() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-vdpau-nouveau() +{ + install_vdpau_driver nouveau || die +} -if driver_enabled dri-unichrome -then - postinstall_mesa-dri-unichrome() - { - ${MROOT}/usr/sbin/dri-update --use-old classic - } -fi +src_install_mesa-vdpau-r300() +{ + install_vdpau_driver r300 || die +} -if driver_enabled gallium-i915 -then - postinstall_mesa-gallium-i915() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +src_install_mesa-vdpau-r600() +{ + install_vdpau_driver r600 || die +} -if driver_enabled gallium-i965 -then - postinstall_mesa-gallium-i965() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +src_install_mesa-vdpau-radeonsi() +{ + install_vdpau_driver radeonsi || die +} -if driver_enabled gallium-nouveau -then - postinstall_mesa-gallium-nouveau() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +src_install_mesa-vaapi-nouveau() +{ + install_vaapi_driver nouveau || die +} -if driver_enabled gallium-r300 -then - postinstall_mesa-gallium-r300() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +src_install_mesa-vaapi-r600() +{ + install_vaapi_driver r600 || die +} -if driver_enabled gallium-r600 -then - postinstall_mesa-gallium-r600() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +src_install_mesa-vaapi-radeonsi() +{ + install_vaapi_driver radeonsi || die +} -if driver_enabled gallium-radeonsi -then - postinstall_mesa-gallium-radeonsi() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +preinstall_mesa() +{ + local i -if driver_enabled gallium-swrast -then - postinstall_mesa-gallium-swrast() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi + # clean up deprecated dynamic opengl symlinks in favor of libglvnd + for i in GL/{gl,glx,glext,glxext}.h \ + EGL/{eglextchromium,eglext,egl,eglmesaext,eglplatform}.h \ + GLES/{egl,glextm,gl,glplatform}.h \ + GLES2/{gl2ext,gl2,gl2platform}.h \ + GLES3/{gl31,gl3ext,gl3,gl3platform}.h \ + KHR/khrplatform.h + do + if [ -L ${MROOT}/usr/include/${i} ] + then + echo "pruning dynamic opengl symlink '${MROOT}/usr/include/${i}'" + rm ${MROOT}/usr/include/${i} + fi + done +} -if driver_enabled gallium-vmwgfx -then - postinstall_mesa-gallium-vmwgfx() - { - ${MROOT}/usr/sbin/dri-update --use-old gallium - } -fi +postinstall_mesa() +{ + echo "Searching deprecated package 'opengl-update'..." + if [[ ! -z $(magequery -n opengl-update) ]] + then + echo "Uninstalling deprecated package 'opengl-update'..." + mage uninstall opengl-update + fi +}