name='lib32-mesa' version='25.3.0' release='1' epoch='1' desc='Open-source OpenGL and Vulkan drivers (32-bit)' desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом' homepage='https://www.mesa3d.org/' maintainer='Evgeniy Khramov ' maintainer_ru='Евгений Храмов ' architectures=('amd64') license=('MIT' 'BSD-3-Clause' 'SGI-B-2.0') provides=( 'mesa-dri-drivers(x86-32)' 'mesa-vulkan-drivers(x86-32)' 'mesa-va-drivers(x86-32)' 'mesa-vdpau-drivers(x86-32)' 'mesa-libgbm(x86-32)' 'mesa-libEGL(x86-32)' 'mesa-libGL(x86-32)' 'mesa-libGLES(x86-32)' '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' 'libGLESv1_CM.so.1' 'libGLESv2.so.2' ) conflicts=( 'mesa-dri-drivers(x86-32) < 25.2.6' 'mesa-vulkan-drivers(x86-32) < 25.2.6' 'mesa-va-drivers(x86-32) < 25.2.6' 'mesa-vdpau-drivers(x86-32) < 25.2.6' 'mesa-libgbm(x86-32) < 25.2.6' 'mesa-libEGL(x86-32) < 25.2.6' 'mesa-libGL(x86-32) < 25.2.6' 'mesa-libGLES(x86-32) < 25.2.6' ) deps=( 'expat(x86-32)' 'libdrm(x86-32)' 'libelf(x86-32)' 'libglvnd(x86-32)' 'libx11(x86-32)' 'libxcb(x86-32)' 'libxext(x86-32)' 'libxshmfence(x86-32)' 'libxxf86vm(x86-32)' 'libwayland-client(x86-32)' 'libwayland-server(x86-32)' 'zlib(x86-32)' 'libzstd(x86-32)' 'vulkan-icd-loader(x86-32)' ) deps_redos=( 'expat(x86-32)' 'lib32-libdrm' 'elfutils-libelf(x86-32)' 'libglvnd(x86-32)' 'libglvnd-gles(x86-32)' 'libX11(x86-32)' 'libxcb(x86-32)' 'libXext(x86-32)' 'libxshmfence(x86-32)' 'libXxf86vm(x86-32)' 'libwayland-client(x86-32)' 'libwayland-server(x86-32)' 'zlib(x86-32)' 'libzstd(x86-32)' 'vulkan-loader(x86-32)' 'lib32-llvm18' 'lib32-lm_sensors' ) 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(x86-32)' 'lib32-libdrm' 'libxcb-devel(x86-32)' 'libX11-devel(x86-32)' 'libXext-devel(x86-32)' 'libXxf86vm-devel(x86-32)' 'libXfixes-devel(x86-32)' 'libXdamage-devel(x86-32)' 'libxshmfence-devel(x86-32)' 'libXrandr-devel(x86-32)' 'elfutils-libelf-devel(x86-32)' 'libglvnd-devel(x86-64)' 'wayland-devel(x86-32)' 'wayland-protocols-devel' 'libva-devel(x86-64)' 'libvdpau-devel(x86-64)' 'expat-devel(x86-32)' 'libxml2-devel(x86-32)' 'libzstd-devel(x86-32)' 'lm_sensors-devel' 'lib32-lm_sensors' 'systemd-devel(x86-32)' 'libpng-devel(x86-32)' 'vulkan-headers' 'vulkan-loader-devel(x86-32)' 'lib32-llvm18' ) build_deps_redos=("${build_deps[@]}") sources=("https://archive.mesa3d.org/mesa-${version}.tar.xz") checksums=('361c97e8afa5fe20141c5362c5b489040751e12861c186a16c621a2fb182fc42') prepare() { cd "$srcdir/mesa-${version}" # Установка версии для правильной идентификации echo "${version}-alr${epoch}.${release}" > VERSION # Create llvm-config-i386.h for 32-bit LLVM support echo "==> Creating llvm-config-i386.h for 32-bit LLVM 18..." sudo cp /usr/lib64/llvm18/include/llvm/Config/llvm-config-x86_64.h /usr/lib64/llvm18/include/llvm/Config/llvm-config-i386.h sudo sed -i 's/x86_64-redsoft-linux-gnu/i686-redsoft-linux-gnu/g' /usr/lib64/llvm18/include/llvm/Config/llvm-config-i386.h # Create meson cross-file for 32-bit compilation cat > "$srcdir/lib32-cross.ini" < Preparing Mesa ${version} (32-bit) with LLVM for AMD RDNA 4 gaming support..." } build() { cd "$srcdir/mesa-${version}" export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" export LLVM_CONFIG="/usr/bin/llvm-config-18-32" export CFLAGS="-m32 -O2 -g1 -I/usr/lib64/llvm18/include" export CXXFLAGS="-m32 -O2 -g1 -I/usr/lib64/llvm18/include" export LDFLAGS="-m32" meson setup builddir \ --cross-file="$srcdir/lib32-cross.ini" \ --prefix=/usr \ --libdir=lib \ --buildtype=release \ -Db_ndebug=true \ -Dc_args="-I/usr/lib64/llvm18/include" \ -Dcpp_args="-I/usr/lib64/llvm18/include" \ -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 meson compile -C builddir -j$(($(nproc) - 1)) } package() { cd "$srcdir/mesa-${version}" DESTDIR="$pkgdir" meson install -C builddir --no-rebuild install-license docs/license.rst lib32-mesa/LICENSE rm -rf "$pkgdir/usr/include" rm -rf "$pkgdir/usr/lib/pkgconfig" rm -f "$pkgdir/usr/bin"/* } 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 }