[pkg-nvidia-devel] r1389 - in /packages/nvidia-graphics-drivers/trunk/debian: changelog libgl1-nvidia-glx-ia32.preinst libgl1-nvidia-glx.preinst
anbe-guest at users.alioth.debian.org
anbe-guest at users.alioth.debian.org
Sun Jul 18 11:09:59 UTC 2010
Author: anbe-guest
Date: Sun Jul 18 11:09:58 2010
New Revision: 1389
URL: http://svn.debian.org/wsvn/pkg-nvidia/?sc=1&rev=1389
Log:
Add preinst check to libgl1-nvidia-glx{,-ia32} to prevent upgrades when
old versions of nvidia-glx{,-ia32} are still installed because the
diversion migration will fail. This only happens when the packages are
manually passed in the wrong order to dpkg -i. apt-get and aptitude
correctly reorder the packages according to Conflicts/Replaces/Depends.
Modified:
packages/nvidia-graphics-drivers/trunk/debian/changelog
packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx-ia32.preinst
packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx.preinst
Modified: packages/nvidia-graphics-drivers/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/changelog?rev=1389&op=diff
==============================================================================
--- packages/nvidia-graphics-drivers/trunk/debian/changelog (original)
+++ packages/nvidia-graphics-drivers/trunk/debian/changelog Sun Jul 18 11:09:58 2010
@@ -10,6 +10,11 @@
libgl1-mesa-glx | libgl1 only. (Closes: #587091)
* Split the nvidia-glx{,-ia32} packages, move the runtime libraries to
libgl1-nvidia-glx{,-ia32}. (Closes: #369316)
+ * Add preinst check to libgl1-nvidia-glx{,-ia32} to prevent upgrades when
+ old versions of nvidia-glx{,-ia32} are still installed because the
+ diversion migration will fail. This only happens when the packages are
+ manually passed in the wrong order to dpkg -i. apt-get and aptitude
+ correctly reorder the packages according to Conflicts/Replaces/Depends.
* Rename package nvidia-glx-dev to libgl1-nvidia-dev (add dummy package).
* Introduce virtual packages nvidia-glx{,-ia32}, libgl1-nvidia-glx{,-ia32},
libgl1-nvidia-dev, nvidia-kernel-dkms. Add a matching Provides/Conflicts:
Modified: packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx-ia32.preinst
URL: http://svn.debian.org/wsvn/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx-ia32.preinst?rev=1389&op=diff
==============================================================================
--- packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx-ia32.preinst (original)
+++ packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx-ia32.preinst Sun Jul 18 11:09:58 2010
@@ -5,6 +5,27 @@
#DIVERT_QUIET="--quiet"
# <target: squeeze>
+# $1 = package name, $2 = first not conflicting version
+check_package_conflict()
+{
+ is_installed=$(dpkg-query -l "$1" 2>/dev/null | grep "$1" | cut -c2 || true)
+ if [ "$is_installed" = "" ] || [ "$is_installed" = "n" ] || [ "$is_installed" = "c" ]
+ then
+ # package is unknown, not installed or has only config files remaining - no problem
+ return
+ fi
+ installed_version=$(dpkg-query -s "$1" | grep ^Version: | cut -d' ' -f2 || true)
+ if dpkg --compare-versions "$installed_version" lt-nl "$2"
+ then
+ echo "ERROR: An old version ($installed_version) of $1 (<< $2)"
+ echo " is still installed (state=$is_installed)."
+ echo " Please correct the package upgrade ordering."
+ echo "Aborting installation of $DPKG_MAINTSCRIPT_PACKAGE."
+ exit 1
+ fi
+ return
+}
+
exists()
{
test -e "$1" || test -L "$1"
@@ -12,6 +33,9 @@
if [ "$1" = "install" ]
then
+
+ # Upgrading the packages in the wrong order causes big problems w.r.t. taking over the diversions.
+ check_package_conflict "$(echo $DPKG_MAINTSCRIPT_PACKAGE | sed -r 's/libgl1-nvidia(.*)-glx/nvidia-glx\1/')" 195.36.31
# the destination directory for the diversions
test -d /usr/lib32/nvidia/diversions || \
Modified: packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx.preinst
URL: http://svn.debian.org/wsvn/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx.preinst?rev=1389&op=diff
==============================================================================
--- packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx.preinst (original)
+++ packages/nvidia-graphics-drivers/trunk/debian/libgl1-nvidia-glx.preinst Sun Jul 18 11:09:58 2010
@@ -5,6 +5,27 @@
#DIVERT_QUIET="--quiet"
# <target: squeeze>
+# $1 = package name, $2 = first not conflicting version
+check_package_conflict()
+{
+ is_installed=$(dpkg-query -l "$1" 2>/dev/null | grep "$1" | cut -c2 || true)
+ if [ "$is_installed" = "" ] || [ "$is_installed" = "n" ] || [ "$is_installed" = "c" ]
+ then
+ # package is unknown, not installed or has only config files remaining - no problem
+ return
+ fi
+ installed_version=$(dpkg-query -s "$1" | grep ^Version: | cut -d' ' -f2 || true)
+ if dpkg --compare-versions "$installed_version" lt-nl "$2"
+ then
+ echo "ERROR: An old version ($installed_version) of $1 (<< $2)"
+ echo " is still installed (state=$is_installed)."
+ echo " Please correct the package upgrade ordering."
+ echo "Aborting installation of $DPKG_MAINTSCRIPT_PACKAGE."
+ exit 1
+ fi
+ return
+}
+
exists()
{
test -e "$1" || test -L "$1"
@@ -12,6 +33,9 @@
if [ "$1" = "install" ]
then
+
+ # Upgrading the packages in the wrong order causes big problems w.r.t. taking over the diversions.
+ check_package_conflict "$(echo $DPKG_MAINTSCRIPT_PACKAGE | sed -r 's/libgl1-nvidia(.*)-glx/nvidia-glx\1/')" 195.36.31
# the destination directory for the diversions
test -d /usr/lib/nvidia/diversions || \
More information about the Pkg-nvidia-devel
mailing list