fix prep_mv_conffile function
authorJoey Hess <joey@kodama.kitenet.net>
Fri, 4 Jan 2008 23:43:29 +0000 (18:43 -0500)
committerJoey Hess <joey@kodama.kitenet.net>
Fri, 4 Jan 2008 23:43:29 +0000 (18:43 -0500)
somehow I had an old version

(The fact that we copy and paste this function around is absurd and needs fixing!)

debian/preinst

index 65e9c9e3d0a90c8e6e99d52020281fc2110de0d4..c1fdc2724536b7db00ab8c91cee65a788163810e 100644 (file)
@@ -5,11 +5,12 @@ set -e
 
 # Prepare to move a conffile without triggering a dpkg question
 prep_mv_conffile() {
-       CONFFILE="$1"
+       PKGNAME="$1"
+       CONFFILE="$2"
 
        if [ -e "$CONFFILE" ]; then
                md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`"
-               old_md5sum="`sed -n -e \"/^Conffiles:/,/^[^ ]/{\\\\' $CONFFILE'{s/.* //;p}}\" /var/lib/dpkg/status`"
+               old_md5sum="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE'{s/ obsolete$//;s/.* //p}\"`"
                if [ "$md5sum" = "$old_md5sum" ]; then
                        rm -f "$CONFFILE"
                fi
@@ -20,14 +21,14 @@ case "$1" in
 install|upgrade)
        if dpkg --compare-versions "$2" le "0.7"; then
                for c in README 50uncommitted-changes; do
-                       prep_mv_conffile "/etc/etckeeper/pre-apt.d/$c"
+                       prep_mv_conffile etckeeper "/etc/etckeeper/pre-apt.d/$c"
                done
                for c in README 10git-test 30git-add 40git-rm 50git-commit; do
-                       prep_mv_conffile "/etc/etckeeper/post-apt.d/$c"
+                       prep_mv_conffile etckeeper "/etc/etckeeper/post-apt.d/$c"
                done
                for c in 40git-init 50git-ignore 50git-perm \
                         50git-pre-commit-hook 70git-add; do
-                       prep_mv_conffile "/etc/etckeeper/init.d/$c"
+                       prep_mv_conffile etckeeper "/etc/etckeeper/init.d/$c"
                done
        fi
 esac