Bug 45886

Summary: [3.6] join guschin@
Product: Team Accounts Reporter: Andrew Guschin <guschin.drew>
Component: joinAssignee: Gleb F-Malinovskiy <glebfm>
Status: ASSIGNED --- QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P5 CC: asheplyakov, glebfm, grenka, guschin.drew, iv, lav, ldv, nir, nir, sin, sova
Version: unspecified   
Hardware: all   
OS: Linux   
URL: https://altlinux.org/Team/Join
Attachments:
Description Flags
GPG ключ
none
SSH ключ none

Description Andrew Guschin 2023-04-17 14:07:13 MSK
Псевдоним       : guschin
Почта           : Andrew Guschin <guschin@altlinux.org>
Пересылка почты : guschin.drew@gmail.com
Имя ментора     : Игорь Чудов
Почта ментора   : nir@altlinux.org
Моя цель        : Научиться собирать пакеты
Comment 1 Vitaly Lipatov 2023-04-29 10:24:17 MSK
Игорь, подтвердите, пожалуйста, что вы согласны на менторство.
Comment 2 Gleb F-Malinovskiy 2023-05-02 13:35:33 MSK
Эта заявка недооформлена.
Можете переоткрыть баг когда решите её оформить.
Comment 3 Andrew Guschin 2023-05-02 14:37:22 MSK
Created attachment 13071 [details]
GPG ключ
Comment 4 Andrew Guschin 2023-05-02 14:37:50 MSK
Created attachment 13072 [details]
SSH ключ
Comment 5 Andrew Guschin 2023-05-02 14:41:27 MSK
Прикрепил свои SSH и GPG ключи.
Comment 6 Igor Chudov 2023-05-02 14:44:32 MSK
Добрый день.

Подтверждаю согласие на менторство.

