X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installmime;h=18abe162ac3556198e5a20cf04ee6ca158b237cd;hb=c8ad61cdba0348c1d1ea1000b99ba83496b71bf1;hp=8ffd523621e7b756daa69eeff5cfef5649f9dd2f;hpb=3aa6fbb20465d16cf23e1607b078ed3cedf95ebe;p=debhelper.git diff --git a/dh_installmime b/dh_installmime index 8ffd523..18abe16 100755 --- a/dh_installmime +++ b/dh_installmime @@ -19,11 +19,14 @@ dh_installmime is a debhelper program that is responsible for installing mime files into package build directories. It also automatically generates the postinst and postrm commands needed to -interface with the debian mime-support package. See L for -an explanation of how this works. +interface with the debian mime-support and shared-mime-info packages. These +commands are inserted into the maintainer scripts by dh_installdeb. See +L for an explanation of how this works. -If a file named debian/package.mime exists, then it is installed into -usr/lib/mime/packages/package in the package build directory. +If files named debian/package.mime or debian/package.sharedmimeinfo exist, then +they are installed into usr/lib/mime/packages/package and +/usr/share/mime/packages/package.xml (respectively) in the package build +directory. =head1 OPTIONS @@ -37,7 +40,7 @@ Do not modify postinst/postrm scripts. =head1 NOTES -Note that this command is not idempotent. "dh_clean -k" should be called +Note that this command is not idempotent. L should be called between invocations of this command. Otherwise, it may cause multiple instances of the same text to be added to maintainer scripts. @@ -54,11 +57,28 @@ foreach my $package (@{$dh{DOPACKAGES}}) { doit("install","-d","$tmp/usr/lib/mime/packages"); } doit("install","-p","-m644",$mime,"$tmp/usr/lib/mime/packages/$package"); - - if (! $dh{NOSCRIPTS}) { - autoscript($package,"postinst","postinst-mime"); - autoscript($package,"postrm","postrm-mime") + } + # Check wether we have to call update-mime (either upstream already + # installs a MIME information file or Debian provides one) + if ((! $dh{NOSCRIPTS}) && (-d "$tmp/usr/lib/mime/packages")) { + autoscript($package,"postinst","postinst-mime"); + autoscript($package,"postrm","postrm-mime") + } + + my $sharedmimeinfo=pkgfile($package,"sharedmimeinfo"); + + if ($sharedmimeinfo ne '') { + if (! -d "$tmp/usr/share/mime/packages") { + doit("install", "-d", "$tmp/usr/share/mime/packages"); } + doit("install", "-p", "-m644", $sharedmimeinfo, "$tmp/usr/share/mime/packages/$package.xml"); + } + # check wether we have to call update-mime-database (either upstream + # already installs a shared MIME information file or Debian provides + # one) + if ((! $dh{NOSCRIPTS}) && (-d "$tmp/usr/share/mime/packages")) { + autoscript($package, "postinst", "postinst-sharedmimeinfo"); + autoscript($package, "postrm", "postrm-sharedmimeinfo") } }