]> git.donarmstrong.com Git - debhelper.git/commitdiff
r1984: * dh_installudev: Install udev rules directly into /etc/udev/rules.d/, not
authorjoeyh <joeyh>
Thu, 12 Apr 2007 19:41:09 +0000 (19:41 +0000)
committerjoeyh <joeyh>
Thu, 12 Apr 2007 19:41:09 +0000 (19:41 +0000)
  using the symlinks. MD has agreed that this is more appropriate for most
  packages.
* That fixes the longstanding bug that the symlink was only made on brand
  new installs of the package, rather than on upgrade to the first version
  that includes the udev rules file. Closes: #359614
* dh_installudev: Add preinst and postinst code to handle cleanly moving
  the rules file to the new location on upgrade.
* This would be a good time for the many packages that manage rules files
  w/o using dh_installudev to begin to use it..

autoscripts/postinst-udev
autoscripts/postrm-udev [deleted file]
autoscripts/preinst-udev [new file with mode: 0644]
debian/changelog
dh_installudev

index efb84d1c9ba0bcacd9a06c437eac32335dc598f6..cbf8dbe405fb0ddad74e58991c629dc38503d24f 100644 (file)
@@ -1,3 +1,9 @@
-if [ "$1" = configure -a -z "$2" ]; then
-       ln -sf ../#FILE# /etc/udev/rules.d/#PRIO##FILE#
+if [ "$1" = configure ]; then
+       if [ -e /etc/udev/#FILE# ]; then
+               echo "Preserving user changes to /etc/udev/rules.d/#PRIO##FILE# ..."
+               if [ -e /etc/udev/rules.d/#PRIO##FILE# ]; then
+                       mv -f /etc/udev/rules.d/#PRIO##FILE# /etc/udev/rules.d/#PRIO##FILE#.dpkg-new
+               fi
+               mv -f /etc/udev/#FILE# /etc/udev/rules.d/#PRIO##FILE#
+       fi
 fi
diff --git a/autoscripts/postrm-udev b/autoscripts/postrm-udev
deleted file mode 100644 (file)
index b0af6c0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-if [ "$1" = purge ]; then
-       if [ -L /etc/udev/rules.d/#PRIO##FILE# ]; then
-               rm /etc/udev/rules.d/#PRIO##FILE#
-       fi
-fi
diff --git a/autoscripts/preinst-udev b/autoscripts/preinst-udev
new file mode 100644 (file)
index 0000000..9c63d19
--- /dev/null
@@ -0,0 +1,12 @@
+if [ "$1" = install ] || [ "$1" = upgrade ]; then
+       if [ -e /etc/udev/#FILE# ]; then
+               if [ "`md5sum \"/etc/udev/#FILE#\" | sed -e \"s/ .*//\"`" = \
+                    "`sed -n -e \"/^Conffiles:/,/^[^ ]/{\\\\' /etc/udev/#FILE#'{s/.* //;p}}\" /var/lib/dpkg/status`" ]
+               then
+                       rm -f /etc/udev/#FILE#
+               fi
+       fi
+       if [ -L /etc/udev/rules.d/#PRIO##FILE# ]; then
+               rm -f /etc/udev/rules.d/#PRIO##FILE#
+       fi
+fi
index ee96f3b16744c3e0d11ef09bcf675098a68eda66..dc168eb19220315086d6821e197b0b348c2a7b6e 100644 (file)
@@ -1,3 +1,18 @@
+debhelper (5.0.45) UNRELEASED; urgency=low
+
+  * dh_installudev: Install udev rules directly into /etc/udev/rules.d/, not
+    using the symlinks. MD has agreed that this is more appropriate for most
+    packages.
+  * That fixes the longstanding bug that the symlink was only made on brand
+    new installs of the package, rather than on upgrade to the first version
+    that includes the udev rules file. Closes: #359614
+  * dh_installudev: Add preinst and postinst code to handle cleanly moving
+    the rules file to the new location on upgrade.
+  * This would be a good time for the many packages that manage rules files
+    w/o using dh_installudev to begin to use it..
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 12 Apr 2007 15:35:20 -0400
+
 debhelper (5.0.44) unstable; urgency=low
 
   * dh_installudev: Don't fail if the link already somehow exists on initial
index 6406c6a9c9b40f2f44da7ab6af0b8bc550c99718..859efc8de0a32cfc818bd218f623e47e044415bd 100755 (executable)
@@ -19,23 +19,16 @@ 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.
 
-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. These commands are inserted into
-the maintainer scripts by dh_installdeb. 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
 
-=item B<-n>, B<--noscripts>
-
-Do not modify postinst/postrm scripts.
-
 =item B<--name=>I<name>
 
 When this parameter is used, dh_installudev looks for and
@@ -46,7 +39,9 @@ debian/package.udev.
 
 Sets the priority string of the rules.d symlink. Default is z60.
 
-=back
+=item B<-n>, B<--noscripts>
+
+Do not modify postinst/postrm scripts.
 
 =head1 NOTES
 
@@ -54,6 +49,8 @@ Note that this command is not idempotent. "dh_clean -k" should be called
 between invocations of this command. Otherwise, it may cause multiple
 instances of the same text to be added to maintainer scripts.
 
+=back
+
 =cut
 
 init();
@@ -78,13 +75,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                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}) {
-                       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");
+                       autoscript($package,"preinst","preinst-udev","s/#FILE#/$filename/g;s/#PRIO#/$dh{PRIORITY}/g");
+                       autoscript($package,"postinst","postinst-udev","s/#FILE#/$filename/g;s/#PRIO#/$dh{PRIORITY}/g");
                }
        }
 }