Nvidia SlackBuild
Inviato: ven 28 lug 2006, 23:53
Sto scrivendo uno script per creare un pacchetto precompilato TGZ, con i driver grafici NVIDIA belli pronti da installare con Pkgtool!
E' una versione preliminare, non testata!
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packagers Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.$VERSION libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then
echo "Copy Nvidia Module Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then
echo "Copy Nvidia Module Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
incorrectVersion
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
mkdir -p $PKG/etc/X11
( cd /etc/X11
cp -a xorg.conf $PKG/etc/X11 )
( cd $PKG/etc/X11
sed -i "s|nvidia|nv|g" xorg.conf
sed -i "s|nv|nvidia|g" xorg.conf )
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
echo "modprobe nvidia" >> $PKG/install/doinst.sh
makepkg -l n -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
E' una versione preliminare, non testata!
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packagers Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.$VERSION libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then
echo "Copy Nvidia Module Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then
echo "Copy Nvidia Module Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
incorrectVersion
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
mkdir -p $PKG/etc/X11
( cd /etc/X11
cp -a xorg.conf $PKG/etc/X11 )
( cd $PKG/etc/X11
sed -i "s|nvidia|nv|g" xorg.conf
sed -i "s|nv|nvidia|g" xorg.conf )
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
echo "modprobe nvidia" >> $PKG/install/doinst.sh
makepkg -l n -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi