~ubuntu-branches/ubuntu/maverick/nvidia-graphics-drivers-96/maverick-proposed

« back to all changes in this revision

Viewing changes to debian/nvidia-glx-96.preinst

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Milone
  • Date: 2010-01-08 23:34:51 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20100108233451-f1142o5r7z0ou4o0
Tags: 96.43.14-0ubuntu1
* Rework packaging taking Mandriva's as a model:
  - Use alternatives instead of diversions.
  - Reduce the number of binary packages to nvidia-96,
    nvidia-96-dev and nvidia-96-modaliases.
* debian/rules:
  - Switch to CDBS.
  - Remove libGL.la as no static library is provided.
* debian/nvidia-current.README.Debian.in:
  - Document the update process.
* nvidia-current.postinst: try to build the module for the most
  recent kernel in addition to building it for the current kernel
  (LP: #474917).
* New upstream release (LP: #494166):
 - Add support for xserver 1.7.x.

Show diffs side-by-side

added added

removed removed

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