Summary: | /etc/os-release не в едином стиле между продуктами и часто не соответствует действительности | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Anton Farygin <rider> |
Component: | alt-os-release | Assignee: | Mikhail Efremov <sem> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | antohami, arseny, danil, dshein, ldv, mike, nbr, rider, sem, shaba, sin, zerg |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Anton Farygin
2023-04-04 10:36:42 MSK
Аналогичный вопрос для всех веток - где-то должна быть информация о бранче. Т.е. - вообще алгоритм работы нужен такой: я поставил дистрибутив и обновляюсь из stable - у меня в /etc/os-release указан дистрибутив, источник обновления - имя stable бранча. В идеале ещё добавлять дату последней установки обновлений (или дату репозитория, из которого устанавливались обновления). При переходе с ветки на ветки информация о том, что у меня установлен stable дистрибутив должна стать неактуальной. Кстати, в примерах: https://www.freedesktop.org/software/systemd/man/os-release.html можно заводить свои поля, хотя на мой взгляд достаточно и существующих. В файле os-release усть строка "CPE_NAME". Для K Workstation эта строка судя по всемупрописана в пакете branding-xalt-kworkstation-release-*. А где прописаны эти CPE для остальных продуктов? У меня Сизиф, но брендинг стартеркита: $ cat /etc/os-release NAME="starter kit" VERSION="p10 (Hypericum)" ID=altlinux VERSION_ID=p10 PRETTY_NAME="ALT Starterkit (Hypericum)" ANSI_COLOR="1;33" CPE_NAME="cpe:/o:alt:starterkit:p10" HOME_URL="http://en.altlinux.org/starterkits" BUG_REPORT_URL="https://bugs.altlinux.org/" BUILD_ID="starter kit p10 (Hypericum)" Мы можем при сборке брендинга выставлять значение репозитория примерно так: https://git.altlinux.org/gears/b/branding-alt-spserver.git?p=branding-alt-spserver.git;a=commitdiff;h=38c86798b07e325f26c2b0518278715be0998487;hp=3b61efbf752309f38fa2e5cd19ca3c28fb29c28e в любых частях брендинга. Но на e2k не работает rpm --eval %_priority_distbranch https://bugzilla.altlinux.org/44626 да, мне тоже нравится идея в os-release добавлять произвольное поле ALT_BRANCH_ID и в него записывать %_priority_distbranch Только предлагаю это делать через branding пакеты, которые при сборке для бранча будут к себе записывать куда-то в бинарный пакет %_priority_distbranch Тогда при обновлении с p10 до sisyphus этот самый бинарный пакет обновится и перепишет ALT_BRANCH_ID Но нужно будет пересобирать эти пакеты после бранчевания. Необходимо привести записи CPE_NAME в файле к одному виду и определиться с версионированием Сейчас в стартеркитах докер-контейнерах написано: CPE_NAME="cpe:/o:alt:starterkit:p10" В СП8: CPE_NAME="cpe:/o:alt:spserver:8.4" CPE_NAME="cpe:/o:alt:spworkstation:8.4" В Workstation K так: CPE_NAME="cpe:/o:alt:kworkstation:10.1" В Simply: CPE_NAME="cpe:/o:alt:slinux:9.1" CPE_NAME="cpe:/o:alt:slinux:10.1" Предлагаю: - Для стартеркитов (и осованных на них докер-образах) поменять поле версии р10 на 10. Насколько мне исвестно этот момент уже обсуждался с Антоном Мидюковым. - Для обычных продуктов убрать минорную версию из СРЕ (10.1, 10.2,... -> 10) - Для СП8 оставить как есть, т.к. 8.3 и 8.4 это разные продукты. Корректность и единообразие СРЕ на самом деле важно для обеспечения однозначной идентификации целевой ОС при обработке информации об уязвимостях. (Ответ для Danil Shein на комментарий #6) > Необходимо привести записи CPE_NAME в файле к одному виду и определиться с > версионированием > > Сейчас в стартеркитах докер-контейнерах написано: > CPE_NAME="cpe:/o:alt:starterkit:p10" > > В СП8: > CPE_NAME="cpe:/o:alt:spserver:8.4" > CPE_NAME="cpe:/o:alt:spworkstation:8.4" > > В Workstation K так: > CPE_NAME="cpe:/o:alt:kworkstation:10.1" > > В Simply: > CPE_NAME="cpe:/o:alt:slinux:9.1" > CPE_NAME="cpe:/o:alt:slinux:10.1" > > > Предлагаю: > - Для стартеркитов (и осованных на них докер-образах) поменять поле версии > р10 на 10. Насколько мне исвестно этот момент уже обсуждался с Антоном > Мидюковым. Да. Но давайте уточним. Сейчас версия p10 у пакета, так что VERSION=p10 VERSION_ID=p10 Будет ли достаточно поменять p10 -> 10 только в cpe? Или лучше поменять и VERSION с VERSION_ID. > - Для обычных продуктов убрать минорную версию из СРЕ (10.1, 10.2,... -> 10) > - Для СП8 оставить как есть, т.к. 8.3 и 8.4 это разные продукты. А для СП, который будет на репозитории c10f1, а потом с10f2? Сейчас там так: ALT SP Workstation: NAME="ALT SP Workstation" VERSION="10" ID=altlinux VERSION_ID=10 PRETTY_NAME="ALT SP Workstation 11100-01" ANSI_COLOR="1;33" CPE_NAME="cpe:/o:alt:spworkstation:10" HOME_URL="https://basealt.ru/" и ALT SP Server: NAME="ALT SP Server" VERSION="10" ID=altlinux VERSION_ID=10 PRETTY_NAME="ALT SP Server 11100-01" ANSI_COLOR="1;33" CPE_NAME="cpe:/o:alt:spserver:10" HOME_URL="https://basealt.ru/" (Ответ для Anton Farygin на комментарий #5) > Но нужно будет пересобирать эти пакеты после бранчевания. Перед выходом первых продуктов на новом бранче, они так или иначе пересоберутся. > %_priority_distbranch
Облом. Он есть в rpm, но отсутствует в rpm-build.
(Ответ для Sergey V Turchin на комментарий #9) > > %_priority_distbranch > Облом. Он есть в rpm, но отсутствует в rpm-build. %define BRANCH $(rpm --eval %_priority_distbranch) (Ответ для Антон Мидюков на комментарий #10) > %define BRANCH $(rpm --eval %_priority_distbranch) Пейздесь кофе. Ну, придётся. ;-) @ldv - нам очень нужен бранч в rpm-build. Без извращений. (In reply to Anton Farygin from comment #12) > @ldv - нам очень нужен бранч в rpm-build. Без извращений. $ hsh-run -- rpm --showrc |grep branch -14: _priority_distbranch sisyphus $ hsh-run -- rpmbuild --showrc |grep branch -14: _priority_distbranch sisyphus (Ответ для Dmitry V. Levin на комментарий #13) > $ hsh-run -- rpmbuild --showrc |grep branch > -14: _priority_distbranch sisyphus Так, но ошибка: Macro %_priority_distbranch not found на этой же системе. Или без hsh-run это не работает? (Ответ для Dmitry V. Levin на комментарий #13) > (In reply to Anton Farygin from comment #12) > > @ldv - нам очень нужен бранч в rpm-build. Без извращений. > > $ hsh-run -- rpm --showrc |grep branch > -14: _priority_distbranch sisyphus > $ hsh-run -- rpmbuild --showrc |grep branch > -14: _priority_distbranch sisyphus Как так ? $ rpmbuild --showrc|grep priority_distbranch|wc -l 0 $ rpm --showrc|grep priority_distbranch -14: _priority_distbranch sisyphus В hasher тоже не работает: [builder@localhost .in]$ rpmbuild --showrc|grep priority_distbranch|wc -l 0 $ hsh-run -- rpmbuild --showrc|grep branch|wc -l 0 $ hsh-run -- rpm --showrc|grep branch|wc -l 1 $ hsh-run -- rpmquery -f /usr/lib/rpm/macros.d/altlinux-release altlinux-release-sisyphus-20201124-alt1.noarch Пакет altlinux-release-$branch устанавливается в сборочную среду как при обычной сборке, так и при тестовой пересборке. (Ответ для Dmitry V. Levin на комментарий #16) > $ hsh-run -- rpmquery -f /usr/lib/rpm/macros.d/altlinux-release > altlinux-release-sisyphus-20201124-alt1.noarch LOL (Ответ для Dmitry V. Levin на комментарий #13) > > @ldv - нам очень нужен бранч в rpm-build. Без извращений. > $ hsh-run -- rpm --showrc |grep branch > -14: _priority_distbranch sisyphus > $ hsh-run -- rpmbuild --showrc |grep branch > -14: _priority_distbranch sisyphus Без изврата это не работает. https://git.altlinux.org/tasks/312542/gears/200/git?p=git;a=commitdiff;h=8e3fa1e966bf1d0f03d1eb4a6f971dc398ceda08 (Ответ для Sergey V Turchin на комментарий #18) > (Ответ для Dmitry V. Levin на комментарий #13) > > > @ldv - нам очень нужен бранч в rpm-build. Без извращений. > > $ hsh-run -- rpm --showrc |grep branch > > -14: _priority_distbranch sisyphus > > $ hsh-run -- rpmbuild --showrc |grep branch > > -14: _priority_distbranch sisyphus > Без изврата это не работает. > https://git.altlinux.org/tasks/312542/gears/200/git?p=git;a=commitdiff; > h=8e3fa1e966bf1d0f03d1eb4a6f971dc398ceda08 А в сборочнице то работает, так как там приоритет у altlinux-release-$branch при инициализации hasher. На самом деле это же здорово! Если пакет собрали не на сборочнице, то %_priority_distbranch будет текстом. Дополнительная защита от подделки (защита от честных людей и самого себя). В случае брендингов это же очень хорошо. (Ответ для Антон Мидюков на комментарий #19) > > Без изврата это не работает. > > https://git.altlinux.org/tasks/312542/gears/200/git?p=git;a=commitdiff; > > h=8e3fa1e966bf1d0f03d1eb4a6f971dc398ceda08 > А в сборочнице то работает Ну, ладно. Я себе костыль сделал. (In reply to Антон Мидюков from comment #19) > А в сборочнице то работает, так как там приоритет у altlinux-release-$branch > при инициализации hasher. В локальном хэшере при установки приоритета для altlinux-release-sisyphus в Сизифе у меня тоже работает. А вот для p10 все равно нет, т.к. в altlinux-release-p10 не задается %_priority_distbranch. (Ответ для Mikhail Efremov на комментарий #21) > (In reply to Антон Мидюков from comment #19) > > А в сборочнице то работает, так как там приоритет у altlinux-release-$branch > > при инициализации hasher. > > В локальном хэшере при установки приоритета для altlinux-release-sisyphus в > Сизифе у меня тоже работает. А вот для p10 все равно нет, т.к. в > altlinux-release-p10 не задается %_priority_distbranch. Действительно. Нужно исправить altlinux-release-p10. (Ответ для Антон Мидюков на комментарий #22) > (Ответ для Mikhail Efremov на комментарий #21) > > (In reply to Антон Мидюков from comment #19) > > > А в сборочнице то работает, так как там приоритет у altlinux-release-$branch > > > при инициализации hasher. > > > > В локальном хэшере при установки приоритета для altlinux-release-sisyphus в > > Сизифе у меня тоже работает. А вот для p10 все равно нет, т.к. в > > altlinux-release-p10 не задается %_priority_distbranch. > > Действительно. Нужно исправить altlinux-release-p10. [#318341] p10 EPERM (try 3) altlinux-release-p10.git=20210721-alt2 (Ответ для Антон Мидюков на комментарий #23) > (Ответ для Антон Мидюков на комментарий #22) > > (Ответ для Mikhail Efremov на комментарий #21) > > > (In reply to Антон Мидюков from comment #19) > > > > А в сборочнице то работает, так как там приоритет у altlinux-release-$branch > > > > при инициализации hasher. > > > > > > В локальном хэшере при установки приоритета для altlinux-release-sisyphus в > > > Сизифе у меня тоже работает. А вот для p10 все равно нет, т.к. в > > > altlinux-release-p10 не задается %_priority_distbranch. > > > > Действительно. Нужно исправить altlinux-release-p10. > > [#318341] p10 EPERM (try 3) altlinux-release-p10.git=20210721-alt2 Пришло в p10. Можно использовать. (In reply to Danil Shein from comment #6) > - Для обычных продуктов убрать минорную версию из СРЕ (10.1, 10.2,... -> 10) Почему? Из спецификации CPE это совсем не следует. Напротив, в примерах именно полная версия, а не ее часть. (In reply to Anton Farygin from comment #5) > да, мне тоже нравится идея в os-release добавлять произвольное поле > ALT_BRANCH_ID и в него записывать %_priority_distbranch > Только предлагаю это делать через branding пакеты, которые при сборке для > бранча будут к себе записывать куда-то в бинарный пакет %_priority_distbranch Мне не сложно добавить ALT_BRANCH_ID, но хотелось бы понимать, действительно ли это кому-то надо и где и для чего это используется. Также следует учитывать, что это поле будет отражать только тот факт, что в системе скорее всего стоит branding, собранный для указанного бранча и больше ничего. Какие пакеты и откуда еще там установлены, что написано в apt source.list и т.п. - все это так же неизвестно. Задание с исправленным /etc/os-release в брендинге стартеркитов ушло в p10: [#320276] p10 DONE (try 2) branding-alt-starterkit.git=10-alt3 На данный момент ALT_BRANCH_ID внедрён в os-release следующих брендингов: branding-xalt-kworkstation branding-alt-spserver branding-alt-spworkstation branding-alt-starterkit branding-alt-sisyphus branding-alt-mobile-sisyphus |