Mesa 25.2.6 и libdrm 2.4.128: поддержка AMD RDNA 4 (RX 9070 XT)

* libdrm (v2.4.128): Обновление до версии 2.4.128 для поддержки AMD RDNA 4
  - Требуется для Mesa 25.2.x с RDNA 4 GPU
  - Заменяет стандартную libdrm-2.4.123
  - Полный список provides включая .so библиотеки и pkgconfig

* mesa (v25.2.6): Обновлены provides для корректной замены системной mesa
  - Добавлены архитектурные теги (x86-64)
  - Добавлены .so библиотеки в provides
  - Gallium драйверы: r300, r600, radeonsi, llvmpipe, softpipe, zink
  - Vulkan драйверы: amd, swrast
  - Использует LLVM 18

* lib32-mesa (v25.2.6-10): 32-битная Mesa без LLVM (только softpipe)
  - Отключен LLVM из-за конфликтов multilib в RedOS
  - Только softpipe драйвер (программный рендеринг)
  - Обновлены provides с синтаксисом (x86-32) для RedOS

* Добавлены заготовки пакетов:
  - lib32-libdrm: 32-битная libdrm (заготовка)
  - lib32-llvm18: 32-битный LLVM 18 (заготовка)
  - lib32-lm_sensors: 32-битные lm_sensors (заготовка)
This commit is contained in:
2025-11-12 23:12:05 +03:00
parent 113b291e14
commit 3d78fc1a62
6 changed files with 521 additions and 38 deletions

116
lib32-libdrm/alr.sh Normal file
View File

@@ -0,0 +1,116 @@
name='lib32-libdrm'
version='2.4.128'
release='1'
desc='32-bit userspace library for kernel DRM services'
desc_ru='32-битная библиотека пользовательского пространства для служб DRM ядра'
homepage='https://dri.freedesktop.org/'
maintainer='Evgeniy Khramov <xpamych@yandex.ru>'
maintainer_ru='Евгений Храмов <xpamych@yandex.ru>'
license='MIT'
architectures=('amd64')
min_alr_version='v0.0.14'
# Runtime dependencies
deps=(
'libpciaccess.i686'
'libdrm+default'
)
deps_redos=(
'libpciaccess(x86-32)'
'libdrm+default'
)
# Build dependencies
build_deps=(
'meson'
'ninja-build'
'gcc'
'libpciaccess-devel.i686'
'systemd-devel.i686'
'python3'
)
build_deps_redos=("${build_deps[@]}")
# Provides 32-bit libdrm
provides=(
'libdrm.i686'
'libdrm(x86-32)'
'libdrm.so.2'
'libdrm_amdgpu.so.1'
'libdrm_intel.so.1'
'libdrm_nouveau.so.2'
'libdrm_radeon.so.1'
'libdrm-devel.i686'
'libdrm-devel(x86-32)'
)
conflicts=(
'libdrm.i686 < 2.4.128'
'libdrm-devel.i686 < 2.4.128'
)
_pkgver="${version}"
sources=("https://dri.freedesktop.org/libdrm/libdrm-${_pkgver}.tar.xz")
checksums=('SKIP')
prepare() {
cd "$srcdir/libdrm-${_pkgver}"
echo "==> Preparing libdrm ${version} (32-bit)..."
}
build() {
cd "$srcdir/libdrm-${_pkgver}"
export CFLAGS="-m32 -O2 -g1"
export CXXFLAGS="-m32 -O2 -g1"
export LDFLAGS="-m32"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
echo "==> Configuring libdrm (32-bit) with Meson..."
meson setup builddir \
--prefix=/usr \
--libdir=lib \
--buildtype=release \
-Dudev=true \
-Dvalgrind=disabled \
-Dcairo-tests=disabled \
-Dintel=enabled \
-Dradeon=enabled \
-Damdgpu=enabled \
-Dnouveau=enabled \
-Dvmwgfx=enabled \
-Domap=disabled \
-Dexynos=disabled \
-Dfreedreno=disabled \
-Dtegra=disabled \
-Dvc4=disabled \
-Detnaviv=disabled \
-Dinstall-test-programs=false
echo "==> Building libdrm (32-bit)..."
meson compile -C builddir -j$(nproc)
}
package() {
cd "$srcdir/libdrm-${_pkgver}"
echo "==> Installing libdrm (32-bit)..."
DESTDIR="$pkgdir" meson install -C builddir --no-rebuild
# Remove headers and pkg-config files (use from 64-bit libdrm+default)
rm -rf "$pkgdir/usr/include"
rm -rf "$pkgdir/usr/share"
# Install license
install -Dm644 README.rst "$pkgdir/usr/share/licenses/$name/README.rst"
echo "==> libdrm ${version} (32-bit) installed"
}
files() {
# Find all installed files
find "$pkgdir" -type f -o -type l | sed "s|^$pkgdir||" | sort
}

