From: Joey Hess Date: Tue, 3 Mar 2009 02:20:29 +0000 (-0500) Subject: conffile moving idiocy X-Git-Tag: 7.2.2~1 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=4ad78d9db390d7c68d48fc9017fbec516a68a9fe;hp=e7ab4dca7d240f48a51960a6978c05d2f5aa7a97;p=debhelper.git conffile moving idiocy * dh_installmodules: Give files in /etc/modprobe.d a .conf syntax, as required by new module-init-tools. * dh_installmodules: Add preinst and postinst code to handle cleanly renaming the modprobe.d files on upgrade. * Two updates to conffile moving code from wiki: - Support case where the conffile name is a substring of another conffile's name. - Support case where dpkg-query says the file is obsolete. --- diff --git a/autoscripts/postinst-moveconffile b/autoscripts/postinst-moveconffile new file mode 100644 index 0000000..28f061e --- /dev/null +++ b/autoscripts/postinst-moveconffile @@ -0,0 +1,9 @@ +if [ "$1" = configure ]; then + if [ -e "#OLD#" ]; then + echo "Preserving user changes to #NEW# ..." + if [ -e "#NEW#" ]; then + mv -f "#NEW#" "#NEW#.dpkg-new" + fi + mv -f "#OLD#" "#NEW#" + fi +fi diff --git a/autoscripts/postinst-udev b/autoscripts/postinst-udev deleted file mode 100644 index 40b953d..0000000 --- a/autoscripts/postinst-udev +++ /dev/null @@ -1,9 +0,0 @@ -if [ "$1" = configure ]; then - if [ -e "#OLD#" ]; then - echo "Preserving user changes to #RULE# ..." - if [ -e "#RULE#" ]; then - mv -f "#RULE#" "#RULE#.dpkg-new" - fi - mv -f "#OLD#" "#RULE#" - fi -fi diff --git a/autoscripts/preinst-moveconffile b/autoscripts/preinst-moveconffile new file mode 100644 index 0000000..619b4ce --- /dev/null +++ b/autoscripts/preinst-moveconffile @@ -0,0 +1,9 @@ +if [ "$1" = install ] || [ "$1" = upgrade ]; then + if [ -e "#OLD#" ]; then + if [ "`md5sum \"#OLD#\" | sed -e \"s/ .*//\"`" = \ + "`dpkg-query -W -f='${Conffiles}' #PACKAGE# | sed -n -e \"\\\\' #OLD# '{s/ obsolete$//;s/.* //p}\"`" ] + then + rm -f "#OLD#" + fi + fi +fi diff --git a/autoscripts/preinst-udev b/autoscripts/preinst-udev index 2b6ede3..7874fdb 100644 --- a/autoscripts/preinst-udev +++ b/autoscripts/preinst-udev @@ -1,11 +1,4 @@ if [ "$1" = install ] || [ "$1" = upgrade ]; then - if [ -e "#OLD#" ]; then - if [ "`md5sum \"#OLD#\" | sed -e \"s/ .*//\"`" = \ - "`dpkg-query -W -f='${Conffiles}' #PACKAGE# | sed -n -e \"\\\\' #OLD#'s/.* //p\"`" ] - then - rm -f "#OLD#" - fi - fi if [ -L "#RULE#" ]; then rm -f "#RULE#" fi diff --git a/debian/changelog b/debian/changelog index b1199fe..1240b99 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +debhelper (7.2.2) UNRELEASED; urgency=low + + * dh_installmodules: Give files in /etc/modprobe.d a .conf + syntax, as required by new module-init-tools. + * dh_installmodules: Add preinst and postinst code to handle + cleanly renaming the modprobe.d files on upgrade. + * Two updates to conffile moving code from wiki: + - Support case where the conffile name is a substring of another + conffile's name. + - Support case where dpkg-query says the file is obsolete. + + -- Joey Hess Mon, 02 Mar 2009 20:46:10 -0500 + debhelper (7.2.1) experimental; urgency=low * Merged debhelper 7.0.52. diff --git a/dh_installmodules b/dh_installmodules index 6a08eb7..6bb2250 100755 --- a/dh_installmodules +++ b/dh_installmodules @@ -21,7 +21,7 @@ dh_installmodules is a debhelper program that is responsible for registering kernel modules. Files named debian/package.modprobe will be installed in -etc/modprobe.d/package in the package build directory, to be used by +etc/modprobe.d/package.conf in the package build directory, to be used by module-init-tools's version of modprobe. Kernel modules are searched for in the package build directory and if @@ -102,7 +102,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if (! -e "$tmp/etc/modprobe.d") { doit("install","-d","$tmp/etc/modprobe.d"); } - doit("install","-m","0644",$modprobe_file,"$tmp/etc/modprobe.d/".pkgfilename($package)); + my $old="/etc/modprobe.d/".pkgfilename($package); + my $new=$old.".conf"; + doit("install","-m","0644",$modprobe_file,"$tmp/$new"); + autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#PACKAGE#!$package!g"); + autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$new!g"); } if (! $dh{NOSCRIPTS}) { diff --git a/dh_installudev b/dh_installudev index 9dd4e18..243dc73 100755 --- a/dh_installudev +++ b/dh_installudev @@ -79,8 +79,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if (! $dh{NOSCRIPTS}) { my $old="/etc/udev/$filename"; my $rule="/etc/udev/rules.d/$dh{PRIORITY}$filename"; - autoscript($package,"preinst","preinst-udev","s!#OLD#!$old!g;s!#RULE#!$rule!g;s!#PACKAGE#!$package!g"); - autoscript($package,"postinst","postinst-udev","s!#OLD#!$old!g;s!#RULE#!$rule!g"); + autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#PACKAGE#!$package!g"); + autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!g"); + autoscript($package,"preinst","preinst-udev","s!#RULE#!$rule!g"); } } }