Files
alr-RG/lib32-mesa/alr.sh
Евгений Храмов 061750c3ac fix: исправление конфликтов зависимостей
- mesa, lib32-mesa: убрал libglvnd-gles из deps_redos (mesa сама предоставляет mesa-libGLES)
- lib32-llvm18: убрал llvm-libs(x86-32) из provides (конфликт с системным llvm-libs-17)
2025-11-28 01:01:36 +03:00

237 lines
5.5 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.3.0'
release='2'
epoch='1'
desc='Open-source OpenGL and Vulkan drivers (32-bit)'
desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом'
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-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)'
'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'
'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=('0fd54fea7dbbddb154df05ac752b18621f26d97e27863db3be951417c6abe8ae')
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" <<EOF
[binaries]
c = ['gcc', '-m32']
cpp = ['g++', '-m32']
ar = 'gcc-ar'
strip = 'strip'
pkg-config = 'pkg-config'
[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) 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 \
-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
}