~ubuntu-branches/ubuntu/precise/nvidia-graphics-drivers-173-updates/precise-updates

« back to all changes in this revision

Viewing changes to debian/nvidia-173-updates.preinst

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Milone
  • Date: 2011-08-11 12:21:04 UTC
  • Revision ID: james.westby@ubuntu.com-20110811122104-kzg05ous9ot141uq
Tags: 173.14.30-0ubuntu1
First release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
# preinst script for nvidia-173-updates
 
3
#
 
4
# see: dh_installdeb(1)
 
5
#
 
6
# Copyright (C) 2009 Canonical Ltd
 
7
# Authors: Alberto Milone
 
8
 
 
9
set -e
 
10
 
 
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>
 
16
#
 
17
# For details see /usr/share/doc/packaging-manual/
 
18
 
 
19
if [ `dpkg --print-architecture` = "amd64" ]; then
 
20
    HAS_LIB32="yes"
 
21
fi
 
22
 
 
23
case "$1" in
 
24
    install|upgrade)
 
25
 
 
26
    # We need to remove diversions from previous versions of the package
 
27
 
 
28
    # clean up from old diversions
 
29
    if [ -d /usr/share/nvidia-glx/diversions ]; then
 
30
        rm -f /usr/lib/libGL.so.1
 
31
        rm -f /usr/lib/libGL.so.1.2
 
32
        
 
33
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libGL.so.1 /usr/lib/libGL.so.1 > /dev/null
 
34
        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
 
35
 
 
36
        rm -f /usr/lib/xorg/modules/extensions/libGLcore.a
 
37
        rm -f /usr/lib/xorg/modules/extensions/libglx.a
 
38
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libGLcore.a /usr/lib/xorg/modules/extensions/libGLcore.a > /dev/null
 
39
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/share/nvidia-glx/diversions/libglx.a /usr/lib/xorg/modules/extensions/libglx.a > /dev/null
 
40
 
 
41
        rmdir /usr/share/nvidia-glx/diversions || true;
 
42
        rmdir /usr/share/nvidia-glx || true;
 
43
    fi
 
44
 
 
45
    if [ -d /usr/share/nvidia-glx/diversions-X11R6 ]; then
 
46
 
 
47
        rm -f /usr/X11R6/lib/libGL.so.1
 
48
        rm -f /usr/X11R6/lib/libGL.so.1.2
 
49
        
 
50
        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
 
51
        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
 
52
 
 
53
        rmdir /usr/share/nvidia-glx/diversions-X11R6 || true;
 
54
        rmdir /usr/share/nvidia-glx || true;
 
55
    fi
 
56
    # remove X11R6 diversions
 
57
    
 
58
    if dpkg-divert --list /usr/X11R6/lib/libGL.so.1 | grep 'nvidia-glx' > /dev/null ; then
 
59
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libGL.so.1.xlibmesa /usr/X11R6/lib/libGL.so.1 > /dev/null
 
60
    fi
 
61
    
 
62
    if dpkg-divert --list /usr/X11R6/lib/libGL.so.1.2 | grep 'nvidia-glx' > /dev/null ; then
 
63
        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
 
64
    fi
 
65
    if dpkg-divert --list /usr/X11R6/lib/modules/extensions/libGLcore.a | grep 'nvidia-glx' > /dev/null ; then
 
66
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libGLcore.a.xlibmesa /usr/X11R6/lib/modules/extensions/libGLcore.a > /dev/null
 
67
    fi
 
68
    if dpkg-divert --list /usr/X11R6/lib/modules/extensions/libglx.a | grep 'nvidia-glx' > /dev/null ; then
 
69
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libglx.a.xlibmesa /usr/X11R6/lib/modules/extensions/libglx.a > /dev/null
 
70
    fi
 
71
    if dpkg-divert --list /usr/X11R6/lib/modules/extensions/libglx.so | grep 'nvidia-glx' > /dev/null ; then
 
72
        dpkg-divert --remove --rename --package nvidia-glx --divert /usr/X11R6/lib/nvidia/libglx.so.xlibmesa /usr/X11R6/lib/modules/extensions/libglx.so > /dev/null
 
73
    fi
 
74
 
 
75
    # make sure these diversions don't exist anymore
 
76
    if dpkg-divert --list /usr/lib/libGL.so | grep 'nvidia-glx-dev' > /dev/null ; then
 
77
        dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
 
78
        dpkg-divert --remove --rename --package nvidia-glx-dev-envy --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
 
79
    fi
 
80
    if dpkg-divert --list /usr/lib/libGL.so | grep 'nvidia-glx-177-dev' > /dev/null ; then
 
81
        dpkg-divert --remove --rename --package nvidia-glx-177-dev --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
 
82
    fi
 
83
    if dpkg-divert --list /usr/lib/libGL.so | grep 'nvidia-glx-new-dev' > /dev/null ; then
 
84
        dpkg-divert --remove --rename --package nvidia-glx-new-dev --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
 
85
        dpkg-divert --remove --rename --package nvidia-glx-new-dev-envy --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null || true
 
86
    fi
 
87
    if dpkg-divert --list /usr/lib/libGL.a | grep 'nvidia-glx-dev' > /dev/null ; then
 
88
        dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
 
89
        dpkg-divert --remove --rename --package nvidia-glx-dev-envy --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
 
90
    fi
 
91
    if dpkg-divert --list /usr/lib/libGL.a | grep 'nvidia-glx-new-dev' > /dev/null ; then
 
92
        dpkg-divert --remove --rename --package nvidia-glx-new-dev --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
 
