Files
alr-repo/lib32-mesa/alr.sh
Евгений Храмов 113b291e14 - mesa (v25.2.6): OpenGL и Vulkan драйверы с поддержкой AMD RDNA 4 (RX 9070 XT)
* Gallium драйверы: r300, r600, radeonsi, llvmpipe, softpipe, zink
  * Vulkan драйверы: amd, swrast
  * Поддержка VA-API и VDPAU для аппаратного декодирования
  * Использует LLVM 18
  * Заменяет стандартные пакеты mesa из репозитория

- lib32-mesa (v25.2.6): 32-битная версия Mesa для поддержки 32-битных игр и приложений
  * Те же драйверы и функции что и в 64-битной версии
  * Кросс-компиляция с использованием meson cross-file
  * Устанавливается в /usr/lib (не конфликтует с 64-битной версией)

- linux-xanmod-bin (v6.17.6): Prebuilt ядро Xanmod с оптимизациями
  * Автоопределение CPU микроархитектуры (x64v1-v4)
  * Поддержка BLS (Boot Loader Specification) с grubby
  * Автоматическое создание initramfs и регистрация в GRUB
  * Кеширование загруженных файлов
2025-11-11 00:22:57 +03:00

253 lines
5.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name='lib32-mesa'
version='25.2.6'
release='1'
epoch='1'
desc='Open-source OpenGL and Vulkan drivers (32-bit) with AMD RDNA 4 (RX 9070 XT) support'
desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом с поддержкой 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=(
'lib32-mesa'
'lib32-mesa-dri-drivers'
'lib32-mesa-vulkan-drivers'
'lib32-mesa-va-drivers'
'lib32-mesa-vdpau-drivers'
'lib32-mesa-libgbm'
'lib32-mesa-libEGL'
'lib32-mesa-libGL'
'lib32-mesa-libGLES'
'lib32-vulkan-radeon'
'lib32-libva-mesa-driver'
'lib32-opengl-driver'
'lib32-vulkan-driver'
)
conflicts=(
'lib32-mesa'
'lib32-mesa-dri-drivers'
'lib32-mesa-vulkan-drivers'
'lib32-mesa-va-drivers'
'lib32-mesa-vdpau-drivers'
'lib32-mesa-libgbm'
'lib32-mesa-libEGL'
'lib32-mesa-libGL'
'lib32-mesa-libGLES'
)
# 32-битные зависимости
deps=(
'expat.i686'
'libdrm.i686'
'libelf.i686'
'libglvnd.i686'
'libx11.i686'
'libxcb.i686'
'libxext.i686'
'libxshmfence.i686'
'libxxf86vm.i686'
'llvm18-libs.i686'
'lm_sensors.i686'
'libwayland-client.i686'
'libwayland-server.i686'
'zlib.i686'
'zstd.i686'
'vulkan-icd-loader.i686'
'mesa'
)
# Зависимости для RedOS (32-бит)
deps_redos=(
'expat.i686'
'libdrm.i686'
'elfutils-libelf.i686'
'libglvnd.i686'
'libX11.i686'
'libxcb.i686'
'libXext.i686'
'libxshmfence.i686'
'libXxf86vm.i686'
'llvm18-libs.i686'
'lm_sensors-libs.i686'
'libwayland-client.i686'
'libwayland-server.i686'
'zlib.i686'
'zstd.i686'
'vulkan-loader.i686'
'mesa+default'
)
# Зависимости для сборки (в основном 64-бит tools + 32-бит libs)
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'
'glibc-devel.i686'
'libdrm-devel.i686'
'libxcb-devel.i686'
'libX11-devel.i686'
'libXext-devel.i686'
'libXxf86vm-devel.i686'
'libXfixes-devel.i686'
'libXdamage-devel.i686'
'libxshmfence-devel.i686'
'libXrandr-devel.i686'
'elfutils-libelf-devel.i686'
'libglvnd-devel.i686'
'wayland-devel.i686'
'wayland-protocols-devel'
'libva-devel.i686'
'libvdpau-devel.i686'
'expat-devel.i686'
'libxml2-devel.i686'
'libzstd-devel.i686'
'lm_sensors-devel.i686'
'systemd-devel.i686'
'libpng-devel.i686'
'vulkan-headers'
'vulkan-loader-devel.i686'
'llvm18-libs.i686'
)
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
# Create wrapper for llvm-config-18 to report 32-bit paths
cat > "$srcdir/llvm-config-18-32" << 'EOF'
#!/bin/bash
/usr/bin/llvm-config-18 "$@" | sed \
-e 's/lib64/lib/g' \
-e 's/x86_64/i686/g'
EOF
chmod +x "$srcdir/llvm-config-18-32"
# Create meson cross-file for 32-bit compilation
cat > "$srcdir/lib32-cross.ini" <<EOF
[binaries]
c = ['gcc', '-m32']
cpp = ['g++', '-m32']
ar = 'gcc-ar'
strip = 'strip'
pkg-config = 'pkg-config'
llvm-config = '$srcdir/llvm-config-18-32'
[built-in options]
c_args = ['-m32']
c_link_args = ['-m32']
cpp_args = ['-m32']
cpp_link_args = ['-m32']
[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
EOF
echo "==> Preparing Mesa ${version} (32-bit) for AMD RDNA 4 (RX 9070 XT) support..."
}
build() {
cd "$srcdir/mesa-${_pkgver}"
# Set environment for 32-bit build
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
export LLVM_CONFIG="$srcdir/llvm-config-18-32"
# 32-bit CFLAGS/CXXFLAGS
export CFLAGS="-m32 -O2 -g1"
export CXXFLAGS="-m32 -O2 -g1"
export LDFLAGS="-m32"
echo "==> Configuring Mesa (32-bit) with Meson..."
meson setup builddir \
--cross-file="$srcdir/lib32-cross.ini" \
--prefix=/usr \
--libdir=lib \
--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 (32-bit) - this may take 15-30 minutes..."
meson compile -C builddir -j$(nproc)
}
package() {
cd "$srcdir/mesa-${_pkgver}"
echo "==> Installing Mesa (32-bit)..."
DESTDIR="$pkgdir" meson install -C builddir --no-rebuild
# Install license
install -Dm644 docs/license.rst "$pkgdir/usr/share/licenses/$name/LICENSE"
# Remove files that conflict with 64-bit mesa
rm -rf "$pkgdir/usr/include"
rm -rf "$pkgdir/usr/share/drirc.d"
rm -rf "$pkgdir/usr/share/vulkan"
rm -rf "$pkgdir/usr/share/glvnd"
rm -rf "$pkgdir/usr/lib/pkgconfig"
rm -f "$pkgdir/usr/bin"/*
echo "==> Mesa ${version} (32-bit) installed with AMD RDNA 4 support"
}
files() {
# Find all installed 32-bit library files
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/share/licenses ]; then
find ./usr/share/licenses -type f -printf '%p\n'
fi
}