Bug 47036 - Опакетить /etc/dconf/profile/user
Summary: Опакетить /etc/dconf/profile/user
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: dconf (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-07-26 17:22 MSK by Антон Мидюков
Modified: 2023-07-27 03:40 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2023-07-26 17:22:43 MSK
Предлагаю опакетить /etc/dconf/profile/user с таким содержанием:
user-db:user
system-db:local

Как описано в статье:
https://www.altlinux.org/Dconf

Дело в том, что без всяких задних мыслей такой файл был опакечен в пакетах:
mate-reduced-resource
celluloid-csd-disabled

Удаление пакетов делает нерабочими пользовательские переопределения.
Кроме того, sin также планировал включить этот файл в свой пакет с политиками.
Comment 1 Repository Robot 2023-07-26 18:35:22 MSK
dconf-0.40.0-alt2 -> sisyphus:

 Wed Jul 26 2023 Yuri N. Sedunov <aris@altlinux> 0.40.0-alt2
 - packaged /etc/dconf/profile/user as described in:
   https://help.gnome.org/admin/system-admin-guide/stable/dconf-profiles.html.en
   (ALT #47036)
   and /etc/dconf/db/local.d/locks directory as described in
   https://help.gnome.org/admin/system-admin-guide/stable/dconf-lockdown.html.en
 - enabled %check
Comment 2 Evgeny Sinelnikov 2023-07-26 19:24:22 MSK
Нам стандартный файл для работы не подойдёт.

Мы подготовили рабочие по сценарий управления:
https://git.altlinux.org/people/sin/packages/dconf-profile.git

[sin@xdt dconf-profile]$ ls
dconf_mandatory_dir.conf  system  user  user_mandatory.template

$ cat user
user-db:user
system-db:policy
system-db:local
system-db:default
system-db:local
system-db:policy

$ cat system 
system-db:policy
system-db:local
system-db:default
system-db:local
system-db:policy

$ cat user_mandatory.template 
user-db:user
system-db:policy
system-db:policy{{uid}}
system-db:local
system-db:default
system-db:local
system-db:policy{{uid}}
system-db:policy

Порядок и дублирование важны в связи с тем, что при вклюбченный
Comment 3 Evgeny Sinelnikov 2023-07-26 19:25:14 MSK
Порядок и дублирование важны в связи с тем, что при включенных блокировках, обход стека обратный.
Comment 4 Yuri N. Sedunov 2023-07-26 19:36:22 MSK
Ну, как порешаете промеж себя с мантейнерами упомянутых выше
mate-reduced-resource
celluloid-csd-disabled,
расскажете.
Comment 5 Антон Мидюков 2023-07-26 20:37:39 MSK
(Ответ для Yuri N. Sedunov на комментарий #4)
> Ну, как порешаете промеж себя с мантейнерами упомянутых выше
> mate-reduced-resource
> celluloid-csd-disabled,
> расскажете.

Виноват, что не написал, что нужно подождать ответа Евгения (хотя бы).

Я ничего против упаковки конфигов, о которых написал Евгений не имею.
Но нужно выставить конфликты с пакетами:
Conflicts: mate-reduced-resource < 0.2
Conflicts: celluloid-csd-disabled < 0.2

Я эти пакеты обновлю до версии 0.2.
Но я не знаю, не будет ли это всё чревато при обновлении.
Или же удалить эти пакеты и сделать Obsoletes? Так надёжнее будет?

В спеке dconf-profile конфиги помечены как %config(noreplace).
А точно есть желание пользователю разрешить их редактировать?
Можно просто %config, чтобы пользовательские изменения сохранялись с .rpmsave
Или не помечать как конфиг совсем.
Но главное, если эти конфиги будут меняться со временем в пакете, то их действительно имеет смысл отдельно паковать. Но тогда будет та же проблема. Пользователь снёс dconf-profile, и его переопределения тоже перестанут работать.
Comment 6 Yuri N. Sedunov 2023-07-26 20:45:28 MSK
Давайте я удалю только что добавленный /etc/dconf/profile/user и поставлю dconf'у зависимость на dconf-profile, в котором вы будете делать всё так, чтобы ничего не сломать?
Comment 7 Антон Мидюков 2023-07-26 21:00:46 MSK
(Ответ для Yuri N. Sedunov на комментарий #6)
> Давайте я удалю только что добавленный /etc/dconf/profile/user и поставлю
> dconf'у зависимость на dconf-profile, в котором вы будете делать всё так,
> чтобы ничего не сломать?

Пока можно только откатить изменение. dconf-profile в Сизифе ещё нет.
Comment 8 Evgeny Sinelnikov 2023-07-26 21:05:23 MSK
Да, давайте. В принципе, все готово, см. ниже.

В других пакетах файл /etc/dconf/profile/user опакечен от безысоходности:
- mate-reduced-resource
- celluloid-csd-disabled

После текущего обновления dconf эти пакеты более не рабочие - их нужно чинить. Чинить не сложно - нужно удалить из них /etc/dconf/profile/user.

А без %config(noreplace) конфиг user - вообще ломает работу наших систем с групповыми политиками, когда профиль user запакован так, чтобы при обновлении перезасываестся.

Предлагаю вот такой вариант решения:
- профили выносятся в отдельный пакет dconf-profile;
- в dconf прописыается записывается на него зависимость.

Прошу одобрить dconf в таске:
#325633 TESTED #1 [test-only] sisyphus dconf-profile.git=0.1-alt1 srpm=dconf-0.40.0-alt3.src.rpm
Comment 9 Антон Мидюков 2023-07-26 21:35:42 MSK
(Ответ для Evgeny Sinelnikov на комментарий #8)
> Да, давайте. В принципе, все готово, см. ниже.

Я за.

> 
> В других пакетах файл /etc/dconf/profile/user опакечен от безысоходности:
> - mate-reduced-resource
> - celluloid-csd-disabled
> 
> После текущего обновления dconf эти пакеты более не рабочие - их нужно
> чинить. Чинить не сложно - нужно удалить из них /etc/dconf/profile/user.
> 

Я их следом починю. Проблема в том, что обновление систем с этими пакетами сломается.

> А без %config(noreplace) конфиг user - вообще ломает работу наших систем с
> групповыми политиками, когда профиль user запакован так, чтобы при
> обновлении перезасываестся.
> 

Тогда понятно.
Comment 10 Yuri N. Sedunov 2023-07-26 21:59:23 MSK
А, это зачем почикано?

-mkdir -p %buildroot{%_datadir,%_sysconfdir}/%name/{profile,db/local.d/locks}
+mkdir -p %buildroot{%_datadir,%_sysconfdir}/%name/{profile,db}
 
-%config %_sysconfdir/%name/profile/user
-%dir %_sysconfdir/%name/db/local.d
-%dir %_sysconfdir/%name/db/local.d/locks
Comment 11 Evgeny Sinelnikov 2023-07-27 00:47:05 MSK
(Ответ для Yuri N. Sedunov на комментарий #10)
> А, это зачем почикано?
> 
> -mkdir -p %buildroot{%_datadir,%_sysconfdir}/%name/{profile,db/local.d/locks}
> +mkdir -p %buildroot{%_datadir,%_sysconfdir}/%name/{profile,db}
>  
> -%config %_sysconfdir/%name/profile/user
> -%dir %_sysconfdir/%name/db/local.d
> -%dir %_sysconfdir/%name/db/local.d/locks

Оно прилетает из dconf-profile, иначе будет конфликтовать по файлам. Каталоги баз там сразу все, включая local. Профиль user расширен с сохранением оригинального поведения, если не использовать базы default и policy.
Comment 12 Yuri N. Sedunov 2023-07-27 01:01:51 MSK
(Ответ для Evgeny Sinelnikov на комментарий #11)
> (Ответ для Yuri N. Sedunov на комментарий #10)

> Оно прилетает из dconf-profile, иначе будет конфликтовать по файлам.
> Каталоги баз там сразу все, включая local. 

local оставьте dconf'у и можете отправлять свои профайлы в сизиф.
Comment 13 Evgeny Sinelnikov 2023-07-27 01:21:18 MSK
(Ответ для Yuri N. Sedunov на комментарий #12)
> (Ответ для Evgeny Sinelnikov на комментарий #11)
> > (Ответ для Yuri N. Sedunov на комментарий #10)
> 
> > Оно прилетает из dconf-profile, иначе будет конфликтовать по файлам.
> > Каталоги баз там сразу все, включая local. 
> 
> local оставьте dconf'у и можете отправлять свои профайлы в сизиф.

Я не против. Но давайте подумаем вот над чем. Если база local - это настройка, то она может быть любой. Далее, если все базы прилетают из dconf-profile, то какой смысл только её привязывать к dconf'у?

Я готов переделать, если вы настаиваете, это недолго. Но выглядит это целостно, на мой взгляд. Логика, насколько я понимаю в том, что во всех описаниях эта база прописана. Только в этом смысл, получается.
Comment 14 Yuri N. Sedunov 2023-07-27 01:31:57 MSK
Речь только про каталоги
%dir %_sysconfdir/%name/db/local.d
%dir %_sysconfdir/%name/db/local.d/locks

Пусть они по-прежнему принадлежат dconf'у.
Comment 15 Evgeny Sinelnikov 2023-07-27 03:03:46 MSK
Готово:
#325633 TESTED #3 [test-only] sisyphus dconf-profile.git=0.1-alt1 srpm=dconf-0.40.0-alt3.src.rpm
Comment 16 Yuri N. Sedunov 2023-07-27 03:09:39 MSK
Ждет ваш профиля в сизифе.
[#325648] FAILED srpm=dconf-0.40.0-alt3.src.rpm
Comment 17 Evgeny Sinelnikov 2023-07-27 03:25:42 MSK
$ girar-show 325633
2023-Jul-27 00:20:16 :: task #325633 for sisyphus resumed by sin:
#340 build 0.1-alt1 from /people/sin/packages/dconf-profile.git fetched at 2023-Jul-26 23:48:36
[...]
2023-Jul-27 00:23:54 :: task #325633 for sisyphus DONE
Comment 18 Repository Robot 2023-07-27 03:40:46 MSK
dconf-0.40.0-alt3 -> sisyphus:

 Thu Jul 27 2023 Yuri N. Sedunov <aris@altlinux> 0.40.0-alt3
 - removed /etc/dconf/profile/user provided by new dconf-profile package (ALT #47036)