История изменений
Исправление Shushundr, (текущая версия) :
Допустим, что выбор текущей активной версии - это не дело мейнтейнеров, а дело пользователей (плакало тогда «автоматизированное обновление»). В этом случае можно было бы устанавливать один раз скрипт с конфигом к нему в /etc/. Конфиг редактировать при помощи модуля eselect. Сам скрипт тогда был бы неизменным, к нему был бы пакет в app-alternatives и всё вроде бы хорошо (не нужны expansion variables).
А конфиг обновлять вместе с пакетом, но защищать механизмом CONFIG_PROTECT. Тогда вроде бы как и пользователь будет предупреждаться о необходимости обновления (до тех пор, пока он не сделает сознательный выбор и не внесёт или не откинет обновления). И принудительной смены не будет происходить, как это происходило бы при использовании expansion variables для управления текущей версией.
$ emerge --info | grep PROTECT
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
Сейчас то что сделано в app-alternatives.eclass это другое. Там как раз зависимости зависят от флагов. Можно, конечно, конфигурацию сформировать и по флагам, но они-то делают другое, они напрямую симлинки формируют в области, которая считается «только на чтение».
Исправление Shushundr, :
Допустим, что выбор текущей активной версии - это не дело мейнтейнеров, а дело пользователей (плакало тогда «автоматизированное обновление»). В этом случае можно было бы устанавливать один раз скрипт с конфигом к нему в /etc/. Конфиг редактировать при помощи модуля eselect. Сам скрипт тогда был бы неизменным, к нему был бы пакет в app-alternatives и всё вроде бы хорошо (не нужны expansion variables).
А конфиг обновлять вместе с пакетом, но защищать механизмом CONFIG_PROTECT. Тогда вроде бы как и пользователь будет предупреждаться о необходимости обновления (до тех пор, пока он не сделает сознательный выбор и не внесёт или не откинет обновления). И принудительной смены не будет происходить, как это происходило бы при использовании expansion variables для управления текущей версией.
$ emerge --info | grep PROTECT
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
Исправление Shushundr, :
Допустим, что выбор текущей активной версии - это не дело мейнтейнеров, а дело пользователей (плакало тогда «автоматизированное обновление»). В этом случае можно было бы устанавливать один раз скрипт с конфигом к нему в /etc/. Конфиг редактировать при помощи модуля eselect. Сам скрипт тогда был бы неизменным, к нему был бы пакет в app-alternatives и всё вроде бы хорошо (не нужны expansion variables).
А конфиг обновлять вместе с пакетом, но защищать механизмом CONFIG_PROTECT. Тогда вроде бы как и пользователь будет предупреждаться о необходимости обновления (до тех пор, пока он не сделает сознательный выбор и не внесёт или не откинет обновления). И принудительной смены не будет происходить, как это происходило бы при использовании expansion variables для управления текущей версией.
Исходная версия Shushundr, :
Допустим, что выбор текущей активной версии - это не дело мейнтейнеров, а дело пользователей (плакало тогда «автоматизированное обновление»). В этом случае можно было бы устанавливать один раз скрипт с конфигом к нему в /etc/. Конфиг редактировать при помощи модуля eselect. Сам скрипт тогда был бы неизменным, к нему был бы пакет в app-alternatives и всё вроде бы хорошо (не нужны expansion variables).
А конфиг обновлять вместе с пакетом, но защищать механизмом [url=https://wiki.gentoo.org/wiki/CONFIG_PROTECT]CONFIG_PROTECT[/url]. Тогда вроде бы как и пользователь будет предупреждаться о необходимости обновления (до тех пор, пока он не сделает сознательный выбор и не внесёт или не откинет обновления). И принудительной смены не будет происходить, как это происходило бы при использовании expansion variables для управления текущей версией.