[devel-distro] os-release

Dmitry V. Levin ldv at altlinux.org
Thu Aug 19 14:29:09 MSK 2021


On Thu, Aug 19, 2021 at 02:19:11PM +0300, Anton Farygin wrote:
> On 19.08.2021 13:33, Dmitry V. Levin wrote:
> > On Mon, Aug 16, 2021 at 12:26:55PM +0300, Anton Farygin wrote:
> >> On 16.08.2021 12:22, Anton V. Boyarshinov wrote:
> >>>    
> >>>>> У каждого продукта своё версионирование и не вполне понятно -- как
> >>>>> можно связать это версионирование с "версией бранча". Версия бранча это
> >>>>> вообще имя_бранча+дата.
> >>>> У /etc/os-release есть куча полей, куда можно записывать и дату бранча в
> >>>> том числе.
> >>>>
> >>>> Плюс в стандарте есть возможность создавать свои расширения.
> >>> Значит надо продумать как единообразным образом использовать эти кучу
> >>> полей и, возможно, расширения.
> >> Я для обсуждеия этого повесил баг:
> >>
> >> https://bugzilla.altlinux.org/40703
> >>
> >> предлагаю с обсуждением переместиться туда.
> > Обсуждать в баге неудобно.
> Вообще, конечно, bugzilla именно для этого и предназначена. Ну да ладно. 
> Давайте здесь.
> > Я предлагаю следующую простую схему.
> >
> > Файл /etc/altlinux-release обновляется, как обычные файлы.
> 
> Т.е. - просто лежит в пакете, который приезжает с каждой новой версией 
> пакета, содержащего этот файл?

Да, тут сложно что-то другое придумать, формат этого файла слишком
негибкий.  Были предложения копировать /etc/altlinux-release куда-то,
но при наличии os-release это выглядит избыточным.

> Например, в моём случае это branding-xalt-kworkstation-release
> 
> > Файл /etc/os-release обновляется по правилам, описанным ниже.
> >
> > Все провайдеры os-release пакуют его в /usr/lib/os-release
> > (согласно https://www.freedesktop.org/software/systemd/man/os-release.html),
> > /usr/lib/os-release может быть ссылкой куда-то ещё, это несущественно.
> > Они же пакуют %ghost /etc/os-release нулевого размера.
> Ну или действительно как предложил зерг - запаковать в файлтриггер.
> > Файлриггер следит за обновлением пакетов, содержащих /usr/lib/os-release,
> > и мержит изменения в /etc/os-release следующим образом:
> >
> > Все параметры, описанные в /usr/lib/os-release, за исключением параметров,
> > имена которых начинаются с префикса ALT_installed_, копируются в
> > /etc/os-release, при этом, если в /etc/os-release уже были параметры с
> > такими именами, то:
> >
> > - старые параметры, имена и значения которых совпадают с новыми,
> >    удаляются;
> Т.е., говоря проще - заменяются новыми значениями из /usr/lib/os-release
> > - остальные старые параметры, имена которых совпадают с новыми,
> >    переименовываются путём добавления префикса ALT_installed_ и добавляются
> >    в /etc/os-release, если параметров с такими именами там ещё не было, в
> >    противном случае удаляются.
> 
> Вот это вообще непонятно, что имеется в виду.

Имеется в виду, что когда из /usr/lib/os-release приезжают параметры с
теми же именами, что и в /etc/os-release, но с другими значениями, то
такие параметры в /etc/os-release переименовываются.

> можно пример, на:
> $ cat /etc/os-release
> NAME="ALT"
> VERSION="9.2 "
> ID=altlinux
> VERSION_ID=9.2
> PRETTY_NAME="ALT Workstation K 9.2  (Centaurea Pineticola)"
> ANSI_COLOR="1;33"
> CPE_NAME="cpe:/o:alt:kworkstation:9.2"
> HOME_URL="https://www.basealt.ru/"
> BUG_REPORT_URL="https://bugs.altlinux.org/"
> DOCUMENTATION_URL="https://docs.altlinux.org/"
> SUPPORT_URL="https://support.basealt.ru/"
> 
> Что из этого должно переименоваться в ALT_installed ?

А что в /usr/lib/os-release?


-- 
ldv


More information about the devel-distro mailing list