summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2013-12-18 10:28:40 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2013-12-18 14:20:39 +0100
commitabf13d38b3cf27d3aa04f25419488dcde3dd5bfa (patch)
tree08155c3abb6a8fe2abf785939814947335328d3a
parent8ae2199aa74dbec3e1b729a89f3578e078f60c6b (diff)
downloadvirt-viewer-abf13d38b3cf27d3aa04f25419488dcde3dd5bfa.tar.gz
virt-viewer-abf13d38b3cf27d3aa04f25419488dcde3dd5bfa.tar.xz
virt-viewer-abf13d38b3cf27d3aa04f25419488dcde3dd5bfa.zip
Update shared mime database on install/uninstall
remomte-viewer installs a file to $datadir/share/mime to register a mime-type for its .vv files. However, after installing this file, update-mime-database must be run in order to update the shared mime database. This commit (inspired by what Nautilus/planner are doing) adds what is needed for that. If the mime type is not correctly registered, gvfs-info console.vv will not return the correct mime type, and xdg-open console.vv will fail to start remote-viewer, and will fall back to running gedit as the .vv file is a text file. https://bugzilla.redhat.com/show_bug.cgi?id=1044209
-rw-r--r--configure.ac10
-rw-r--r--data/Makefile.am12
-rw-r--r--virt-viewer.spec.in4
3 files changed, 25 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 070424c..d0c7b38 100644
--- a/configure.ac
+++ b/configure.ac
@@ -216,6 +216,16 @@ build=`expr $micro \* 256 + $buildid`
WINDOWS_PRODUCTVERSION="$major.$minor.$build"
AC_SUBST([WINDOWS_PRODUCTVERSION])
+
+AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database, no)
+
+AC_ARG_ENABLE(update-mimedb,
+ AS_HELP_STRING([--disable-update-mimedb],
+ [disable the update-mime-database after install [default=no]]),,
+ enable_update_mimedb=yes)
+AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x$enable_update_mimedb = xyes)
+
+
AC_CONFIG_FILES([
Makefile
data/Makefile
diff --git a/data/Makefile.am b/data/Makefile.am
index a43374e..086efca 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -63,6 +63,18 @@ mimedir = $(datadir)/mime/packages
mime_DATA = virt-viewer-mime.xml
@INTLTOOL_XML_RULE@
+install-data-hook:
+if ENABLE_UPDATE_MIMEDB
+ @if $(AM_V_P); then set -x; else echo " INSTALL update-mime-database"; fi; \
+ $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime";
+endif
+
+uninstall-hook:
+if ENABLE_UPDATE_MIMEDB
+ @if $(AM_V_P); then set -x; else echo " UNINSTALL update-mime-database"; fi; \
+ $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime";
+endif
+
CLEANFILES += $(mime_DATA) $(desktop_DATA)
EXTRA_DIST += $(MIMEFILES) $(DESKTOPFILES)
diff --git a/virt-viewer.spec.in b/virt-viewer.spec.in
index 56c1c4b..c9871d1 100644
--- a/virt-viewer.spec.in
+++ b/virt-viewer.spec.in
@@ -109,7 +109,7 @@ autoreconf -if
%define govirt_arg --with-ovirt
%endif
-%configure %{spice_arg} %{gtk_arg} %{govirt_arg} --with-buildid=-%{release}
+%configure %{spice_arg} %{gtk_arg} %{govirt_arg} --with-buildid=-%{release} --disable-update-mimedb
%__make %{?_smp_mflags}
@@ -129,6 +129,7 @@ rm -rf $RPM_BUILD_ROOT
%{_sbindir}/update-alternatives --install %{_libexecdir}/spice-xpi-client \
spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer 25
update-desktop-database -q %{_datadir}/applications
+%{_bindir}/update-mime-database %{_datadir}/mime &> /dev/null
%postun
if [ $1 -eq 0 ] ; then
@@ -137,6 +138,7 @@ if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer
fi
update-desktop-database -q %{_datadir}/applications
+%{_bindir}/update-mime-database %{_datadir}/mime &> /dev/null
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :