=head1 SYNOPSIS
-B<dh_desktop> [S<I<debhelper options>>] [B<-p<package>>]
+B<dh_desktop> [S<I<debhelper options>>]
=head1 DESCRIPTION
dh_desktop is a debhelper program that registers .desktop files.
Currently this program does not handle installation of the files, though it
may do so at a later date. It takes care of adding maintainer script
-fragements to call F<update-desktop-database>.
+fragments to call F<update-desktop-database>.
+
+Note that since F<update-desktop-database> currently only handles mime
+types, as an optimisation, desktop files not containing MimeType fields
+will currently be ignored by dh_desktop.
=cut
init();
foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
-
- # Only run if there are .desktop files installed
- if (-d "$tmp/usr/share/applications") {
- # Get a list of the desktop files
- my $desktop_files = `find debian/$package/ -type f -name \*.desktop -printf '%p\n'`;
- # If there actually were some desktop files...
- if ($desktop_files && ! $dh{NOSCRIPTS}) {
- # Don't add a dependency on desktop-file-utils as it may not be needed
- autoscript($package,"postinst","postinst-desktop");
- autoscript($package,"postrm","postrm-desktop");
- }
- }
+ my $tmp=tmpdir($package);
+
+ if (-d "$tmp/usr/share/applications") {
+ # Get a list of the desktop files that are in
+ # usr/share/applications and thus might need
+ # update-desktop-database be called. Other desktop
+ # files don't.
+ my $desktop_files = `find $tmp/usr/share/applications -type f -name \\*.desktop -execdir grep -q "^MimeType" '{}' \\; -printf '%p\n'`;
+ if ($desktop_files && ! $dh{NOSCRIPTS}) {
+ autoscript($package,"postinst","postinst-desktop");
+ autoscript($package,"postrm","postrm-desktop");
+ }
+ }
}
=head1 SEE ALSO