# Template file for 'mesa' pkgname=mesa version=19.3.1 revision=1 wrksrc="mesa-${version}" build_style=meson configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true -Dgallium-vdpau=true -Dgallium-xvmc=true -Dosmesa=gallium -Dgles1=true -Dgles2=true -Dgallium-va=true -Dlmsensors=true -Dplatforms=x11,drm,$(vopt_if wayland wayland),surfaceless -Dllvm=true -Db_lto=false" hostmakedepends="flex libxml2-python llvm pkg-config python3-Mako $(vopt_if wayland 'wayland-protocols wayland-devel') glslang" makedepends="elfutils-devel expat-devel libXdamage-devel libXvMC-devel libXxf86vm-devel libatomic-devel libdrm-devel libffi-devel libva-devel libvdpau-devel libxshmfence-devel ncurses-devel talloc-devel zlib-devel $(vopt_if wayland 'wayland-devel wayland-protocols') llvm libsensors-devel libXrandr-devel libglvnd-devel" depends="libglvnd" short_desc="Graphics library similar to SGI's OpenGL" maintainer="Juan RP " license="MIT, LGPL-2.1-or-later" homepage="https://www.mesa3d.org/" changelog="https://www.mesa3d.org/relnotes/${version}.html" distfiles="https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz" checksum=cd951db69c56a97ff0570a7ab2c0e39e6c5323f4cd8f4eb8274723e033beae59 build_options="wayland" build_options_default="wayland" # Set subpackages manually to set proper rdeps in 32bit pkgs. subpackages="libglapi libgbm libOSMesa" # Replace old mesa pkgs, superseded by libglvnd. replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2" case "$XBPS_TARGET_MACHINE" in i686*|x86_64*) # Enable all x86 drivers. configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,svga,swrast,nouveau,virgl" configure_args+=" -Ddri-drivers=i915,i965,r100,r200,nouveau" configure_args+=" -Dgallium-xa=true -Ddri3=true -Dgallium-nine=true" configure_args+=" -Dvulkan-drivers=intel,amd" configure_args+=" -Dgallium-opencl=icd" configure_args+=" -Dvulkan-overlay-layer=true" hostmakedepends+=" clang" makedepends+=" libclc-git" subpackages+=" libxatracker mesa-ati-dri mesa-intel-dri mesa-nouveau-dri" subpackages+=" mesa-vmwgfx-dri mesa-opencl mesa-vulkan-overlay-layer" ;; ppc*) # Enable all ppc drivers. configure_args+=" -Dgallium-drivers=r300,r600,radeonsi,swrast,nouveau,virgl" configure_args+=" -Ddri-drivers=r100,r200,nouveau" configure_args+=" -Dgallium-xa=false -Ddri3=true -Dgallium-opencl=icd" configure_args+=" -Dvulkan-drivers=amd" configure_args+=" -Dvulkan-overlay-layer=true" # Explicitly control power8 feature usage, disable on BE case "$XBPS_TARGET_MACHINE" in ppc64le*) configure_args+=" -Dpower8=true";; *) configure_args+=" -Dpower8=false";; esac hostmakedepends+=" clang" makedepends+=" libclc-git" subpackages+=" mesa-ati-dri mesa-nouveau-dri" subpackages+=" mesa-opencl mesa-vulkan-overlay-layer" ;; aarch64*) # Enable all ARM drivers configure_args+=" -Dgallium-drivers=etnaviv,freedreno,kmsro,lima,panfrost,nouveau,swrast,tegra,v3d,vc4" configure_args+=" -Dvulkan-drivers= -Ddri-drivers=" configure_args+=" -Dgallium-xa=false -Ddri3=true" subpackages+=" mesa-kmsro-dri mesa-tegra-dri mesa-nouveau-dri mesa-v3d-dri mesa-vc4-dri" subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-lima-dri mesa-panfrost-dri" ;; armv7l*) configure_args+=" -Dgallium-drivers=etnaviv,freedreno,kmsro,lima,panfrost,swrast,vc4" configure_args+=" -Dvulkan-drivers= -Ddri-drivers= -Dgallium-xvmc=false" configure_args+=" -Dgallium-xa=false -Dgallium-vdpau=false -Dgallium-va=false" subpackages+=" mesa-etnaviv-dri mesa-freedreno-dri mesa-kmsro-dri mesa-lima-dri mesa-panfrost-dri mesa-vc4-dri" ;; *) # Enable swrast driver. configure_args+=" -Dgallium-drivers=swrast" configure_args+=" -Ddri-drivers= -Dvulkan-drivers= -Dgallium-va=false" configure_args+=" -Dgallium-vdpau=false -Dgallium-xvmc=false" configure_args+=" -Dgallium-xa=false" ;; esac case "$XBPS_TARGET_MACHINE" in armv[5-6]*) # Enable MISSING_64BIT_ATOMICS for armv[56]* CFLAGS+=" -DMISSING_64BIT_ATOMICS=1" CXXFLAGS+=" -DMISSING_64BIT_ATOMICS=1" ;; esac # -devel must be the last one for proper order. subpackages+=" MesaLib-devel" case "$XBPS_TARGET_MACHINE" in i686) configure_args+=" -Ddri-drivers-path=/usr/lib32/xorg/modules/drivers";; *) configure_args+=" -Ddri-drivers-path=/usr/lib/xorg/modules/drivers";; esac case "$XBPS_TARGET_MACHINE" in # Disable TLS with musl: https://gitlab.freedesktop.org/mesa/mesa/issues/966 # TODO: maybe this is handled by libglvnd now *-musl) configure_args+=" -Duse-elf-tls=false";; *) configure_args+=" -Dglx=dri";; esac post_configure() { if [ "$CROSS_BUILD" ]; then find -iname "*.ninja" -exec sed -i "{}" \ -e "s; /usr/lib/; ${XBPS_CROSS_BASE}/usr/lib/;g" \ -e "s;-L/usr/lib;-L${XBPS_CROSS_BASE}/usr/lib;g" \ -e "s;-I/usr/include;-I${XBPS_CROSS_BASE}/usr/include;g" \ \; fi } post_install() { vlicense docs/license.html case "$XBPS_TARGET_MACHINE" in i686*) vsed -e 's#/usr/lib/#/usr/lib32/#g' \ -i ${DESTDIR}/usr/share/vulkan/icd.d/radeon_icd.i686.json \ -i ${DESTDIR}/usr/share/vulkan/icd.d/intel_icd.i686.json ;; esac } libglapi_package() { depends="libglvnd" short_desc="Free implementation of the GL API - shared library" pkg_install() { vmove "usr/lib/libglapi.so.*" } } libgbm_package() { short_desc="Mesa Generic buffer management API - runtime" pkg_install() { vmove "usr/lib/libgbm.so.*" } } libOSMesa_package() { short_desc="Mesa Off-Screen interface library" pkg_install() { vmove "usr/lib/libOSMesa.so.*" } } MesaLib-devel_package() { depends="xorgproto libxshmfence-devel libXext-devel libXxf86vm-devel libXdamage-devel expat-devel libXfixes-devel libX11-devel libxcb-devel libdrm-devel libglvnd-devel libOSMesa>=${version}_${revision} libgbm>=${version}_${revision} mesa>=${version}_${revision}" case "$XBPS_TARGET_MACHINE" in i686*|x86_64*) depends+=" libxatracker>=${version}_${revision}";; esac short_desc+=" - development files" pkg_install() { vmove usr/include vmove usr/lib/pkgconfig vmove "usr/lib/*.so" } } libxatracker_package() { short_desc="Mesa XA tracker interface library" pkg_install() { vmove "usr/lib/libxatracker*.so.*" } } mesa-ati-dri_package() { short_desc="Mesa DRI drivers for ATI GPUs" depends="mesa-${version}_${revision}" lib32files="/usr/share/vulkan/icd.d/radeon_icd.i686.json" pkg_install() { vmove "usr/lib/libXvMCr[36]00.so.*" vmove "usr/lib/vdpau/libvdpau_r[36]00.so*" vmove "usr/lib/vdpau/libvdpau_radeon*.so*" vmove "usr/lib/xorg/modules/drivers/radeon*" vmove "usr/lib/xorg/modules/drivers/r[236]00*" vmove usr/lib/dri/r* vmove "usr/share/vulkan/icd.d/radeon_icd*.json" vmove "usr/lib/libvulkan_radeon.so" vmove "usr/lib/gallium-pipe/pipe_r[36]00.so" vmove usr/lib/gallium-pipe/pipe_radeonsi.so } } mesa-etnaviv-dri_package() { short_desc="Mesa DRI drivers for Vivante GPUs" depends="mesa-${verison}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/etnaviv*" } } mesa-freedreno-dri_package() { short_desc="Mesa DRI drivers for Adreno GPUs" depends="mesa-${verison}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/msm*" vmove "usr/lib/xorg/modules/drivers/kgsl*" } } mesa-intel-dri_package() { short_desc="Mesa DRI drivers for Intel GPUs" depends="mesa-${version}_${revision}" lib32files="/usr/share/vulkan/icd.d/intel_icd.i686.json" pkg_install() { vmove "usr/lib/xorg/modules/drivers/i9[16]5_dri.*" vmove "usr/share/vulkan/icd.d/intel_icd*.json" vmove "usr/lib/libvulkan_intel.so" } } mesa-kmsro-dri_package() { short_desc="KMS Render-only Mesa DRI drivers" depends="mesa-${version}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/armada*" vmove "usr/lib/xorg/modules/drivers/exynos*" vmove "usr/lib/xorg/modules/drivers/hx8357d*" vmove "usr/lib/xorg/modules/drivers/ili9225*" vmove "usr/lib/xorg/modules/drivers/ili9341*" vmove "usr/lib/xorg/modules/drivers/imx*" vmove "usr/lib/xorg/modules/drivers/meson*" vmove "usr/lib/xorg/modules/drivers/mi0283qt*" vmove "usr/lib/xorg/modules/drivers/mxsfb*" vmove "usr/lib/xorg/modules/drivers/pl111*" vmove "usr/lib/xorg/modules/drivers/repaper*" vmove "usr/lib/xorg/modules/drivers/rockchip*" vmove "usr/lib/xorg/modules/drivers/st7586*" vmove "usr/lib/xorg/modules/drivers/st7735r*" vmove "usr/lib/xorg/modules/drivers/stm*" vmove "usr/lib/xorg/modules/drivers/sun4i*" } } mesa-lima-dri_package() { short_desc="Mesa DRI drivers for ARM Mali GPUs (Utgard)" depends="mesa-${verison}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/lima*" } } mesa-nouveau-dri_package() { short_desc="Mesa DRI drivers for NVIDIA GPUs (nouveau dri)" depends="mesa-${version}_${revision}" pkg_install() { vmove "usr/lib/libXvMCnouveau.so.*" vmove "usr/lib/vdpau/libvdpau_nouveau.so*" vmove "usr/lib/xorg/modules/drivers/nouveau*" vmove "usr/lib/dri/nouveau*" case "$XBPS_TARGET_MACHINE" in aarch64*) ;; *) vmove usr/lib/gallium-pipe/pipe_nouveau.so ;; esac } } mesa-panfrost-dri_package() { short_desc="Mesa DRI drivers for ARM Mali GPUs (Midgard/Bifrost)" depends="mesa-${verison}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/panfrost*" } } mesa-vmwgfx-dri_package() { short_desc="Mesa DRI drivers for VMware" depends="mesa-${version}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/vmwgfx*" vmove usr/lib/gallium-pipe/pipe_vmwgfx.so } } mesa-v3d-dri_package() { short_desc="Mesa DRI drivers for Videocore VI GPU" depends="mesa-${verison}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/v3d*" } } mesa-vc4-dri_package() { short_desc="Mesa DRI drivers for Videocore IV GPU" depends="mesa-${version}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/vc4*" } } mesa-opencl_package() { short_desc="Mesa implementation of OpenCL (r600+ only)" depends="libclc libOpenCL mesa-${version}_${revision}" pkg_install() { vmove etc/OpenCL vmove "usr/lib/libMesaOpenCL*" } } mesa-tegra-dri_package() { short_desc="Mesa DRI drivers for Tegra GPU" depends="mesa-nouveau-dri-${version}_${revision}" pkg_install() { vmove "usr/lib/xorg/modules/drivers/tegra*" } } mesa-vulkan-overlay-layer_package() { short_desc="Vulkan layer to display information about the running application" pkg_install() { vmove usr/lib/libVkLayer_MESA_overlay.so vmove usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json } }