Старт репозитория
This commit is contained in:
256
lib32-mesa/alr.sh
Normal file
256
lib32-mesa/alr.sh
Normal file
@@ -0,0 +1,256 @@
|
||||
name='lib32-mesa'
|
||||
version='25.2.6'
|
||||
release='15'
|
||||
epoch='1'
|
||||
desc='Open-source OpenGL and Vulkan drivers (32-bit) with AMD RDNA 4 support for gaming'
|
||||
desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом с поддержкой AMD RDNA 4 для игр'
|
||||
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'
|
||||
)
|
||||
|
||||
# 32-битные зависимости
|
||||
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)'
|
||||
)
|
||||
|
||||
# Зависимости для RedOS (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'
|
||||
)
|
||||
|
||||
# Зависимости для сборки (в основном 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(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[@]}")
|
||||
|
||||
_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 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-${_pkgver}"
|
||||
|
||||
# Set environment for 32-bit build
|
||||
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
|
||||
export LLVM_CONFIG="/usr/bin/llvm-config-18-32"
|
||||
|
||||
# 32-bit CFLAGS/CXXFLAGS with LLVM 18 headers
|
||||
export CFLAGS="-m32 -O2 -g1 -I/usr/lib64/llvm18/include"
|
||||
export CXXFLAGS="-m32 -O2 -g1 -I/usr/lib64/llvm18/include"
|
||||
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 \
|
||||
-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
|
||||
|
||||
echo "==> Building Mesa (32-bit) - this may take 15-30 minutes..."
|
||||
meson compile -C builddir -j$(($(nproc) - 1))
|
||||
}
|
||||
|
||||
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 LLVM and AMD RDNA 4 gaming 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
|
||||
}
|
||||
Reference in New Issue
Block a user