system/nvidia-legacy96-driver: Updated for version 96.43.14

This commit is contained in:
Heinz Wiesinger 2010-05-13 00:41:11 +02:00 committed by Erik Hanson
parent d58235c26a
commit 010b941025
6 changed files with 288 additions and 85 deletions

View file

@ -35,6 +35,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}
/usr/lib/xorg/modules/extensions/{libglx.so libglx.la}
This also requires the nvidia-legacy96-kernel package from SlackBuilds.org.

View file

@ -2,22 +2,21 @@ 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 libnvidia-cfg.so )
( cd usr/lib ; ln -sf libnvidia-cfg.so.1 libnvidia-cfg.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 libnvidia-cfg.so )
( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-cfg.so.1 libnvidia-cfg.so )
/usr/sbin/nvidia-switch --install

View file

@ -2,7 +2,7 @@
# Slackware build script for nvidia-legacy96-driver
# Copyright 2008-2009 Heinz Wiesinger <pprkut@liwjatan.at>
# Copyright 2008-2009 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -23,8 +23,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=nvidia-legacy96-driver
VERSION=96.43.11
ARCH=${ARCH:-i586}
VERSION=96.43.14
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@ -33,7 +33,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
@ -46,28 +57,28 @@ 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
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
@ -98,13 +109,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
@ -114,8 +126,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}

View file

@ -1,8 +1,10 @@
PRGNAM="nvidia-legacy96-driver"
VERSION="96.43.11"
VERSION="96.43.14"
HOMEPAGE="http://www.nvidia.com"
DOWNLOAD="http://us.download.nvidia.com/XFree86/Linux-x86/96.43.11/NVIDIA-Linux-x86-96.43.11-pkg0.run"
MD5SUM="bf2661f00759f78cbad9f72eeecdc676"
MAINTAINER="ppr:kut"
DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/96.43.14/NVIDIA-Linux-x86-96.43.14-pkg0.run"
DOWNLOAD_x86_64="ftp://download.nvidia.com/XFree86/Linux-x86_64/96.43.14/NVIDIA-Linux-x86_64-96.43.14-pkg0.run"
MD5SUM="4c1524c5f88e684bb1045ca759c11526"
MD5SUM_x86_64="6924d94b07163d7d71b44f53471dfb83"
MAINTAINER="Heinz Wiesinger"
EMAIL="pprkut@liwjatan.at"
APPROVED="rworkman"
APPROVED="Erik Hanson"

View file