(Ответ для Vitaly Lipatov на комментарий #1)
> Игорь, подтвердите, пожалуйста, что вы согласны на менторство.
Comment 7 Igor Chudov 2023-05-02 14:53:02 MSK
Было вынесено предложение собрать Digital Speech Decoder:

https://github.com/szechyjs/dsd
Comment 8 Igor Chudov 2023-05-02 15:03:21 MSK
Коллеги сообщили, что DSD уже есть в Sisyphus, потому есть предложение рассмотреть vosk-api:

https://github.com/alphacep/vosk-api
Comment 9 Andrew Guschin 2023-05-17 17:59:11 MSK
В рамках работы над опакечиванием vosk-api понадобилось также опакетить библиотеки kaldi и openfst. Опакечивание openfst сейчас ведётся в https://github.com/vasthecat/openfst/tree/alt-package. Сам пакет пока не собирается, пытаюсь выяснить причины проблем. Остальные две библиотеки будут добавлены когда получится опакетить openfst.
Comment 10 Andrew Guschin 2023-05-22 11:49:40 MSK
Добавлены spec-файлы для vosk-api и kaldi
- https://github.com/vasthecat/vosk-api/tree/alt-package
- https://github.com/vasthecat/libkaldi-vosk/tree/alt-package
Comment 11 Gleb F-Malinovskiy 2023-05-26 11:47:59 MSK
(In reply to Andrew Guschin from comment #3)
> Created attachment 13071 [details]
> GPG ключ
Ok.

(In reply to Andrew Guschin from comment #4)
> Created attachment 13072 [details]
> SSH ключ
Ok.
Comment 12 Andrew Guschin 2023-06-02 11:15:49 MSK
Добрый день.

Закончил работу над пакетированием:
- https://github.com/vasthecat/openfst
- https://github.com/vasthecat/libkaldi-vosk
- https://github.com/vasthecat/vosk-api
Comment 13 Igor Chudov 2023-06-05 14:18:43 MSK
Ключи посмотрел, вопросов не вызвало. Прошу создать почтовый псевдоним и зарегистрировать кандидата на соответствующих ресурсах.
Comment 14 Gleb F-Malinovskiy 2023-06-08 18:17:11 MSK
ssh ключ на gitery.alt зарегистрирован.
Адрес для пересылки создан.     

T/J/S -> 2.3.
Comment 15 Andrew Guschin 2023-07-03 18:58:54 MSK
Переработал пакеты по совету прошлого ментора. Пакет libkaldi-vosk убран, так как не имеет особого смысла добавлять его в сизиф (для vosk-api нужен вариант из их форка с определённой ветки, upstream не подходит). В самом vosk-api добавлена сборка биндинга для python, для этого понадобился новый пакет python3-module-srt. libkaldi лежит исходниками в архиве внутри репозитория.

- https://git.altlinux.org/people/guschin/packages/?p=vosk-api.git;a=summary
- https://git.altlinux.org/people/guschin/packages/?p=openfst.git;a=summary
- https://git.altlinux.org/people/guschin/packages/?p=python3-module-srt.git;a=summary

Также хотел бы добавить пакет kernel-image-mcom03-def, но сейчас не хватает квоты.
Comment 16 Andrew Guschin 2023-07-20 14:39:41 MSK
Хотел бы добавить также пакет с новым flavour ядра mcom03-def. Лежит в репозитории [1] в соответствующей ветке.

Как я понимаю, ментору на этом этапе нужно дать какие-то комментарии по собранным пакетам. nir@, вы всё ещё можете посмотреть это или мне лучше сменить ментора?

[1]: https://git.altlinux.org/people/guschin/packages/?p=kernel-image-std-def.git;a=shortlog;h=mcom03-def
Comment 17 Andrew Guschin 2023-08-15 15:49:28 MSK
Добрый день. Хотел бы изменить ментора на Ивана Мельникова iv@.
Comment 18 Gleb F-Malinovskiy 2023-11-08 19:51:15 MSK
(In reply to Andrew Guschin from comment #17)
> Добрый день. Хотел бы изменить ментора на Ивана Мельникова iv@.
Тут нет никакой проблемы, но новый ментор должен явно на это согласиться.
Comment 19 Ivan A. Melnikov 2023-11-15 15:29:08 MSK
(In reply to Andrew Guschin from comment #17)
> Добрый день. Хотел бы изменить ментора на Ивана Мельникова iv@.

Я не против, я просто медленный. Андрей, извини.

Да, я согласен быть ментором Андрея, мы об этом договаривались.
Comment 20 Ivan A. Melnikov 2023-11-15 15:46:16 MSK
(In reply to Andrew Guschin from comment #16)
> https://git.altlinux.org/people/guschin/packages/?p=kernel-image-std-def.git;
> a=shortlog;h=mcom03-def

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

Также я бы всё-таки почистил некотороые мелочи, даже если они "унаследованны"
- epoch с маленькой буквы это нехорошо
- есть мусор вроде kernel_base_version или def_disable oss, который, мне кажется, не стоит сохранять.
Comment 21 Ivan A. Melnikov 2023-11-15 15:59:22 MSK
> https://git.altlinux.org/people/guschin/packages/?p=python3-module-srt.git;a=summary

Я бы всё-таки сделал gear-tag и собирал из него.

Также рекомендуется summary покороче и description поразвёрнутее.
Comment 22 Ivan A. Melnikov 2023-11-15 16:14:13 MSK
> https://git.altlinux.org/people/guschin/packages/?p=vosk-api.git;a=summary

Я бы всё-таки сделал gear-tag и собирал из него.

Summary, опять же, можно и покороче.

К патчам, если они хранятся отдельно, стоит относится как к коммитам: делать одним патчем одно, давать им нормальное описание, следовать рекомендациям по их именованию
(https://www.altlinux.org/ALT_Packaging_HOWTO#Наименование_патчей).

> +BuildRequires: libclapack-devel

Правда что ли?

> +Requires: libfst
> +Requires: liblapack
> +Requires: libopenblas
> +Requires: libxblas

Если эти зависимости находятся автоматически, такие Requires не нужны.

Если эти зависимости не находятся автоматически, нужен комментарий, в котором будет сказано, почему они не находятся автоматически. Также, возможно, их стоит делать более точными (по soname или имени библиотеки).

А ешё -- openblas и xblas в одном флаконе. Зачем?

> Requires: %name python3(srt) python3(websockets) python3(tqdm)

То же самое. Почему AutoReq этого не находит?
Comment 23 Ivan A. Melnikov 2023-11-15 16:30:29 MSK
> https://git.altlinux.org/people/guschin/packages/?p=openfst.git;a=summary

Я не против сборки из тарбола (я пока не смотрел, есть ли у апстрима публичная VCS, но даже если есть, "мне так удобнее" это достойный аргумент).

Однако при этом есть определённые конвенции: тарбол кладётся в подкаталог, чтобы потом можно было использовать gear-update  при обновлении. Спек и патчи тогда можно класть в корень репозитория, а не прятать в .gear.

> +%files -n %lname
> +%_libdir/libfst*
> +%_libdir/fst/*.la
> +%_libdir/fst/*.so

*.la нужны для работы, или это всё-таки в -devel?

%_libdir/libfst* все нужны для работы, или что-то их можно положить в -devel?


> +%files -n %lname-devel
Почему не запакован каталог %_includedir/fst? Зачем перечислять все файлы?
Comment 24 Ivan A. Melnikov 2023-11-15 16:34:17 MSK
> https://git.altlinux.org/people/guschin/packages/?p=openfst.git;a=summary
> %set_verify_elf_method rpath=relaxed

Может это всё-таки можно нормально починить?
Comment 26 Ivan A. Melnikov 2024-04-01 11:23:21 MSK
> https://git.altlinux.org/people/guschin/packages/?p=vosk-api.git;a=summary

Я наконец рассмотрел, что происходит с тарболом kadi. Паковать его в общий тарбол а потом брать из .gear -- это нехорошо. Всё-таки лучше бы

- не класть .gear в тарбол vosk-api (exclude=.gear/**, а лучше собирать из gear-тега)
- сделать для kadi отдельный Source.

По мелочам:
- URL нужен, можно такой же или вместо VCS
- я не увидел, зачем нужен patchelf. он правда нужен?
- не думаю, что править .gitignore -- хорошая идея; если всё-таки править, то отдельным коммитом, так как это изменение не относится к сборке пакета.
Comment 27 Ivan A. Melnikov 2024-04-01 11:34:57 MSK
> https://git.altlinux.org/people/guschin/packages/?p=python3-module-srt.git;a=summary

Можно подробнее, что там не так с gear-тегом и pytest'ом?
Comment 28 Grigory Ustinov 2024-04-01 12:26:39 MSK
(Ответ для Ivan A. Melnikov на комментарий #27)
> > https://git.altlinux.org/people/guschin/packages/?p=python3-module-srt.git;a=summary
> 
> Можно подробнее, что там не так с gear-тегом и pytest'ом?

Кандидат видимо не осилил:
sed -i 's/ -n auto//' tox.ini
Ну а если без издёвки, то не обязательно пользоваться токсовым макросом, можно было бы запустить тесты например через %pyproject_run_pytest ну или даже просто через py.test-3. Хочу так же обратить внимание, что pytest является далеко не единственным способом тестировать питоновские модули. Разные апстримы могут это делать по-разному. Но как бы то ни было, такая мелочь не является основанием для отключения тестов.
Comment 29 Ivan A. Melnikov 2024-04-01 12:31:50 MSK
>  https://git.altlinux.org/people/guschin/packages/?p=openfst.git;a=summary

Очень странно распределены файлы между libfst и libfst-devel. Андрей, давай разбираться, что это за файлы и зачем они нужны.
Comment 30 Ivan A. Melnikov 2024-04-03 17:09:11 MSK
> - https://git.altlinux.org/people/guschin/packages/?p=kernel-image-std-def.git;a=tree;h=refs/heads/mcom03-def;hb=mcom03-def

В целом нормально скопированный спек. Я не против сборки ядер из коммита безо всяких kernel-source-x.y, хотя и рекомендовал бы организовать генерацию diff'ов 5.10..5.10.y и 5.10.y..HEAD например.

Непонятно, зачем нужны закомментированные строки в .gear/rules.

arch/arm64/configs/defconfig не кажется мне хорошим источником для конфига под конкретную плату;  к теме именно пакетирования это, конечно, не относится, но всё-таки я бы предложил пересмотреть состав конфига этого ядра.
Comment 31 Andrew Guschin 2024-07-12 12:52:20 MSK
Обновил пакеты
- https://git.altlinux.org/people/guschin/packages/?p=openfst.git;a=summary
- https://git.altlinux.org/people/guschin/packages/?p=vosk-api.git;a=summary
- https://git.altlinux.org/people/guschin/packages/?p=python3-module-srt.git;a=summary
- https://git.altlinux.org/people/guschin/packages/?p=linux.git;a=summary

Репозиторий kernel-image-std-def переименовал в linux, потому что, всё-таки, в нём не только kernel-image и не только std-def. Конкретно в flavour mcom03-def, конфиг мерджится из defconfig и mcom03_defconfig.
Comment 32 Ivan A. Melnikov 2024-07-12 13:16:01 MSK
> https://git.altlinux.org/people/guschin/packages/?p=openfst.git;a=summary

Мне казалось, что в %_libdir/fst находятся файлы, нужные в процессе работы, а не сборки зависимостей. Что там находится? Зачем нужны эти файлы?

Почему на все мои вопросы ты отвечаешь только коммитами?)))
Comment 33 Ivan A. Melnikov 2024-07-12 13:22:43 MSK
> https://git.altlinux.org/people/guschin/packages/?p=vosk-api.git;a=summary

Стало хорошо.

Единственный вопрос -- не нужно ли вынести заголовочный файл в отдельный devel подпакет?
Comment 34 Ivan A. Melnikov 2024-07-12 13:37:45 MSK
>  https://git.altlinux.org/people/guschin/packages/?p=python3-module-srt.git;a=summary

Тут тоже нужен URL. Во всех пакетах нужен URL. В остальном ок.
Comment 35 Ivan A. Melnikov 2024-07-12 13:54:46 MSK
> https://git.altlinux.org/people/guschin/packages/?p=linux.git;a=summary

(In reply to Ivan A. Melnikov from comment #30)
> В целом нормально скопированный спек. Я не против сборки ядер из коммита
> безо всяких kernel-source-x.y, хотя и рекомендовал бы организовать генерацию
> diff'ов 5.10..5.10.y и 5.10.y..HEAD например.

М?

> Непонятно, зачем нужны закомментированные строки в .gear/rules.

Всё ещё непонятно.

> arch/arm64/configs/defconfig не кажется мне хорошим источником для конфига
> под конкретную плату;  к теме именно пакетирования это, конечно, не
> относится, но всё-таки я бы предложил пересмотреть состав конфига этого ядра.

Не вижу в истории этого defconfig ничего специфичного для платы:

$ git diff 353757066776e78d9796fba25231a5797264a844 v5.10.160 -- arch/arm64/configs/defconfig
$

Так что он по прежнему не кажется мне хорошим источником для конфига под конкретную плату.
Comment 36 Andrew Guschin 2024-07-12 14:28:16 MSK
> Мне казалось, что в %_libdir/fst находятся файлы, нужные в процессе работы, а не сборки зависимостей. Что там находится? Зачем нужны эти файлы?

Насколько я понял, .la (и .so) файлы - это файлы, которые используются libtool. Каким образом они могут быть использованы при работе мне не известно. Никакие из остальных библиотек не линкуются с ними, как и libvosk.so

> Тут тоже нужен URL

Исправил спеку. В остальных пакетах URL есть. У меня было ощущение, что когда у проекта есть только страница на хостинге репозиториев, точнее будет указать только VCS.

> Единственный вопрос -- не нужно ли вынести заголовочный файл в отдельный devel подпакет?

Мне казалось странным выделять один хедер в отдельный пакет, но, наверное, имеет смысл. Исправил спеку.


С пакетом ядра буду разбираться.
Comment 37 Andrew Guschin 2024-07-12 18:31:41 MSK
Обновил ветку с ядром
- https://git.altlinux.org/people/guschin/packages/?p=linux.git;a=shortlog;h=refs/heads/spec-mcom03-5.10

Убрал defconfig и оставил только mcom03_defconfig. Размер директории с модулями уменьшился почти в два раза, но плата всё ещё запустилась и даже продолжила работать.

Также я решил переименовать flavour в mcom03-5.10, так как ожидается, что появится ядро mcom03 версии 6.6. Хотелось бы сохранить обе версии параллельно.
Comment 38 Ivan A. Melnikov 2024-07-25 17:35:29 MSK
(In reply to Andrew Guschin from comment #36)
> > Тут тоже нужен URL
> 
> Исправил спеку. В остальных пакетах URL есть. У меня было ощущение, что
> когда у проекта есть только страница на хостинге репозиториев, точнее будет
> указать только VCS.
> 
> > Единственный вопрос -- не нужно ли вынести заголовочный файл в отдельный devel подпакет?
> 
> Мне казалось странным выделять один хедер в отдельный пакет, но, наверное,
> имеет смысл. Исправил спеку.

Я как-то пропустил тот факт, что эти изменения уже выложены и на них надо посмотреть. Меня можно пинговать активнее в таких ситуациях.

Эти пакеты выглядят готовыми. Пора переходить к следующему пункту Join.
Comment 39 Ivan A. Melnikov 2024-08-06 14:37:53 MSK
Глеб, мы ждём тебя, или это я чего-то недоделал по процессу?
Comment 40 Andrew Guschin 2024-08-06 17:12:06 MSK
Изменил два других пакета
- http://git.altlinux.org/people/guschin/packages/openfst.git
- https://git.altlinux.org/people/guschin/packages/?p=linux.git;a=tree;h=refs/heads/spec-mcom03-5.10;hb=spec-mcom03-5.10

В openfst директория /usr/lib64/fst, похоже, действительно расширения, которые могут использоваться в рантайме. Добавил отдельные пакеты с расширениями и devel с хедерами расширений. Не уверен стоит ли делать по подпакету на каждое расширение.

В ядре всё же разобрался со сборкой из kernel-source-* и diff. Спеку и rules исправил.
Comment 41 Gleb F-Malinovskiy 2024-09-02 18:45:33 MSK
ssh ключ на gyle.alt зарегистрирован.
Пакет alt-gpgkeys обновлён.
Адрес подписан на devel@.

T/J/S -> 3.6.
Comment 42 Andrew Guschin 2024-09-03 22:57:56 MSK
Поправил пакеты, чтобы собирались на всех сизифных архитектурах. Всё в тасках 356656 и 356734. Также разобрался с итерациями пакетов, больше не буду создавать лишних задач.
Comment 43 Ivan A. Melnikov 2024-10-06 10:59:29 MSK
> Всё в тасках 356656 и 356734

По 356734: не очень понял схему с тегированным импортом тарбола. Зачем?
Comment 44 Andrew Guschin 2024-10-06 13:49:33 MSK
vosk-api использует не апстримную версию kaldi, а свой форк. Я не вижу смысла пакетировать его для одного приложения. Если опакетить, то апстрим, но vosk с ним не собирается.