-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
+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
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
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
between invocations of this command. Otherwise, it may cause multiple
instances of the same text to be added to maintainer scripts.
+=back
+
=cut
init();
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");
}
}
}