]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installudev
Updated French man page translation. Closes: #685560
[debhelper.git] / dh_installudev
index 6406c6a9c9b40f2f44da7ab6af0b8bc550c99718..fa369a026d6286d3642adb8b3512394ed2c0bb24 100755 (executable)
@@ -16,41 +16,45 @@ 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 as
-etc/udev/package.rules 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.
 
 
-Then postinst and postrm commands are automatically generated to enable
-the rules file when the package is first installed, by creating a symlink
-to it in the /etc/udev/rules.d/ directory. These commands are inserted into
-the maintainer scripts by dh_installdeb. See L<dh_installdeb(1)> for an
-explanation of how this works.
-
-=head1 OPTIONS
+=head1 FILES
 
 =over 4
 
 
 =over 4
 
-=item B<-n>, B<--noscripts>
+=item debian/I<package>.udev
 
 
-Do not modify postinst/postrm scripts.
+Installed into F<lib/udev/rules.d/> in the package build directory.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
 
 =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>
+
+Do not modify F<preinst>/F<postinst> scripts.
 
 =back
 
 =head1 NOTES
 
 
 =back
 
 =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.
 
@@ -58,11 +62,23 @@ instances of the same text to be added to maintainer scripts.
 
 init();
 
 
 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}}) {
@@ -73,18 +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/$filename");
-
+               my $rule="/lib/udev/rules.d/$dh{PRIORITY}$filename";
+               doit("install","-m","0644",$rules_file,$tmp.$rule);
                if (! $dh{NOSCRIPTS}) {
                if (! $dh{NOSCRIPTS}) {
-                       autoscript($package,"postinst","postinst-udev",
-                               "s/#FILE#/$filename/g;s/#PRIO#/$dh{PRIORITY}/g");
-                       autoscript($package,"postrm","postrm-udev",
-                               "s/#FILE#/$filename/g;s/#PRIO#/$dh{PRIORITY}/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");
                }
        }
 }
                }
        }
 }