135
lib32-llvm18/alr.sh Normal file
View File

@@ -0,0 +1,135 @@
name='lib32-llvm18'
version='18.1.8'
release='1'
desc='32-bit LLVM libraries for Mesa'
desc_ru='32-битные библиотеки LLVM для Mesa'
homepage='https://llvm.org/'
maintainer='Evgeniy Khramov <xpamych@yandex.ru>'
maintainer_ru='Евгений Храмов <xpamych@yandex.ru>'
license='Apache-2.0 WITH LLVM-exception'
architectures=('amd64')
min_alr_version='v0.0.14'
# Runtime dependencies
deps=(
'llvm18-libs(x86-32)'
)
deps_redos=(
'llvm18-libs(x86-32)'
)
# Build dependencies
build_deps=(
'cmake'
'ninja-build'
'gcc'
'gcc-c++'
'python3'
'python3-devel'
'zlib-devel.i686'
'libzstd-devel.i686'
'libxml2-devel.i686'
'ncurses-devel.i686'
'libedit-devel.i686'
'libffi-devel.i686'
'glibc-devel.i686'
)
build_deps_redos=("${build_deps[@]}")
# Provides 32-bit LLVM libraries
provides=(
'lib32-llvm18'
'llvm18-libs.i686'
'llvm18-devel.i686'
)
_pkgver="${version}"
sources=("https://github.com/llvm/llvm-project/releases/download/llvmorg-${_pkgver}/llvm-${_pkgver}.src.tar.xz")
checksums=('SKIP')
prepare() {
cd "$srcdir/llvm-${_pkgver}.src"
echo "==> Preparing LLVM ${version} (32-bit)..."
}
build() {
cd "$srcdir/llvm-${_pkgver}.src"
export CFLAGS="-m32 -O2 -g1"
export CXXFLAGS="-m32 -O2 -g1"
export LDFLAGS="-m32"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
echo "==> Configuring LLVM (32-bit) with CMake..."
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_C_FLAGS="-m32" \
-DCMAKE_CXX_FLAGS="-m32" \
-DLLVM_LIBDIR_SUFFIX="" \
-DLLVM_TARGET_ARCH=i686 \
-DLLVM_DEFAULT_TARGET_TRIPLE=i686-redsoft-linux-gnu \
-DLLVM_TARGETS_TO_BUILD="X86;AMDGPU" \
-DLLVM_ENABLE_PROJECTS="" \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_BUILD_TOOLS=OFF \
-DLLVM_BUILD_UTILS=OFF \
-DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_INCLUDE_DOCS=OFF \
-DLLVM_ENABLE_DOXYGEN=OFF \
-DLLVM_ENABLE_SPHINX=OFF \
-DLLVM_ENABLE_BINDINGS=OFF \
-DLLVM_ENABLE_TERMINFO=ON \
-DLLVM_ENABLE_ZLIB=ON \
-DLLVM_ENABLE_ZSTD=ON \
-DLLVM_ENABLE_LIBXML2=ON \
-DBUILD_SHARED_LIBS=OFF
echo "==> Building LLVM (32-bit) - this may take 30-60 minutes..."
cmake --build build -j$(nproc)
}
package() {
cd "$srcdir/llvm-${_pkgver}.src"
echo "==> Installing LLVM (32-bit) libraries..."
DESTDIR="$pkgdir" cmake --install build
# Remove executables and tools (to avoid conflicts with 64-bit LLVM)
rm -rf "$pkgdir/usr/bin"
rm -rf "$pkgdir/usr/share/man"
rm -rf "$pkgdir/usr/share/opt-viewer"
# Move libraries to /usr/lib (32-bit location)
if [ -d "$pkgdir/usr/lib64" ]; then
mkdir -p "$pkgdir/usr/lib"
mv "$pkgdir/usr/lib64"/* "$pkgdir/usr/lib/" 2>/dev/null || true
rmdir "$pkgdir/usr/lib64"
fi
# Keep only essential headers for Mesa compilation
# Remove conflicting includes
if [ -d "$pkgdir/usr/include" ]; then
mkdir -p "$pkgdir/usr/include/llvm-32"
mv "$pkgdir/usr/include/llvm" "$pkgdir/usr/include/llvm-32/" 2>/dev/null || true
mv "$pkgdir/usr/include/llvm-c" "$pkgdir/usr/include/llvm-32/" 2>/dev/null || true
# Remove other includes that conflict
rm -rf "$pkgdir/usr/include"/*.h
fi
# Install license
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$name/LICENSE.TXT"
echo "==> LLVM ${version} (32-bit) libraries installed"
}
files() {
# Find all installed files
find "$pkgdir" -type f -o -type l | sed "s|^$pkgdir||" | sort
}

97
lib32-lm_sensors/alr.sh Normal file
View File

@@ -0,0 +1,97 @@
name='lib32-lm_sensors'
version='3.6.0'
release='1'
desc='32-bit hardware monitoring library'
desc_ru='32-битная библиотека мониторинга оборудования'
homepage='https://github.com/lm-sensors/lm-sensors'
maintainer='Evgeniy Khramov <xpamych@yandex.ru>'
maintainer_ru='Евгений Храмов <xpamych@yandex.ru>'
license='GPL-2.0-or-later AND LGPL-2.1-or-later'
architectures=('amd64')
min_alr_version='v0.0.14'
# Runtime dependencies
deps=(
'lm_sensors+default'
)
deps_redos=(
'lm_sensors+default'
)
# Build dependencies
build_deps=(
'gcc'
'make'
'bison'
'flex'
'glibc-devel.i686'
)
build_deps_redos=("${build_deps[@]}")
# Provides 32-bit lm_sensors libraries
provides=(
'lm_sensors-libs.i686'
'lm_sensors-libs(x86-32)'
'libsensors.so.5'
)
conflicts=(
'lm_sensors-libs.i686 < 3.6.0'
)
_pkgver="${version}"
sources=("https://github.com/lm-sensors/lm-sensors/archive/V${_pkgver//./-}.tar.gz")
checksums=('SKIP')
prepare() {
cd "$srcdir/lm-sensors-${_pkgver//./-}"
echo "==> Preparing lm_sensors ${version} (32-bit)..."
}
build() {
cd "$srcdir/lm-sensors-${_pkgver//./-}"
export CFLAGS="-m32 -O2 -g1"
export CXXFLAGS="-m32 -O2 -g1"
export LDFLAGS="-m32"
echo "==> Building lm_sensors (32-bit)..."
make PREFIX=/usr \
LIBDIR=/usr/lib \
MANDIR=/usr/share/man \
BUILD_STATIC_LIB=0 \
-j$(nproc) \
lib/libsensors.so
}
package() {
cd "$srcdir/lm-sensors-${_pkgver//./-}"
echo "==> Installing lm_sensors (32-bit) libraries..."
# Install library
install -Dm755 lib/libsensors.so.${version} "$pkgdir/usr/lib/libsensors.so.${version}"
ln -sf libsensors.so.${version} "$pkgdir/usr/lib/libsensors.so.5"
ln -sf libsensors.so.${version} "$pkgdir/usr/lib/libsensors.so"
# Install license
install -Dm644 COPYING "$pkgdir/usr/share/licenses/$name/COPYING"
install -Dm644 COPYING.LGPL "$pkgdir/usr/share/licenses/$name/COPYING.LGPL"
echo "==> lm_sensors ${version} (32-bit) installed"
}
files() {
# Find all installed 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
}

View File

@@ -2,14 +2,22 @@ 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)'
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.i686'
'mesa-vulkan-drivers.i686'
'mesa-va-drivers.i686'
'mesa-vdpau-drivers.i686'
'mesa-libgbm.i686'
'mesa-libEGL.i686'
'mesa-libGL.i686'
'mesa-libGLES.i686'
'lib32-mesa'
'lib32-mesa-dri-drivers'
'lib32-mesa-vulkan-drivers'
@@ -25,6 +33,14 @@ provides=(
'lib32-vulkan-driver'
)
conflicts=(
'mesa-dri-drivers.i686'
'mesa-vulkan-drivers.i686'
'mesa-va-drivers.i686'
'mesa-vdpau-drivers.i686'
'mesa-libgbm.i686'
'mesa-libEGL.i686'
'mesa-libGL.i686'
'mesa-libGLES.i686'
'lib32-mesa'
'lib32-mesa-dri-drivers'
'lib32-mesa-vulkan-drivers'
@@ -47,35 +63,33 @@ deps=(
'libxext.i686'
'libxshmfence.i686'
'libxxf86vm.i686'
'llvm18-libs.i686'
'lm_sensors.i686'
'libwayland-client.i686'
'libwayland-server.i686'
'zlib.i686'
'zstd.i686'
'libzstd.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'
'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'
'mesa'
)
# Зависимости для сборки (в основном 64-бит tools + 32-бит libs)
@@ -100,7 +114,7 @@ build_deps=(
'glslang-devel'
'spirv-tools-devel'
'glibc-devel.i686'
'libdrm-devel.i686'
'lib32-libdrm'
'libxcb-devel.i686'
'libX11-devel.i686'
'libXext-devel.i686'
@@ -118,12 +132,13 @@ build_deps=(
'expat-devel.i686'
'libxml2-devel.i686'
'libzstd-devel.i686'
'lm_sensors-devel.i686'
'lm_sensors-devel'
'lib32-lm_sensors'
'systemd-devel.i686'
'libpng-devel.i686'
'vulkan-headers'
'vulkan-loader-devel.i686'
'llvm18-libs.i686'
'lib32-llvm18'
)
build_deps_redos=("${build_deps[@]}")
@@ -139,14 +154,10 @@ prepare() {
# Установка версии для правильной идентификации
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 llvm-config-i386.h for 32-bit LLVM support
echo "==> Creating llvm-config-i386.h for 32-bit LLVM..."
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
@@ -156,7 +167,6 @@ 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']
@@ -171,7 +181,7 @@ cpu = 'i686'
endian = 'little'
EOF
echo "==> Preparing Mesa ${version} (32-bit) for AMD RDNA 4 (RX 9070 XT) support..."
echo "==> Preparing Mesa ${version} (32-bit) with LLVM for AMD RDNA 4 gaming support..."
}
build() {
@@ -179,7 +189,7 @@ build() {
# Set environment for 32-bit build
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
export LLVM_CONFIG="$srcdir/llvm-config-18-32"
export LLVM_CONFIG="/usr/bin/llvm-config-18"
# 32-bit CFLAGS/CXXFLAGS
export CFLAGS="-m32 -O2 -g1"
@@ -236,7 +246,7 @@ package() {
rm -rf "$pkgdir/usr/lib/pkgconfig"
rm -f "$pkgdir/usr/bin"/*
echo "==> Mesa ${version} (32-bit) installed with AMD RDNA 4 support"
echo "==> Mesa ${version} (32-bit) installed with LLVM and AMD RDNA 4 gaming support"
}
files() {

110
libdrm/alr.sh Normal file
View File

@@ -0,0 +1,110 @@
name='libdrm'
version='2.4.128'
release='1'
desc='Userspace library for kernel DRM services'
desc_ru='Библиотека пользовательского пространства для служб DRM ядра'
homepage='https://dri.freedesktop.org/'
maintainer='Evgeniy Khramov <xpamych@yandex.ru>'
maintainer_ru='Евгений Храмов <xpamych@yandex.ru>'
license='MIT'
architectures=('amd64')
min_alr_version='v0.0.14'
# Runtime dependencies
deps=(
'libpciaccess'
)
deps_redos=(
'libpciaccess'
)
# Build dependencies
build_deps=(
'meson'
'ninja-build'
'gcc'
'libpciaccess-devel'
'systemd-devel'
'python3'
)
build_deps_redos=("${build_deps[@]}")
# Provides - заменяет системную libdrm
provides=(
'libdrm'
'libdrm(x86-64)'
'libdrm.so.2()(64bit)'
'libdrm_amdgpu.so.1()(64bit)'
'libdrm_intel.so.1()(64bit)'
'libdrm_nouveau.so.2()(64bit)'
'libdrm_radeon.so.1()(64bit)'
'libdrm-devel'
'libdrm-devel(x86-64)'
'pkgconfig(libdrm)'
'pkgconfig(libdrm_amdgpu)'
'pkgconfig(libdrm_intel)'
'pkgconfig(libdrm_nouveau)'
'pkgconfig(libdrm_radeon)'
)
conflicts=(
'libdrm < 2.4.128'
'libdrm-devel < 2.4.128'
)
_pkgver="${version}"
sources=("https://dri.freedesktop.org/libdrm/libdrm-${_pkgver}.tar.xz")
checksums=('SKIP')
prepare() {
cd "$srcdir/libdrm-${_pkgver}"
echo "==> Preparing libdrm ${version}..."
}
build() {
cd "$srcdir/libdrm-${_pkgver}"
echo "==> Configuring libdrm with Meson..."
meson setup builddir \
--prefix=/usr \
--libdir=lib64 \
--buildtype=release \
-Dudev=true \
-Dvalgrind=disabled \
-Dcairo-tests=disabled \
-Dintel=enabled \
-Dradeon=enabled \
-Damdgpu=enabled \
-Dnouveau=enabled \
-Dvmwgfx=enabled \
-Domap=disabled \
-Dexynos=disabled \
-Dfreedreno=disabled \
-Dtegra=disabled \
-Dvc4=disabled \
-Detnaviv=disabled \
-Dinstall-test-programs=false
echo "==> Building libdrm..."
meson compile -C builddir -j$(nproc)
}
package() {
cd "$srcdir/libdrm-${_pkgver}"
echo "==> Installing libdrm..."
DESTDIR="$pkgdir" meson install -C builddir --no-rebuild
# Install license
install -Dm644 README.rst "$pkgdir/usr/share/licenses/$name/README.rst"
echo "==> libdrm ${version} installed"
}
files() {
# Find all installed files
find "$pkgdir" -type f -o -type l | sed "s|^$pkgdir||" | sort
}

View File

@@ -1,6 +1,6 @@
name='mesa'
version='25.2.6'
release='3'
release='1'
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)'
@@ -12,17 +12,32 @@ 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)'
)
conflicts=(
'mesa'