# SliTaz package receipt.

PACKAGE="nvidia-173xx"
VERSION="173.14.39"
CATEGORY="non-free"
MAINTAINER="jozee@slitaz.org"
LICENSE="other"
SHORT_DESC="NVIDIA drivers (non-free)"
WEB_SITE="https://www.nvidia.com/"
SOURCE="NVIDIA-Linux-x86-${VERSION}-pkg1"
TARBALL="${SOURCE}.run"
WGET_URL="http://download.nvidia.com/XFree86/Linux-x86/$VERSION/$TARBALL"
RUN_OPTS="--extract-only"
TAGS="driver graphic video"
PROVIDE="nvidia mesa"

DEPENDS="linux xorg-server gtk+ cairo linux-agp xorg-libXv"
BUILD_DEPENDS="linux-module-headers coreutils-file-summarize xz"

# What is the latest version available today?
current_version()
{
	wget -O - ${WGET_URL%/*/*}/ 2>/dev/null | \
	sed '/173.[0-9]/!d;s|.*>173|173|;s|/.*||' | sort -Vr | sed q
}

# Rules to configure and make the package.

compile_rules()
{
	cd $src/usr/src/nv/
	sed -i 's|.*utsname.*|&\n#include <linux/acpi.h>|' nv-linux.h
	sed -i 's|uname -m|echo i486|' Makefile*
	# Only use .unblocked_ioctl since 2.6.36
	sed -i 's|\.ioctl|// &|' nv.c
	make SYSSRC="/usr/src/linux" module 2>&1 | sed s'/ERROR:/error:/'
	xz nvidia.ko
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
	EXTRAVERSION=_${kvers}

	mkdir -p \
		$fs/usr/share \
		$fs/usr/lib/X11 \
		$fs/usr/share/licenses/$PACKAGE \
		$fs/lib/modules/$kvers-slitaz/kernel/drivers/video \
		$fs/usr/share/doc/$PACKAGE

	cp $src/usr/src/nv/nvidia.ko.xz \
		$fs/lib/modules/$kvers-slitaz/kernel/drivers/video/
	chown root $fs/lib/modules/$kvers-slitaz/kernel/drivers/video/nvidia.ko.xz
	chmod 0644 $fs/lib/modules/$kvers-slitaz/kernel/drivers/video/nvidia.ko.xz

	cp -a $src/LICENSE $fs/usr/share/licenses/$PACKAGE
	cp -a $src/usr/bin $fs/usr
	cp -a $src/nvidia-installer $fs/usr/bin
	cp -a $src/usr/lib/*.so* $fs/usr/lib/
	cp -a $src/usr/lib/tls $fs/usr/lib/
	cp -a $src/usr/X11R6/lib/libXvMCNVIDIA.so.$VERSION $fs/usr/lib
	cp -a $src/usr/X11R6/lib/modules $fs/usr/lib/X11/
	cp -a $src/usr/share/applications $fs/usr/share
	cp -a $src/usr/share/pixmaps $fs/usr/share
	cp -a $src/usr/share/doc/* $fs/usr/share/doc/$PACKAGE/
	cp -a $src/usr/X11R6/lib/* $fs/usr/lib/X11

	ln -s libcuda.so.$VERSION $fs/usr/lib/libcuda.so
	ln -s libcuda.so.$VERSION $fs/usr/lib/libcuda.so.1
	ln -s libGL.so.$VERSION $fs/usr/lib/libGL.so
	ln -s libGL.so.$VERSION $fs/usr/lib/libGL.so.1
	# exclude from files.list (for tazpkg's "find-depends")
        cd $fs/usr/lib
        for i in $(ls libGL.so*) ; do mv -f $i ${i//./-.-} ; done

	ln -s libGLcore.so.$VERSION $fs/usr/lib/libGLcore.so.1
	ln -s libnvidia-cfg.so.$VERSION $fs/usr/lib/libnvidia-cfg.so
	ln -s libnvidia-cfg.so.$VERSION $fs/usr/lib/libnvidia-cfg.so.1
	ln -s libnvidia-tls.so.$VERSION $fs/usr/lib/libnvidia-tls.so.1
	ln -s libnvidia-tls.so.$VERSION $fs/usr/lib/tls/libnvidia-tls.so.1
	ln -s libXvMCNVIDIA.so.$VERSION $fs/usr/lib/libXvMCNVIDIA.so.1
	ln -s libXvMCNVIDIA.so.$VERSION $fs/usr/lib/libXvMCNVIDIA.so
	ln -s libXvMCNVIDIA.so.$VERSION $fs/usr/lib/libXvMCNVIDIA_dynamic.so.1
	ln -s libXvMCNVIDIA.so.$VERSION $fs/usr/lib/libXvMCNVIDIA_dynamic.so
	ln -s libnvidia-wfb.so.$VERSION $fs/usr/lib/X11/modules/libnvidia-wfb.so
	ln -s libnvidia-wfb.so.$VERSION $fs/usr/lib/X11/modules/libnvidia-wfb.so.1
	ln -s libglx.so.$VERSION $fs/usr/lib/X11/modules/extensions/libglx.so
}

pre_install()
{
	title "PROPRIETARY LICENSE"
	echo "You are installing a package with proprietary license."
	echo "You must accept the license."
	footer
}

post_install()
{
	# Restore excluded from files.list (for tazpkg's "find-depends")
        cd $1/usr/lib
	for i in $(ls libGL.so*) ; do mv -f $i ${i//-.-/.} ; done

	chroot "$1/" depmod -a ${EXTRAVERSION#_}-slitaz

	# correct .desktop file file
	sed -i 's:__UTILS_PATH__/::' "$1/usr/share/applications/nvidia-settings.desktop"
	sed -i 's:__PIXMAP_PATH__/::' "$1/usr/share/applications/nvidia-settings.desktop"

	title "NVIDIA LICENSE INFORMATION"
	echo "For installing this package, you have to accept the $PACKAGE license."
	echo "The license is stored in /usr/share/licenses/$PACKAGE "
	echo -n "Would you like to read the license (y/N) : "; read anser
	if [ "$anser" = 'y' ]; then
		more "$1/usr/share/licenses/$PACKAGE/LICENSE"
		newline
	fi
	separator
	echo -n 'Do you accept the license (y/N) : '; read anser
	if [ "$anser" = 'N' ]; then
		echo 'You did not accept the license, Removing the pkg.'
		tazpkg remove "$PACKAGE"
	fi
}