From 1954e6cfb8b058a95e774a198431721204d8eaa6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 21 Aug 2009 17:19:18 -0400 Subject: [PATCH] dh_installudev transition * dh_installudev: Install rules files into new location /lib/udev/rules.d/ * dh_installudev: Add code to delete old conffiles unless they're modified, and in that case, rename them to override the corresponding file in /lib/udev. (Based on patch by Martin Pitt.) (Note that this file will not be deleted on purge -- I can't see a good way to determine when it's appropriate to do that.) * dh_installudev: Set default priority to 60; dropping the "z". If --priority=zNN is passed, treat that as priority NN. * Above Closes: #491117 * dh_installudev: Drop code handling move of /etc/udev/foo into /etc/udev/rules.d/. --- autoscripts/preinst-udev | 5 ----- debian/changelog | 18 ++++++++++++++++++ dh_installudev | 37 ++++++++++++++++++++++++++----------- 3 files changed, 44 insertions(+), 16 deletions(-) delete mode 100644 autoscripts/preinst-udev diff --git a/autoscripts/preinst-udev b/autoscripts/preinst-udev deleted file mode 100644 index 7874fdb..0000000 --- a/autoscripts/preinst-udev +++ /dev/null @@ -1,5 +0,0 @@ -if [ "$1" = install ] || [ "$1" = upgrade ]; then - if [ -L "#RULE#" ]; then - rm -f "#RULE#" - fi -fi diff --git a/debian/changelog b/debian/changelog index fe036d0..bc4f79f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,21 @@ +debhelper (7.3.15) UNRELEASED; urgency=low + + * dh_installudev: Install rules files into new location + /lib/udev/rules.d/ + * dh_installudev: Add code to delete old conffiles unless + they're modified, and in that case, rename them to override + the corresponding file in /lib/udev. (Based on patch by + Martin Pitt.) (Note that this file will not be deleted on purge -- + I can't see a good way to determine when it's appropriate to do + that.) + * dh_installudev: Set default priority to 60; dropping the "z". + If --priority=zNN is passed, treat that as priority NN. + * Above Closes: #491117 + * dh_installudev: Drop code handling move of /etc/udev/foo into + /etc/udev/rules.d/. + + -- Joey Hess Fri, 21 Aug 2009 16:53:53 -0400 + debhelper (7.3.14) unstable; urgency=low [ Colin Watson ] diff --git a/dh_installudev b/dh_installudev index 243dc73..0d38cf5 100755 --- a/dh_installudev +++ b/dh_installudev @@ -20,7 +20,7 @@ dh_installudev is a debhelper program that is responsible for installing udev rules files. Files named debian/package.udev will be installed in -etc/udev/rules.d/ in the package build directory. +lib/udev/rules.d/ in the package build directory. Code is added to the preinst and postinst to handle the upgrade from the old udev rules file location. @@ -37,7 +37,7 @@ debian/package.udev. =item B<--priority=>I -Sets the priority string of the rules.d symlink. Default is z60. +Sets the priority string of the rules.d symlink. Default is 60. =item B<-n>, B<--noscripts> @@ -55,11 +55,23 @@ instances of the same text to be added to maintainer scripts. init(); +# The priority used to look like z60_; +# we need to calculate that old value to handle +# conffile moves correctly. +my $old_priority=$dh{PRIORITY}; + +# In case a caller still uses the `z` prefix, remove it. +if (defined $dh{PRIORITY}) { + $dh{PRIORITY}=~s/^z//; +} + if (! defined $dh{PRIORITY}) { - $dh{PRIORITY}="z60"; + $dh{PRIORITY}="60"; + $old_priority="z60"; } if ($dh{PRIORITY}) { - $dh{PRIORITY}.="_"; + $dh{PRIORITY}.="-"; + $old_priority.="_"; } foreach my $package (@{$dh{DOPACKAGES}}) { @@ -72,16 +84,19 @@ foreach my $package (@{$dh{DOPACKAGES}}) { $filename=~s/\.udev$/.rules/; if ($rules_file) { - if (! -e "$tmp/etc/udev/rules.d") { - doit("install","-d","$tmp/etc/udev/rules.d"); + if (! -e "$tmp/lib/udev/rules.d") { + doit("install","-d","$tmp/lib/udev/rules.d"); } - doit("install","-m","0644",$rules_file,"$tmp/etc/udev/rules.d/$dh{PRIORITY}$filename"); + my $rule="/lib/udev/rules.d/$dh{PRIORITY}$filename"; + doit("install","-m","0644",$rules_file,$tmp.$rule); if (! $dh{NOSCRIPTS}) { - my $old="/etc/udev/$filename"; - my $rule="/etc/udev/rules.d/$dh{PRIORITY}$filename"; - autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#PACKAGE#!$package!g"); + # Remove old rule from /etc, unless it's modified, + # in which case we rename it to match the new + # file in /lib, so it will override. + my $old="/etc/udev/rules.d/$old_priority$filename"; + $rule=~s/^\/lib/\/etc/; + autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!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"); } } } -- 2.39.2