Ver Fonte

vm-file-editor: add override for mimeinfo *.png entry (#753)

MIME-info database contains multiple entries for *.png, namely image/png
and image/x-apple-ios-png. The later one doesn't have associated handler
program, but this one is selected by mimeopen tool.

Not sure how this tool should behave in case of multiple matches (IOW is
it a bug in File::MimeInfo perl module used by mimeopen).  Instead of
switching to different tool, which probably will break other files
(check #423), add override for this particular file type.
Marek Marczykowski-Górecki há 10 anos atrás
pai
commit
8f840e10dc
4 ficheiros alterados com 11 adições e 2 exclusões
  1. 2 0
      Makefile
  2. 1 0
      misc/mime-globs
  3. 6 2
      qubes-rpc/vm-file-editor.c
  4. 2 0
      rpm_spec/core-vm.spec

+ 2 - 0
Makefile

@@ -76,6 +76,8 @@ install-vm:
 	install -D -m 0644 misc/qubes-trigger-sync-appmenus.action $(DESTDIR)/etc/yum/post-actions/qubes-trigger-sync-appmenus.action
 	install -D misc/polkit-1-qubes-allow-all.pkla $(DESTDIR)/etc/polkit-1/localauthority/50-local.d/qubes-allow-all.pkla
 	install -D misc/polkit-1-qubes-allow-all.rules $(DESTDIR)/etc/polkit-1/rules.d/00-qubes-allow-all.rules
+	install -D -m 0644 misc/mime-globs $(DESTDIR)/usr/share/qubes/mime-override/globs
+
 	mkdir -p $(DESTDIR)/usr/lib/qubes
 
 	if [ -r misc/dispvm-dotfiles.$(DIST).tbz ] ; \

+ 1 - 0
misc/mime-globs

@@ -0,0 +1 @@
+image/png:*.png

+ 6 - 2
qubes-rpc/vm-file-editor.c

@@ -8,6 +8,9 @@
 #include <ioall.h>
 #include "dvm2.h"
 
+#define USER_HOME "/home/user"
+#define MIMEINFO_DATABASES "/usr/share/mime:/usr/local/share:" USER_HOME "/.local/share:/usr/share/qubes/mime-override"
+
 char *gettime()
 {
 	static char retbuf[60];
@@ -130,9 +133,10 @@ main()
 			dup2(log_fd, 1);
 			close(log_fd);
 
-			setenv("HOME", "/home/user", 1);
+			setenv("HOME", USER_HOME, 1);
 			setenv("DISPLAY", ":0", 1);
-			execl("/usr/bin/mimeopen", "mimeopen", "-n", filename, (char*)NULL);
+			execl("/usr/bin/mimeopen", "mimeopen", "-n",
+					"--database", MIMEINFO_DATABASES, filename, (char*)NULL);
 			perror("execl");
 			exit(1);
 		default:

+ 2 - 0
rpm_spec/core-vm.spec

@@ -334,6 +334,8 @@ rm -f %{name}-%{version}
 /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override
 /usr/share/file-manager/actions/qvm-copy-gnome.desktop
 /usr/share/file-manager/actions/qvm-dvm-gnome.desktop
+%dir /usr/share/qubes
+/usr/share/qubes/mime-override/globs
 %dir /home_volatile
 %attr(700,user,user) /home_volatile/user
 %dir /mnt/removable