summaryrefslogtreecommitdiff
path: root/nvidia-gtk2/Pkgfile
blob: db09eeda260ed731a03c591178afcfbecc234cf2 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Description:	NVIDIA Linux Display Driver (production branch)
# URL:		https://www.nvidia.com/
# Maintainer:	Shokara Kou, shokara at kalli dot st
# Packager:	Matt Housh, jaeger at crux dot ninja
# Depends on:	gtk libglvnd

name=nvidia-gtk2
version=470.86
release=1
source=(https://us.download.nvidia.com/XFree86/Linux-x86_64/$version/NVIDIA-Linux-x86_64-$version.run \
	90-nvidia-uvm.rules 10-nvidia-drm-outputclass.conf)

build() {
	sh NVIDIA-Linux-x86_64-$version.run --extract-only
	cd NVIDIA-Linux-x86_64-$version

	# X driver and GLX extension
	install -d $PKG/usr/lib/xorg/modules/{drivers,extensions}
	install -m 0755 nvidia_drv.so $PKG/usr/lib/xorg/modules/drivers/
	install -d -m 0755 $PKG/usr/lib/nvidia/xorg
	install -m 0755 libglxserver_nvidia.so.$version $PKG/usr/lib/nvidia/xorg/
	ln -s libglxserver_nvidia.so.$version $PKG/usr/lib/nvidia/xorg/libglxserver_nvidia.so
	ln -s libglxserver_nvidia.so.$version $PKG/usr/lib/nvidia/xorg/libglxserver_nvidia.so.1

	# EGL and OpenGL ES libraries and config
	install -d $PKG/usr/lib
	install -m 0755 libGLESv1_CM_nvidia.so.$version $PKG/usr/lib/
	ln -s libGLESv1_CM_nvidia.so.$version $PKG/usr/lib/libGLESv1_CM_nvidia.so.1
	install -m 0755 libGLESv2_nvidia.so.$version $PKG/usr/lib/
	ln -s libGLESv2_nvidia.so.$version $PKG/usr/lib/libGLESv2_nvidia.so.2
	install -D -m 0644 10_nvidia.json $PKG/usr/share/glvnd/egl_vendor.d/10_nvidia.json

	# wayland EGL library and config
	#install -d $PKG/usr/share/egl/egl_external_platform.d
	#install -m 0755 libnvidia-egl-wayland.so.1.0.2 $PKG/usr/lib/
	#install -m 0644 10_nvidia_wayland.json $PKG/usr/share/egl/egl_external_platform.d/

	# GLVND vendor implementation libraries
	install -m 0755 libGLX_nvidia.so.$version $PKG/usr/lib/
	ln -s libGLX_nvidia.so.$version $PKG/usr/lib/libGLX_nvidia.so.0
	install -m 0755 libEGL_nvidia.so.$version $PKG/usr/lib/
	ln -s libEGL_nvidia.so.$version $PKG/usr/lib/libEGL_nvidia.so.0

	# vulkan ICD config
	install -d $PKG/etc/vulkan/icd.d
	install -m 0644 nvidia_icd.json $PKG/etc/vulkan/icd.d/

	# driver component libraries
	install -m 0755 libnvidia-cfg.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-compiler.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-eglcore.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-glcore.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-glsi.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-glvkspirv.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-rtcore.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-cbl.so.$version $PKG/usr/lib/

	# vendor VDPAU library
	install -D -m 0755 libvdpau_nvidia.so.$version $PKG/usr/lib/vdpau/libvdpau_nvidia.so.$version
	ln -s libvdpau_nvidia.so.$version $PKG/usr/lib/vdpau/libvdpau_nvidia.so.1
	ln -s libvdpau_nvidia.so.$version $PKG/usr/lib/vdpau/libvdpau_nvidia.so

	# CUDA libraries
	install -m 0755 libcuda.so.$version $PKG/usr/lib/
	ln -s libcuda.so.$version $PKG/usr/lib/libcuda.so.1
	ln -s libcuda.so.$version $PKG/usr/lib/libcuda.so
	install -m 0755 libnvidia-ptxjitcompiler.so.$version $PKG/usr/lib/
	ln -s libnvidia-ptxjitcompiler.so.$version $PKG/usr/lib/libnvidia-ptxjitcompiler.so.1
	ln -s libnvidia-ptxjitcompiler.so.$version $PKG/usr/lib/libnvidia-ptxjitcompiler.so

	# OpenCL libraries and config
	install -m 0755 libOpenCL.so.1.0.0 $PKG/usr/lib/
	install -m 0755 libnvidia-opencl.so.$version $PKG/usr/lib/
	ln -s libnvidia-opencl.so.$version $PKG/usr/lib/libnvidia-opencl.so.1
	ln -s libnvidia-opencl.so.$version $PKG/usr/lib/libnvidia-opencl.so
	install -D -m 0644 nvidia.icd $PKG/etc/OpenCL/vendors/nvidia.icd

	# CUDA MPI applications
	install -d $PKG/usr/bin
	install -m 0755 nvidia-cuda-mps-control $PKG/usr/bin/
	install -m 0755 nvidia-cuda-mps-server $PKG/usr/bin/

	# TLS libraries
	install -m 0755 libnvidia-tls.so.$version $PKG/usr/lib/

	# monitoring and management API library
	install -m 0755 libnvidia-ml.so.$version $PKG/usr/lib/
	ln -s libnvidia-ml.so.$version $PKG/usr/lib/libnvidia-ml.so.1
	ln -s libnvidia-ml.so.$version $PKG/usr/lib/libnvidia-ml.so

	# applications
	install -m 4755 nvidia-modprobe $PKG/usr/bin/
	install -m 0755 nvidia-{xconfig,settings,smi,debugdump,persistenced} \
		$PKG/usr/bin/

	# nvidia-settings UI libraries
	install -m 0755 libnvidia-gtk2.so.$version $PKG/usr/lib/

	# encoding/decoding libraries
	install -m 0755 libnvcuvid.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-encode.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-ifr.so.$version $PKG/usr/lib/
	install -m 0755 libnvidia-fbc.so.$version $PKG/usr/lib/

	# OptiX ray tracing engine
	install -m 0755 libnvoptix.so.$version $PKG/usr/lib/
	ln -s libnvoptix.so.$version $PKG/usr/lib/libnvoptix.so.1
	ln -s libnvoptix.so.$version $PKG/usr/lib/libnvoptix.so

	# Optical Flow library
	install -m 0755 libnvidia-opticalflow.so.$version $PKG/usr/lib/
	ln -s libnvidia-opticalflow.so.$version $PKG/usr/lib/libnvidia-opticalflow.so.1
	ln -s libnvidia-opticalflow.so.$version $PKG/usr/lib/libnvidia-opticalflow.so

	# NGX library
	install -m 0755 libnvidia-ngx.so.$version $PKG/usr/lib/
	ln -s libnvidia-ngx.so.$version $PKG/usr/lib/libnvidia-ngx.so.1
	ln -s libnvidia-ngx.so.$version $PKG/usr/lib/libnvidia-ngx.so

	# X driver config
	install -D -m 0644 $SRC/10-nvidia-drm-outputclass.conf \
		$PKG/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf

	# application profile keys and documentation
	install -d -m 0755 $PKG/usr/share/nvidia
	install -m 0644 nvidia-application-profiles-$version-rc $PKG/usr/share/nvidia/
	install -m 0644 nvidia-application-profiles-$version-key-documentation $PKG/usr/share/nvidia/

	# desktop file and icon
	install -d $PKG/usr/share/{applications,pixmaps}
	sed -i -e 's,__UTILS_PATH__,/usr/bin,' -e 's,__PIXMAP_PATH__,/usr/share/pixmaps,' nvidia-settings.desktop
	install -m 0644 nvidia-settings.desktop $PKG/usr/share/applications/
	install -m 0644 nvidia-settings.png $PKG/usr/share/pixmaps/

	# nvidia-uvm udev rules file
	install -D -m 0644 $SRC/90-nvidia-uvm.rules $PKG/lib/udev/rules.d/90-nvidia-uvm.rules

	# kernel modules
	cd kernel
	IGNORE_CC_MISMATCH=1 make module
	install -d $PKG/lib/modules/$(uname -r)/extra
	install -m 0644 *.ko $PKG/lib/modules/$(uname -r)/extra/
}