system/nvidia-legacy470-driver: Fix build, add Wine libraries.

Signed-off-by: bedlam <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Lenard Spencer 2023-02-09 22:59:30 +00:00 committed by Willy Sudiarto Raharjo
parent 2507e6b5f4
commit 0b4016ab05
No known key found for this signature in database
GPG key ID: 3F617144D7238786
2 changed files with 23 additions and 14 deletions

View file

@ -5,6 +5,9 @@ part of the nvidia-kernel package at SlackBuilds.org.
NOTE: 64-bit x86_64 support ONLY for Slackware64. For x86 32-bit
support, use nvidia-legacy390-{driver,kernel}
The Wine libraries are now installed by default. To disable, pass
WINE="no" to the script.
Installing the 32-bit compatibility libraries is available:
if desired, do:

View file

@ -3,7 +3,7 @@
# Slackware build script for nvidia-legacy470-driver
# Copyright 2012-2019 Edward W. Koenig, Vancouver, WA, US
# Copyright 2021 Lenard Spencer, Orlando, FL, USA
# Copyright 2021-2023 Lenard Spencer, Orlando, FL, USA
#
# All rights reserved.
#
@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nvidia-legacy470-driver
VERSION=${VERSION:-470.161.03}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@ -89,9 +89,8 @@ rm -rf $PKG
rm -rf $TMP/$SRCNAM
mkdir -p $TMP $PKG $OUTPUT $PKG/install
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/{drivers,extensions} \
$PKG/etc/OpenCL/vendors/ $PKG/usr/{bin,doc,man/man1,sbin} \
$PKG/etc/OpenCL/vendors/ $PKG/usr/{bin,doc,man/man1} \
$PKG/usr/share/{applications,nvidia,pixmaps,egl/egl_external_platform.d} \
$PKG/usr/include/GL $PKG/etc/vulkan/{icd.d,implicit_layer.d} $PKG/etc/X11/xorg.conf.d \
$PKG/etc/X11/glvnd/egl_vendor.d
if [ "$COMPAT32" = "yes" ]; then
@ -125,6 +124,11 @@ cd $TMP/nvidia-installer-$VERSION
# Let's try to remove the conflicting files and GPU detection
patch -p0 < $CWD/skip_conflict-GPU_detect.patch
# Install the /etc/vulkan folder in $PKG instead of the root filesystem:
sed -i "s|/etc/vulkan|$PKG/etc/vulkan|" files.c
sed -i "s|/lib/firmware/nvidia|$PKG/lib/firmware/nvidia|" files.c
sed -i "s|\"/etc\"|\"$PKG/etc\"|" nvidia-installer.h
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@ -162,21 +166,28 @@ cd $TMP/$SRCNAM
--log-file-name=$PKG/var/log/nvidia-installer.log \
--egl-external-platform-config-path=$PKG/usr/share/egl/egl_external_platform.d \
--no-nvidia-modprobe \
--no-install-libglvnd \
--no-wine-files \
--no-systemd \
--no-peermem \
$COMP32
# Move ICDs to $PKG and cleanup (no switch option in installer?)
mv /etc/OpenCL/vendors/nvidia.icd $PKG/etc/OpenCL/vendors/nvidia.icd
mv /etc/vulkan/icd.d/nvidia_icd.json $PKG/etc/vulkan/icd.d/nvidia_icd.json
mv /etc/vulkan/implicit_layer.d/nvidia_layers.json $PKG/etc/vulkan/implicit_layer.d/nvidia_layers.json
# If we are using Wine, then:
if [ "${WINE:-yes}" != "no" ]; then
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/nvidia/wine
install -m 755 _nvngx.dll $PKG/usr/lib$LIBDIRSUFFIX/nvidia/wine
install -m 755 nvngx.dll $PKG/usr/lib$LIBDIRSUFFIX/nvidia/wine
fi
# libOpenCL.so is now included in 15.0 (in ocl-icd),
# so we don't need this one.
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libOpenCL.so*
if [ "${COMPAT32}" = "yes" ]; then
rm -f $PKG/usr/lib/libOpenCL.so*
fi
# remove a pair of folders installed and used by nvidia-installer but
# no longer needed (caused the "failed to remove some directories"
# warning message):
rm -rf /{var,usr}/lib/nvidia || true
# Compile utilites from source, replacing the precompiled versions
#
@ -271,11 +282,6 @@ fi
cat $CWD/doinst.sh > $PKG/install/doinst.sh
# 14.2 needs nvidia-switch, -current does not
if [ "$CURRENT" = "no" ]; then
echo -e "usr/sbin/nvidia-switch --install\n" >> $PKG/install/doinst.sh
fi
# Add rc.nvidia-persistenced:
if [ "${PERSISTENCED:-no}" = "yes" ]; then
cd $TMP