#1140308 showtime: Fails to open video via relative symbolic link when invoked from outside the link's directory

Package:
showtime
Source:
showtime
Submitter:
Rodrigo Lemos
Date:
2026-06-18 09:13:01 UTC
Severity:
normal
Tags:
#1140308#5
Date:
2026-06-18 00:58:27 UTC
From:
To:
Steps to reproduce:

```bash
mkdir -p /tmp/originals
curl -o /tmp/originals/mov_bbb.mp4 https://www.w3schools.com/html/mov_bbb.mp4
mkdir /tmp/links
ln -s ../originals/mov_bbb.mp4 /tmp/links/test.mp4
cd /tmp
showtime links/test.mp4
```

Expected behavior: video plays normally

Observed behavior: showtime fails with "Failed to pause" error

```
DEBUG: showtime:54 Starting org.gnome.Showtime v50.0 (release)
DEBUG: showtime:55 Python version: 3.13.14 (main, Jun 10 2026, 18:10:12) [GCC
15.2.0]
DEBUG: showtime:56 GStreamer version: 1.28.3.0
DEBUG: showtime:312 Playing video: file:///originals/mov_bbb.mp4
DEBUG: showtime:360 Video paused
DEBUG: showtime:355 Video unpaused
DEBUG: showtime:319 No previous play position
ERROR: showtime:740 Failed to pause
```

The URI file:///originals/mov_bbb.mp4 is incorrect — the symlink target
../originals/mov_bbb.mp4 is being resolved relative to the current working
directory (/tmp) instead of relative to the directory containing the symlink
(/tmp/links), producing /originals/mov_bbb.mp4 instead of
/tmp/originals/mov_bbb.mp4.

Note: opening the same symlink from within its directory (cd /tmp/links &&
showtime test.mp4) works correctly:

```
DEBUG: showtime:54 Starting org.gnome.Showtime v50.0 (release)
DEBUG: showtime:55 Python version: 3.13.14 (main, Jun 10 2026, 18:10:12) [GCC
15.2.0]
DEBUG: showtime:56 GStreamer version: 1.28.3.0
DEBUG: showtime:312 Playing video: file:///tmp/originals/mov_bbb.mp4
DEBUG: showtime:360 Video paused
DEBUG: showtime:355 Video unpaused
DEBUG: showtime:319 No previous play position
DEBUG: showtime:707 Seeked to 0
DEBUG: showtime:438 Resizing window…
DEBUG: showtime:524 Resized window to 320x176
DEBUG: showtime:524 Resized window to 320x176
```

The file manager (Nautilus) exhibits the same issue when opening video files
via relative symlinks, as it invokes showtime with --gapplication-service using
the user's home directory as working directory.

Another note: `loupe` works correctly in this regard (replace the video with a
picture on the steps above and `loupe` will display the image regardless of
current working directory)

#1140308#10
Date:
2026-06-18 04:46:38 UTC
From:
To:
After investigating the root cause, I found that this bug was
introduced by the fix for upstream issue #119
(https://gitlab.gnome.org/GNOME/showtime/-/work_items/119),
implemented in commit d887f76
(https://gitlab.gnome.org/GNOME/showtime/-/commit/d887f76918d5599b6ac87760444b902531f63730).

That commit replaced a simple gfile.get_uri() call with manual symlink
resolution, which incorrectly resolves relative symlink targets
against the process working directory instead of the directory
containing the symlink.

I tested reverting that commit locally (restoring uri =
gfile.get_uri()), and the issue described in this report is gone —
relative symlinks work correctly.

It is likely that the original bug reported in #119 (not following
symlinks) has since been fixed in a lower layer (GStreamer 1.28.3,
GIO, or GLib), making the manual symlink resolution in Showtime both
unnecessary and harmful.

Suggested fix: revert commit d887f76 and verify that #119 is no longer
reproducible on current versions of the stack.

#1140308#15
Date:
2026-06-18 04:53:35 UTC
From:
To:
There is already a bug reported upstream
(https://gitlab.gnome.org/GNOME/showtime/-/work_items/212).