Нужно разбить greetd на несколько подпакетов. Я вижу это как: greatd - Основной сервис (бэкенд) greetd-fakegreet - Отладочная утилита для гриттеров greetd-agreety - Гриттер agreety Что мы имеем сейчас: 1. Бэкенд и гриттер agreety запакованы вместе, из-за чего почти всегда в системе лежит лишний гриттер. 2. fakegreet вовсе не запакован. 3. Из-за пункта 1 в пакете greetd находится конфиг agreety, что будет мешать использовать другой гриттер из коробки. Всегда придётся сначала менять конфиги, что совсем не "юзер-френдли". Что нужно сделать: 1. Вынести agreety и его конфиг в отдельный подпакет. 2. Запаковать fakegreet. 3. Паковать другие гриттеры со своими конфигами. Что это даст в итоге: Появится возможность паковать конфиги к каждому гриттеру отдельно. Необходимый гриттер будет работать сразу после установки, без чтения документации и траты время на ручную настройки
Таск: https://packages.altlinux.org/ru/tasks/377408/ 1. greetd больше не содержит в себе agreety 2. запакован fakegreet После долгих экспериментов получилась такая интересная структура === /etc/greetd/ ├── config.toml -> /etc/alternatives/links/|etc|greetd|config.toml └── greeters ├── agreety.toml ├── gtkgreet.toml └── regreet.toml === теперь конфиги используют альтернативы плюсы: 1. никаких конфликтов 2. каждый гриттер пакуется со своим конфигом 3. использование нужного гриттера из коробки 4. удобная настройка, например, через альтератор
Забыл упомянуть. greetd теперь зависит от greetd-greeter. greetd-greeter - виртуальный пакет, предоставляемый всеми гриттерами. ВАЖНО: благодаря этому greetd не сломается после отделения agreety, а просто подтянет его! В системе всегда будет установлен хотя бы 1 гриттер
%define _pseudouser_home %_var/empty Как, минимум, sshd отвалится, если %_var/empty будет принадлежать _greeter'у.
(Ответ для Yuri N. Sedunov на комментарий #3) > %define _pseudouser_home %_var/empty > > Как, минимум, sshd отвалится, если %_var/empty будет принадлежать _greeter'у. У меня всё работало, но замечание хорошее. Как насчёт %_localstatedir/greetd?
(Ответ для Кирилл Уницаев на комментарий #4) > Как насчёт %_localstatedir/greetd? Наверное. Есть готовые гритеры со своими конфигами, хорошо бы их и проверить с новой сборкой. Например: /etc/phrog/greetd-config.toml ---------------------------------- # This is a greetd config.toml preconfigured to run phrog. # It's intended to be used with phrog.service # But you can also use it directly by running greetd --config=/etc/phrog/greetd-config.toml [terminal] vt = 1 [default_session] command = "/usr/libexec/phrog-greetd-session" user = "greetd" /usr/lib/sysusers.d/cosmic-greeter.conf ----------------------------------------- #Type Name ID GECOS Home directory Shell u cosmic-greeter - "Cosmic Greeter Account" /var/lib/cosmic-greeter - m cosmic-greeter video
(Ответ для Yuri N. Sedunov на комментарий #5) > ... > Наверное. > > Есть готовые гритеры со своими конфигами, хорошо бы их и проверить с новой > сборкой. > > Например: > /etc/phrog/greetd-config.toml > ---------------------------------- > # This is a greetd config.toml preconfigured to run phrog. > # It's intended to be used with phrog.service > # But you can also use it directly by running greetd > --config=/etc/phrog/greetd-config.toml > > [terminal] > vt = 1 > > [default_session] > command = "/usr/libexec/phrog-greetd-session" > user = "greetd" Почему пользователь указан без _? (_greetd) > > /usr/lib/sysusers.d/cosmic-greeter.conf > ----------------------------------------- > #Type Name ID GECOS Home directory > Shell > u cosmic-greeter - "Cosmic Greeter Account" /var/lib/cosmic-greeter - > m cosmic-greeter video
(Ответ для Yuri N. Sedunov на комментарий #5) > (Ответ для Кирилл Уницаев на комментарий #4) > > > Как насчёт %_localstatedir/greetd? > Наверное. Думаю, стоит попробовать. > Есть готовые гритеры со своими конфигами, хорошо бы их и проверить с новой > сборкой. > > Например: > /etc/phrog/greetd-config.toml Он запускается через отдельный сервис с точным указанием пути к конфигу, так что на него обновление почти не повлияло. > > /usr/lib/sysusers.d/cosmic-greeter.conf Как его запустить я не совсем понял. Единственное что точно надо, это добавить в эти пакеты провайд на greetd-greeter
#377408 EPERM Изменений много, жду апрува от текущих мантейнеров
(Ответ для Кирилл Уницаев на комментарий #8) > #377408 EPERM Все гритеры работают?
(Ответ для Yuri N. Sedunov на комментарий #9) > (Ответ для Кирилл Уницаев на комментарий #8) > > #377408 EPERM > > Все гритеры работают? Да
Заапрувил то, на что у меня были права.
ПИНГ aris@, остались только вы.
Пакет: phrog-0.45.0-alt0.5.x86_64 Не запускается с дефолтным пользователем (user = "greetd") Шаги воспроизведения: 1. # apt-get install phrog 2. # systemctl disable --now gdm sddm lightdm 3. # systemctl enable --now phrog systemd сервис запускает команду greetd --config=/etc/phrog/greetd-config.toml При ручном запуске получаю ошибку: error: configured default session user 'greetd' not found Решается заменой пользователя на _greeter в файле /etc/phrog/greetd-config.toml Стоит завести отдельный баг на phrog? Просто увидел, что в этом багрепорте также упоминается дефолтный конфиг для phrog, поэтому решил написать сюда
(Ответ для Руслан Вишталмагомедов на комментарий #13) > Пакет: phrog-0.45.0-alt0.5.x86_64 > > Не запускается с дефолтным пользователем (user = "greetd") > > Шаги воспроизведения: > 1. # apt-get install phrog > 2. # systemctl disable --now gdm sddm lightdm > 3. # systemctl enable --now phrog > > systemd сервис запускает команду greetd > --config=/etc/phrog/greetd-config.toml > При ручном запуске получаю ошибку: > error: configured default session user 'greetd' not found > > Решается заменой пользователя на _greeter в файле > /etc/phrog/greetd-config.toml > > Стоит завести отдельный баг на phrog? Просто увидел, что в этом багрепорте > также упоминается дефолтный конфиг для phrog, поэтому решил написать сюда Я могу починить это в таске 377408, но это большой таск, я не знаю когда он попадёт в Сизиф
(Ответ для Руслан Вишталмагомедов на комментарий #13) > Пакет: phrog-0.45.0-alt0.5.x86_64 > > Не запускается с дефолтным пользователем (user = "greetd") ... Проверьте таск 377408, пожалуйста.
(Ответ для Yuri N. Sedunov на комментарий #15) > (Ответ для Руслан Вишталмагомедов на комментарий #13) > > Пакет: phrog-0.45.0-alt0.5.x86_64 > > > > Не запускается с дефолтным пользователем (user = "greetd") > ... > Проверьте таск 377408, пожалуйста. Сейчас это и в новом не работает, не заметил эту ошибку, у меня присутствуют пользователи с обеими именами, удалил лишнего и всё упало. Уже чиню!
(Ответ для Руслан Вишталмагомедов на комментарий #13) > Пакет: phrog-0.45.0-alt0.5.x86_64 > > Не запускается с дефолтным пользователем (user = "greetd") > > Шаги воспроизведения: > 1. # apt-get install phrog > 2. # systemctl disable --now gdm sddm lightdm > 3. # systemctl enable --now phrog > > systemd сервис запускает команду greetd > --config=/etc/phrog/greetd-config.toml > При ручном запуске получаю ошибку: > error: configured default session user 'greetd' not found > > Решается заменой пользователя на _greeter в файле > /etc/phrog/greetd-config.toml > > Стоит завести отдельный баг на phrog? Просто увидел, что в этом багрепорте > также упоминается дефолтный конфиг для phrog, поэтому решил написать сюда Исправил в 377408 phrog-0.45.0-alt0.5.1.rpm
(Ответ для Кирилл Уницаев на комментарий #17) > (Ответ для Руслан Вишталмагомедов на комментарий #13) > > Пакет: phrog-0.45.0-alt0.5.x86_64 > > > > Не запускается с дефолтным пользователем (user = "greetd") > > > > Шаги воспроизведения: > > 1. # apt-get install phrog > > 2. # systemctl disable --now gdm sddm lightdm > > 3. # systemctl enable --now phrog > > > > systemd сервис запускает команду greetd > > --config=/etc/phrog/greetd-config.toml > > При ручном запуске получаю ошибку: > > error: configured default session user 'greetd' not found > > > > Решается заменой пользователя на _greeter в файле > > /etc/phrog/greetd-config.toml > > > > Стоит завести отдельный баг на phrog? Просто увидел, что в этом багрепорте > > также упоминается дефолтный конфиг для phrog, поэтому решил написать сюда > > Исправил в 377408 > phrog-0.45.0-alt0.5.1.rpm Я сегодня phrog проверил. Работает. Когда уже аппрув будет?
(Ответ для Антон Мидюков на комментарий #18) > Я сегодня phrog проверил. Работает. Не может быть! > Когда уже аппрув будет? Не нужен вам аппрув. Удалите cosmic-greeter, phrog и phoc из задания. Они уже готовы.
Фиксик, не тормози.
377408 - DONE
Паршивый вышел greetd: _greeter:x:971:934:greetd greeter user:/var/empty:/dev/null ^^^^^^^^^^^
(Ответ для Yuri N. Sedunov на комментарий #22) > Паршивый вышел greetd: > _greeter:x:971:934:greetd greeter user:/var/empty:/dev/null > ^^^^^^^^^^^ Юзера я конечно не менял, но о проблеме уже знаю :) Правильно ли я понимаю, что исправление нужно только для новых систем? В таком случае можно просто сменить HOME в спеке и не думать о смене каталога для существующего пользователя. Как насчёт /var/lib/greeter ?
(Ответ для Кирилл Уницаев на комментарий #23) > (Ответ для Yuri N. Sedunov на комментарий #22) > > Паршивый вышел greetd: > > _greeter:x:971:934:greetd greeter user:/var/empty:/dev/null > > ^^^^^^^^^^^ > > Юзера я конечно не менял, но о проблеме уже знаю :) > > Правильно ли я понимаю, что исправление нужно только для новых систем? Разумеется, нет. Придется тебе триггеры писать для уже существующих установок. > > В таком случае можно просто сменить HOME в спеке и не думать о смене > каталога для существующего пользователя. > > Как насчёт /var/lib/greeter ? А чо не %_localstatedir/greetd, -- как обсуждалось выше в #5? И почему не было сделано сразу?
(Ответ для Yuri N. Sedunov на комментарий #24) > (Ответ для Кирилл Уницаев на комментарий #23) > > (Ответ для Yuri N. Sedunov на комментарий #22) > > > Паршивый вышел greetd: > > > _greeter:x:971:934:greetd greeter user:/var/empty:/dev/null > > > ^^^^^^^^^^^ > > > > Юзера я конечно не менял, но о проблеме уже знаю :) > > > > Правильно ли я понимаю, что исправление нужно только для новых систем? > > Разумеется, нет. Придется тебе триггеры писать для уже существующих > установок. > Надо было добавить в post удаление юзера, если он есть И переходить уже на sysusers...
(Ответ для Yuri N. Sedunov на комментарий #24) > Разумеется, нет. Придется тебе триггеры писать для уже существующих > установок. https://packages.altlinux.org/ru/tasks/386031/ ok?
(Ответ для Кирилл Уницаев на комментарий #26) > (Ответ для Yuri N. Sedunov на комментарий #24) > > Разумеется, нет. Придется тебе триггеры писать для уже существующих > > установок. > > https://packages.altlinux.org/ru/tasks/386031/ > ok? greetd rider antohami @everybody Хозяева пакета посмотрят и скажут тебе ok или нет.
(Ответ для Yuri N. Sedunov на комментарий #27) > (Ответ для Кирилл Уницаев на комментарий #26) > > (Ответ для Yuri N. Sedunov на комментарий #24) > > > Разумеется, нет. Придется тебе триггеры писать для уже существующих > > > установок. > > > > https://packages.altlinux.org/ru/tasks/386031/ > > ok? > > greetd rider antohami @everybody > > Хозяева пакета посмотрят и скажут тебе ok или нет. Не хозяин, но... Теперь переопределение настроек для phrog через gsettings работает. Да и спама в journalctl нет о невозможности создания кеша при запуске phrog.
386031 - DONE