aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/nvidia-driver/README21
-rw-r--r--system/nvidia-driver/doinst.sh47
-rw-r--r--system/nvidia-driver/nvidia-driver.SlackBuild54
-rw-r--r--system/nvidia-driver/nvidia-driver.info12
-rw-r--r--system/nvidia-driver/nvidia-switch80
5 files changed, 106 insertions, 108 deletions
diff --git a/system/nvidia-driver/README b/system/nvidia-driver/README
index 3fd2ec81d446c..213218fe47103 100644
--- a/system/nvidia-driver/README
+++ b/system/nvidia-driver/README
@@ -8,7 +8,7 @@ nvidia-driver package itself backs up the conflicting files and puts the
nvidia-specific files into place.
Heinz Wiesinger, the author of the build script, has written a script called
-nvidia-switch, which can be used to switch between the stock xorg driver and
+nvidia-switch, which is used to switch between the stock xorg driver and
the nvidia driver, but it will not edit xorg.conf for you; you have to do
that manually. The nvidia-switch script is installed to /usr/sbin.
@@ -18,6 +18,11 @@ Usage of nvidia-switch:
nvidia-switch --cleanup <--> switch to the stock xorg file and remove all
symlinks created by nvidia-switch
+You do NOT have to run nvidia-switch after installing or upgrading the
+package. ONLY if you want to explicitely switch to the xorg files,
+afterwards switching back to nvidia files or before uninstalling the
+package.
+
No special steps are necessary when updating nvidia-driver from a previous
package. If you update to a newer xorg, you do not have to reinstall
nvidia-driver either. Just run "nvidia-switch --nvidia" in that case.
@@ -29,16 +34,6 @@ If you forget to do this, you'll have to do the switch manually, or xorg
won't work on next startup. Here are the affected files:
/usr/lib/libGL.so.1.2
/usr/include/GL/{gl.h glx.h glxext.h glext.h}
- /usr/lib/xorg/modules/extensions/{libGLcore.so libGLcore.la libglx.so libglx.la}
-
-This also requires the nvidia-kernel package from SlackBuilds.org.
-
-ATTENTION: There is a serious bug in this version regarding Fujitsu notebooks.
-(See details in nvidia's announcement for 180.51 here:
-
- http://www.nvnews.net/vbulletin/showthread.php?p=1985816)
+ /usr/lib/xorg/modules/extensions/{libglx.so libglx.la}
-If you are an owner of such a system, consider upgrading to a newer version of
-nvidia-driver/kernel (by changing the version number in the respective
-*.SlackBuild file). An update is not yet provided as newer versions of
-nvidia-driver proved to be more unstable than the current one.
+This also requires the nvidia-kernel and libvdpau package from SlackBuilds.org.
diff --git a/system/nvidia-driver/doinst.sh b/system/nvidia-driver/doinst.sh
index b78c85ae2387f..5d892d248a992 100644
--- a/system/nvidia-driver/doinst.sh
+++ b/system/nvidia-driver/doinst.sh
@@ -2,32 +2,27 @@ if [ -x /usr/bin/update-desktop-database ]; then
./usr/bin/update-desktop-database -q usr/share/applications
fi
-if ! [ -e usr/lib/xorg/modules/libwfb.so ]; then
- ( cd usr/lib/xorg/modules ; ln -s libnvidia-wfb.so.1 libwfb.so )
+if ! [ -e usr/libLIBDIRSUFFIX/xorg/modules/libwfb.so ]; then
+ ( cd usr/libLIBDIRSUFFIX/xorg/modules ; ln -s libnvidia-wfb.so.1 libwfb.so )
fi
-( cd usr/lib/tls ; rm -rf libnvidia-tls.so.1 )
-( cd usr/lib/tls ; ln -sf tls/libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 )
-( cd usr/lib/xorg/modules ; rm -rf libnvidia-wfb.so.1 )
-( cd usr/lib/xorg/modules ; ln -sf libnvidia-wfb.so.PKGVERSION libnvidia-wfb.so.1 )
-( cd usr/lib ; rm -rf libnvidia-cfg.so.1 )
-( cd usr/lib ; ln -sf libnvidia-cfg.so.PKGVERSION libnvidia-cfg.so.1 )
-( cd usr/lib ; rm -rf libnvidia-tls.so.1 )
-( cd usr/lib ; ln -sf libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 )
-( cd usr/lib ; rm -rf libXvMCNVIDIA_dynamic.so.1 )
-( cd usr/lib ; ln -sf libXvMCNVIDIA.so.PKGVERSION libXvMCNVIDIA_dynamic.so.1 )
-( cd usr/lib ; rm -rf libvdpau.so )
-( cd usr/lib ; ln -sf libvdpau.so.1 libvdpau.so )
-( cd usr/lib ; ln -sf libvdpau.so.PKGVERSION libvdpau.so.1 )
-( cd usr/lib ; rm -rf libvdpau_nvidia.so )
-( cd usr/lib ; ln -sf libvdpau_nvidia.so.PKGVERSION libvdpau_nvidia.so )
-( cd usr/lib ; rm -rf libvdpau_trace.so )
-( cd usr/lib ; ln -sf libvdpau_trace.so.PKGVERSION libvdpau_trace.so )
-( cd usr/lib ; rm -rf libnvidia-cfg.so )
-( cd usr/lib ; ln -sf libnvidia-cfg.so.1 libnvidia-cfg.so )
-( cd usr/lib ; rm -rf libcuda.so.1 )
-( cd usr/lib ; ln -sf libcuda.so.PKGVERSION libcuda.so.1 )
-( cd usr/lib ; rm -rf libcuda.so )
-( cd usr/lib ; ln -sf libcuda.so.1 libcuda.so )
+( cd usr/libLIBDIRSUFFIX/tls ; rm -rf libnvidia-tls.so.1 )
+( cd usr/libLIBDIRSUFFIX/tls ; ln -sf libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 )
+( cd usr/libLIBDIRSUFFIX/xorg/modules ; rm -rf libnvidia-wfb.so.1 )
+( cd usr/libLIBDIRSUFFIX/xorg/modules ; ln -sf libnvidia-wfb.so.PKGVERSION libnvidia-wfb.so.1 )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libnvidia-cfg.so.1 )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-cfg.so.PKGVERSION libnvidia-cfg.so.1 )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libnvidia-tls.so.1 )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libXvMCNVIDIA_dynamic.so.1 )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libXvMCNVIDIA.so.PKGVERSION libXvMCNVIDIA_dynamic.so.1 )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libvdpau_nvidia.so )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libvdpau_nvidia.so.PKGVERSION libvdpau_nvidia.so )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libnvidia-cfg.so )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-cfg.so.1 libnvidia-cfg.so )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libcuda.so.1 )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libcuda.so.PKGVERSION libcuda.so.1 )
+( cd usr/libLIBDIRSUFFIX ; rm -rf libcuda.so )
+( cd usr/libLIBDIRSUFFIX ; ln -sf libcuda.so.1 libcuda.so )
-/usr/sbin/nvidia-switch --install \ No newline at end of file
+/usr/sbin/nvidia-switch --install
diff --git a/system/nvidia-driver/nvidia-driver.SlackBuild b/system/nvidia-driver/nvidia-driver.SlackBuild
index a7b38bcc80f9d..ab1a3ae556473 100644
--- a/system/nvidia-driver/nvidia-driver.SlackBuild
+++ b/system/nvidia-driver/nvidia-driver.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for nvidia-driver
-# Copyright 2007-2009 Heinz Wiesinger <pprkut@liwjatan.at>
+# Copyright 2007-2009 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,8 +25,8 @@
# Thanks to Robby Workman for suggestions to improve this script.
PRGNAM=nvidia-driver
-VERSION=180.29
-ARCH=${ARCH:-i586}
+VERSION=190.42
+ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -35,7 +35,18 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-SRCNAM=NVIDIA-Linux-x86-$VERSION-pkg0
+if [ "$ARCH" = "i486" ]; then
+ TARGET="x86"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ TARGET="x86"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ TARGET="x86_64"
+ LIBDIRSUFFIX="64"
+fi
+
+SRCNAM=NVIDIA-Linux-$TARGET-$VERSION-pkg0
set -e
@@ -48,28 +59,30 @@ cd $SRCNAM
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
-mkdir -p $PKG/usr/{bin,share,lib,sbin} $PKG/usr/include/GL \
- $PKG/usr/lib/xorg/modules/{drivers,extensions}
+mkdir -p $PKG/usr/{bin,share,lib$LIBDIRSUFFIX,sbin} $PKG/usr/include/GL \
+ $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/{drivers,extensions}
# Start with the libraries
cd usr/lib
- cp -a * $PKG/usr/lib
+ #Do not copy libvdpau and libvdpau_trace, those are now a separate script
+ rm libvdpau.so.$VERSION libvdpau_trace.so.$VERSION
+ cp -a * $PKG/usr/lib$LIBDIRSUFFIX
#Rename those files which would overwrite xorg's original files
for i in libGL.so.$VERSION libGLcore.so.$VERSION; do
- mv $PKG/usr/lib/$i $PKG/usr/lib/$i-nvidia ;
+ mv $PKG/usr/lib$LIBDIRSUFFIX/$i $PKG/usr/lib$LIBDIRSUFFIX/$i-nvidia ;
done
cd -
# This is the driver itself
cd usr/X11R6/lib
- cp -a * $PKG/usr/lib/xorg/
+ cp -a * $PKG/usr/lib$LIBDIRSUFFIX/xorg/
for i in libXvMCNVIDIA.a libXvMCNVIDIA.so.$VERSION; do
- mv $PKG/usr/lib/xorg/$i $PKG/usr/lib/ ;
+ mv $PKG/usr/lib$LIBDIRSUFFIX/xorg/$i $PKG/usr/lib$LIBDIRSUFFIX/ ;
done
# Rename those files which would overwrite xorg's original files
- mv $PKG/usr/lib/xorg/modules/extensions/libglx.so.$VERSION \
- $PKG/usr/lib/xorg/modules/extensions/libglx.so.$VERSION-nvidia
+ mv $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/extensions/libglx.so.$VERSION \
+ $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/extensions/libglx.so.$VERSION-nvidia
cd -
# These are the includes
@@ -80,7 +93,6 @@ cd usr/include/GL
cd -
cp -a usr/include/cuda $PKG/usr/include/cuda
-cp -a usr/include/vdpau $PKG/usr/include/vdpau
# Next come the apps
cp -a nvidia-installer $PKG/usr/bin/
@@ -103,13 +115,14 @@ cd -
# after installation.
install -m 0755 $CWD/nvidia-switch $PKG/usr/sbin/
sed -i s/PKGVERSION/$VERSION/g $PKG/usr/sbin/nvidia-switch
+sed -i s/LIBDIRSUFFIX/$LIBDIRSUFFIX/g $PKG/usr/sbin/nvidia-switch
# These correct wrong paths
-sed -i 's|__LIBGL_PATH__|/usr/lib/|' $PKG/usr/lib/libGL.la
-sed -i 's|/usr/X11R6/lib|/usr/lib/|' $PKG/usr/lib/libGL.la
-sed -i 's|__UTILS_PATH__|/usr/bin|' \
+sed -i "s|__LIBGL_PATH__|/usr/lib$LIBDIRSUFFIX/|" $PKG/usr/lib$LIBDIRSUFFIX/libGL.la
+sed -i "s|/usr/X11R6/lib|/usr/lib$LIBDIRSUFFIX/|" $PKG/usr/lib$LIBDIRSUFFIX/libGL.la
+sed -i "s|__UTILS_PATH__|/usr/bin|" \
$PKG/usr/share/applications/nvidia-settings.desktop
-sed -i 's|__PIXMAP_PATH__|/usr/share/pixmaps|' \
+sed -i "s|__PIXMAP_PATH__|/usr/share/pixmaps|" \
$PKG/usr/share/applications/nvidia-settings.desktop
cd $TMP/$SRCNAM
@@ -119,8 +132,9 @@ cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.Slackware
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-sed s/PKGVERSION/$VERSION/g $CWD/slack-desc > $PKG/install/slack-desc
-sed s/PKGVERSION/$VERSION/g $CWD/doinst.sh > $PKG/install/doinst.sh
+sed "s/PKGVERSION/$VERSION/g" $CWD/slack-desc > $PKG/install/slack-desc
+sed "s/PKGVERSION/$VERSION/g" $CWD/doinst.sh > $PKG/install/doinst.sh
+sed -i "s/LIBDIRSUFFIX/$LIBDIRSUFFIX/g" $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l n -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
+/sbin/makepkg -l n -c n $OUTPUT/$PRGNAM-$VERSION-$TARGET-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/system/nvidia-driver/nvidia-driver.info b/system/nvidia-driver/nvidia-driver.info
index e6bfe46a2d378..23f7d64303a69 100644
--- a/system/nvidia-driver/nvidia-driver.info
+++ b/system/nvidia-driver/nvidia-driver.info
@@ -1,8 +1,10 @@
PRGNAM="nvidia-driver"
-VERSION="180.29"
+VERSION="190.42"
HOMEPAGE="http://www.nvidia.com"
-DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/180.29/NVIDIA-Linux-x86-180.29-pkg0.run"
-MD5SUM="db9aa3683988b7b0872abae7182f5bc5"
-MAINTAINER="ppr:kut"
+DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/190.42/NVIDIA-Linux-x86-190.42-pkg0.run"
+MD5SUM="f94806feee87de756d14fe3e9bcaf05a"
+DOWNLOAD_x86_64="ftp://download.nvidia.com/XFree86/Linux-x86_64/190.42/NVIDIA-Linux-x86_64-190.42-pkg0.run"
+MD5SUM_x86_64="ae431ff849ec01446e6724f9fcfe3bb4"
+MAINTAINER="Heinz Wiesinger"
EMAIL="pprkut@liwjatan.at"
-APPROVED="dsomero"
+APPROVED="rworkman"
diff --git a/system/nvidia-driver/nvidia-switch b/system/nvidia-driver/nvidia-switch
index c12f28e7e7d64..f4e0ed4948084 100644
--- a/system/nvidia-driver/nvidia-switch
+++ b/system/nvidia-driver/nvidia-switch
@@ -1,26 +1,26 @@
#!/bin/sh
-# ***************************************************************************
-# * Copyright (C) 2007-2008 by Heinz Wiesinger *
-# * pprkut@liwjatan.at *
-# * http://www.liwjatan.at *
-# * *
-# * This program is free software; you can redistribute it and/or modify *
-# * it under the terms of the GNU General Public License as published by *
-# * the Free Software Foundation; either version 3 of the License, or *
-# * (at your option) any later version. *
-# * *
-# * This program is distributed in the hope that it will be useful, *
-# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
-# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-# * GNU General Public License for more details. *
-# * *
-# * You should have received a copy of the GNU General Public License *
-# * along with this program; if not, write to the *
-# * Free Software Foundation, Inc., *
-# * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
-# ***************************************************************************/
-# nvidia-switch utility 0.7.5
+# Copyright 2007-2009 Heinz Wiesinger, Amsterdam, The Netherlands
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# nvidia-switch utility 0.8.1
#
# A tool to switch between nvidia-binary-driver and stock xorg-driver
# if both are installed in parallel.
@@ -29,9 +29,10 @@ set -e
ROOT="/"
CWD=$(pwd)
+LIBSUFFIX="LIBDIRSUFFIX" # This will be replaced in the build script
INC="${ROOT}usr/include/GL"
-LIB="${ROOT}usr/lib"
-XMOD="${ROOT}usr/lib/xorg/modules"
+LIB="${ROOT}usr/lib${LIBSUFFIX}"
+XMOD="${LIB}/xorg/modules"
XLIB="$XMOD/extensions"
NV_VERSION='PKGVERSION' # This will be replaced in the build script
GL_VERSION="1.2"
@@ -97,7 +98,7 @@ cd "$CWD"
}
libs(){
-for i in libGLcore.so libGLcore.la libglx.la; do
+for i in libglx.la; do
if [ "$1" = "nvidia" ]; then
#If this library exists, move it to *-xorg
move_existing "$XLIB/$i" "$XLIB/$i-xorg"
@@ -305,10 +306,8 @@ check_includes(){
check_glcore(){
if [ "$1" = "nvidia" ]; then
CHECK="link"
- EXT=""
else
CHECK="exist"
- EXT="-xorg"
fi
for i in libGLcore.so.1 libGLcore.so.$NV_VERSION libGLcore.so.$NV_VERSION-nvidia; do
@@ -322,18 +321,6 @@ check_glcore(){
done
echo ""
-
- for i in libGLcore.so libGLcore.la libGLcore.so-xorg libGLcore.la-xorg; do
- if [ "$i" = "libGLcore.so$EXT" ]; then
- check $XLIB $i "exist"
- elif [ "$i" = "libGLcore.la$EXT" ]; then
- check $XLIB $i "exist"
- else
- check $XLIB $i
- fi
- done
-
- echo ""
}
check_glx(){
@@ -447,7 +434,7 @@ cleanup_check(){
nvidia(){
echo $'Switching to nvidia-driver files!\n'
- echo "You have to ENABLE the nvidia driver in /etc/X11/xorg.conf."
+ echo "Make sure the nvidia driver is ENABLED in /etc/X11/xorg.conf."
echo "Otherwise, this may lead to improperly working drivers."
incs "xorg" "nvidia"
@@ -458,7 +445,7 @@ nvidia(){
libglx_nvidia
libwfb_nvidia
- LD_NVIDIA="/usr/lib/libGL.so.$NV_VERSION-nvidia"
+ LD_NVIDIA="${LIB}/libGL.so.$NV_VERSION-nvidia"
nvidia_ldconfig $LD_NVIDIA
}
@@ -467,7 +454,7 @@ xorg(){
if [ "$1" = "cleanup" ]; then
echo $'Cleaning up symlinks.\n'
fi
- echo "You have to DISABLE the nvidia driver in /etc/X11/xorg.conf."
+ echo "Make sure the nvidia driver is DISABLED in /etc/X11/xorg.conf."
echo "Otherwise, this may lead to improperly working drivers."
if [ "$1" = "cleanup" ]; then
@@ -486,7 +473,7 @@ xorg(){
fi
remove_link "$XMOD/libwfb.so"
- LD_NVIDIA="/usr/lib/libGL.so.1.2"
+ LD_NVIDIA="${LIB}/libGL.so.1.2"
nvidia_ldconfig $LD_NVIDIA "xorg"
}
@@ -509,9 +496,14 @@ if [ "$1" = '--nvidia' ]; then
elif [ "$1" = '--install' ]; then
ROOT=""
CWD=$(pwd)
+ if [ -e "${ROOT}usr/lib64" ]; then
+ LIBSUFFIX="64"
+ else
+ LIBSUFFIX=""
+ fi
INC="${ROOT}usr/include/GL"
- LIB="${ROOT}usr/lib"
- XMOD="${ROOT}usr/lib/xorg/modules"
+ LIB="${ROOT}usr/lib${LIBSUFFIX}"
+ XMOD="${LIB}/xorg/modules"
XLIB="$XMOD/extensions"
nvidia
elif [ "$1" = '--xorg' ]; then