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
This commit is contained in:
Christophe Fergeau 2013-12-18 10:28:40 +01:00
parent 8ae2199aa7
commit abf13d38b3
3 changed files with 25 additions and 1 deletions

View File

@ -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

View File

@ -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)

View File

@ -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 || :