Bläddra i källkod

qubes-open: switch from mimeopen to xdg-open

xdg-open is more robust in choosing default application for particular
file type: it supports fallback if the preferred application isn't
working, and most importantly it support system-wide defaults
(/usr/share/applications/defaults.list,
 /usr/share/applications/mimeapps.list), so no "random" application is
chosen.

By default xdg-open tries to use environment-specific tool, like
gvfs-open - which isn't good for us, because many such tools do not wait
for editor/viewer termination. That would mean that DisposableVM would
be destroyed just after opening the file.
To avoid such effect, we set DE=generic.

Fixes QubesOS/qubes-issues#1621
Marek Marczykowski-Górecki 8 år sedan
förälder
incheckning
dca5265958
3 ändrade filer med 7 tillägg och 4 borttagningar
  1. 1 0
      debian/control
  2. 5 3
      qubes-rpc/qubes-open
  3. 1 1
      rpm_spec/core-vm.spec

+ 1 - 0
debian/control

@@ -46,6 +46,7 @@ Depends:
     systemd,
     x11-xserver-utils,
     xdg-user-dirs,
+    xdg-utils,
     xen-utils-common,
     xenstore-utils,
     xinit,

+ 5 - 3
qubes-rpc/qubes-open

@@ -4,6 +4,8 @@ if [ -r /etc/profile.d/qubes-session.sh ]; then
     . /etc/profile.d/qubes-session.sh
 fi
 
-MIMEINFO_DATABASES="/usr/share/mime:/usr/local/share/mime:$HOME/.local/share/mime:/usr/share/qubes/mime-override"
-
-exec mimeopen -n --database "$MIMEINFO_DATABASES" "$@"
+# gvfs-open, kde-open, and possibly others don't wait for editor to be
+# closed, which is critical behaviour for DisposableVM (which gets destroyed
+# after this process exits)
+export DE=generic
+exec xdg-open "$@"

+ 1 - 1
rpm_spec/core-vm.spec

@@ -41,7 +41,7 @@ Requires:   NetworkManager >= 0.8.1-1
 # Fedora >= 18 defaults to firewalld, which isn't supported nor needed by Qubes
 Conflicts:  firewalld
 %endif
-Requires:	/usr/bin/mimeopen
+Requires:	xdg-utils
 Requires:   ethtool
 Requires:   tinyproxy
 Requires:   ntpdate