@ -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.0
# 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"
@ -257,9 +258,183 @@ if [ "$2" = "xorg" ]; then
fi
}
check(){
echo -n "checking $2...."
if [ -e "$1/$2" ]; then
if [ "$3" = "exist" ]; then
echo "ERROR: $1/$2 does exist!!!!!"
else
echo -n "exists"
if [ -h "$1/$2" ]; then
echo "(link)"
echo -n " points to:"
ls -o "$1/$2" | cut -d ">" -f 2
else
if [ "$3" = "link" ]; then
echo " (!)"
else
echo ""
fi
fi
fi
else
if [ "$3" = "exist" ]; then
echo "does not exist"
else
echo "ERROR: $1/$2 does not exist!!!!!"
fi
fi
}
check_includes(){
if [ "$1" = "cleanup" ]; then
cleanup=""
cleanup2="exist"
else
cleanup="link"
cleanup2=""
fi
for i in glext.h glxext.h gl.h glx.h; do
check $INC $i $cleanup
check $INC $i-nvidia
check $INC $i-xorg $cleanup2
echo ""
done
}
check_glcore(){
if [ "$1" = "nvidia" ]; then
CHECK="link"
else
CHECK="exist"
fi
for i in libGLcore.so.1 libGLcore.so.$NV_VERSION libGLcore.so.$NV_VERSION-nvidia; do
if [ "$i" = "libGLcore.so.1" ]; then
check $LIB $i $CHECK
elif [ "$i" = "libGLcore.so.$NV_VERSION" ]; then
check $LIB $i $CHECK
else
check $LIB $i
fi
done
echo ""
}
check_glx(){
if [ "$1" = "xorg" ]; then
xorg="exist"
cleanup="link"
cleanup2=""
EXT="-xorg"
elif [ "$1" = "cleanup" ]; then
xorg="exist"
cleanup=""
cleanup2="exist"
EXT="-xorg"
else
xorg="link"
cleanup="link"
cleanup2=""
EXT=""
fi
for i in libglx.la libglx.so libglx.so.$NV_VERSION libglx.so.$NV_VERSION-nvidia \
libglx.so-xorg libglx.la-xorg; do
if [ "$i" = "libglx.so" ]; then
check $XLIB $i $cleanup
elif [ "$i" = "libglx.so-xorg" ]; then
check $XLIB $i $cleanup2
elif [ "$i" = "libglx.so.$NV_VERSION" ]; then
check $XLIB $i $xorg
elif [ "$i" = "libglx.la$EXT" ]; then
check $XLIB $i "exist"
else
check $XLIB $i
fi
done
echo ""
}
check_wfb(){
for i in libwfb.so libwfb.la libnvidia-wfb.so.1 libnvidia-wfb.so.$NV_VERSION; do
if [ "$i" = "libnvidia-wfb.so.1" ]; then
check $XMOD $i "link"
else
check $XMOD $i
fi
done
}
check_gl(){
if [ "$1" = "nvidia" ]; then
nvidia="link"
EXT=""
else
nvidia="exist"
EXT="-xorg"
fi
for i in libGL.la libGL.so libGL.so.1 libGL.so.$NV_VERSION libGL.so.$NV_VERSION-nvidia \
libGL.so.$GL_VERSION libGL.so.$GL_VERSION-xorg; do
if [ "$i" = "libGL.so" ]; then
check $LIB $i "link"
elif [ "$i" = "libGL.so.1" ]; then
check $LIB $i "link"
elif [ "$i" = "libGL.so.$NV_VERSION" ]; then
check $LIB $i $nvidia
elif [ "$i" = "libGL.so.${GL_VERSION}${EXT}" ]; then
check $LIB $i "exist"
else
check $LIB $i
fi
done
echo ""
}
nvidia_check(){
check_includes
check_gl "nvidia"
check_glcore "nvidia"
check_glx
check_wfb
}
xorg_check(){
check_includes
check_gl
check_glcore
check_glx "xorg"
check_wfb
}
cleanup_check(){
check_includes "cleanup"
check_gl
check_glcore
check_glx "cleanup"
check_wfb
}
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"
@ -270,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
}
@ -279,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
@ -298,19 +473,22 @@ 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"
}
usage(){
echo "Usage:"
echo " --nvidia Switch to nvidia driver files"
echo " --xorg Switch to stock xorg files"
echo " --cleanup Switch to stock xorg files and remove all created symlinks"
echo " --install Switch to nvidia driver files"
echo " This is used on installation to handle installroot correctly"
echo " Please use --nvidia for after-install switches instead"
echo " --help Show this help message"
echo " --nvidia Switch to nvidia driver files"
echo " --xorg Switch to stock xorg files"
echo " --cleanup Switch to stock xorg files and remove all created symlinks"
echo " --install Switch to nvidia driver files"
echo " This is used on installation to handle installroot correctly"
echo " Please use --nvidia for after-install switches instead"
echo " --check-nvidia Check if everything is setup correctly for nvidia's driver"
echo " --check-xorg Check if everything is setup correctly for xorg's driver"
echo " --check-cleanup Check if everything has been cleaned up correctly"
echo " --help Show this help message"
}
if [ "$1" = '--nvidia' ]; then
@ -318,13 +496,24 @@ 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
xorg ""
elif [ "$1" = '--check-nvidia' ]; then
nvidia_check
elif [ "$1" = '--check-xorg' ]; then
xorg_check
elif [ "$1" = '--check-cleanup' ]; then
cleanup_check
elif [ "$1" = '--cleanup' ]; then
xorg "cleanup"
elif [ "$1" = '--help' ]; then

View file

@ -5,15 +5,15 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler--------------------------------------|
nvidia-legacy96-driver: nvidia-legacy96-driver (Nvidia's Binary Video Driver)
|-----handy-ruler------------------------------------------------------|
nvidia-legacy96-driver: nvidia-legacy96-driver (Binary Nvidia Video Driver)
nvidia-legacy96-driver:
nvidia-legacy96-driver: This is the proprietary binary video driver for
nvidia-legacy96-driver: legacy cards (Geforce 4) from nvidia for the x.org X
nvidia-legacy96-driver: server. This package does not include the kernel
nvidia-legacy96-driver: module - it is included in the nvidia-kernel package.
nvidia-legacy96-driver: This is the proprietary binary video driver for legacy cards
nvidia-legacy96-driver: (Geforce 4) from nvidia for the X.org X server. This package does
nvidia-legacy96-driver: not include the kernel module - it is included in the
nvidia-legacy96-driver: nvidia-legacy96-kernel package.
nvidia-legacy96-driver:
nvidia-legacy96-driver: See /usr/doc/nvidia-legacy96-driver-PKGVERSION/
nvidia-legacy96-driver: README.Slackware for more information.
nvidia-legacy96-driver: See /usr/doc/nvidia-legacy96-driver-PKGVERSION/README.Slackware
nvidia-legacy96-driver: for more information.
nvidia-legacy96-driver:
nvidia-legacy96-driver: