179 lines
5.8 KiB
Bash
179 lines
5.8 KiB
Bash
# Maintainer: Jesus E. <heckyel@riseup.net>
|
|
|
|
# Based on mesa package
|
|
|
|
pkgbase=mesa
|
|
pkgname=('mesa' 'mesa-libgl')
|
|
pkgdesc="A free software implementation for graphics drivers and rendering specifications"
|
|
pkgver=20.3.5
|
|
_debver=$pkgver
|
|
_debrel=1
|
|
pkgrel=10
|
|
arch=('i686' 'x86_64')
|
|
makedepends=('python-mako' 'libxml2' 'libx11' 'xenocara-proto' 'libdrm' 'libxshmfence' 'libxxf86vm'
|
|
'libxdamage' 'elfutils' 'llvm' 'clang' 'libunwind' 'libxrandr' 'glslang' 'meson' 'quilt')
|
|
url='https://www.mesa3d.org/'
|
|
license=('Expat')
|
|
source=("https://archive.mesa3d.org//older-versions/20.x/mesa-${pkgver}.tar.xz"
|
|
"https://deb.debian.org/debian/pool/main/m/mesa/mesa_${_debver}-${_debrel}.diff.gz"
|
|
"LICENSE"
|
|
"drirc")
|
|
sha512sums=('481e710ed80d8f215a8d541cfe51b960862c2403c2b9e7e6932c8236b8decb5d478871d6c73559d6d795ada143803764f3a93b2329588c80f62e2e5ec98c78a9'
|
|
'68f030adedc00fd1b607055e3b99cfa855062c43310d326c838d16515c2f652b3b2b1cdb62bdecf5bf067a583d8cdcfc2f46083db614c22585e23ff416ac07d0'
|
|
'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7'
|
|
'03438356f152cbfede359314c100f4a93c04a856a12a6daafe3bdbf749661bdc8a28f11c92b73c317cfccf5c1f022f80434cd918a53ebe2c3df1fe1504164bee')
|
|
|
|
prepare() {
|
|
cd $srcdir/mesa-$pkgver
|
|
|
|
if [ ${pkgver%.*} = ${_debver%.*} ]; then
|
|
# Debian patches
|
|
export QUILT_PATCHES=debian/patches
|
|
export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
|
|
export QUILT_DIFF_ARGS='--no-timestamps'
|
|
|
|
patch -p1 -i "$srcdir"/mesa_$_debver-$_debrel.diff
|
|
|
|
# Doesn't apply
|
|
rm -v debian/patches/fix-python-shebang.diff || true
|
|
|
|
quilt push -av
|
|
fi
|
|
}
|
|
|
|
build() {
|
|
DRI=i915,i965,r100,r200,nouveau
|
|
GALLIUM=iris,r300,r600,radeonsi,nouveau,lima,panfrost,etnaviv,kmsro,virgl,svga,swrast,swr
|
|
SWR_ARCHES=avx,avx2,knl,skx
|
|
|
|
# Configure
|
|
hyperbola-meson mesa-$pkgver build \
|
|
-D b_lto=true \
|
|
-D b_ndebug=true \
|
|
-D platforms=x11 \
|
|
-D dri-drivers=$DRI \
|
|
-D gallium-drivers=$GALLIUM \
|
|
-D swr-arches=$SWR_ARCHES \
|
|
-D zstd=disabled \
|
|
-D dri3=enabled \
|
|
-D egl=enabled \
|
|
-D gallium-extra-hud=true \
|
|
-D gallium-nine=true \
|
|
-D gallium-omx=disabled \
|
|
-D gallium-opencl=disabled \
|
|
-D gallium-va=disabled \
|
|
-D gallium-vdpau=disabled \
|
|
-D gallium-xa=enabled \
|
|
-D gallium-xvmc=disabled \
|
|
-D gbm=enabled \
|
|
-D gles1=enabled \
|
|
-D gles2=enabled \
|
|
-D glvnd=false \
|
|
-D glx=dri \
|
|
-D libunwind=enabled \
|
|
-D llvm=enabled \
|
|
-D lmsensors=disabled \
|
|
-D opencl-spirv=false \
|
|
-D osmesa=gallium \
|
|
-D shared-glapi=enabled \
|
|
-D shared-llvm=enabled \
|
|
-D valgrind=disabled
|
|
|
|
# Print configuration
|
|
meson configure build
|
|
|
|
# Build
|
|
ninja -C build
|
|
meson compile -C build
|
|
}
|
|
|
|
package_mesa() {
|
|
depends=('libdrm' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' 'libunwind' 'llvm-libs')
|
|
provides=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri'
|
|
'swrast-dri' 'virgl-dri' 'swr-dri' 'mesa-dri' 'opengl-driver')
|
|
conflicts=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri'
|
|
'swrast-dri' 'virgl-dri' 'swr-dri' 'mesa-dri'
|
|
'nvidia-'{,{390,340,304,173,96}xx-}'utils' 'catalyst-utils'
|
|
'libtxc_dxtn')
|
|
replaces=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri'
|
|
'swrast-dri' 'virgl-dri' 'swr-dri' 'mesa-dri'
|
|
'nvidia-'{,{390,340,304,173,96}xx-}'utils' 'catalyst-utils'
|
|
'libtxc_dxtn')
|
|
backups=('etc/drirc')
|
|
|
|
# Fake installation to be seperated into packages
|
|
# outside of fakeroot but mesa does not need to chown and chmod
|
|
DESTDIR=$srcdir/fakeinstall meson install -C build
|
|
|
|
# Copy drirc
|
|
install -Dm 644 $srcdir/drirc -t $pkgdir/etc
|
|
|
|
# Move usr/include/d3dadapter and usr/include/*.h
|
|
install -dm 755 $pkgdir/usr/include
|
|
mv -v $srcdir/fakeinstall/usr/include/d3dadapter $pkgdir/usr/include
|
|
mv -v $srcdir/fakeinstall/usr/include/*.h $pkgdir/usr/include
|
|
|
|
# Move usr/lib/d3d
|
|
install -dm 755 $pkgdir/usr/lib
|
|
for i in d3d; do
|
|
mv -v $srcdir/fakeinstall/usr/lib/${i} $pkgdir/usr/lib
|
|
done
|
|
unset i
|
|
|
|
# Move usr/lib/dri/*_dri.so
|
|
install -dm 755 $pkgdir/usr/lib/dri
|
|
mv -v $srcdir/fakeinstall/usr/lib/dri/*_dri.so $pkgdir/usr/lib/dri
|
|
|
|
# Move usr/lib/pkgconfig/{d3d,dri,gbm,osmesa,xatracker}.pc
|
|
install -dm 755 $pkgdir/usr/lib/pkgconfig
|
|
for i in d3d dri gbm osmesa xatracker; do
|
|
mv -v $srcdir/fakeinstall/usr/lib/pkgconfig/${i}.pc \
|
|
$pkgdir/usr/lib/pkgconfig
|
|
done
|
|
unset i
|
|
|
|
# Move usr/lib/lib{OS,gbm,glapi,swr,xatracker}*.so*
|
|
for i in OS gbm glapi swr xatracker; do
|
|
mv -v $srcdir/fakeinstall/usr/lib/lib${i}*.so* $pkgdir/usr/lib
|
|
done
|
|
unset i
|
|
|
|
# Copy LICENSE
|
|
install -Dm 644 $srcdir/LICENSE -t $pkgdir/usr/share/licenses/$pkgname
|
|
}
|
|
|
|
package_mesa-libgl() {
|
|
pkgdesc="Mesa 3D graphics library"
|
|
depends=('mesa')
|
|
provides=('libgl' 'libegl' 'libgles')
|
|
conflicts=('nvidia-libgl' 'nvidia-340xx-libgl' 'nvidia-304xx-libgl' 'nvidia-cg-toolkit' 'catalyst-libgl')
|
|
replaces=('nvidia-libgl' 'nvidia-340xx-libgl' 'nvidia-304xx-libgl' 'nvidia-cg-toolkit' 'catalyst-libgl')
|
|
|
|
# Move usr/include/{EGL,GL,GLES2,GLES3,KHR}
|
|
install -dm 755 $pkgdir/usr/include
|
|
for i in EGL GL GLES GLES2 GLES3 KHR; do
|
|
mv -v $srcdir/fakeinstall/usr/include/${i} $pkgdir/usr/include
|
|
done
|
|
unset i
|
|
|
|
# Move usr/lib/pkgconfig/{egl,gl,glesv1_cm,glesv2}.pc
|
|
install -dm 755 $pkgdir/usr/lib/pkgconfig
|
|
for i in egl gl glesv1_cm glesv2; do
|
|
mv -v $srcdir/fakeinstall/usr/lib/pkgconfig/${i}.pc \
|
|
$pkgdir/usr/lib/pkgconfig
|
|
done
|
|
unset i
|
|
|
|
# Move usr/lib/lib{EGL,GL,GLESv1_CM,GLES2}.so
|
|
for i in EGL GL GLESv1_CM GLESv2; do
|
|
mv -v $srcdir/fakeinstall/usr/lib/lib${i}.so* $pkgdir/usr/lib
|
|
done
|
|
unset i
|
|
|
|
# Make sure there are no files left to install
|
|
find fakeinstall -depth -print0 | xargs -0 rm -rf
|
|
|
|
# Copy LICENSE
|
|
install -Dm 644 $srcdir/LICENSE -t $pkgdir/usr/share/licenses/$pkgname
|
|
}
|