summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/nvidia-utils/PKGBUILD
blob: 88c270918f5716521e59f6f7e4addbeaa85b8663 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# $Id: PKGBUILD 83977 2010-06-25 06:51:43Z pierre $
# Maintainer: Thomas Baechler <thomas@archlinux.org>
# Contributor: James Rayner <iphitus@gmail.com>

pkgname=nvidia-utils
pkgver=256.35
pkgrel=4
pkgdesc="NVIDIA drivers utilities and libraries."
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
depends=('xorg-server' 'libxvmc')
optdepends=('gtk2: nvidia-settings' 'pkg-config: nvidia-xconfig')
conflicts=('libgl')
provides=('libgl')
license=('custom')
install=nvidia.install
options=('!strip')
backup=('etc/X11/xorg.conf.d/20-nvidia.conf')

if [ "$CARCH" = "i686" ]; then
        _arch='x86'
        _pkg="NVIDIA-Linux-${_arch}-${pkgver}"
        source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
        md5sums=('f6af8917a500de28396a438f3f548c88')
elif [ "$CARCH" = "x86_64" ]; then
        _arch='x86_64'
        _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
        source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
        md5sums=('7b5924f14a4d2326b4d916efdb7852ff')
fi

source[1]='20-nvidia.conf'
md5sums[1]='a3ddac4732c06d5cec7aefeed4d719c3'

build() {
        cd $srcdir
        sh ${_pkg}.run --extract-only
}

package() {
        cd $srcdir/${_pkg}

        # X driver
        install -D -m755 nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers/nvidia_drv.so
        # GLX extension module for X
        install -D -m755 libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so.$pkgver
        ln -s libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so       # X doesn't find glx otherwise
        # OpenGL library
        install -D -m755 libGL.so.$pkgver $pkgdir/usr/lib/libGL.so.$pkgver
        # OpenGL core library
        install -D -m755 libnvidia-glcore.so.$pkgver $pkgdir/usr/lib/libnvidia-glcore.so.$pkgver
        # XvMC
        install -D -m644 libXvMCNVIDIA.a $pkgdir/usr/lib/libXvMCNVIDIA.a
        install -D -m755 libXvMCNVIDIA.so.$pkgver $pkgdir/usr/lib/libXvMCNVIDIA.so.$pkgver
        # VDPAU
        install -D -m755 libvdpau_nvidia.so.$pkgver $pkgdir/usr/lib/vdpau/libvdpau_nvidia.so.$pkgver
        # CUDA
        install -D -m755 libcuda.so.$pkgver $pkgdir/usr/lib/libcuda.so.$pkgver
        install -D -m644 cuda.h $pkgdir/usr/include/cuda/cuda.h
        install -D -m644 cudaGL.h $pkgdir/usr/include/cuda/cudaGL.h
        install -D -m644 cudaVDPAU.h $pkgdir/usr/include/cuda/cudaVDPAU.h
        # nvidia-tls libraries
        install -D -m755 libnvidia-tls.so.$pkgver $pkgdir/usr/lib/libnvidia-tls.so.$pkgver
        install -D -m755 tls/libnvidia-tls.so.$pkgver $pkgdir/usr/lib/tls/libnvidia-tls.so.$pkgver
        # OpenCL
        install -D -m755 libnvidia-compiler.so.$pkgver $pkgdir/usr/lib/libnvidia-compiler.so.$pkgver
        install -D -m755 libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1.0.0
        install -D -m644 cl.h $pkgdir/usr/include/CL/cl.h
        install -D -m644 cl_gl.h $pkgdir/usr/include/CL/cl_gl.h
        install -D -m644 nvidia.icd $pkgdir/etc/OpenCL/vendors/nvidia.icd
        install -D -m644 cl_platform.h $pkgdir/usr/include/CL/cl_platform.h

        install -D -m755 libnvidia-cfg.so.$pkgver $pkgdir/usr/lib/libnvidia-cfg.so.$pkgver

        # create soname links
        for _lib in $(find $pkgdir -name '*.so*'); do
                _soname="$(dirname ${_lib})/$(readelf -d "$_lib" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')"
                if [ ! -e "${_soname}" ]; then
                        ln -s "$(basename ${_lib})" "${_soname}"
                        ln -s "$(basename ${_soname})" "${_soname/.[0-9]*/}"
                fi
        done


        # nvidia-xconfig
        install -D -m755 nvidia-xconfig $pkgdir/usr/bin/nvidia-xconfig
        install -D -m644 nvidia-xconfig.1.gz $pkgdir/usr/share/man/man1/nvidia-xconfig.1.gz
        # nvidia-settings
        install -D -m755 nvidia-settings $pkgdir/usr/bin/nvidia-settings
        install -D -m644 nvidia-settings.1.gz $pkgdir/usr/share/man/man1/nvidia-settings.1.gz
        install -D -m644 nvidia-settings.desktop $pkgdir/usr/share/applications/nvidia-settings.desktop
        install -D -m644 nvidia-settings.png $pkgdir/usr/share/pixmaps/nvidia-settings.png
        sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop
        # nvidia-bug-report
        install -D -m755 nvidia-bug-report.sh $pkgdir/usr/bin/nvidia-bug-report.sh
        # nvidia-smi
        install -D -m755 nvidia-smi $pkgdir/usr/bin/nvidia-smi
        install -D -m644 nvidia-smi.1.gz $pkgdir/usr/share/man/man1/nvidia-smi.1.gz


        install -D -m644 LICENSE $pkgdir/usr/share/licenses/nvidia/LICENSE
        ln -s nvidia $pkgdir/usr/share/licenses/nvidia-utils
        install -D -m644 README.txt $pkgdir/usr/share/doc/nvidia/README
        install -D -m644 NVIDIA_Changelog $pkgdir/usr/share/doc/nvidia/NVIDIA_Changelog
        ln -s nvidia $pkgdir/usr/share/doc/nvidia-utils

        # Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations
        install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf
}