diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-08-21 17:19:18 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-08-21 17:19:18 -0400 |
commit | 1954e6cfb8b058a95e774a198431721204d8eaa6 (patch) | |
tree | 154173500e1529d6de2f31889ec6122d98c2dc18 /dh_installudev | |
parent | c92b253caf3f33992c0e48e0f25b31af348c03e7 (diff) | |
download | debhelper-1954e6cfb8b058a95e774a198431721204d8eaa6.tar.gz |
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/.
Diffstat (limited to 'dh_installudev')
-rwxr-xr-x | dh_installudev | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/dh_installudev b/dh_installudev index 243dc732..0d38cf56 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<priority> -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"); } } } |