93
        dpkg-divert --remove --rename --package nvidia-glx-new-dev-envy --divert /usr/lib/nvidia/libGL.a.xlibmesa /usr/lib/libGL.a > /dev/null || true
 
94
    fi
 
95
    if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-dev' > /dev/null ; then
 
96
        dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/X11R6/lib/nvidia/libGL.so.xlibmesa /usr/X11R6/lib/libGL.so > /dev/null || true
 
97
        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
 
98
    fi
 
99
    if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-new-dev' > /dev/null ; then
 
100
        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
 
101
        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
 
102
    fi
 
103
    if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-dev' > /dev/null ; then
 
104
        dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/X11R6/lib/nvidia/libGL.a.xlibmesa /usr/X11R6/lib/libGL.a > /dev/null || true
 
105
        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
 
106
    fi
 
107
    if dpkg-divert --list /usr/X11R6/lib/libGL.so | grep 'nvidia-glx-new-dev' > /dev/null ; then
 
108
        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
 
109
        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
 
110
    fi
 
111
 
 
112
 
 
113
    # Make sure that no diversion is still there
 
114
    set -a "nvidia-glx" "nvidia-glx-new" "nvidia-glx-legacy" "nvidia-glx-envy"\
 
115
            "nvidia-glx-new-envy" "nvidia-glx-legacy-envy" "nvidia-glx-180" \
 
116
            "nvidia-glx-177" "nvidia-glx-173" "nvidia-glx-96" "nvidia-glx-71" \
 
117
            "nvidia-glx-185" "nvidia-glx-190"
 
118
 
 
119
    while [ $# -ge 1 ]; do
 
120
        glxname=$1
 
121
        glxdevname="$glxname-dev"
 
122
    
 
123
        if [ -n "$HAS_LIB32" ]; then
 
124
            #Remove diversions of /usr/lib32/libGL.so -- only for the new name schemes (nvidia-glx-VER)
 
125
            if dpkg-divert --list $glxname | grep "/usr/lib32/libGL.so " > /dev/null ; then
 
126
                rm -f /usr/lib32/libGL.so > /dev/null || true
 
127
                dpkg-divert --remove --rename --package $glxname --divert /usr/lib32/nvidia/libGL.so.xlibmesa /usr/lib32/libGL.so > /dev/null || true
 
128
            fi
 
129
 
 
130
            #Remove diversion of /usr/lib32/libGL.so.1
 
131
            if dpkg-divert --list $glxname | grep /usr/lib32/libGL.so.1 > /dev/null ; then
 
132
                rm -f /usr/lib32/libGL.so.1 > /dev/null || true
 
133
                dpkg-divert --remove --rename --package $glxname --divert /usr/lib32/nvidia/libGL.so.1.xlibmesa /usr/lib32/libGL.so.1 > /dev/null || true
 
134
            fi
 
135
            
 
136
            #Remove diversion of /usr/lib32/libGL.so.1.2
 
137
            if dpkg-divert --list $glxname | grep /usr/lib32/libGL.so.1.2 > /dev/null ; then
 
138
                rm -f /usr/lib32/libGL.so.1.2 > /dev/null || true
 
139
                dpkg-divert --remove --rename --package $glxname --divert /usr/lib32/nvidia/libGL.so.1.2.xlibmesa /usr/lib32/libGL.so.1.2 > /dev/null || true
 
140
            fi
 
141
            
 
142
        fi
 
143
            
 
144
 
 
145
        #Remove diversion of /usr/lib/xorg/modules/extensions/libGLcore.so
 
146
        if dpkg-divert --list $glxname | grep /usr/lib/xorg/modules/extensions/libGLcore.so > /dev/null ; then
 
147
            dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libGLcore.so.xlibmesa /usr/lib/xorg/modules/extensions/libGLcore.so > /dev/null || true
 
148
        fi
 
149
 
 
150
        #Remove diversion of /usr/lib/xorg/modules/extensions/libglx.so
 
151
        if dpkg-divert --list $glxname | grep /usr/lib/xorg/modules/extensions/libglx.so > /dev/null ; then
 
152
            rm -f /usr/lib/xorg/modules/extensions/libglx.so > /dev/null || true
 
153
            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
 
154
        fi
 
155
 
 
156
        #Remove diversion of /usr/lib/libGL.so.1
 
157
        if dpkg-divert --list $glxname | grep "/usr/lib/libGL.so.1 " > /dev/null ; then
 
158
            rm -f /usr/lib/libGL.so.1 > /dev/null || true
 
159
            dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null || true
 
160
        fi
 
161
 
 
162
        #Remove diversion of /usr/lib/libGL.so.1.2
 
163
        if dpkg-divert --list $glxname | grep /usr/lib/libGL.so.1.2 > /dev/null ; then
 
164
            rm -f /usr/lib/libGL.so.1.2 > /dev/null || true
 
165
            dpkg-divert --remove --rename --package $glxname --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null || true
 
166
        fi
 
167
 
 
168
 
 
169
        shift
 
170
    done
 
171
 
 
172
    ;;
 
173
 
 
174
    abort-upgrade)
 
175
    ;;
 
176
 
 
177
    *)
 
178
        echo "preinst called with unknown argument \`$1'" >&2
 
179
        exit 0
 
180
    ;;
 
181
esac
 
182
 
 
183
 
 
184
 
 
185
# dh_installdeb will replace this with shell code automatically
 
186
# generated by other debhelper scripts.
 
187
 
 
188
#DEBHELPER#
 
189
 
 
190
exit 0