cb22119c3d
Taken from upstream. Our mesa-git is pretty outdated, we should update it soon. But we need to unblock the repository first, so this is the fastest way for now.
368 lines
9.3 KiB
Text
368 lines
9.3 KiB
Text
# Forked from Alpine Linux to provide latest git builds, useful for bleeding
|
|
# edge driver support
|
|
#
|
|
# Any new drivers should be upstreamed to Alpine Linux once they appear in a
|
|
# new Mesa stable release
|
|
pkgname=mesa-git
|
|
pkgver=0_git20200510
|
|
pkgrel=1
|
|
_commit="56f955e4850035d915a2a87e2ebea7fa66ab5e19"
|
|
pkgdesc="Mesa DRI OpenGL library (Git)"
|
|
url="https://www.mesa3d.org"
|
|
arch="all"
|
|
license="MIT SGI-B-2.0 BSL-1.0"
|
|
subpackages="
|
|
$pkgname-dev
|
|
$pkgname-dri-classic:_dri
|
|
$pkgname-dri-gallium:_dri
|
|
$pkgname-va-gallium:_va
|
|
$pkgname-vdpau-gallium:_vdpau
|
|
$pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
|
|
$pkgname-xatracker $pkgname-osmesa $pkgname-gbm
|
|
$pkgname-vulkan-ati:_vulkan
|
|
$pkgname-dri-ati:_dri_deprecated
|
|
$pkgname-dri-nouveau:_dri_deprecated
|
|
"
|
|
_llvmver=9
|
|
depends_dev="
|
|
libdrm-dev
|
|
libxext-dev
|
|
libxdamage-dev
|
|
libxcb-dev
|
|
libxshmfence-dev
|
|
"
|
|
# FIXME: Remove glslang when pmbootstrap can handle the conditional makedepends below
|
|
makedepends="
|
|
$depends_dev
|
|
bison
|
|
eudev-dev
|
|
expat-dev
|
|
findutils
|
|
flex
|
|
gettext
|
|
glslang
|
|
elfutils-dev
|
|
libtool
|
|
libxfixes-dev
|
|
libva-dev
|
|
libvdpau-dev
|
|
libx11-dev
|
|
libxrandr-dev
|
|
libxt-dev
|
|
libxvmc-dev
|
|
libxxf86vm-dev
|
|
llvm$_llvmver-dev
|
|
makedepend
|
|
meson
|
|
py3-mako
|
|
py3-libxml2
|
|
python3
|
|
talloc-dev
|
|
wayland-dev
|
|
wayland-protocols
|
|
xorgproto
|
|
zlib-dev
|
|
"
|
|
source="
|
|
$pkgname-$_commit.tar.gz::https://gitlab.freedesktop.org/mesa/mesa/-/archive/$_commit.tar.gz
|
|
adjust-cache-deflate-buffer.patch
|
|
musl-fix-includes.patch
|
|
add-use-elf-tls.patch
|
|
0001-v3d_bufmgr-fix-time_t-printf.patch
|
|
"
|
|
provides="mesa"
|
|
replaces="mesa-dricore mesa"
|
|
builddir="$srcdir/mesa-$_commit"
|
|
pcprefix="mesa-git"
|
|
|
|
if [ "$CARCH" = x86 ]; then
|
|
# Bug upstream that needs to be fixed
|
|
options="$options textrels"
|
|
fi
|
|
|
|
_dri_driverdir=/usr/lib/xorg/modules/dri
|
|
_dri_drivers="r100,r200,nouveau"
|
|
_gallium_drivers="r300,r600,radeonsi,nouveau,swrast,virgl"
|
|
_gallium_provides="
|
|
$pkgname-dri-swrast=$pkgver-r$pkgrel
|
|
$pkgname-dri-virtio=$pkgver-r$pkgrel
|
|
"
|
|
_vulkan_drivers="amd"
|
|
_arch_opts=""
|
|
_vulkan_overlay_layer=false
|
|
case "$CARCH" in
|
|
x86*)
|
|
_dri_drivers="${_dri_drivers},i915,i965"
|
|
_gallium_drivers="${_gallium_drivers},svga,iris"
|
|
_vulkan_drivers="${_vulkan_drivers},intel"
|
|
_vulkan_overlay_layer=true
|
|
makedepends="$makedepends glslang"
|
|
subpackages="$subpackages \
|
|
$pkgname-dri-intel:_dri_deprecated \
|
|
$pkgname-vulkan-intel:_vulkan \
|
|
$pkgname-vulkan-layer:_vulkan_layer"
|
|
_gallium_provides="$_gallium_provides $pkgname-dri-vmwgfx=$pkgver-r$pkgrel"
|
|
_arch_opts="-Ddri3=true"
|
|
case "$CARCH" in
|
|
x86)
|
|
_arch_opts="$_arch_opts -Dglx-read-only-text=true -Dasm=false";;
|
|
esac
|
|
;;
|
|
armhf|armv7|aarch64)
|
|
_gallium_drivers="${_gallium_drivers},vc4,v3d,freedreno,kmsro,lima,panfrost,etnaviv,tegra"
|
|
_gallium_provides="$_gallium_provides
|
|
$pkgname-dri-vc4=$pkgver-r$pkgrel
|
|
$pkgname-dri-v3d=$pkgver-r$pkgrel
|
|
$pkgname-dri-freedreno=$pkgver-r$pkgrel
|
|
$pkgname-dri-kmsro=$pkgver-r$pkgrel
|
|
$pkgname-dri-lima=$pkgver-r$pkgrel
|
|
$pkgname-dri-panfrost=$pkgver-r$pkgrel
|
|
$pkgname-dri-etnaviv=$pkgver-r$pkgrel
|
|
$pkgname-dri-tegra=$pkgver-r$pkgrel
|
|
"
|
|
;;
|
|
esac
|
|
|
|
build() {
|
|
export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700"
|
|
export PATH=/usr/lib/llvm${_llvmver}/bin:$PATH
|
|
meson \
|
|
--prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--localstatedir=/var \
|
|
--buildtype=debugoptimized \
|
|
-Ddri-drivers-path=$_dri_driverdir \
|
|
-Dgallium-drivers=$_gallium_drivers \
|
|
-Ddri-drivers=$_dri_drivers \
|
|
-Dvulkan-drivers=$_vulkan_drivers \
|
|
-Dvulkan-overlay-layer=$_vulkan_overlay_layer \
|
|
-Dplatforms=x11,drm,wayland \
|
|
-Dllvm=true \
|
|
-Dshared-llvm=true \
|
|
-Dshared-glapi=true \
|
|
-Dgbm=true \
|
|
-Dglx=dri \
|
|
-Dopengl=true \
|
|
-Dosmesa=gallium \
|
|
-Dgles1=false \
|
|
-Dgles2=true \
|
|
-Degl=true \
|
|
-Dgallium-xa=true \
|
|
-Dgallium-vdpau=true \
|
|
-Dgallium-va=true \
|
|
-Dgallium-xvmc=false \
|
|
-Dglx-use-tls=false \
|
|
-Dgallium-nine=false \
|
|
-Db_ndebug=true \
|
|
$_arch_opts \
|
|
. output
|
|
# parallel build workaround
|
|
ninja -C output src/compiler/nir/nir_intrinsics.h src/git_sha1.h
|
|
|
|
ninja -C output
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" ninja -C output install
|
|
|
|
# Make abuild's version check happy (#386)
|
|
sed -i s/-devel//g "$pkgdir"/usr/lib/pkgconfig/*.pc
|
|
}
|
|
|
|
dev() {
|
|
provides="mesa-dev"
|
|
replaces="mesa-dev"
|
|
default_dev
|
|
}
|
|
|
|
egl() {
|
|
pkgdesc="Mesa libEGL runtime libraries"
|
|
depends="$pkgname"
|
|
replaces="mesa-egl"
|
|
provides="mesa-egl"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
gl() {
|
|
pkgdesc="Mesa libGL runtime libraries"
|
|
depends="$pkgname"
|
|
replaces="mesa-gl"
|
|
provides="mesa-gl"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
glapi() {
|
|
pkgdesc="Mesa shared glapi"
|
|
depends="$pkgname"
|
|
replaces="mesa-gles mesa-glapi"
|
|
provides="mesa-glapi"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libglapi.so.* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
gles() {
|
|
pkgdesc="Mesa libGLESv2 runtime libraries"
|
|
depends="$pkgname"
|
|
replaces="mesa-gles"
|
|
provides="mesa-gles"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
xatracker() {
|
|
pkgdesc="Mesa XA state tracker for vmware"
|
|
depends="$pkgname"
|
|
replaces="mesa-xatracker"
|
|
provides="mesa-xatracker"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libxatracker*.so.* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
osmesa() {
|
|
pkgdesc="Mesa offscreen rendering libraries"
|
|
depends="$pkgname"
|
|
replaces="mesa-osmesa"
|
|
provides="mesa-osmesa"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libOSMesa.so.* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
gbm() {
|
|
pkgdesc="Mesa gbm library"
|
|
depends="$pkgname"
|
|
replaces="mesa-gbm"
|
|
provides="mesa-gbm"
|
|
|
|
install -d "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/
|
|
}
|
|
|
|
# Move links referencing the same file to the subpackage.
|
|
# Usage: _mv_links <base directory> <example>
|
|
# where <example> is one of the libraries covered by the megadriver.
|
|
# The example is used to find other links that point to the same file.
|
|
_mv_links() {
|
|
install -d "$subpkgdir"/$1
|
|
find -L "$pkgdir"/$1 -samefile "$pkgdir"/$1/$2 -print0 \
|
|
| xargs -0 -I{} mv {} "$subpkgdir"/$1/
|
|
}
|
|
|
|
_mv_vulkan() {
|
|
local i
|
|
install -d "$subpkgdir"/usr/lib
|
|
install -d "$subpkgdir"/usr/share/vulkan/icd.d
|
|
for i in "$@"; do
|
|
mv "$pkgdir"/usr/lib/libvulkan_$i.so "$subpkgdir"/usr/lib/
|
|
mv "$pkgdir"/usr/share/vulkan/icd.d/${i}* "$subpkgdir"/usr/share/vulkan/icd.d/
|
|
done
|
|
}
|
|
|
|
# Mesa uses "megadrivers" where multiple drivers are linked into one shared
|
|
# library. This library is then hard-linked to separate files (one for each driver).
|
|
# Each subpackage contains one megadriver so that all the hard-links are preserved.
|
|
|
|
_dri() {
|
|
local n=${subpkgname##*-dri-}
|
|
pkgdesc="Mesa $n DRI drivers (Git)"
|
|
|
|
# List all relevant subpackages to avoid conflicts with main mesa package.
|
|
depends="$pkgname $pkgname-gl $pkgname-glapi $pkgname-gles $pkgname-egl $pkgname-gbm"
|
|
provides="mesa-dri-$n"
|
|
replaces="mesa-dri-$n"
|
|
|
|
case $n in
|
|
classic)
|
|
# libmesa_dri_drivers.so
|
|
_mv_links $_dri_driverdir radeon_dri.so ;;
|
|
gallium)
|
|
# libgallium_dri.so
|
|
_mv_links $_dri_driverdir swrast_dri.so
|
|
provides="$provides $_gallium_provides"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Compatibility packages for upgrading from the old (driver-specific) subpackages
|
|
_dri_deprecated() {
|
|
local n=${subpkgname##*-dri-}
|
|
pkgdesc="Mesa DRI drivers for $n (DEPRECATED, Git)"
|
|
depends="$pkgname-dri-classic $pkgname-dri-gallium"
|
|
provides="mesa-dri-$n"
|
|
replaces="mesa-dri-$n"
|
|
|
|
case $n in
|
|
ati|nouveau)
|
|
depends="$depends $pkgname-va-gallium $pkgname-vdpau-gallium" ;;
|
|
esac
|
|
|
|
mkdir "$subpkgdir"
|
|
}
|
|
|
|
_va() {
|
|
local n=${subpkgname##*-va-}
|
|
pkgdesc="Mesa $n VAAPI drivers (Git)"
|
|
depends="$pkgname libva"
|
|
provides="mesa-va-$n"
|
|
replaces="mesa-va-$n"
|
|
|
|
case $n in
|
|
gallium)
|
|
# libgallium_drv_video.so
|
|
_mv_links /usr/lib/dri radeonsi_drv_video.so ;;
|
|
esac
|
|
}
|
|
|
|
_vdpau() {
|
|
local n=${subpkgname##*-vdpau-}
|
|
pkgdesc="Mesa $n VDPAU drivers (Git)"
|
|
depends="$pkgname libvdpau"
|
|
provides="mesa-vdpau-$n"
|
|
replaces="mesa-vdpau-$n"
|
|
|
|
case $n in
|
|
gallium)
|
|
# libvdpau_gallium.so.1.0.0
|
|
_mv_links /usr/lib/vdpau libvdpau_radeonsi.so.1.0.0 ;;
|
|
esac
|
|
}
|
|
|
|
_vulkan() {
|
|
local n=${subpkgname##*-vulkan-}
|
|
pkgdesc="Mesa Vulkan API driver for $n (Git)"
|
|
depends="$pkgname"
|
|
replaces="mesa-vulkan-$n"
|
|
provides="mesa-vulkan-$n"
|
|
|
|
case $n in
|
|
ati)
|
|
_mv_vulkan radeon ;;
|
|
intel)
|
|
_mv_vulkan intel ;;
|
|
esac
|
|
}
|
|
|
|
_vulkan_layer() {
|
|
pkgdesc="Vulkan overlay layer to display information about the application"
|
|
depends="$pkgname"
|
|
replaces="mesa-vulkan-layer"
|
|
provides="mesa-vulkan-layer"
|
|
|
|
mkdir -p "$subpkgdir"/usr/share/vulkan "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/share/vulkan/explicit_layer.d "$subpkgdir"/usr/share/vulkan
|
|
mv "$pkgdir"/usr/lib/libVkLayer_MESA_overlay.so "$subpkgdir"/usr/lib
|
|
}
|
|
|
|
sha512sums="5b45320884e6828256eb0de90ed87fce71c86213f1fed952dac83b923947cc56794f1208a6e7bea708578b51b4150631073a5ea949cfa999c4cc280b6d934ea5 mesa-git-56f955e4850035d915a2a87e2ebea7fa66ab5e19.tar.gz
|
|
cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc adjust-cache-deflate-buffer.patch
|
|
cf849044d6cc7d2af4ff015208fb09d70bf9660538699797da21bda2ecb7c1892d312af83d05116afd826708d9caafb1d05a13f09139c558aea6fee931e3eee7 musl-fix-includes.patch
|
|
9aa207a38d538abbd8e7a7210e3081508563e85e8c27b2269b8f40fd62d9fc6fee0cb2f573a0e62c42f8ba0fb85740459b761f009d5991cfd9813d7614541908 add-use-elf-tls.patch
|
|
25d253e91a7ea00355d830803fbf932c5fff44c174b61d7bb85391f3878efa1ca93fbdbd50a2f6939d229f135d3ee4ab76fad8f7439c4982f4ea71bc4693e215 0001-v3d_bufmgr-fix-time_t-printf.patch"
|