summaryrefslogtreecommitdiff
path: root/packaging/macros.shared-mime-info
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/macros.shared-mime-info')
-rw-r--r--packaging/macros.shared-mime-info39
1 files changed, 39 insertions, 0 deletions
diff --git a/packaging/macros.shared-mime-info b/packaging/macros.shared-mime-info
new file mode 100644
index 0000000..56ef610
--- /dev/null
+++ b/packaging/macros.shared-mime-info
@@ -0,0 +1,39 @@
+# RPM macros for packages installing a MIME type according to the XDG specification
+#
+###
+#
+# When a package installs a MIME type as per the XDG specification, it should
+# use both macros:
+#
+# - %mime_database_post in %post
+# - %mime_database_postun in %postun
+#
+# Note that these macros can optionally take as argument the directory
+# where the MIME type is installed. If no argument is passed, then
+# %{_datadir}/mime will be used (which is where applications usually install
+# the MIME type information).
+#
+###
+
+# On install, update the mime database
+%mime_database_post() \
+if test -x %{_bindir}/update-mime-database; then \
+%if "x%1" != "x%%1" \
+ %{_bindir}/update-mime-database "%1" || true \
+%else \
+ %{_bindir}/update-mime-database "%{_datadir}/mime" || true \
+%endif \
+fi
+
+# On uninstall, update the mime database. Note: we ignore upgrades (already
+# handled in %post of the new package).
+%mime_database_postun() \
+if [ $1 -eq 0 ]; then \
+ if test -x %{_bindir}/update-mime-database; then \
+%if "x%1" != "x%%1" \
+ %{_bindir}/update-mime-database "%1" || true \
+%else \
+ %{_bindir}/update-mime-database "%{_datadir}/mime" || true \
+%endif \
+ fi \
+fi