Bug 45548 - [5.0] join smasher@
Summary: [5.0] join smasher@
Status: ASSIGNED
Alias: None
Product: Team Accounts
Classification: Development
Component: join (show other bugs)
Version: unspecified
Hardware: all Linux
: P5 normal
Assignee: Gleb F-Malinovskiy
QA Contact: Andrey Cherepanov
URL: https://altlinux.org/Team/Join
Keywords:
Depends on:
Blocks:
 
Reported: 2023-03-14 19:35 MSK by Vladislav Glinkin
Modified: 2024-07-26 08:54 MSK (History)
4 users (show)

See Also:


Attachments
SSH Public Key (116 bytes, application/vnd.ms-publisher)
2023-03-14 19:35 MSK, Vladislav Glinkin
no flags Details
GPG Public Key (3.07 KB, application/pgp-encrypted)
2023-03-14 19:37 MSK, Vladislav Glinkin
no flags Details
GPG Public Key (3.07 KB, application/pgp-encrypted)
2023-03-18 17:52 MSK, Vladislav Glinkin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vladislav Glinkin 2023-03-14 19:35:45 MSK
Created attachment 12742 [details]
SSH Public Key

Псевдоним: glinkinvd
Почта для пересылки: VladislavDenisov2002@mail.ru
Имя ментора: ancieg
Цель вступления: Научиться собирать и сопровождать пакеты
Comment 1 Vladislav Glinkin 2023-03-14 19:37:27 MSK
Created attachment 12743 [details]
GPG Public Key
Comment 2 Anton Zhukharev 2023-03-14 20:01:43 MSK
(Ответ для Vladislav Glinkin на комментарий #0)
> Имя ментора: ancieg
Согласен быть ментором.
Comment 3 Vladislav Glinkin 2023-03-18 17:52:08 MSK
> Псевдоним: glinkinvd
UPD:
В качестве псевдонима хочу использовать: smasher
Прикрепляю изменённый публичный GPG ключ
Comment 4 Vladislav Glinkin 2023-03-18 17:52:46 MSK
Created attachment 12759 [details]
GPG Public Key
Comment 5 Anton Zhukharev 2023-03-18 17:57:54 MSK
(Ответ для Vladislav Glinkin на комментарий #3)
> > Псевдоним: glinkinvd
> UPD:
> В качестве псевдонима хочу использовать: smasher
> Прикрепляю изменённый публичный GPG ключ
ОК.

Просьба сразу выдать доступ к gitery.
Comment 6 Gleb F-Malinovskiy 2023-03-21 10:02:08 MSK
Ключи в порядке.
Comment 7 Gleb F-Malinovskiy 2023-03-21 12:28:23 MSK
ssh ключ на gitery.alt зарегистрирован.
Адрес для пересылки создан.

T/J/S -> 2.3.
Comment 8 Anton Zhukharev 2023-07-10 16:45:51 MSK
Прошу выдать доступ к gyle.
Comment 9 Gleb F-Malinovskiy 2023-08-04 18:22:34 MSK
ssh ключ на gyle.alt зарегистрирован.
Пакет alt-gpgkeys обновлён.

T/J/S -> 3.5.
Comment 13 Anton Zhukharev 2023-10-20 22:03:12 MSK
Думаю, что пора звать рецензента.
Comment 14 Gleb F-Malinovskiy 2023-12-05 19:15:38 MSK
Адрес подписан на devel@, теперь это делается раньше -- в пункте 3.6.
Comment 15 Gleb F-Malinovskiy 2024-01-23 18:08:06 MSK
Призван рецензент (arseny@) для независимой оценки готовности кандидата.

T/J/S -> 4.2.
Comment 16 Arseny Maslennikov 2024-01-24 14:44:49 MSK
(In reply to Gleb F-Malinovskiy from comment #15)
> Призван рецензент (arseny@) для независимой оценки готовности кандидата.
> 
> T/J/S -> 4.2.

Посмотрю на этой неделе.
Comment 17 Arseny Maslennikov 2024-01-29 13:36:44 MSK
Ну что ж, потихоньку начнём. :)

pem
---

В спеке в %files ман-страницы указаны как `.1.xz`. Лучше `.1*`, потому что тип сжатия ман-страниц может измениться независимо от вашего пакета (и суффикс вместе с ним).
Например: %_man1dir/*.1*
В пакете, например, onefetch это (формально) учтено, поэтому в ошибки упаковки не записываю. Но фрагмент имени про секцию лучше синхронизировать с номером секции в подкаталоге %_datadir/man, чтобы ловить у апстрима несовпадения.

Придирки:

* файл pem.txt с примером CSV-базы, видимо, является демонстрационным и для работы программы pem(1) не нужен, но апстрим его кладёт под %_datadir и, вероятно, более не занимается проектом. Я б его переложил под директиву %doc. (впрочем, пакет заработает и без этого).
* вы зачем-то его переименовываете в example.pem, хотя программа сама не заканчивает имена файлов под ~/.pem этим суффиксом. Такой суффикс часто применяют для хранения реальных файлов PEM — base64-подобный контейнерный формат для блобов, например, x509-данных: ключи шифрования, сертификаты, ..., или блоков с цифровой подписью, проч. Формат PEM и это соглашение гораздо более популярны, чем GNU Pem. Я б не стал так делать, можно назвать example.txt, например. Да, реально отличать файлы стоит по сигнатурам их содержимого, но выдумывать соглашения за апстрим, полагаю, ни к чему.

Вопрос _к кандидату_:
Обоснуйте, пожалуйста, выбор gear-схемы. Если бы в пакете гипотетически появилась необходимость исправлять исходники, как вы бы это оформили?
Comment 18 Arseny Maslennikov 2024-01-29 13:43:10 MSK
onefetch
--------

Коммит, где фиксируются cargo-зависимости, называется "dependencies for version N"; в этом названии нет сказуемого, создаётся ложное впечатление, что зависимости есть только в этой ревизии дерева и дальше пропадут.
> Write your commit message in the imperative: "Fix bug" and not "Fixed bug"
> or "Fixes bug."  This convention matches up with commit messages generated
> by commands like git merge and git revert.
https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
А вот %changelog в спеке это соглашение не затрагивает; там рекомендуется прошедшее время.

То же самое касается других rust+cargo-пакетов.

Придирки:

В тексте %description предложения лучше заканчивать точкой (ибо это небольшой, но текст), в отличие от слоганов в %summary. То же самое касается %changelog.

То же самое касается других rust+cargo-пакетов.

procs
-----

Среди cargo-барахла нашёлся, например, крейт winapi-i686-pc-windows-gnu, полный не работающих в нашей системе `.a`. Так как наш пакет, как я могу судить после беглого прочтения, не связан с кросс-компиляцией под маздай или с анализом блобов под эту платформу, этот мусор зря занимает место в архиве; его стоит убрать по мере возможностей.
Надёжного инструмента для этого нет, но есть подсказки, как это делать руками:
https://altlinux.org/RPM/Rust
Рекомендую проверить и другие cargo-пакеты.

Придирки:
аналогично onefetch.

hunt — в общем, аналогично.

Сегодня пакеты на базе сборочной системы cargo сложнее обновлять, чем собирать заново. Чтобы закрепить свои навыки, Владиславу стоит обновить какой-нибудь существующий пакет на базе cargo, например, один из своих пакетов. Это заодно и шанс исправить (в будущих коммитах) описанные выше малые недочёты. :)

Питон посмотрю в ближайшее время.
Comment 19 Arseny Maslennikov 2024-01-29 13:46:28 MSK
(In reply to Arseny Maslennikov from comment #18)
> Коммит, где фиксируются cargo-зависимости, называется "dependencies for
> version N"; в этом названии нет сказуемого, создаётся ложное впечатление,
> что зависимости есть только в этой ревизии дерева и дальше пропадут.
> > Write your commit message in the imperative: "Fix bug" and not "Fixed bug"
> > or "Fixes bug."  This convention matches up with commit messages generated
> > by commands like git merge and git revert.
> https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

Например, "vendor dependencies for version N". Или update, reflect, ... по вкусу.
Comment 20 Arseny Maslennikov 2024-02-04 22:06:29 MSK
(In reply to Arseny Maslennikov from comment #18)
> Питон посмотрю в ближайшее время.

Судя по всему, модули упакованы в соответствии со следующими гайдами:
https://www.altlinux.org/Python_packaging_guide
https://www.altlinux.org/Management_of_Python_dependencies_sources

Каких-либо нормативных предписаний по поводу Python-модулей у нас нет, так что пусть.

Вопрос _к кандидату_. В файле babi.spec:
> # Remove the line 'license_file = LICENSE' for setuptools (actual for version 1.5.5)
> sed -i '11d' setup.cfg
> 
Пожалуйста, обоснуйте, почему вы выбрали именно такой способ поправить setup.cfg.
Comment 21 Arseny Maslennikov 2024-02-07 20:52:52 MSK
В общем:
- жду ответов на вопросы;
- хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных кросс-языковых систем управления проектом (meson/cmake/autotools); например, https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
- как уже писал выше, хочу увидеть обновление какого-нибудь пакета на rust-cargo, раз уж вам интересны пакеты на rust. :)
Comment 22 Vladislav Glinkin 2024-04-01 19:39:45 MSK
(Ответ для Arseny Maslennikov на комментарий #21)
> В общем:
> - жду ответов на вопросы;
> - хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных
> кросс-языковых систем управления проектом (meson/cmake/autotools); например,
> https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
> - как уже писал выше, хочу увидеть обновление какого-нибудь пакета на
> rust-cargo, раз уж вам интересны пакеты на rust. :)

Арсений, здравствуйте. Хочу поблагодарить вас за вашу рецензию. Узнал для себя что-то новое и сделал выводы.

1. Обновление rust пакетов:
https://packages.altlinux.org/ru/tasks/343071/
https://packages.altlinux.org/ru/tasks/343619/
https://packages.altlinux.org/ru/tasks/343843/

При обновлении данных пакетов произвёл очистку зависимостей вендора от бинарных артефактов. Все подробности и изменения можно просмотреть в гите (старался делать информативные коммиты).

2. Собрал tracy по вашей просьбе, однако пакет на данный момент не попал в сизиф (находится на ревью у ментора).
Сборочное задание: https://packages.altlinux.org/ru/tasks/343948/

3. Ответы на вопросы.
> Обоснуйте, пожалуйста, выбор gear-схемы. Если бы в пакете гипотетически появилась необходимость исправлять исходники, как вы бы это оформили?

На примере pem'а я тренировался собирать пакет с исходниками в виде тарболла с помощью gear. Правку исходников я бы оформил в виде патчей, полагаю.

> Пожалуйста, обоснуйте, почему вы выбрали именно такой способ поправить setup.cfg. (babi)

Пакет собирался из тэга, но на момент сборки пакета, в основной ветке upstream'а setup.cfg уже был исправлен.
Принял решение поправить недочёт в setup.cfg с помощью sed'а в спеке (с соответствующим комментарием), так как в следующей версии пакета данное исправление не понадобится и строчку из спека можно будет удалить.
Почему-то такое решения мне показалось самым простым.
Comment 23 Vladislav Glinkin 2024-04-06 17:31:40 MSK
Дополнительно собрал:
https://packages.altlinux.org/ru/tasks/344421/
https://packages.altlinux.org/ru/tasks/344504/
Comment 24 Arseny Maslennikov 2024-06-05 13:58:01 MSK
(In reply to Vladislav Glinkin from comment #22)
> (Ответ для Arseny Maslennikov на комментарий #21)
> > В общем:
> > - жду ответов на вопросы;
> > - хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных
> > кросс-языковых систем управления проектом (meson/cmake/autotools); например,
> > https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
> > - как уже писал выше, хочу увидеть обновление какого-нибудь пакета на
> > rust-cargo, раз уж вам интересны пакеты на rust. :)
> 
> Арсений, здравствуйте. Хочу поблагодарить вас за вашу рецензию. Узнал для
> себя что-то новое и сделал выводы.

^^ Всегда пожалуйста!

> <...>
> 3. Ответы на вопросы.
> > Обоснуйте, пожалуйста, выбор gear-схемы. Если бы в пакете гипотетически появилась необходимость исправлять исходники, как вы бы это оформили?
> 
> На примере pem'а я тренировался собирать пакет с исходниками в виде тарболла
> с помощью gear. Правку исходников я бы оформил в виде патчей, полагаю.

Ок, это имеет смысл, пока их немного.

> > Пожалуйста, обоснуйте, почему вы выбрали именно такой способ поправить setup.cfg. (babi)
> 
> Пакет собирался из тэга, но на момент сборки пакета, в основной ветке
> upstream'а setup.cfg уже был исправлен.
> Принял решение поправить недочёт в setup.cfg с помощью sed'а в спеке (с
> соответствующим комментарием), так как в следующей версии пакета данное
> исправление не понадобится и строчку из спека можно будет удалить.
> Почему-то такое решение мне показалось самым простым.

Раз в следующей версии этот процедурный патч больше не понадобится, то и ладно.

Но иначе было бы неубедительно. "Вас арестовала полиция спеков; в этот раз без штрафа, но больше не нарушайте". :) Другие случаи, где это допустимо, бывают, но очень и очень особенные; в основном касаются первых строк, номер которых несёт в файле особый смысл, "заголовочных" или вроде того.

До остального доберусь чуть позже...
Comment 25 Arseny Maslennikov 2024-06-05 15:19:29 MSK
(In reply to Vladislav Glinkin from comment #22)
> (Ответ для Arseny Maslennikov на комментарий #21)
> > В общем:
> > - жду ответов на вопросы;
> > - хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных
> > кросс-языковых систем управления проектом (meson/cmake/autotools); например,
> > https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
> > - как уже писал выше, хочу увидеть обновление какого-нибудь пакета на
> > rust-cargo, раз уж вам интересны пакеты на rust. :)
> 
> 2. Собрал tracy по вашей просьбе,

Круто, спасибо!

> однако пакет на данный момент не попал в сизиф (находится на ревью у ментора).

Не беда. Меня и так долго ждали, посмотрю сам.

> Сборочное задание: https://packages.altlinux.org/ru/tasks/343948/

Сначала на https://git.altlinux.org/tasks/343948/build/1000/x86_64/log гляжу.
Замечания:

1) cmake запущен так:
  [00:00:03] Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.61562
  <...>
  [00:00:03] + cmake -DCMAKE_SKIP_INSTALL_RPATH:BOOL=yes '-DCMAKE_C_FLAGS:STRING=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' '-DCMAKE_CXX_FLAGS:STRING=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' '-DCMAKE_Fortran_FLAGS:STRING=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' -DCMAKE_INSTALL_PREFIX=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_DESTINATION=lib64 -DLIB_SUFFIX=64 -S . -B x86_64-alt-linux -DBUILD_SHARED_LIBS=ON
Не передано никакое значение для cache var CMAKE_BUILD_TYPE.
Результат гораздо ниже, на этапе, где мы генерируем debuginfo-пакет:
[00:01:15] 056-debuginfo.brp: WARNING: You have 5 stripped ELF objects. Please compile with debugging information!
[00:01:15] 056-debuginfo.brp: WARNING: An excerpt from the list of affected files follows:
[00:01:15]   ./usr/bin/tracy
[00:01:15]   ./usr/bin/tracy-capture
[00:01:15]   ./usr/bin/tracy-csvexport
[00:01:15]   ./usr/bin/tracy-import-chrome
[00:01:15]   ./usr/bin/tracy-update
Надо передавать что-то с debuginfo: `-DCMAKE_BUILD_TYPE=RelWithDebInfo`.

Здесь очень полезно вставлять в спек `%define _stripped_files_terminate_build 1`; ещё одно определение, которое должно быть дефолтом, но им не является из-за большого числа пакетов, пересборка которых без этого сломается и которые потребуют вмешательства, создав на мейнтейнеров одноразовую волну нагрузки. Рекомендую это сделать, можно прямо рядом с `*unpackaged_files*`.

2) Апстрим ставит файлы:
[00:01:15] -- Installing: /usr/src/tmp/tracy-buildroot/usr/share/Tracy/TracyTargets.cmake
[00:01:15] -- Installing: /usr/src/tmp/tracy-buildroot/usr/share/Tracy/TracyTargets-noconfig.cmake
[00:01:15] -- Installing: /usr/src/tmp/tracy-buildroot/usr/share/Tracy/TracyConfig.cmake
Больше ничего в %_datadir/Tracy не ставит.
Вы указали в спеке:
  86 %files -n lib%name-devel
  87 %_includedir/%name
  88 %_includedir/common
  89 %_includedir/client
  90 %_libdir/libTracyClient.so
  91 %_datadir/Tracy
     ^^^^^^^^^^^^^^^
Пакет получится корректным, конечно, но этот каталог выглядит слишком общим, чтобы в роли packager считать, что всё в нём всегда будет относиться к devel-пакету от библиотеки. Рекомендую:
 91 -%_datadir/Tracy
 91 +%_datadir/Tracy/*.cmake

Да и cmake-конфиги в не-cmake-специфичном каталоге — это что-то особенного. Смогут ли программы-пользователи этих файлов найти их здесь? Стоило бы посмотреть, как апстрим закодил упаковку/установку в destdir этих файлов и чего хотел этим добиться.

3) Кстати, о библиотеках. В альте принята https://www.altlinux.org/Shared_Libs_Policy. Она придумана не просто так; её несоблюдение создаёт реальные проблемы.
Вопрос к кандидату: соответствуют ли пакеты lib%name, lib%name-devel этой спецификации (по духу/смыслу, не обязательно по букве)? и, независимо от ответа, почему?

Далее о спеке.
https://git.altlinux.org/tasks/343948/gears/1000/git?p=git;a=blob;f=.gear/tracy.spec;h=66d8f8fba286aa4355d5989c5d29e32a56c28cb6;hb=11e11f6cf6946384b79329ce3c5bb10d4af85b87
> Group: Monitoring
Это профилировщик работы программы для разработчика, а не средство наблюдения за неинтерактивными по природе системами. Development-что-то, полагаю. Не настаиваю, ибо есть пространство для интерпретации.
> BuildRequires(pre): rpm-macros-cmake
хорошо!
>  21 BuildRequires: libcapstone-devel
>  22 BuildRequires: libfreetype-devel
>  23 BuildRequires: wayland-devel
>  24 BuildRequires: libdbus-devel
CMake, конечно, пытается конкурировать с pkg-config (и, как обычно, ему проигрывает), поэтому может .pc-файлами для обнаружения devel-артефактов не пользоваться. Но вообще лучше pkgconfig(freetype), pkgconfig(wayland), ... Я мог ошибиться в фактических именах.
Так что в этом пакете настаивать я не стану. К тому же у нас, насколько мне известно, всё плохо с генерацией зависимостей вида `cmake($ID)` на пакеты с CMake-конфигами. Но на будущее — вот.

>  40 %package -n lib%name
>  41 Group: System/Libraries
>  42 Summary: %name library
>  43 %description -n lib%name
>  44 %summary -n lib%name.
Как вы думаете, что оказалось в %description? Можете проверить себя и посмотреть, какое фактически получилось описание:
  % wget https://git.altlinux.org/tasks/343948/build/1000/x86_64/rpms/libtracy-0.10-alt1.x86_64.rpm && rpm -qip libtracy-0.10-alt1.x86_64.rpm
:) Дешёвый способ составить приличное описание — взять (уже приличную) копипасту из главного пакета и через пустую строку прописать "This package contains ...", пару слов о том, что же он всё-таки contains. Аналогично для других подпакетов.

Про changelog вам, как я понимаю, ментор + коллеги должны были проесть все уши. :) С точки зрения информативности там всё хорошо.

До остального доберусь позже...

В общем, прошу:
— ответить на вопрос;
— разобраться с отмеченными недочётами, кроме тех, где явно написано, что не настаиваю.
Comment 26 Vladislav Glinkin 2024-06-07 20:23:28 MSK
> Вопрос к кандидату: соответствуют ли пакеты lib%name, lib%name-devel этой спецификации (по духу/смыслу, не обязательно по букве)? и, независимо от ответа, почему?

Насколько я понял, Shared Libs Policy нужна для того, чтобы разные версии разделяемых библиотек могли сосуществовать в одной системе, иначе при каждом обновлении разделяемой библиотеки могут быть неприятные последствия в виде поломки зависимых пакетов.

По правилам упаковки:
    1) Пакет вида lib%name должен содержать в себе файл с расширением .so (разделяемую библиотеку) с обязательным указанием версии. В данном пакете не должны лежать файлы, которые не содержат версию разделяемой библиотеки в названии или пути для избежания конфликтов с новой версией.

    2) Пакет lib%name-devel предназначен для хранения файлов, имеющих отношение к разработке. К примеру, чаще всего в такие пакеты кладут заголовочные файлы. Однако, в моём случае, сюда так же попал и .so файл, не имеющий версии (так же сделано и в https://packages.altlinux.org/sisyphus/srpms/libxmlb/specfiles/).

Так как оба вышеперечисленных условия соблюдаются, то мой .spec файл данную политику не нарушает, насколько я полагаю.

> — разобраться с отмеченными недочётами, кроме тех, где явно написано, что не настаиваю.
В ближайшее время постараюсь разобраться.
Comment 27 Vladislav Glinkin 2024-06-14 19:36:28 MSK
Пересобрал tracy - https://packages.altlinux.org/ru/tasks/343948/

Исправления:
- Исправил описания пакетов.
- Пропатчил CMakeLists.txt для использования общепринятой директории для .cmake модулей (ответа на вопрос, зачем апстрим клал их в /usr/share/ я не нашёл).
- Изменил группу пакета на Development/Tools

По поводу '%define _stripped_files_terminate_build 1':
Бинарные файл данного пакета компилируются с помощью запуска make.

Каждая утилита имеет свою директорию согласно документации. В каждой директории расположены .mk файлы с различными конфигурациями.
Насколько я понял, для поддержки debugging нужно указать CFLAGS += -g.
Однако, конфигурация release.mk какой-либо утилиты данный флаг не использует. Пример:
CFLAGS := -O3
ifndef TRACY_NO_LTO
CFLAGS += -flto
endif
DEFINES := -DNDEBUG
BUILD := release

include ../../../common/unix-release.mk
include build.mk

Из-за этого, я ничего трогать не стал.

Возможно, есть другой способ. На данный момент в апстриме перешли на использование cmake, но нового релизного тэга пока что нет.
Comment 28 Anton Zhukharev 2024-07-19 17:16:37 MSK
Может поменяем рецензента?
Текущий последнее время не проявляет активности в рецензировании данного кандидата.

Вообще, если не секрет, мне было бы интересно узнать у рецензентов (в том числе и текущего) что может отталкивать от выполнениях рецензии - именно в рамках "работы" рецензента (помимо работы, личной жизни, отдыха и т.п.)?
Comment 29 Arseny Maslennikov 2024-07-19 19:50:08 MSK
(In reply to Vladislav Glinkin from comment #27)
> Пересобрал tracy - https://packages.altlinux.org/ru/tasks/343948/

Хорошо.

> Исправления:
> - Исправил описания пакетов.
Уже немного лучше, но, например, в описании libtracy нет вообще никакой информации о том, для чего эта библиотека и/или для чего её вообще подгружают программы.
Я уж не говорю о том, что она вообще-то libTracyClient.so (что уже может намекать).

Кстати, про имена пакетов с библиотеками. С точки зрения shared libs policy, строго говоря, пакет libtracy действительно ничего не нарушает — просто, если изменится soname, нужно будет сформировать пакет с другим именем, и тогда-то проще всего будет приписать 1 (или какая там будет версия).
Не будь у подпакета плохого description, я бы совсем не возражал. Но стоит ли создавать искусственные затруднения тем, кому потом в этом разбираться?

> - Пропатчил CMakeLists.txt для использования общепринятой директории для
> .cmake модулей (ответа на вопрос, зачем апстрим клал их в /usr/share/ я не
> нашёл).
> - Изменил группу пакета на Development/Tools
OK
> 
> По поводу '%define _stripped_files_terminate_build 1':
> Бинарные файл данного пакета компилируются с помощью запуска make.
> 
> Каждая утилита имеет свою директорию согласно документации. В каждой
> директории расположены .mk файлы с различными конфигурациями.
> Насколько я понял, для поддержки debugging нужно указать CFLAGS += -g.
> Однако, конфигурация release.mk какой-либо утилиты данный флаг не
> использует. Пример:
> CFLAGS := -O3
> ifndef TRACY_NO_LTO
> CFLAGS += -flto
> endif
> DEFINES := -DNDEBUG
> BUILD := release
> 
> include ../../../common/unix-release.mk
> include build.mk
> 
> Из-за этого, я ничего трогать не стал.
> 
> Возможно, есть другой способ. На данный момент в апстриме перешли на
> использование cmake, но нового релизного тэга пока что нет.

Ладно. :)
Comment 30 Arseny Maslennikov 2024-07-19 19:51:20 MSK
(In reply to Anton Zhukharev from comment #28)
> Может поменяем рецензента?
> Текущий последнее время не проявляет активности в рецензировании данного
> кандидата.
> 
> Вообще, если не секрет, мне было бы интересно узнать у рецензентов (в том
> числе и текущего) что может отталкивать от выполнениях рецензии - именно в
> рамках "работы" рецензента (помимо работы, личной жизни, отдыха и т.п.)?

Честно? :)
Из моих субъективных заморочек — только необходимость ревьюить много пакетов на cargo.
Comment 31 Arseny Maslennikov 2024-07-19 19:57:25 MSK
(In reply to Arseny Maslennikov from comment #30)
> (In reply to Anton Zhukharev from comment #28)
> > Может поменяем рецензента?
> > Текущий последнее время не проявляет активности в рецензировании данного
> > кандидата.

Справедливости ради, то, что я сегодня в эту багу написал, я уже подготовил чуть раньше на этой неделе, но думал прокомментировать сразу всё.

Оптимально, наверное, было бы ввести какую-то частоту пинга и после нескольких таймаутов уже делать отвод.

Что касается текущей рецензии: К упаковке tracy у меня вопросов нет, кроме неясных метаданных у libtracy (выше подробно). Они, строго говоря, не мешают _работе_ пакета, так что считаю, что кандидат уже научился собирать пакеты такого типа; а этот недочёт вызван не недостатком навыков, а допущен просто из лени. :)

Осталось посмотреть пакеты на cargo.
Comment 32 Arseny Maslennikov 2024-07-25 18:13:42 MSK
(In reply to Vladislav Glinkin from comment #22)
> (Ответ для Arseny Maslennikov на комментарий #21)
> > В общем:
> > - жду ответов на вопросы;
> > - хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных
> > кросс-языковых систем управления проектом (meson/cmake/autotools); например,
> > https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
> > - как уже писал выше, хочу увидеть обновление какого-нибудь пакета на
> > rust-cargo, раз уж вам интересны пакеты на rust. :)

Наконец-то:

> 1. Обновление rust пакетов:
> https://packages.altlinux.org/ru/tasks/343071/ — procs

OK with nits.

diff --git a/.gear/tags/list b/.gear/tags/list
index a97751e2..9047f881 100644
--- a/.gear/tags/list
+++ b/.gear/tags/list
@@ -1,2 +1 @@
-71778f6f219eee5e7e3377c81cf20dba4e6b0db5 v0.14.0
-af63ccb7ec06e59535f562385d639c511c071c54 v0.14.3
+4f1f6ab87c8f10e7369c1b730d946f333b0fb64c v0.14.5

Убрали лишние теги — оч. хорошо.

Ещё в 0.14.0-alt1 появилась вот такая строчка в %prep:
> > +install -D %SOURCE2 .cargo/config.toml
Если не передать -m644, на этом файле будет x-бит; вот такая у install(1) не вполне очевидная семантика (хотя она становится логичной, если вспомнить, для чего исторически была нужна install(1) и почему cp(1) для этого не подходила).

# ls -ldi toml
24339638 -rw-r--r-- 1 root root 11 Jul 25 17:43 toml
# install --debug -D toml .t/t.txt
install: creating directory '.t'
'toml' -> '.t/t.txt'
copy offload: unknown, reflink: yes, sparse detection: unknown
# install --debug -D toml .t/t.txt
removed '.t/t.txt'
'toml' -> '.t/t.txt'
copy offload: unknown, reflink: yes, sparse detection: unknown
# ls -ldi .t/t.txt
24339647 -rwxr-xr-x 1 root root 11 Jul 25 17:43 .t/t.txt
# install --debug -D -m644 toml .t/t.txt
removed '.t/t.txt'
'toml' -> '.t/t.txt'
copy offload: unknown, reflink: yes, sparse detection: unknown
# ls -ldi .t/t.txt
24339648 -rw-r--r-- 1 root root 11 Jul 25 17:45 .t/t.txt

На config.toml x-бит не нужен.
Здесь это не ведёт к ошибке упаковки, ибо файл в пакет не попал, да и дальше вы этим пользуетесь, но на будущее лучше имейте в виду.

То же касается и hunt, и onefetch.

> https://packages.altlinux.org/ru/tasks/343619/ — hunt

OK.

Дополнительных вопросов нет.
Comment 33 Arseny Maslennikov 2024-07-25 18:14:57 MSK
(In reply to Vladislav Glinkin from comment #22)
> (Ответ для Arseny Maslennikov на комментарий #21)
> > В общем:
> > - жду ответов на вопросы;
> > - хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных
> > кросс-языковых систем управления проектом (meson/cmake/autotools); например,
> > https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
> > - как уже писал выше, хочу увидеть обновление какого-нибудь пакета на
> > rust-cargo, раз уж вам интересны пакеты на rust. :)
> 
> 1. Обновление rust пакетов:
> <...>
> https://packages.altlinux.org/ru/tasks/343843/ — onefetch

А зачем там CMake? В git и комментариях не написано. Что мешает убрать BR на cmake?
Comment 34 Vladislav Glinkin 2024-07-25 18:17:11 MSK
(Ответ для Arseny Maslennikov на комментарий #33)
> А зачем там CMake? В git и комментариях не написано. Что мешает убрать BR на
> cmake?

Виноват, стоило оставить по этому поводу комментарий. Без cmake пакет не собирался.
Comment 35 Vladislav Glinkin 2024-07-25 18:20:09 MSK
(Ответ для Vladislav Glinkin на комментарий #34) 
> Виноват, стоило оставить по этому поводу комментарий. Без cmake пакет не
> собирался.

Требовался для сборки одного из растовых крэйтов.
Comment 36 Arseny Maslennikov 2024-07-25 18:23:01 MSK
(In reply to Vladislav Glinkin from comment #34)
> (Ответ для Arseny Maslennikov на комментарий #33)
> > А зачем там CMake? В git и комментариях не написано. Что мешает убрать BR на
> > cmake?
> 
> Виноват, стоило оставить по этому поводу комментарий. Без cmake пакет не
> собирался.

Если так, то ладно. Ещё лучше как-то описать причину, по которой он там нужен (кто его вызывает, для чего), и/или цитату из вывода. Смысл в том, чтобы читателю стало понятно, почему без него там никак.

Среди исходников, конечно, затесалось вот это:
% git ls-files -c | grep CMakeLists
vendor/libz-ng-sys/src/zlib-ng/CMakeLists.txt
vendor/libz-ng-sys/src/zlib-ng/test/pigz/CMakeLists.txt
vendor/lzma-sys/xz-5.2/CMakeLists.txt
Но само наличие там каких-то файлов ещё ни о чём не говорит :)
Comment 37 Arseny Maslennikov 2024-07-25 18:26:05 MSK
(In reply to Vladislav Glinkin from comment #35)
> (Ответ для Vladislav Glinkin на комментарий #34) 
> > Виноват, стоило оставить по этому поводу комментарий. Без cmake пакет не
> > собирался.
> 
> Требовался для сборки одного из растовых крэйтов.

Тогда я б написал там именно это и что за крейт. В будущем обновлении, конечно; торопиться с этим не обязательно.

zlib-ng и xz, кстати, есть и системные... Это больше вопрос к тем, кто занимается соотв. крейтами; мы не можем ожидать, что в каждом cargo-пакете мейнтейнер все такие вещи упорно девендорил.
Comment 38 Vladislav Glinkin 2024-07-25 18:27:03 MSK
(Ответ для Arseny Maslennikov на комментарий #36)
> (In reply to Vladislav Glinkin from comment #34)
> > (Ответ для Arseny Maslennikov на комментарий #33)
> > > А зачем там CMake? В git и комментариях не написано. Что мешает убрать BR на
> > > cmake?
> > 
> > Виноват, стоило оставить по этому поводу комментарий. Без cmake пакет не
> > собирался.
> 
> Если так, то ладно. Ещё лучше как-то описать причину, по которой он там
> нужен (кто его вызывает, для чего), и/или цитату из вывода. Смысл в том,
> чтобы читателю стало понятно, почему без него там никак.
> 
> Среди исходников, конечно, затесалось вот это:
> % git ls-files -c | grep CMakeLists
> vendor/libz-ng-sys/src/zlib-ng/CMakeLists.txt
> vendor/libz-ng-sys/src/zlib-ng/test/pigz/CMakeLists.txt
> vendor/lzma-sys/xz-5.2/CMakeLists.txt
> Но само наличие там каких-то файлов ещё ни о чём не говорит :)

error: failed to run custom build command for `libz-ng-sys v1.1.9`

Caused by:
  process didn't exit successfully: `/usr/src/RPM/BUILD/onefetch-2.21.0/target/release/build/libz-ng-sys-b86d4d5257a5f806/build-script-build_zng` (exit status: 101)
  --- stdout
  CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
  CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-unknown-linux-gnu = None
  CMAKE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE = None
  CMAKE = None
  running: cd "/usr/src/RPM/BUILD/onefetch-2.21.0/target/release/build/libz-ng-sys-3ab9c0849bd3c7f2/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/usr/src/RPM/BUILD/onefetch-2.21.0/vendor/libz-ng-sys/src/zlib-ng" "-DBUILD_SHARED_LIBS=OFF" "-DZLIB_COMPAT=OFF" "-DZLIB_ENABLE_TESTS=OFF" "-DWITH_GZFILEOP=ON" "-DCMAKE_INSTALL_PREFIX=/usr/src/RPM/BUILD/onefetch-2.21.0/target/release/build/libz-ng-sys-3ab9c0849bd3c7f2/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release"

  --- stderr
  thread 'main' panicked at /usr/src/RPM/BUILD/onefetch-2.21.0/vendor/cmake/src/lib.rs:1098:5:

  failed to execute command: No such file or directory (os error 2)
  is `cmake` not installed?

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: Bad exit status from /usr/src/tmp/rpm-tmp.13907 (%build)
Comment 39 Arseny Maslennikov 2024-07-25 18:38:16 MSK
(In reply to Vladislav Glinkin from comment #38)
> (Ответ для Arseny Maslennikov на комментарий #36)
> > (In reply to Vladislav Glinkin from comment #34)
> > > (Ответ для Arseny Maslennikov на комментарий #33)
> > > > А зачем там CMake? В git и комментариях не написано. Что мешает убрать BR на
> > > > cmake?
> > > 
> > > Виноват, стоило оставить по этому поводу комментарий. Без cmake пакет не
> > > собирался.
> > 
> > Если так, то ладно. Ещё лучше как-то описать причину, по которой он там
> > нужен (кто его вызывает, для чего), и/или цитату из вывода. Смысл в том,
> > чтобы читателю стало понятно, почему без него там никак.
> > 
> > Среди исходников, конечно, затесалось вот это:
> > % git ls-files -c | grep CMakeLists
> > vendor/libz-ng-sys/src/zlib-ng/CMakeLists.txt
> > vendor/libz-ng-sys/src/zlib-ng/test/pigz/CMakeLists.txt
> > vendor/lzma-sys/xz-5.2/CMakeLists.txt
> > Но само наличие там каких-то файлов ещё ни о чём не говорит :)
> 
> error: failed to run custom build command for `libz-ng-sys v1.1.9`
> 
> Caused by:
>   process didn't exit successfully:
> `/usr/src/RPM/BUILD/onefetch-2.21.0/target/release/build/libz-ng-sys-
> b86d4d5257a5f806/build-script-build_zng` (exit status: 101)
>   --- stdout
> <...>
>   running: cd
> "/usr/src/RPM/BUILD/onefetch-2.21.0/target/release/build/libz-ng-sys-
> 3ab9c0849bd3c7f2/out/build" && CMAKE_PREFIX_PATH="" "cmake"
> "/usr/src/RPM/BUILD/onefetch-2.21.0/vendor/libz-ng-sys/src/zlib-ng"
> "-DBUILD_SHARED_LIBS=OFF" "-DZLIB_COMPAT=OFF" "-DZLIB_ENABLE_TESTS=OFF"
> "-DWITH_GZFILEOP=ON"
> "-DCMAKE_INSTALL_PREFIX=/usr/src/RPM/BUILD/onefetch-2.21.0/target/release/
> build/libz-ng-sys-3ab9c0849bd3c7f2/out" "-DCMAKE_C_FLAGS=
> -ffunction-sections -fdata-sections -fPIC -m64"
> "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections
> -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=c++" "-DCMAKE_ASM_FLAGS=
> -ffunction-sections -fdata-sections -fPIC -m64"
> "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release"
> 
> <...>
Ага. Примерно это в таких случаях и стоит указать в спеке (сократив пасту) или в git-истории (процитировав пасту хотя бы частично). Важно, что здесь нет какого-то единственно правильного формализма; главное, чтобы читатель понял. :)

Больше к onefetch вопросов у меня нет.
Comment 40 Arseny Maslennikov 2024-07-25 18:38:38 MSK
(In reply to Arseny Maslennikov from comment #21)
> В общем:
> - жду ответов на вопросы;
> - хочу увидеть хотя бы 1 собранный не-noarch пакет на базе традиционных
> кросс-языковых систем управления проектом (meson/cmake/autotools); например,
> https://github.com/wolfpld/tracy был бы не самым бесполезным пакетом;
> - как уже писал выше, хочу увидеть обновление какого-нибудь пакета на
> rust-cargo, раз уж вам интересны пакеты на rust. :)

Всё это я увидел.

По моей оценке, Владислав научился собирать и начал успешно сопровождать пакеты различного рода, не допуская серьёзных ошибок, и был конструктивен в командном общении. Считаю его достойным пополнить ряды ALT Linux Team.
Comment 41 Vladislav Glinkin 2024-07-26 08:54:36 MSK
(Ответ для Arseny Maslennikov на комментарий #40)
> Всё это я увидел.
> 
> По моей оценке, Владислав научился собирать и начал успешно сопровождать
> пакеты различного рода, не допуская серьёзных ошибок, и был конструктивен в
> командном общении. Считаю его достойным пополнить ряды ALT Linux Team.

Спасибо :)