2
# preinst script for #DRIVERNAME#
4
# see: dh_installdeb(1)
6
# Copyright (C) 2009 Canonical Ltd
7
# Authors: Alberto Milone
11
# summary of how this script can be called:
12
# * <new-preinst> `install'
13
# * <new-preinst> `install' <old-version>
14
# * <new-preinst> `upgrade' <old-version>
15
# * <old-preinst> `abort-upgrade' <new-version>
17
# For details see /usr/share/doc/packaging-manual/
19
if [ `dpkg --print-architecture` = "amd64" ]; then
26
# Attempt to remove a .run file installation of the driver before installing the package
27
if [ -x /usr/bin/nvidia-uninstall ]; then
28
/usr/bin/nvidia-uninstall -s || :
31
# Attempt to stop the nvidia-persistenced process from the currently
32
# installed package. This is needed to work-around the broken postrm script
33
# introduced in 331.89-0ubuntu3. Without this, you can't upgrade from, say,
34
# nvidia-331 to nvidia-343 (although you could still upgrade to a newer
35
# nvidia-331 version/revision without error). For details, see:
36
# https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-331/+bug/1394348
37
if [ -x /usr/bin/stop-nvidia-persistenced ]; then
38
echo "Stopping previous nvidia-persistenced"
39
/usr/bin/stop-nvidia-persistenced || true
43
# We need to remove diversions from previous versions of the package
45
# clean up from old diversions
46
if [ -d /usr/share/nvidia-glx/diversions ]; then
47
rm -f /usr/lib/libGL.so.1
48
rm -f /usr/lib/libGL.so.1.2
50
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libGL.so.1 /usr/lib/libGL.so.1 > /dev/null
51
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libGL.so.1.2 /usr/lib/libGL.so.1.2 > /dev/null
53
rm -f /usr/lib/xorg/modules/extensions/libGLcore.a
54
rm -f /usr/lib/xorg/modules/extensions/libglx.a
55
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libGLcore.a /usr/lib/xorg/modules/extensions/libGLcore.a > /dev/null
56
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libglx.a /usr/lib/xorg/modules/extensions/libglx.a > /dev/null
58
rmdir /usr/share/nvidia-glx/diversions || true;
59
rmdir /usr/share/nvidia-glx || true;
62
if [ -d /usr/share/nvidia-glx/diversions-X11R6 ]; then
64
rm -f /usr/X11R6/lib/libGL.so.1
65
rm -f /usr/X11R6/lib/libGL.so.1.2
67
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions-X11R6/libGL.so.1 /usr/X11R6/lib/libGL.so.1 > /dev/null
68
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions-X11R6/libGL.so.1.2 /usr/X11R6/lib/libGL.so.1.2 > /dev/null
70
rmdir /usr/share/nvidia-glx/diversions-X11R6 || true;
71
rmdir /usr/share/nvidia-glx || true;
73
# remove X11R6 diversions
75
if dpkg-divert --list /usr/X11R6/lib/libGL.so.1 | grep 'nvidia-glx' > /dev/null ; then
76
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libGL.so.1.xlibmesa /usr/X11R6/lib/libGL.so.1 > /dev/null
79
if dpkg-divert --list /usr/X11R6/lib/libGL.so.1.2 | grep 'nvidia-glx' > /dev/null ; then
80
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libGL.so.1.2.xlibmesa /usr/X11R6/lib/libGL.so.1.2 > /dev/null
82
if dpkg-divert --list /usr/X11R6/lib/modules/extensions/libGLcore.a | grep 'nvidia-glx' > /dev/null ; then
83
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libGLcore.a.xlibmesa /usr/X11R6/lib/modules/extensions/libGLcore.a > /dev/null
85
if dpkg-divert --list /usr/X11R6/lib/modules/extensions/libglx.a | grep 'nvidia-glx' > /dev/null ; then
86
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libglx.a.xlibmesa /usr/X11R6/lib/modules/extensions/libglx.a > /dev/null
88
if dpkg-divert --list /usr/X11R6/lib/modules/extensions/libglx.so | grep 'nvidia-glx' > /dev/null ; then
89
dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libglx.so.xlibmesa /usr/X11R6/lib/modules/extensions/libglx.so > /dev/null
92
# make sure these diversions don't exist anymore
93
if dpkg-divert --list /usr/lib/libGL.so | grep 'nvidia-glx-dev' > /dev/null ; then
94
dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
95
dpkg-divert --remove --rename --package nvidia-glx-dev-envy --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
97
if dpkg-divert --list /usr/lib/libGL.so | grep 'nvidia-glx-177-dev' > /dev/null ; then
98
dpkg-divert --remove --rename --package nvidia-glx-177-dev --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
100
if dpkg-divert --list /usr/lib/libGL.so | grep 'nvidia-glx-new-dev' > /dev/null ; then
101
dpkg-divert --remove --rename --package nvidia-glx-new-dev --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
102
dpkg-divert --remove --rename --package nvidia-glx-new-dev-envy --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
104
if dpkg-divert --list /usr/lib/libGL.a | grep 'nvidia-glx-dev' > /dev/null ; then
105
dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
106
dpkg-divert --remove --rename --package nvidia-glx-dev-envy --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
108
if dpkg-divert --list /usr/lib/libGL.a | grep 'nvidia-glx-new-dev' > /dev/null ; then
109
dpkg-divert --remove --rename --package nvidia-glx-new-dev --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
110
dpkg-divert --remove --rename --package nvidia-glx-new-dev-envy --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
112
if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-dev' > /dev/null ; then
113
dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/X11R6/lib/nvidia/libGL.so.xlibmesa /usr/X11R6/lib/libGL.so > /dev/null || true
114
dpkg-divert --remove --rename --package nvidia-glx-dev-envy --divert /usr/X11R6/lib/nvidia/libGL.so.xlibmesa /usr/X11R6/lib/libGL.so > /dev/null || true
116
if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-new-dev' > /dev/null ; then
117
dpkg-divert --remove --rename --package nvidia-glx-new-dev --divert /usr/X11R6/lib/nvidia/libGL.so.xlibmesa /usr/X11R6/lib/libGL.so > /dev/null || true
118
dpkg-divert --remove --rename --package nvidia-glx-new-dev-envy --divert /usr/X11R6/lib/nvidia/libGL.so.xlibmesa /usr/X11R6/lib/libGL.so > /dev/null || true
120
if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-dev' > /dev/null ; then
121
dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/X11R6/lib/nvidia/libGL.a.xlibmesa /usr/X11R6/lib/libGL.a > /dev/null || true
122
dpkg-divert --remove --rename --package nvidia-glx-dev-envy --divert /usr/X11R6/lib/nvidia/libGL.a.xlibmesa /usr/X11R6/lib/libGL.a > /dev/null || true
124
if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-new-dev' > /dev/null ; then
125
dpkg-divert --remove --rename --package nvidia-glx-new-dev --divert /usr/X11R6/lib/nvidia/libGL.a.xlibmesa /usr/X11R6/lib/libGL.a > /dev/null || true
126
dpkg-divert --remove --rename --package nvidia-glx-new-dev-envy --divert /usr/X11R6/lib/nvidia/libGL.a.xlibmesa /usr/X11R6/lib/libGL.a > /dev/null || true
130
# Make sure that no diversion is still there
131
set -a "nvidia-glx" "nvidia-glx-new" "nvidia-glx-legacy" "nvidia-glx-envy"\
132
"nvidia-glx-new-envy" "nvidia-glx-legacy-envy" "nvidia-glx-180" \
133
"nvidia-glx-177" "nvidia-glx-173" "nvidia-glx-96" "nvidia-glx-71" \
134
"nvidia-glx-185" "nvidia-glx-190"
136
while [ $# -ge 1 ]; do
138
glxdevname="$glxname-dev"
140
if [ -n "$HAS_LIB32" ]; then
141
#Remove diversions of /usr/lib32/libGL.so -- only for the new name schemes (nvidia-glx-VER)
142
if dpkg-divert --list $glxname | grep "/usr/lib32/libGL.so " > /dev/null ; then
143
rm -f /usr/lib32/libGL.so > /dev/null || true
144
dpkg-divert --remove --rename --package $glxname --divert /usr/lib32/nvidia/libGL.so.xlibmesa /usr/lib32/libGL.so > /dev/null || true
147
#Remove diversion of /usr/lib32/libGL.so.1
148
if dpkg-divert --list $glxname | grep /usr/lib32/libGL.so.1 > /dev/null ; then
149
rm -f /usr/lib32/libGL.so.1 > /dev/null || true
150
dpkg-divert --remove --rename --package $glxname --divert /usr/lib32/nvidia/libGL.so.1.xlibmesa /usr/lib32/libGL.so.1 > /dev/null || true
153
#Remove diversion of /usr/lib32/libGL.so.1.2
154
if dpkg-divert --list $glxname | grep /usr/lib32/libGL.so.1.2 > /dev/null ; then
155
rm -f /usr/lib32/libGL.so.1.2 > /dev/null || true
156
dpkg-divert --remove --rename --package $glxname --divert /usr/lib32/nvidia/libGL.so.1.2.xlibmesa /usr/lib32/libGL.so.1.2 > /dev/null || true
162
#Remove diversion of /usr/lib/xorg/modules/extensions/libGLcore.so
163
if dpkg-divert --list $glxname | grep /usr/lib/xorg/modules/extensions/libGLcore.so > /dev/null ; then
164
dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libGLcore.so.xlibmesa /usr/lib/xorg/modules/extensions/libGLcore.so > /dev/null || true
167
#Remove diversion of /usr/lib/xorg/modules/extensions/libglx.so
168
if dpkg-divert --list $glxname | grep /usr/lib/xorg/modules/extensions/libglx.so > /dev/null ; then
169
rm -f /usr/lib/xorg/modules/extensions/libglx.so > /dev/null || true
170
dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libglx.so.xserver-xorg-core /usr/lib/xorg/modules/extensions/libglx.so > /dev/null || true
173
#Remove diversion of /usr/lib/libGL.so.1
174
if dpkg-divert --list $glxname | grep "/usr/lib/libGL.so.1 " > /dev/null ; then
175
rm -f /usr/lib/libGL.so.1 > /dev/null || true
176
dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null || true
179
#Remove diversion of /usr/lib/libGL.so.1.2
180
if dpkg-divert --list $glxname | grep /usr/lib/libGL.so.1.2 > /dev/null ; then
181
rm -f /usr/lib/libGL.so.1.2 > /dev/null || true
182
dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null || true
195
echo "preinst called with unknown argument \`$1'" >&2
202
# dh_installdeb will replace this with shell code automatically
203
# generated by other debhelper scripts.