Bug#973798: xdg-utils: xdg-open fails to open file://localhost/xxx URLs

Francois Gouget fgouget at free.fr
Thu Nov 5 09:46:12 GMT 2020

Package: xdg-utils
Version: 1.1.3-2
Severity: normal
Tags: patch

Dear Maintainer,

$ echo Hello >/tmp/foo.html
$ xdg-open file://localhost/tmp/foo.html
Unable to run the command specified. The file or folder //localhost/tmp/foo.html does not exist.
$ xdg-open file:///tmp/foo.html
-> open foo.html as expected.

Normally file:///tmp/foo.html and file://localhost/tmp/foo.html are
equivalent URLs.

Note that this is fixed upstream in the commit below:

commit 186966735dcccd61afde937118f27043bd084f57
Author: Richard Tollerton <rich.tollerton at ni.com>
Date:   Thu Jan 10 15:41:08 2019 -0600

    xdg-open: handle file://localhost/

    Presently, file://localhost/ URLs are totally unsupported: is_file_url_or_path
    correctly considers them files, but they are undecoded and hence
    check_input_file fails.

    While the standardization surrounding file: URLs is admittedly vague [1], AFAIK,
    *all* literature, and other implementations, unambiguously demonstrate that
    file://localhost/ should be equivalent to file:///:

    - The "File URI specification" explicitly linked to from the xdg-utils homepage [2]
    - RFC 8089 section 1.1
    - RFC 1738 section 3.10
    - Observed implementations of Windows `start`, macOS `open`, Firefox, Chrome, IE

    Fix this by adding some simple carve-outs for file://localhost specifically in

    [1] https://lists.freedesktop.org/archives/xdg/2004-November/003711.html
    [2] https://edeproject.org/spec/file-uri-spec.txt

    Signed-off-by: Richard Tollerton <rich.tollerton at ni.com>

-- Package-specific info:
Desktop environment: XDG_CURRENT_DESKTOP=KDE

-- System Information:
Debian Release: 10.6
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-11-amd64 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr:en_US (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

xdg-utils depends on no packages.

Versions of packages xdg-utils recommends:
ii  libfile-mimeinfo-perl  0.29-1
ii  libnet-dbus-perl       1.1.0-5+b1
ii  libx11-protocol-perl   0.56-7
ii  x11-utils              7.7+4
ii  x11-xserver-utils      7.7+8

xdg-utils suggests no packages.

-- no debconf information

More information about the Pkg-freedesktop-maintainers mailing list