1943ead268
Included changes: - main/mesa: build freedreno only for arm https://gitlab.alpinelinux.org/alpine/aports/merge_requests/2809 - tree-wide: use --buildtype=debugoptimized for meson packages https://gitlab.alpinelinux.org/alpine/aports/merge_requests/2619 - main/mesa: consolidate subpackages https://gitlab.alpinelinux.org/alpine/aports/merge_requests/2816 - main/mesa: use qualified provides for deprecated subpackages https://gitlab.alpinelinux.org/alpine/aports/merge_requests/3167
364 lines
9.3 KiB
Text
364 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
|
|
#
|
|
# Any device that wants to use this should explicitely depend on the entirety
|
|
# of this aport, so mesa-git including _all_ of the subpackages, to not cause
|
|
# conflicts
|
|
pkgname=mesa-git
|
|
pkgver=0_git20200116
|
|
pkgrel=1
|
|
_commit="68abc0731715b2ec3048d0944250b96a5302b4bc"
|
|
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
|
|
time-fix.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
|
|
}
|
|
|
|
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)"
|
|
depends="$pkgname"
|
|
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="c8a47a898a5d6f94a5b3d7f80ee1f0872265f578ab23d2e70d04a1397a9555c734a488cfa1cc349191150323e5ba166608b152970de2c056f677fe5129bf9319 mesa-git-68abc0731715b2ec3048d0944250b96a5302b4bc.tar.gz
|
|
cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc adjust-cache-deflate-buffer.patch
|
|
cf849044d6cc7d2af4ff015208fb09d70bf9660538699797da21bda2ecb7c1892d312af83d05116afd826708d9caafb1d05a13f09139c558aea6fee931e3eee7 musl-fix-includes.patch
|
|
9aa207a38d538abbd8e7a7210e3081508563e85e8c27b2269b8f40fd62d9fc6fee0cb2f573a0e62c42f8ba0fb85740459b761f009d5991cfd9813d7614541908 add-use-elf-tls.patch
|
|
6a42ef5d60ccad7e39dee7b3a09b8a884548ce65af3fb17cd1bbd453cee0df7b367968b179e4b54fbc606b29753a1bab74f8c6136b1efaf4cfb9f084d9e76c66 time-fix.patch"
|