Bug 57041 - sisyphus_check: false positive: python3 module docs contain unrelated files
Summary: sisyphus_check: false positive: python3 module docs contain unrelated files
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: sisyphus_check (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-11-27 13:50 MSK by Alexandr Shashkin
Modified: 2025-11-27 19:11 MSK (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandr Shashkin 2025-11-27 13:50:27 MSK
Собираю в Sisyphus пакет, который называется python3-module-annotated-doc. Но из-за того, что имя одного единственного rpm пакета заканчивается на -doc, получаю следующую ошибку:
=====
[0:00:15.491] 0inputs+0outputs (0major+201798minor)pagefaults 0swaps
[0:00:15.616] /.out/python3-module-annotated-doc-0.0.4-alt1.noarch.rpm: python3 module docs contain unrelated files: /usr/lib/python3/site-packages/annotated_doc /usr/lib/python3/site-packages/annotated_doc-0.0.4.dist-info
[0:00:15.636] sisyphus_check: check-python ERROR: python modules packaging violation
[0:00:15.861] hsh-rebuild: pkg.tar: sisyphus_check failed.
=====

Строки, которые отвечают за эту проверку в sisyphus_checks
=====
case "$rpm_name" in
    *-doc|*-docs) is_docs=1 ;;
esac

...

if [ -n "$pm_ver" ] && [ -n "$is_docs" ]; then
    bad_files="$(printf %s "$rpm_filenames" 2>/dev/null |
             grep -Ev "$docs_re" ||
             [ $? -eq 1 ])"
    if [ -n "$bad_files" ]; then
        bad_files="$(oneliner "$bad_files" |fmt -w 128 |head -n1)"
        FileError "python$pm_ver module docs contain unrelated files: $bad_files" "$f"
        rc=1
    fi
fi
=====
Comment 1 Ivan Zakharyaschev 2025-11-27 15:39:26 MSK
Какие есть соображения? Что предлагается сделать?
Comment 2 Ivan Zakharyaschev 2025-11-27 15:47:04 MSK
Такие подпакеты вообще есть:

$ xzcat /ALT/Sisyphus/files/list/bin.list.xz | grep -Ee '^python.*-docs?[[:blank:]]' | wc -l
164

А что лучше делать, когда хочется основной пакет с таким именем, это вопрос.
Comment 3 Alexandr Shashkin 2025-11-27 18:15:55 MSK
(In reply to Ivan Zakharyaschev from comment #2)
> Такие подпакеты вообще есть:
> 
> $ xzcat /ALT/Sisyphus/files/list/bin.list.xz | grep -Ee
> '^python.*-docs?[[:blank:]]' | wc -l
> 164
> 
> А что лучше делать, когда хочется основной пакет с таким именем, это вопрос.

Да и такие пакеты есть.

По мне довольно странная проверка, которая ориентируется на название RPM пакета. Учитывая, что пакет может называться как угодно (annotated-doc тому доказательство), эту проверку лучше вообще убрать, либо сделать в качестве Warning.

Можно, коненчо, попробовать сравнивать с названием SRC.RPM, но это уже создание новых костылей на базе старых.
Comment 4 Dmitry V. Levin 2025-11-27 18:20:06 MSK
(In reply to Alexandr Shashkin from comment #3)
> По мне довольно странная проверка, которая ориентируется на название RPM
> пакета. Учитывая, что пакет может называться как угодно (annotated-doc тому
> доказательство), эту проверку лучше вообще убрать, либо сделать в качестве
> Warning.

Неубедительно.
Comment 5 Alexandr Shashkin 2025-11-27 19:11:26 MSK
(In reply to Dmitry V. Levin from comment #4)
> (In reply to Alexandr Shashkin from comment #3)
> > По мне довольно странная проверка, которая ориентируется на название RPM
> > пакета. Учитывая, что пакет может называться как угодно (annotated-doc тому
> > доказательство), эту проверку лучше вообще убрать, либо сделать в качестве
> > Warning.
> 
> Неубедительно.

Неубедительно? upstream запросто может добавить в название своего приложения суффикс -doc (или любое другое слово), а мейнтейнеру теперь приходится придумывать, как обходить искусственно созданные проблемы? Я считаю, это опрометчиво, определять категорию пакета по его названию. Данная проверка опирается на эвристику, которая не всегда верна, а не на содержимое пакета. Название пакета — это метаинформация, которая может нести смысловую нагрузку, а может и нет. Пакет может быть потенциально переименован upstream-ом.

Или может есть более убедительный нормативный документ, который требует определять содержимое пакета по его имени и на основании этого препятствовать его сборке в репозиторий? Я думаю для этой задачи очень подходит тэг Group.

А как вы предлагаете мне эту проблему решить, учитывая mapping python имен из статьи https://www.altlinux.org/Management_of_Python_dependencies_sources#Mapping_project_names_to_distro_names?

А кому-то помогла данная проверка, или её сделали ради того, чтобы сделать?