]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installudev
cmake: Pass CPPFLAGS in CFLAGS. Closes: #668813 Thanks, Simon Ruderich for the patch...
[debhelper.git] / dh_installudev
index 44f3177ac97365b6877ed7cdd65f8abcd575b75f..fa369a026d6286d3642adb8b3512394ed2c0bb24 100755 (executable)
@@ -16,14 +16,21 @@ B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--pri
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
-dh_installudev is a debhelper program that is responsible for
-installing udev rules files.
+B<dh_installudev> is a debhelper program that is responsible for
+installing B<udev> rules files.
 
 
-Files named debian/package.udev will be installed in
-etc/udev/rules.d/ in the package build directory.
+Code is added to the F<preinst> and F<postinst> to handle the upgrade from the
+old B<udev> rules file location.
 
 
-Code is added to the preinst and postinst to handle the upgrade from the
-old udev rules file location.
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.udev
+
+Installed into F<lib/udev/rules.d/> in the package build directory.
+
+=back
 
 =head1 OPTIONS
 
 
 =head1 OPTIONS
 
@@ -31,35 +38,47 @@ old udev rules file location.
 
 =item B<--name=>I<name>
 
 
 =item B<--name=>I<name>
 
-When this parameter is used, dh_installudev looks for and
-installs files named debian/package.name.udev instead of the usual
-debian/package.udev.
+When this parameter is used, B<dh_installudev> looks for and
+installs files named debian/I<package>.I<name>.udev instead of the usual
+debian/I<package>.udev.
 
 =item B<--priority=>I<priority>
 
 
 =item B<--priority=>I<priority>
 
-Sets the priority string of the rules.d symlink. Default is z60.
+Sets the priority string of the F<rules.d> symlink. Default is 60.
 
 =item B<-n>, B<--noscripts>
 
 
 =item B<-n>, B<--noscripts>
 
-Do not modify postinst/postrm scripts.
+Do not modify F<preinst>/F<postinst> scripts.
+
+=back
 
 =head1 NOTES
 
 
 =head1 NOTES
 
-Note that this command is not idempotent. "dh_clean -k" should be called
+Note that this command is not idempotent. L<dh_prep(1)> should be called
 between invocations of this command. Otherwise, it may cause multiple
 instances of the same text to be added to maintainer scripts.
 
 between invocations of this command. Otherwise, it may cause multiple
 instances of the same text to be added to maintainer scripts.
 
-=back
-
 =cut
 
 init();
 
 =cut
 
 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}) {
 if (! defined $dh{PRIORITY}) {
-       $dh{PRIORITY}="z60";
+       $dh{PRIORITY}="60";
+       $old_priority="z60";
 }
 if ($dh{PRIORITY}) {
 }
 if ($dh{PRIORITY}) {
-       $dh{PRIORITY}.="_";
+       $dh{PRIORITY}.="-";
+       $old_priority.="_";
 }
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
 }
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
@@ -70,17 +89,25 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                $filename = "$package.udev";
        }
        $filename=~s/\.udev$/.rules/;
                $filename = "$package.udev";
        }
        $filename=~s/\.udev$/.rules/;
+       my $oldfilename=$filename;
+       if (defined $dh{NAME}) {
+               $filename="$dh{NAME}.rules";
+       }
 
        if ($rules_file) {
 
        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}) {
                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");
+                       # 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$oldfilename";
+                       $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");
                }
        }
 }
                }
        }
 }