237 lines
4.9 KiB
Bash
237 lines
4.9 KiB
Bash
name='mesa'
|
||
version='25.2.6'
|
||
release='6'
|
||
epoch='1'
|
||
desc='Open-source OpenGL and Vulkan drivers with AMD RDNA 4 (RX 9070 XT) support'
|
||
desc_ru='OpenGL и Vulkan драйверы с открытым исходным кодом с поддержкой AMD RDNA 4 (RX 9070 XT)'
|
||
homepage='https://www.mesa3d.org/'
|
||
maintainer='Evgeniy Khramov <xpamych@yandex.ru>'
|
||
maintainer_ru='Евгений Храмов <xpamych@yandex.ru>'
|
||
architectures=('amd64')
|
||
license=('MIT' 'BSD-3-Clause' 'SGI-B-2.0')
|
||
provides=(
|
||
'mesa'
|
||
'mesa-dri-drivers'
|
||
'mesa-dri-drivers(x86-64)'
|
||
'mesa-vulkan-drivers'
|
||
'mesa-vulkan-drivers(x86-64)'
|
||
'mesa-va-drivers'
|
||
'mesa-va-drivers(x86-64)'
|
||
'mesa-vdpau-drivers'
|
||
'mesa-vdpau-drivers(x86-64)'
|
||
'mesa-libgbm'
|
||
'mesa-libgbm(x86-64)'
|
||
'mesa-libEGL'
|
||
'mesa-libEGL(x86-64)'
|
||
'mesa-libGL'
|
||
'mesa-libGL(x86-64)'
|
||
'mesa-libGLES'
|
||
'mesa-libGLES(x86-64)'
|
||
'vulkan-radeon'
|
||
'libva-mesa-driver'
|
||
'opengl-driver'
|
||
'vulkan-driver'
|
||
'libdril_dri.so()(64bit)'
|
||
'libEGL_mesa.so.0()(64bit)'
|
||
'libGLX_mesa.so.0()(64bit)'
|
||
'libVkLayer_MESA_device_select.so()(64bit)'
|
||
'libvulkan_lvp.so()(64bit)'
|
||
'libvulkan_radeon.so()(64bit)'
|
||
'libgbm.so.1()(64bit)'
|
||
'libGLESv1_CM.so.1()(64bit)'
|
||
'libGLESv2.so.2()(64bit)'
|
||
)
|
||
conflicts=(
|
||
'mesa(x86-64) < 25.2.6'
|
||
'mesa-dri-drivers(x86-64) < 25.2.6'
|
||
'mesa-vulkan-drivers(x86-64) < 25.2.6'
|
||
'mesa-va-drivers(x86-64) < 25.2.6'
|
||
'mesa-vdpau-drivers(x86-64) < 25.2.6'
|
||
'mesa-libgbm(x86-64) < 25.2.6'
|
||
'mesa-libEGL(x86-64) < 25.2.6'
|
||
'mesa-libGL(x86-64) < 25.2.6'
|
||
'mesa-libGLES(x86-64) < 25.2.6'
|
||
)
|
||
|
||
# Базовые зависимости
|
||
deps=(
|
||
'expat'
|
||
'libdrm'
|
||
'libelf'
|
||
'libglvnd'
|
||
'libx11'
|
||
'libxcb'
|
||
'libxext'
|
||
'libxshmfence'
|
||
'libxxf86vm'
|
||
'llvm18-libs'
|
||
'lm_sensors'
|
||
'libwayland-client'
|
||
'libwayland-server'
|
||
'zlib'
|
||
'zstd'
|
||
'vulkan-icd-loader'
|
||
)
|
||
|
||
# Зависимости для RedOS
|
||
deps_redos=(
|
||
'expat'
|
||
'libdrm'
|
||
'elfutils-libelf'
|
||
'libglvnd'
|
||
'libglvnd-gles'
|
||
'libX11'
|
||
'libxcb'
|
||
'libXext'
|
||
'libxshmfence'
|
||
'libXxf86vm'
|
||
'llvm18-libs'
|
||
'lm_sensors-libs'
|
||
'libwayland-client'
|
||
'libwayland-server'
|
||
'zlib'
|
||
'zstd'
|
||
'vulkan-loader'
|
||
)
|
||
|
||
# Зависимости для сборки
|
||
build_deps=(
|
||
'gcc'
|
||
'clang'
|
||
'meson'
|
||
'ninja-build'
|
||
'cmake'
|
||
'python3'
|
||
'python3-mako'
|
||
'python3-packaging'
|
||
'python3-pyyaml'
|
||
'bison'
|
||
'flex'
|
||
'llvm18'
|
||
'llvm18-devel'
|
||
'clang-devel'
|
||
'rust'
|
||
'rust-bindgen-devel'
|
||
'cbindgen'
|
||
'glslang-devel'
|
||
'spirv-tools-devel'
|
||
'libdrm-devel'
|
||
'libxcb-devel'
|
||
'libX11-devel'
|
||
'libXext-devel'
|
||
'libXxf86vm-devel'
|
||
'libXfixes-devel'
|
||
'libXdamage-devel'
|
||
'libxshmfence-devel'
|
||
'libXrandr-devel'
|
||
'elfutils-libelf-devel'
|
||
'libglvnd-devel'
|
||
'wayland-devel'
|
||
'wayland-protocols-devel'
|
||
'libva-devel'
|
||
'libvdpau-devel'
|
||
'expat-devel'
|
||
'libxml2-devel'
|
||
'libzstd-devel'
|
||
'lm_sensors-devel'
|
||
'systemd-devel'
|
||
'libpng-devel'
|
||
'vulkan-headers'
|
||
'vulkan-loader-devel'
|
||
)
|
||
|
||
build_deps_redos=("${build_deps[@]}")
|
||
|
||
_pkgver="${version}"
|
||
|
||
sources=("https://archive.mesa3d.org/mesa-${_pkgver}.tar.xz")
|
||
checksums=('361c97e8afa5fe20141c5362c5b489040751e12861c186a16c621a2fb182fc42')
|
||
|
||
prepare() {
|
||
cd "$srcdir/mesa-${_pkgver}"
|
||
|
||
# Установка версии для правильной идентификации
|
||
echo "${version}-alr${epoch}.${release}" > VERSION
|
||
|
||
echo "==> Preparing Mesa ${version} for AMD RDNA 4 (RX 9070 XT) support..."
|
||
}
|
||
|
||
build() {
|
||
cd "$srcdir/mesa-${_pkgver}"
|
||
|
||
# Set LLVM 18 paths
|
||
export LLVM_CONFIG="/usr/bin/llvm-config-18"
|
||
|
||
echo "==> Configuring Mesa with Meson..."
|
||
meson setup builddir \
|
||
--prefix=/usr \
|
||
--libdir=lib64 \
|
||
--buildtype=release \
|
||
-Db_ndebug=true \
|
||
-Dplatforms=x11,wayland \
|
||
-Dgallium-drivers=r300,r600,radeonsi,llvmpipe,softpipe,zink \
|
||
-Dvulkan-drivers=amd,swrast \
|
||
-Dvideo-codecs=all \
|
||
-Dgallium-extra-hud=true \
|
||
-Dgallium-rusticl=false \
|
||
-Dgallium-va=enabled \
|
||
-Dgallium-vdpau=enabled \
|
||
-Dgbm=enabled \
|
||
-Dgles1=disabled \
|
||
-Dgles2=enabled \
|
||
-Dglvnd=enabled \
|
||
-Dglx=dri \
|
||
-Degl=enabled \
|
||
-Dllvm=enabled \
|
||
-Dlmsensors=enabled \
|
||
-Dvalgrind=disabled \
|
||
-Dvulkan-layers=device-select,overlay \
|
||
-Dintel-rt=disabled \
|
||
-Dlibunwind=disabled \
|
||
-Dmicrosoft-clc=disabled
|
||
|
||
echo "==> Building Mesa (this may take 15-30 minutes)..."
|
||
meson compile -C builddir -j$(($(nproc) - 1))
|
||
}
|
||
|
||
package() {
|
||
cd "$srcdir/mesa-${_pkgver}"
|
||
|
||
echo "==> Installing Mesa..."
|
||
DESTDIR="$pkgdir" meson install -C builddir --no-rebuild
|
||
|
||
# Install license
|
||
install -Dm644 docs/license.rst "$pkgdir/usr/share/licenses/$name/LICENSE"
|
||
|
||
echo "==> Mesa ${_pkgver} installed with AMD RDNA 4 support"
|
||
}
|
||
|
||
files() {
|
||
# Find all installed files
|
||
if [ -d ./usr/lib64 ]; then
|
||
find ./usr/lib64 -type f -printf '%p\n'
|
||
find ./usr/lib64 -type l -printf '%p\n'
|
||
fi
|
||
|
||
if [ -d ./usr/lib ]; then
|
||
find ./usr/lib -type f -printf '%p\n'
|
||
find ./usr/lib -type l -printf '%p\n'
|
||
fi
|
||
|
||
if [ -d ./usr/include ]; then
|
||
find ./usr/include -type f -printf '%p\n'
|
||
fi
|
||
|
||
if [ -d ./usr/share ]; then
|
||
find ./usr/share -type f -printf '%p\n'
|
||
fi
|
||
|
||
if [ -d ./usr/bin ]; then
|
||
find ./usr/bin -type f -printf '%p\n'
|
||
fi
|
||
|
||
if [ -d ./etc ]; then
|
||
find ./etc -type f -printf '%p\n'
|
||
fi
|
||
}
|