diff -u linux-restricted-modules-2.6.22-2.6.22.4/debian/nvidia-glx.postrm.in linux-restricted-modules-2.6.22-2.6.22.4/debian/nvidia-glx.postrm.in --- linux-restricted-modules-2.6.22-2.6.22.4/debian/nvidia-glx.postrm.in +++ linux-restricted-modules-2.6.22-2.6.22.4/debian/nvidia-glx.postrm.in @@ -18,27 +18,42 @@ case "$1" in remove|purge) - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null + # perform sanity checks on the file to ensure they are currently diverted + # to this package. + if [ "`dpkg-divert --list /usr/lib/libGL.so.1 | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null + fi - if dpkg-divert --list /usr/X11R6/lib32/libGL.so.1 | grep 'nvidia-glx@@NV_LEGACY@@' >/dev/null; then + if [ "`dpkg-divert --list /usr/X11R6/lib32/libGL.so.1 | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib32/nvidia/libGL.so.1.xlibmesa /usr/X11R6/lib32/libGL.so.1 > /dev/null dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib32/nvidia/libGL.so.1.2.xlibmesa /usr/X11R6/lib32/libGL.so.1.2 > /dev/null fi - if dpkg-divert --list /usr/lib32/libGL.so.1 | grep 'nvidia-glx@@NV_LEGACY@@' >/dev/null; then + if [ "`dpkg-divert --list /usr/lib32/libGL.so.1 | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib32/nvidia/libGL.so.1.xlibmesa /usr/lib32/libGL.so.1 > /dev/null dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib32/nvidia/libGL.so.1.2.xlibmesa /usr/lib32/libGL.so.1.2 > /dev/null fi - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libGL.so.1.xlibmesa /usr/X11R6/lib/libGL.so.1 > /dev/null - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libGL.so.1.2.xlibmesa /usr/X11R6/lib/libGL.so.1.2 > /dev/null + if [ "`dpkg-divert --list /usr/X11R6/lib/libGL.so.1 | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libGL.so.1.xlibmesa /usr/X11R6/lib/libGL.so.1 > /dev/null + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libGL.so.1.2.xlibmesa /usr/X11R6/lib/libGL.so.1.2 > /dev/null + fi - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libGLcore.a.xlibmesa /usr/X11R6/lib/modules/extensions/libGLcore.a > /dev/null - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libglx.a.xlibmesa /usr/X11R6/lib/modules/extensions/libglx.a > /dev/null + if [ "`dpkg-divert --list /usr/X11R6/lib/modules/extensions/libGLcore.a | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libGLcore.a.xlibmesa /usr/X11R6/lib/modules/extensions/libGLcore.a > /dev/null + fi - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libGLcore.so.xlibmesa /usr/lib/xorg/modules/libGLcore.so > /dev/null - dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/xorg/modules/libglx.so > /dev/null + if [ "`dpkg-divert --list /usr/X11R6/lib/modules/extensions/libglx.a | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/X11R6/lib/nvidia/libglx.a.xlibmesa /usr/X11R6/lib/modules/extensions/libglx.a > /dev/null + fi + + if [ "`dpkg-divert --list /usr/lib/xorg/modules/libGLcore.so | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libGLcore.so.xlibmesa /usr/lib/xorg/modules/libGLcore.so > /dev/null + fi + if [ "`dpkg-divert --list /usr/lib/xorg/modules/libglx.so | awk '{ print $7 }'`" == "nvidia-glx@@NV_LEGACY@@" ]; then + dpkg-divert --remove --rename --package nvidia-glx@@NV_LEGACY@@ --divert /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/xorg/modules/libglx.so > /dev/null + fi rm -f /usr/X11R6/lib/modules/extensions/libglx.so.@@VERSION@@ 2> /dev/null || true if [ -d /usr/lib/nvidia ]; then diff -u linux-restricted-modules-2.6.22-2.6.22.4/debian/changelog linux-restricted-modules-2.6.22-2.6.22.4/debian/changelog --- linux-restricted-modules-2.6.22-2.6.22.4/debian/changelog +++ linux-restricted-modules-2.6.22-2.6.22.4/debian/changelog @@ -1,3 +1,10 @@ +linux-restricted-modules-2.6.22 (2.6.22.4-13.6ubuntu1) gutsy; urgency=low + + * Added sanity checks on the nvidia package remove/purge to ensure that the libraries are owned by this package before they are diverted back to xlibmesa. + + + -- Kirk Turner Mon, 08 Oct 2007 21:27:59 +0800 + linux-restricted-modules-2.6.22 (2.6.22.4-13.6) gutsy; urgency=low * Make 'nv' in /etc/default/linux-restricted-modules-common disable