From: Russ Allbery Date: Wed, 4 Nov 2009 05:44:55 +0000 (-0800) Subject: Remove the openafs module from DKMS if necessary before adding X-Git-Tag: debian/1.4.11+dfsg-5~1 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=c07b0b751d7e768a50f3594e13c8221a304bb455;p=packages%2Fo%2Fopenafs.git Remove the openafs module from DKMS if necessary before adding * In the postinst of openafs-modules-dkms, if the openafs module is already added in DKMS, try to remove it first before adding it. This should more correctly handle the case of a user installing this package without the correct kernel headers, having it fail in postinst, and then installing the correct headers and having dpkg attempt to configure the package again. Thanks, Philipp Kaluza. (Closes: #553542) --- diff --git a/debian/changelog b/debian/changelog index 1f137a79d..3b10278ab 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,13 @@ openafs (1.4.11+dfsg-5) UNRELEASED; urgency=low constrained processes (LP: #415766) - [49094ccf] Add automatic sysname detection for ARM Linux - [525b594a] Make ktc_curpag generally available (LP: #446521) + * In the postinst of openafs-modules-dkms, if the openafs module is + already added in DKMS, try to remove it first before adding it. This + should more correctly handle the case of a user installing this + package without the correct kernel headers, having it fail in + postinst, and then installing the correct headers and having dpkg + attempt to configure the package again. Thanks, Philipp Kaluza. + (Closes: #553542) -- Russ Allbery Tue, 03 Nov 2009 20:57:21 -0800 diff --git a/debian/openafs-modules-dkms.postinst b/debian/openafs-modules-dkms.postinst index 24bbe0db9..556dbf710 100644 --- a/debian/openafs-modules-dkms.postinst +++ b/debian/openafs-modules-dkms.postinst @@ -7,6 +7,13 @@ package=openafs-modules-dkms version=`dpkg-query -W -f='${Version}' "$package" \ | sed -e 's/[+-].*//' -e 's/\.dfsg.*//' -e 's/~//g'` +# If someone installed this package without the necessary kernel headers, the +# postinst will fail. If they then fix this problem, the postinst will keep +# failing since the dkms add cannot be run twice. Try to detect this +# situation and remove and re-add the module. +if [ -e "/var/lib/dkms/openafs/$version" ] ; then + dkms remove -m openafs -v "$version" --all || true +fi dkms add -m openafs -v "$version" if [ "$1" = 'configure' ] ; then dkms build -m openafs -v "$version"