Bug 59502

Summary: xdg-desktop-portal не стартует по D-Bus в Hyprland из-за зависимости от graphical-session.target
Product: Sisyphus Reporter: Илья Петров <is.petrov>
Component: xdg-desktop-portalAssignee: Yuri N. Sedunov <aris>
Status: NEW --- QA Contact: qa-sisyphus
Severity: critical    
Priority: P5 CC: amakeenk, aris
Version: unstable   
Hardware: x86_64   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=57686

Description Илья Петров 2026-06-11 09:53:25 MSK
Окружение:

    Дистрибутив: ALT Linux (указать ветку, например, Sisyphus или p11)
    WM: Hyprland
    Версии пакетов:
    rpm -q xdg-desktop-portal systemd glib2 hyprland
xdg-desktop-portal-1.22.0-alt1.x86_64
systemd-258.5-alt1.x86_64
glib2-2.88.1-alt1.x86_64
hyprland-0.54.3-alt1.x86_64

Описание проблемы:
После обновления системы приложения, полагающиеся на XDG Desktop Portal (например, telegram-desktop, waybar), не могут получить доступ к порталу. D-Bus запросы к org.freedesktop.portal.Desktop завершаются по таймауту, из-за чего приложения падают или зависают при старте.
Шаги для воспроизведения:

    Запустить сессию Hyprland.
    Запустить приложение, использующее портал (например, telegram-desktop).

Ожидаемое поведение:
xdg-desktop-portal.service успешно стартует по D-Bus активации, приложение получает доступ к FileChooser/Settings.
Фактическое поведение:
Приложение зависает на старте и выдает ошибки:
Failed to activate service 'org.freedesktop.portal.Desktop': timed out
Call to org.freedesktop.portal.Settings.ReadAll failed QDBusError("org.freedesktop.DBus.Error.NoReply"...
В логах пользователя (journalctl --user -u xdg-desktop-portal.service):
Dependency failed for xdg-desktop-portal.service - Portal service.
xdg-desktop-portal.service: Job xdg-desktop-portal.service/start failed with result 'dependency'.
Анализ причины (Root Cause):
Unit-файл /usr/lib/systemd/user/xdg-desktop-portal.service содержит жесткую зависимость:
Requisite=graphical-session.target
В окружении Hyprland (и других standalone Wayland-композиторах) graphical-session.target по умолчанию не стартует автоматически и находится в статусе inactive (dead), так как WM не вызывает его инициализацию. Из-за директивы Requisite= systemd прерывает D-Bus активацию портала, так как обязательная зависимость не выполнена. При этом сам бэкенд (xdg-desktop-portal-hyprland) запускается и работает корректно, если запустить его вручную из терминала.
Comment 1 Илья Петров 2026-06-11 10:20:00 MSK
пофиксил благодаря https://bugzilla.altlinux.org/show_bug.cgi?id=57686
спасибо