Created attachment 15551 [details] ssh_key Псевдоним: fedor E-mail пересылки: crazyfedor69@gmail.com Ментор: Алексей Шабалин Цель: Научиться собирать пакеты.
Created attachment 15552 [details] gpg_key
Принимаю. Тестовые задания готовлю.
Created attachment 15561 [details] gpg_key Дополнено почтовыми адресами.
Первое тестовое задание на работу с rpm кандидат выполнил успешно. Прошу перевести на следующий этап.
Кандидат выполнил 2 задания, прощу обеспечить доступ к сборочнице и git.
Ментор есть, ключи в порядке. T/J/S -> 1.3.
Кандидат готов продолжать вступление. Прошу перейти к стадии 2.
ssh ключ на gitery.alt зарегистрирован. Адрес для пересылки создан. T/J/S -> 2.3.
Кандидат освоил работу с git сервером, прошу дать доступ к сборочнице gyle.alt.
ssh ключ на gyle.alt зарегистрирован. Пакет alt-gpgkeys обновлён. Адрес подписан на devel@. T/J/S -> 3.6.
Кандидат готов собирать пакеты самостоятельно. Предлагаю кандидату проверочное задание: обновить пакеты lxc и lxd, и собрать новый пакет incus. Плюс связанные с этими пакетами проекты - lxcfs, dsqlite, raft. И по итогу подключить со-ментора.
Добрый день. Прикладываю задание с собранными пакетами: https://packages.altlinux.org/ru/tasks/347632/
Прошу подключить проверяющего.
Призван рецензент (rider@) для независимой оценки готовности кандидата. T/J/S -> 4.2.
В 1200 (lxc) используется метод сборки с отдельной веткой для патчей. я посмотрел коммиты, которыми отличается v6.0.0 от alt-6.0.0-fixes и, на мой взгяд, список изменений требует пересмотра. предлагаю ещё раз пересмотреть и обсудить с ментором все ли изменения, которые делаются в этой ветке нужны нам в репозитории.
libcowsql.spec не соответствует shared libs policy.
в libdqlite.git=1.16.4-alt1 непонятно причина, по которой пришлось собирать с внутренней библиотекой raft лучше сделать это изменение отдельным коммитом, в котором описать причину, по которой так пришлось сделать (в этом же задании обновляется libraft)
ко всем пакетам общее замечание URL лучше использовать без тэга %name, тогда его легко можно открыть прямо в редакторе, а иначе приходится делать дополнительные действия. URL: https://github.com/regclient/%name
incus.spec точку потеряли в changelog (см. правила написания changelog на www.altlinux.org) ну и я бы на него применил утилиту cleanup_spec для форматирования.
Добрый день. lxc - пересобрала ветку с патчами. Если не стало лучше, не могли бы вы уточнить, что лишего попало? буду разбираться. libcowsql - применила shared libs policy. incus, regclient - поправила спек. libdqlite - ситуация следующая: ранее была связка lxd-dqlite-libraft. Сейчас эти вещи отбранчевались в incus-cowsql-libraft. При этом нужная версия libraft для dqlite была перенесена самим upstream в исходники проекта в dqlite/src/. Указала этот момент в комментарии коммита, чтобы были заметны изменения. В свою очередь cowsql использует как раз актуальный внешний libraft. Как было бы лучше поступить в таком случае? https://packages.altlinux.org/ru/tasks/347632/
Cистемный libraft для incus, и забандленный в lxd. Это я так рекомендовал собрать. Потому что они разных версий, и апстрим у них теперь разный.
(Ответ для Alexey Shabalin на комментарий #21) > Cистемный libraft для incus, и забандленный в lxd. > Это я так рекомендовал собрать. Потому что они разных версий, и апстрим у > них теперь разный. Да у меня вообще нет вопросов к тому, почему именно так собрано. Основной вопрос в том, что из changelog и содержимого specfile этого не понять. Сейчас стало лучше, но не особо - опять в changelog сказано что сделано, но не сказана причина такого изменения. Её можно написать или в specfile или прямо в commit message (не в changelog) пакета, развёрнуто.
(Ответ для Nadezhda на комментарий #20) > lxc - пересобрала ветку с патчами. Если не стало лучше, не могли бы вы > уточнить, что лишего попало? буду разбираться. меня смущает коммит da50837dd95a9ef6f71eb9d29f9d6f4c136b877d - посмотрите, он в апстрим уже влит, но другой.
(Ответ для Anton Farygin на комментарий #23) > (Ответ для Nadezhda на комментарий #20) > > lxc - пересобрала ветку с патчами. Если не стало лучше, не могли бы вы > > уточнить, что лишего попало? буду разбираться. > > меня смущает коммит da50837dd95a9ef6f71eb9d29f9d6f4c136b877d - посмотрите, > он в апстрим уже влит, но другой. Добрый день. libdqlite - убрала лишнее из спека, оставила только комметарий в коммите. lxc - убрала этот коммит (da50837dd95a9ef6f71eb9d29f9d6f4c136b877d), перетестировала, и оказалось, что так тоже работает. Предполагала, что без него не будет работать, тк в апстриме warning заменили на error. https://packages.altlinux.org/ru/tasks/347632/
regclient.spec: +* Thu Mar 28 2024 Nadezhda Fedorova <fedor@altlinux.org> 0.6.0-alt1 +- 0.6.0 +- initial build for ALT Linux кажется, что 0.6.0 тут лишнее.
libcowsql.spec: у devel пакета должна быть зависимось не на %name на на %name%soname
И если убираете подзадания, то лучше только то, которое исправления. У task add есть опция для вставки подзадания в середину задания. посмотрите help
Добрый день. Прикладываю задание с правками. https://packages.altlinux.org/ru/tasks/search/?q=352890
libcowsql.spec: 1) вместо %version-%release надо использовать %EVR 2) %soname обязательно должно присутствовать в секции %files, что бы не произошло обновление пакета (случайно) со сменой soname и без увеличения его версии в спеке.
incus.spec: важно описать в changelog ваши изменения, влияющие на поведение приложения Я про nobody
(Ответ для Anton Farygin на комментарий #30) > incus.spec: > важно описать в changelog ваши изменения, влияющие на поведение приложения > Я про nobody Подскажите, пожалуйста, что необходимо написать в случае, если это было изначально лишним? После повторного просмотра с Alexey Shabalin было принято решение пофиксить это, оно никак не влияет на работу приложения. Просто fix звучит некрасиво..
ну напишите что удалили и зачем, это же просто.
Добрый день. Поправила по замечаниям. https://packages.altlinux.org/ru/tasks/search/?q=352890
(Ответ для Nadezhda на комментарий #33) > Добрый день. Поправила по замечаниям. > https://packages.altlinux.org/ru/tasks/search/?q=352890 +%package devel +Summary: Library for distributed SQLite database (development files) +Group: Development/Databases +Conflicts: libdqlite-devel +Requires: %name = %version-%release При этом пакет с библиотекой имеет в имени soname
не туда посмотрел, всё нормально - заапрувил.
Для завершения JOIN предлагаю собрать что-то ещё, стараться при этом делать минимум ошибок. Можно пройтись по FTBFS или обновлением пакетов, висящих на @nobody: https://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/error/ curl -s https://git.altlinux.org/acl/list.packages.sisyphus|grep @nobody
Добрый день. Подготовила новый пакет. https://packages.altlinux.org/ru/tasks/355179/
(In reply to Nadezhda from comment #37) > Добрый день. Подготовила новый пакет. > https://packages.altlinux.org/ru/tasks/355179/ +KUBEVIRT_GIT_COMMIT='%version-%release' \ выглядит как ошибка, как будто в этом месте ожидается sha1 коммита для v%version
И когда заимствуете спек-файлы из других дистрибутивов - лучше писать, что было взято за основу (ну или просто соблюдать лицензии заимствованного спек-файла).
(In reply to Anton Farygin from comment #38) > +KUBEVIRT_GIT_COMMIT='%version-%release' \ > > выглядит как ошибка, как будто в этом месте ожидается sha1 коммита для > v%version Это я "придумал" вместо sha1 коммитов ставить %release. И всем другим рекомендую это делать. Обычно эта переменная выводится в --version команде, И для нас актуальнее видеть версию и релиз rpm пакетов, а не апстримный git комит. Иначе зачем мы собираем rpm пакеты? Кроме этого с каждым обновлением надо обновлять в спеке переменную GIT_COMMIT на основе апстримного комита, что неудобно.
(In reply to Alexey Shabalin from comment #40) > (In reply to Anton Farygin from comment #38) > > +KUBEVIRT_GIT_COMMIT='%version-%release' \ > > > > выглядит как ошибка, как будто в этом месте ожидается sha1 коммита для > > v%version > > Это я "придумал" вместо sha1 коммитов ставить %release. > И всем другим рекомендую это делать. > Обычно эта переменная выводится в --version команде, > И для нас актуальнее видеть версию и релиз rpm пакетов, а не апстримный git > комит. > Иначе зачем мы собираем rpm пакеты? > Кроме этого с каждым обновлением надо обновлять в спеке переменную > GIT_COMMIT на основе апстримного комита, что неудобно. Не согласен. Апстримный git коммит нужен для того, что бы при обращении с ошибкой в upstream показать, из чего оно было собрано. Т.е. - это гораздо важнее как для нас так и для апстрима информация. Люди конкретно заморочились тем, что бы sha1 был в выводе. см. коммит c9d721a6c3b99253809d268863e2cc4b3ea94a03
Добрый день, поправила по замечанию. https://packages.altlinux.org/ru/tasks/355179/
(In reply to Anton Farygin from comment #39) > И когда заимствуете спек-файлы из других дистрибутивов - лучше писать, что > было взято за основу (ну или просто соблюдать лицензии заимствованного > спек-файла). ^^^^ вот это не надо поправить ?
(Ответ для Anton Farygin на комментарий #43) > (In reply to Anton Farygin from comment #39) > > И когда заимствуете спек-файлы из других дистрибутивов - лучше писать, что > > было взято за основу (ну или просто соблюдать лицензии заимствованного > > спек-файла). > > ^^^^ вот это не надо поправить ? Извините, не заметила сразу. Дополнила.
(In reply to Nadezhda from comment #44) > (Ответ для Anton Farygin на комментарий #43) > > (In reply to Anton Farygin from comment #39) > > > И когда заимствуете спек-файлы из других дистрибутивов - лучше писать, что > > > было взято за основу (ну или просто соблюдать лицензии заимствованного > > > спек-файла). > > > > ^^^^ вот это не надо поправить ? > > Извините, не заметила сразу. Дополнила. Спасибо, заапрувил. Продолжаем сборку пакетов под наблюдением, пока c моей стороны было довольно много замечаний.
Добрый день. Подготовила несколько пакетов: https://packages.altlinux.org/ru/tasks/365423/ https://packages.altlinux.org/ru/tasks/366474/ https://packages.altlinux.org/ru/tasks/365533/
(In reply to Надежда from comment #46) > https://packages.altlinux.org/ru/tasks/366474/ В пакете ergo я бы пользователя называл как _ergo, обозначая тем самым его "системность". ergo довольно распространнёное имя и запросто может совпасть с реальным пользователем. %config(noreplace) %attr(0660,root,%name) %_sysconfdir/%name/ircd.yaml И насколько нужны такие широки права для пользователя ergo на конфиг ?
(In reply to Надежда from comment #46) > https://packages.altlinux.org/ru/tasks/365533/ Аналогичный вопрос к пакету oci-registry +%config(noreplace) %attr(0660,root,%name) %_sysconfdir/%name/config.yaml и мне не очень понравился в service файле listen на 0.0.0.0 Не знаю, можно ли вынести это в какой-то конфиг (как и все опции запуска).
(Ответ для Anton Farygin на комментарий #48) > (In reply to Надежда from comment #46) > > > https://packages.altlinux.org/ru/tasks/365533/ > > Аналогичный вопрос к пакету oci-registry > +%config(noreplace) %attr(0660,root,%name) %_sysconfdir/%name/config.yaml > > и мне не очень понравился в service файле listen на 0.0.0.0 > > Не знаю, можно ли вынести это в какой-то конфиг (как и все опции запуска). Добрый день. Поправила ergo https://git.altlinux.org/tasks/366474/ и oci-registry https://git.altlinux.org/tasks/371105/
Спасибо. Всё посмотрел и заапрувил.
Добрый день. Обновила пакеты https://git.altlinux.org/tasks/372065/ https://git.altlinux.org/tasks/372061/
(In reply to Надежда from comment #51) > Добрый день. > Обновила пакеты > https://git.altlinux.org/tasks/372065/ В libdqlite сразу заложите изменения таким образом, что бы сейчас имя пакета не менялось, но дальнейшем при изменении soname тот, кто будет обновлять версию - заметил это изменение soname, прочитал комментарий и привёл пакет в порядок с SharedLibsPolicy. > https://git.altlinux.org/tasks/372061/ Этот заапрувил, но меня смущает его группа Development/Other
(Ответ для Anton Farygin на комментарий #52) > (In reply to Надежда from comment #51) > > Добрый день. > > Обновила пакеты > > https://git.altlinux.org/tasks/372065/ > В libdqlite сразу заложите изменения таким образом, что бы сейчас имя пакета > не менялось, но дальнейшем при изменении soname тот, кто будет обновлять > версию - заметил это изменение soname, прочитал комментарий и привёл пакет в > порядок с SharedLibsPolicy. > > > https://git.altlinux.org/tasks/372061/ > > Этот заапрувил, но меня смущает его группа Development/Other Добрый день. Дополнила libdqlite https://git.altlinux.org/tasks/372065/ + Обновила https://git.altlinux.org/tasks/372184/
(In reply to Надежда from comment #53) > (Ответ для Anton Farygin на комментарий #52) > > (In reply to Надежда from comment #51) > > > Добрый день. > > > Обновила пакеты > > > https://git.altlinux.org/tasks/372065/ > > В libdqlite сразу заложите изменения таким образом, что бы сейчас имя пакета > > не менялось, но дальнейшем при изменении soname тот, кто будет обновлять > > версию - заметил это изменение soname, прочитал комментарий и привёл пакет в > > порядок с SharedLibsPolicy. > > > > > https://git.altlinux.org/tasks/372061/ > > > > Этот заапрувил, но меня смущает его группа Development/Other > > Добрый день. > Дополнила libdqlite > https://git.altlinux.org/tasks/372065/ > + > Обновила > https://git.altlinux.org/tasks/372184/ Спасибо. Заапрувил. У libdqlite такое переименование допустимо, но если бы в репозитории был хоть когда-то пакет с меньшим soname - то это привело бы к проблемам с обновлением.
Добрый день. Обновила cloud-init и собрала новый пакет. https://packages.altlinux.org/ru/tasks/377093/ https://packages.altlinux.org/ru/tasks/376820/
Добрый день, @rider! Будет время посмотреть по письму выше?
(In reply to Надежда from comment #56) > Добрый день, @rider! Будет время посмотреть по письму выше? Да, спасибо за напоминание. Вот это изменение, на мой взгляд, требует отдельного разъяснения и коммита: -%post_service cloud-config -%post_service cloud-final -%post_service cloud-init -%post_service cloud-init-local +%post_systemd cloud-init-main.service cloud-init-local.service cloud-init-network.service cloud-config.service cloud-final.service %preun -%preun_service cloud-config -%preun_service cloud-final -%preun_service cloud-init -%preun_service cloud-init-local +%preun_systemd cloud-init-main.service cloud-init-local.service cloud-init-network.service cloud-config.service cloud-final.service +%preun_systemd cloud-init.service +%triggerin -- %name < 24.4.1 +# Update systemd units to version 24.4.1 +if systemctl is-enabled cloud-init.service >/dev/null 2>&1; then + systemctl disable --now cloud-init.service >/dev/null 2>&1 ||: +fi +if systemctl is-enabled cloud-init-local.service >/dev/null 2>&1; then + systemctl stop cloud-init-local.service cloud-init-network.service cloud-config.service cloud-final.service >/dev/null 2>&1 ||: + systemctl enable --now cloud-init-main.service >/dev/null 2>&1 ||: + systemctl start cloud-init-local.service cloud-init-network.service cloud-config.service cloud-final.service >/dev/null 2>&1 ||: +fi
Вот тут: +useradd -r -s /bin/bash -d %_localstatedir/%name -g _%name -c 'Diun daemon' _%name 2>/dev/null ||: Лучше объяснить причину создания пользователя для сервиса Diun с шеллом (комментарием или отдельным коммитом).
(Ответ для Anton Farygin на комментарий #57) > (In reply to Надежда from comment #56) > > Добрый день, @rider! Будет время посмотреть по письму выше? > > Да, спасибо за напоминание. > > Вот это изменение, на мой взгляд, требует отдельного разъяснения и коммита: > -%post_service cloud-config > -%post_service cloud-final > -%post_service cloud-init > -%post_service cloud-init-local > +%post_systemd cloud-init-main.service cloud-init-local.service > cloud-init-network.service cloud-config.service cloud-final.service > > %preun > -%preun_service cloud-config > -%preun_service cloud-final > -%preun_service cloud-init > -%preun_service cloud-init-local > +%preun_systemd cloud-init-main.service cloud-init-local.service > cloud-init-network.service cloud-config.service cloud-final.service > +%preun_systemd cloud-init.service > > +%triggerin -- %name < 24.4.1 > +# Update systemd units to version 24.4.1 > +if systemctl is-enabled cloud-init.service >/dev/null 2>&1; then > + systemctl disable --now cloud-init.service >/dev/null 2>&1 ||: > +fi > +if systemctl is-enabled cloud-init-local.service >/dev/null 2>&1; then > + systemctl stop cloud-init-local.service cloud-init-network.service > cloud-config.service cloud-final.service >/dev/null 2>&1 ||: > + systemctl enable --now cloud-init-main.service >/dev/null 2>&1 ||: > + systemctl start cloud-init-local.service cloud-init-network.service > cloud-config.service cloud-final.service >/dev/null 2>&1 ||: > +fi Добрый день. Добавила доп. комментарий для cloud-init. https://packages.altlinux.org/ru/tasks/377093/ Брала настройки юзера из документации проекта и видимо забыла заменить на обычное /dev/null - исправила. https://packages.altlinux.org/ru/tasks/376820/
+* Wed Mar 05 2025 Nadezhda Fedorova <fedor@altlinux.org> 24.4.1-alt1 +- 24.4.1 +- Add fix of ovfEnv reading error from upstream/main. +- Add update scripts of systemd services. В прошлый раз не заметил. У нас есть правило записи в changelog писать в past simple. А у вас используется present simple.
https://packages.altlinux.org/ru/tasks/376820/ заапрувил.
(Ответ для Anton Farygin на комментарий #60) > В прошлый раз не заметил. У нас есть правило записи в changelog писать в > past simple. Нет такого правила. Есть мутная фраза "Оптимально для предложений changelog использовать простое прошедшее время (past simple).", которая противоречит примерам в том же пункте, а также примерам выше по тексту. Во многих проектах есть требование писать в present (что логично, т.к. короче, или, как тут принято говорить, "лапидарнее"). > А у вас используется present simple.
так давайте введём, что бы было единообразие.
(Ответ для Anton Farygin на комментарий #63) > так давайте введём, что бы было единообразие. У нас нет Policy по %changelog, есть только рекомендации ("Руководство"). IMHO, не нужно слишком ужесточать требования там, где не надо: достаточно "Если changelog пакета оформлен единообразно, не нарушайте это единообразие" и разумного смысла. Т.е. "Если предложение начинается с заглавной буквы, то ставим точку, а если со строчной - нет" - это разумно (ещё раз IMHO), а вот present/past - как было в %changelog раньше или на усмотрение автора (если новые записи). Для будущего ИИ-анализатора логов это не должно стать проблемой :-)
Всё-таки логи мы пишем не для ИИ анализатора, а для людей, которые их читают. И единнобразие нужно межпакетное, для всего репозитория.
Большая просьба не превращать этот JOIN в дискуссию. Если вам не нравится, как я проверяю кандидата - пишите в devel/личку/куда угодно. Я руководствуюсь рекомендациями на www.altlinux.org и общими разумными пожеланиями. На мой взгляд единообразие стилей ведения changelog между пакетами очень важно. Просьба поправить и в дальнейшем использовать Past simple.
(Ответ для Anton Farygin на комментарий #60) > +* Wed Mar 05 2025 Nadezhda Fedorova <fedor@altlinux.org> 24.4.1-alt1 > +- 24.4.1 > +- Add fix of ovfEnv reading error from upstream/main. > +- Add update scripts of systemd services. > > В прошлый раз не заметил. У нас есть правило записи в changelog писать в > past simple. > А у вас используется present simple. Добрый день. Исходила из принципа перенятия стиля у предыдущих мэйнтэйнеров изменяемого пакета. Буду иметь ввиду. Поправила. https://packages.altlinux.org/ru/tasks/377093/
(In reply to Надежда from comment #67) > (Ответ для Anton Farygin на комментарий #60) > > +* Wed Mar 05 2025 Nadezhda Fedorova <fedor@altlinux.org> 24.4.1-alt1 > > +- 24.4.1 > > +- Add fix of ovfEnv reading error from upstream/main. > > +- Add update scripts of systemd services. > > > > В прошлый раз не заметил. У нас есть правило записи в changelog писать в > > past simple. > > А у вас используется present simple. > > > Добрый день. Исходила из принципа перенятия стиля у предыдущих мэйнтэйнеров > изменяемого пакета. Буду иметь ввиду. Поправила. > https://packages.altlinux.org/ru/tasks/377093/ Спасибо. Заапрувил.