Bug 49197 - Не выполняются скрипты из /etc/profile.d в сессии kde5 на wayland
Summary: Не выполняются скрипты из /etc/profile.d в сессии kde5 на wayland
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: plasma5-workspace (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 33000 46625
  Show dependency tree
 
Reported: 2024-01-26 13:28 MSK by Антон Мидюков
Modified: 2024-01-30 12:58 MSK (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2024-01-26 13:28:17 MSK
Почему-то не выполняются скрипты из /etc/profile.d в сессии на wayland.
Замечено на ALT Regular KDE5:
https://bugzilla.altlinux.org/show_bug.cgi?id=38397#c9
Comment 1 Sergey V Turchin 2024-01-26 14:42:54 MSK
А кем бы они должны выполняться?

P.S.
Интересно, в GNOME тоже?
Comment 2 Sergey V Turchin 2024-01-26 14:46:52 MSK
(Ответ для Sergey V Turchin на комментарий #1)
> А кем бы они должны выполняться?
Точнее, кем бы могли?
Comment 3 Антон Мидюков 2024-01-26 14:58:33 MSK
(Ответ для Sergey V Turchin на комментарий #1)
> А кем бы они должны выполняться?
> 
> P.S.
> Интересно, в GNOME тоже?

В GNOME на wayland выполняются. Не знаю кем.
Comment 4 Sergey V Turchin 2024-01-26 15:03:53 MSK
Будем посмотреть.
Comment 5 Yuri N. Sedunov 2024-01-26 15:47:04 MSK
(Ответ для Антон Мидюков на комментарий #3)

> В GNOME на wayland выполняются. Не знаю кем.

Так же как и на x11 -- GDM'ом.

$ grep profile /etc/gdm/Xsession
# This is why we source the profile files below.
# read /etc/profile and .bash_profile
test -f /etc/profile && . /etc/profile
test -f "$HOME/.bash_profile" && . "$HOME/.bash_profile"
Comment 6 Sergey V Turchin 2024-01-26 16:45:45 MSK
(Ответ для Yuri N. Sedunov на комментарий #5)
> Так же как и на x11 -- GDM'ом.
> $ grep profile /etc/gdm/Xsession
Xsession в Wayland выполняться не должон.
Comment 7 Yuri N. Sedunov 2024-01-26 17:58:45 MSK
/etc/gdm/Xsession не то же самое что /etc/X11/Xsession
Comment 8 Антон Мидюков 2024-01-26 18:23:00 MSK
/etc/profile.d/*.sh выполняются при логине в bash. gnome на wayland запускает bash -l. И phosh тоже так делает.
А вот kde5 у нас напрямую бинарик /usr/bin/startplasma-wayland запускает из /usr/share/wayland-session/plasmawayland.desktop
Думаю, что дело в этом.
Comment 9 Sergey V Turchin 2024-01-29 11:23:15 MSK
(Ответ для Yuri N. Sedunov на комментарий #7)
> /etc/gdm/Xsession не то же самое что /etc/X11/Xsession
Там "This is SORT OF LIKE an X session".
Да и название от этого другим не стало.
Я к тому, что это костыль и в Wayland это выполняться не должно.
Comment 10 Sergey V Turchin 2024-01-29 14:57:57 MSK
В Fedora этим занимается /etc/bashrc
Comment 11 Dmitry V. Levin 2024-01-29 15:04:25 MSK
(In reply to Sergey V Turchin from comment #10)
> В Fedora этим занимается /etc/bashrc

В Альте /etc/bashrc загружает только /etc/bashrc.d/*.sh.
Перевесьте на нужный пакет, пожалуйста.
Comment 12 Sergey V Turchin 2024-01-29 15:21:59 MSK
(Ответ для Dmitry V. Levin на комментарий #11)
> В Альте /etc/bashrc загружает только /etc/bashrc.d/*.sh.
Значит, надо, чтоб нужные скрипты из /etc/profile.d/ имели файлы в /etc/bashrc.d/ .
Comment 13 Антон Мидюков 2024-01-29 15:26:50 MSK
(Ответ для Sergey V Turchin на комментарий #12)
> (Ответ для Dmitry V. Levin на комментарий #11)
> > В Альте /etc/bashrc загружает только /etc/bashrc.d/*.sh.
> Значит, надо, чтоб нужные скрипты из /etc/profile.d/ имели файлы в
> /etc/bashrc.d/ .

1. чем запуск bash -l не устраивает?
2. а это точно хорошая идея пихать всякое этакое в /etc/profile.d/, которое выполняется при логине в консольном tty?
Comment 14 Sergey V Turchin 2024-01-29 15:36:20 MSK
(Ответ для Антон Мидюков на комментарий #13)
> 2. а это точно хорошая идея пихать всякое этакое в /etc/profile.d/, которое
> выполняется при логине в консольном tty?
Видимо, у Fedora нет проблем.
Ты не путаешь с /etc/X11/xinit.d/ ?
Comment 15 Антон Мидюков 2024-01-29 15:51:44 MSK
(Ответ для Sergey V Turchin на комментарий #14)
> (Ответ для Антон Мидюков на комментарий #13)
> > 2. а это точно хорошая идея пихать всякое этакое в /etc/profile.d/, которое
> > выполняется при логине в консольном tty?
> Видимо, у Fedora нет проблем.
> Ты не путаешь с /etc/X11/xinit.d/ ?

Нет. Я про /etc/profile.d/
Что туда только не помещаем. Смотреть пакеты:
chromium-disable-webfonts
dconf-defaults-tablet
kde5-profile
flatpak
fcitx5-autostart

И только в fcitx5-autostart условие есть, чтобы в tty не выполнялось.
Comment 16 Sergey V Turchin 2024-01-29 16:32:22 MSK
(Ответ для Антон Мидюков на комментарий #15)
> > Видимо, у Fedora нет проблем.
> > Ты не путаешь с /etc/X11/xinit.d/ ?
> Нет. Я про /etc/profile.d/
> Что туда только не помещаем.
Не так уж много. Перечисленные или пофиксить или нормально или у остальных так же.

В Ubuntu, например, snap тоже в консоли переменные ставит.
А вот, кто /etc/profile всасывает, что-то не найду...
Comment 17 Антон Мидюков 2024-01-29 16:38:22 MSK
(Ответ для Sergey V Turchin на комментарий #16)
> (Ответ для Антон Мидюков на комментарий #15)
> > > Видимо, у Fedora нет проблем.
> > > Ты не путаешь с /etc/X11/xinit.d/ ?
> > Нет. Я про /etc/profile.d/
> > Что туда только не помещаем.
> Не так уж много. Перечисленные или пофиксить или нормально или у остальных
> так же.
> 
> В Ubuntu, например, snap тоже в консоли переменные ставит.
> А вот, кто /etc/profile всасывает, что-то не найду...

man bash:
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first  reads  and  executes  commands
       from  the  file  /etc/profile,  if that file exists.  After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that
       order, and reads and executes commands from the first one that exists and is readable.  The --noprofile option  may  be  used  when  the  shell  is
       started to inhibit this behavior.
Comment 18 Sergey V Turchin 2024-01-29 16:41:57 MSK
(Ответ для Антон Мидюков на комментарий #17)
> > А вот, кто /etc/profile всасывает, что-то не найду...
> man bash:
comment#10
Comment 19 Sergey V Turchin 2024-01-29 16:50:38 MSK
(Ответ для Sergey V Turchin на комментарий #10)
> В Fedora этим занимается /etc/bashrc
В Ubuntu тоже нашёл упоминания, что /etc/profile и /etc/profile.d/*.sh загружает bash. Конкретного места не нашёл.
Comment 20 Антон Мидюков 2024-01-29 17:05:15 MSK
(Ответ для Sergey V Turchin на комментарий #19)
> (Ответ для Sergey V Turchin на комментарий #10)
> > В Fedora этим занимается /etc/bashrc
> В Ubuntu тоже нашёл упоминания, что /etc/profile и /etc/profile.d/*.sh
> загружает bash. Конкретного места не нашёл.

man'у веры нет? При логине SHELL'ы грузят /etc/profile.d/*.{такой-то_shell}
Примеры запуска сеансов на wayland:
https://git.altlinux.org/srpms/p/phosh.git?p=phosh.git;a=blob;f=phosh/data/phosh-session.in;h=33d740db2859a580a3e90e869003bf933e7693ae;hb=0.35.0-alt1#l57
и
https://git.altlinux.org/srpms/g/gnome-session.git?p=gnome-session.git;a=blob;f=gnome-session/gnome-session/gnome-session.in;h=b43ebaac3e6fa5930203d91a5aa68ab9254a888f;hb=45.0-alt1.1#l10
Comment 21 Sergey V Turchin 2024-01-29 17:09:34 MSK
(Ответ для Антон Мидюков на комментарий #13)
> 1. чем запуск bash -l не устраивает?
Да, я и не уверен пока, что bashrc поможет.

Надо ж в Wayland перед запуском сессии как-то, а там далеко не всегда есть bash...
Comment 22 Антон Мидюков 2024-01-29 17:18:04 MSK
По итогу, bashrc тут ни при чём. Возвращаю обратно и переоткрываю.
Comment 23 Sergey V Turchin 2024-01-30 09:25:48 MSK
У sddm в Ubuntu нашёл, что есть отдельный скрипт wayland-session, рядом и схожий с егошним Xsession, следовательно у lightdm должно быть что-то схожее, но не нашёл.

P.S.
Наш gdm тупо свой же Xsession выполняет для wayland, но это некрасиво.
Comment 24 Антон Мидюков 2024-01-30 09:34:00 MSK
(Ответ для Sergey V Turchin на комментарий #23)
> У sddm в Ubuntu нашёл, что есть отдельный скрипт wayland-session, рядом и
> схожий с егошним Xsession, следовательно у lightdm должно быть что-то
> схожее, но не нашёл.
> 
> P.S.
> Наш gdm тупо свой же Xsession выполняет для wayland, но это некрасиво.

Не выполняет. Его можно спокойно удалить и ничего не поменяется для сессии на wayland.
Comment 25 Sergey V Turchin 2024-01-30 09:45:43 MSK
> > Наш gdm тупо свой же Xsession выполняет для wayland, но это некрасиво.
> Не выполняет.
Значит, мантейнер gdm ошибся в comment#5
Comment 26 Sergey V Turchin 2024-01-30 10:08:52 MSK
    613 ?        SLsl   0:00 /usr/sbin/lightdm
   2038 ?        Sl     0:00  \_ lightdm --session-child 13 20
   2059 ?        Ss     0:00      \_ /bin/sh /usr/lib/x86_64-linux-gnu/libexec/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland
   2123 ?        R      0:00          \_ ps axf

В Debian/Ubuntu это делает bash. В скрипте plasma-dbus-run-session-if-needed в момент перед выполнением startplasma-wayland переменные уже выставлены.

P.S.
Ща проверю, если у нас в шебанг скрипта вставить -l, благо он мой.
Comment 27 Sergey V Turchin 2024-01-30 10:12:41 MSK
(Ответ для Sergey V Turchin на комментарий #26)
> Ща проверю, если у нас в шебанг скрипта вставить -l, благо он мой.
Прокатило. Ща упакую.
Comment 28 Антон Мидюков 2024-01-30 10:17:06 MSK
(Ответ для Sergey V Turchin на комментарий #27)
> (Ответ для Sergey V Turchin на комментарий #26)
> > Ща проверю, если у нас в шебанг скрипта вставить -l, благо он мой.
> Прокатило. Ща упакую.

Подожди. Для сеанса иксов не надо этот логин совершать. Может что-то неожиданное вылезти.
Сделай по аналогии с gnome-session:
https://git.altlinux.org/srpms/g/gnome-session.git?p=gnome-session.git;a=blob;f=gnome-session/gnome-session/gnome-session.in;h=b43ebaac3e6fa5930203d91a5aa68ab9254a888f;hb=45.0-alt1.1#l10
Comment 29 Sergey V Turchin 2024-01-30 10:47:58 MSK
(Ответ для Антон Мидюков на комментарий #28)
> Подожди. Для сеанса иксов не надо этот логин совершать. Может что-то
> неожиданное вылезти.
plasma-dbus-run-session-if-needed используется только для запуска Wayland-сессии в /usr/share/wayland-sessions/plasmawayland.desktop в Exec.
Comment 30 Repository Robot 2024-01-30 12:58:19 MSK
plasma5-workspace-1:5.27.10-alt3 -> sisyphus:

 Tue Jan 30 2024 Sergey V Turchin <zerg@altlinux> 1:5.27.10-alt3
 - force run /etc/profile at wayland session start (closes: 49197)