]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installudev
releasing version 7.3.12
[debhelper.git] / dh_installudev
index 696543f182ed9955185d78d9af9ca94ee3131de5..243dc732435d4c67046a1e6ba57573a4b7d57b70 100755 (executable)
@@ -4,7 +4,6 @@
 
 dh_installudev - install udev rules files
 
 
 dh_installudev - install udev rules files
 
-
 =cut
 
 use strict;
 =cut
 
 use strict;
@@ -20,26 +19,19 @@ B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--pri
 dh_installudev is a debhelper program that is responsible for
 installing udev rules files.
 
 dh_installudev is a debhelper program that is responsible for
 installing udev rules files.
 
-Files named debian/package.udev will be installed as
-etc/udev/package.rules in the package build directory.
+Files named debian/package.udev will be installed in
+etc/udev/rules.d/ in the package build directory.
 
 
-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. See L<dh_installdeb(1)> for an
-explanation of how this works.
+Code is added to the preinst and postinst to handle the upgrade from the
+old udev rules file location.
 
 =head1 OPTIONS
 
 =over 4
 
 
 =head1 OPTIONS
 
 =over 4
 
-=item B<-n>, B<--noscripts>
-
-Do not modify postinst/postrm scripts.
-
 =item B<--name=>I<name>
 
 =item B<--name=>I<name>
 
-Use "name" as the filename the rules file is installed in
-/etc/udev/. When this parameter is used, dh_installudev looks for and
+When this parameter is used, dh_installudev looks for and
 installs files named debian/package.name.udev instead of the usual
 debian/package.udev.
 
 installs files named debian/package.name.udev instead of the usual
 debian/package.udev.
 
@@ -47,11 +39,15 @@ debian/package.udev.
 
 Sets the priority string of the rules.d symlink. Default is z60.
 
 
 Sets the priority string of the rules.d symlink. Default is z60.
 
+=item B<-n>, B<--noscripts>
+
+Do not modify postinst/postrm 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.
 
@@ -70,19 +66,22 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
        my $rules_file=pkgfile($package,"udev");
        my $filename=basename($rules_file);
        my $tmp=tmpdir($package);
        my $rules_file=pkgfile($package,"udev");
        my $filename=basename($rules_file);
+       if ($filename eq 'udev') {
+               $filename = "$package.udev";
+       }
        $filename=~s/\.udev$/.rules/;
 
        if ($rules_file) {
        $filename=~s/\.udev$/.rules/;
 
        if ($rules_file) {
-               if (! -e "$tmp/etc/udev") {
-                       doit("install","-d","$tmp/etc/udev");
+               if (! -e "$tmp/etc/udev/rules.d") {
+                       doit("install","-d","$tmp/etc/udev/rules.d");
                }
                }
-               doit("install","-m","0644",$rules_file,"$tmp/etc/udev/$filename");
-
+               doit("install","-m","0644",$rules_file,"$tmp/etc/udev/rules.d/$dh{PRIORITY}$filename");
                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");
+                       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");
+                       autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!g");
+                       autoscript($package,"preinst","preinst-udev","s!#RULE#!$rule!g");
                }
        }
 }
                }
        }
 }