From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 2 Sep 2021 21:20:57 +0300 From: "Dmitry V. Levin" To: devel-distro@lists.altlinux.org Message-ID: <20210902182057.GA21258@altlinux.org> References: <563650cb-f839-1337-3993-26ec257cf305@basealt.ru> <7e0e75a1-ccb8-b931-82c3-a1dcba02200e@altlinux.org> <20210902170921.GB20013@altlinux.org> <01ce3983-2315-5526-822c-654f56faca29@basealt.ru> <20210902181531.GA21170@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [devel-distro] branding X-BeenThere: devel-distro@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Distributions development List-Id: Distributions development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Sep 2021 18:20:57 -0000 Archived-At: List-Archive: On Thu, Sep 02, 2021 at 09:17:11PM +0300, Anton Farygin wrote: > On 02.09.2021 21:15, Dmitry V. Levin wrote: > > On Thu, Sep 02, 2021 at 09:13:18PM +0300, Anton Farygin wrote: > >> On 02.09.2021 20:09, Dmitry V. Levin wrote: > >>> On Thu, Sep 02, 2021 at 07:46:11PM +0300, Leonid Krivoshein wrote: > >>>> 02.09.2021 11:26, Sergey V Turchin пишет: > >>>>> 01.09.2021 20:08, Leonid Krivoshein пишет: > >>>>>> 01.09.2021 18:01, Sergey V Turchin пишет: > >>>>>>> 01.09.2021 15:33, Leonid Krivoshein пишет: > >>>>>>> > >>>>>>> [...] > >>>>>>>> Но не из самого /etc/os-release, а того, что лежит в /usr/share > >>>>>>> Не /usr/share, а из /usr/lib/os-release. > >>>>>>> https://www.freedesktop.org/software/systemd/man/os-release.html > >>>>>> Не, это о другом. Я имел ввиду наше внутреннее: > >>>>>> /usr/share/branding-data-current/release/os-release > >>>>> Так, разговор и о том, чтоб без велосипедов. > >>>>> > >>>> Стандарт предписывает "клиентам" брать данные из /etc/os-release и, если > >>>> его нет, то из /usr/lib/os-release, т.е. это одна и та же сущность, > >>>> второй может не быть, если есть первая. Здесь "клиент" -- это тот, кто > >>>> хочет сориентироваться в текущем окружении, типа ansible. > >>>> > >>>> То, что у нас лежит в /usr/share -- это не велосипед, а оригинальный > >>>> неизменяемый файл, поставлявшийся с пакетом. Из него в /etc/os-release > >>>> сейчас копируется информация в пост-установочном скрипте, сам > >>>> /etc/os-release сейчас является файлом конфигурации, и он не меняется с > >>>> обновлением пакета брэндинга. > >>>> > >>>> Предлагается в rpm сделать файл-триггер, который будет генерировать > >>>> содержимое /etc/os-release, полностью соответствующее стандарту. В новом > >>>> варианте здесь будут данные, соответствующие текущей ситуации, а не той, > >>>> что была. Но обсуждается вариант сохранения информации, соответствующие > >>>> исходному состоянию системы. Рассмотрены два варианта: > >>>> > >>>> - Сохранять все поля, добавляя к ним альтовый префикс, что допускается > >>>> стандартом. > >>>> - Сохранять только поле BUILD_ID, а в его отсутствии брать значение из > >>>> VERSION_ID (в /etc/os-release). > >>>> > >>>> Файл-триггер будет брать СОХРАНЯЕМЫЕ значение из /etc/os-release, > >>>> остальные поля перезаписывать из > >>>> /usr/share/branding-data-current/release/os-release. При даунгрейде > >>>> пакета брэндинга схема будет в точности такой же. > >>> Наверное, эта деталь не очень важна, но я полагал, что файлтриггер будет > >>> смотреть не напрямую в > >>> /usr/share/branding-data-current/release/os-release, а в > >>> /usr/lib/os-release, который, в свою очередь, будет относительной ссылкой > >>> на тот же /usr/share/branding-data-current/release/os-release. > >>> > >> Во время работы файлтриггера в этом месте данные будут уже обновлены. > >> > >> А вот в /etc/os-release они всё ещё остануться старые. > > Беспокоит окно между моментом обновления /usr/lib/os-release и моментом, > > когда отработает файлтриггер, обновляющий /etc/os-release? > > нет,  /usr/lib/os-release обновляется из пакета. во время работы > файлтриггера пакет будет установлен уже новый, в котором эти данные > могут быть изменены. > > Надо брать данные для os-release из старого пакета, до обновления. Разве в /etc/os-release уже не находятся старые данные, которые как раз и надо обновить из /usr/lib/os-release после обновления последнего? -- ldv