Bug 52768 - libkdtree++: вопрос по python3-module-libkdtree
Summary: libkdtree++: вопрос по python3-module-libkdtree
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libkdtree++ (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Aleksandr Shamaraev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-20 14:43 MSK by Aleksandr Shamaraev
Modified: 2025-02-03 14:40 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksandr Shamaraev 2025-01-20 14:43:01 MSK
Добрый день. 

Больше хочу проконсультироваться в данной баге.

После сборки climage и установке пакета python3-module-climage по зависимостям тянется python3-module-libkdtree++

однако при выполнении крашится в ошибку

climage --ascii im.jpg 
Traceback (most recent call last):
  File "/usr/bin/climage", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/lib/python3/site-packages/climage/__main__.py", line 370, in main
    convert(
  File "/usr/lib/python3/site-packages/climage/__main__.py", line 123, in convert
    return convert_pil(
           ^^^^^^^^^^^^
  File "/usr/lib/python3/site-packages/climage/__main__.py", line 89, in convert_pil
    return _toAnsi(
           ^^^^^^^^
  File "/usr/lib/python3/site-packages/climage/climage.py", line 413, in _toAnsi
    ansi_build.write(get_ansi_pixel(pix, ctype=color_type, palette=palette))
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/site-packages/climage/climage.py", line 322, in get_ansi_pixel
    color = convert_pixel_color(
            ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/site-packages/climage/climage.py", line 307, in convert_pixel_color
    return _best(ctype, palette, pixel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/site-packages/climage/climage.py", line 24, in _best
    populate_kdtree(color_type, palette)
  File "/usr/lib/python3/site-packages/climage/climage.py", line 93, in populate_kdtree
    color_kdtrees[color_type][palette] = kdtree.create(
                                         ^^^^^^^^^^^^^
AttributeError: module 'kdtree' has no attribute 'create'

Я посмотрел файл kdtree.py который лежит в %python3_sitelibdir это не тот файл.
ну может и тот, но не тот.. насколько я понимаю нужен модуль 
https://github.com/stefankoegl/kdtree

отсюда у меня возникает вопрос.. если я соберу/попробую собрать нужный kdtree не будет ли конфликта? я так понимаю/предполагаю они оба будут провайдерить что они kdtree ?
Comment 1 Aleksandr Shamaraev 2025-01-21 02:33:20 MSK
Доброго времени суток.

Я собрал локально пакет python3-module-kdtree-0.16
установил локально, также локально поставил python3-module-climage-0.2.0

сам по себе climage по команде работает нормально, не крашится в ошибку.

в спек на python3-module-kdtree я повешал Conflicts: python3-module-libkdtree++

но при сборке задания в сборочнице столкнулся с ошибку дублирования провайдинга

https://packages.altlinux.org/ru/tasks/370667/

не могли бы Вы подсказать, как решить данную проблему?

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

заранее благодарю

С уважением
Comment 2 Aleksandr Shamaraev 2025-01-21 03:14:50 MSK
Попробовал повешать конфликт на Ваш пакет и отключить провайдинг, проблема такая же

https://packages.altlinux.org/ru/tasks/370668/
Comment 3 Aleksandr Shamaraev 2025-01-21 08:25:54 MSK
в общем в итоге получается, что если собирать pyp модуль, то идет Provide: python3(kdtree) от двух пакетов, от Вашего субпакета python3-module-libkdtree++  и pyp модуля python3-module-kdtree

получаем такую картину
NEW duplicate provides detected:
 Provide:         Providers:
 python3(kdtree)  python3-module-kdtree python3-module-libkdtree++

при этом файлы располагаются также и одинаковые по имени
Comment 4 Alexander Makeenkov 2025-02-03 12:48:54 MSK
(Ответ для Aleksandr Shamaraev на комментарий #1)
> не могли бы Вы подсказать, как решить данную проблему?
> 
> на данном этапе жизни, я к сожалению не знаю как обойти подобную ошибку, что один пакет мешает другому

Используйте Obsoletes и Provides.
Comment 5 Aleksandr Shamaraev 2025-02-03 14:40:30 MSK
(Ответ для Alexander Makeenkov на комментарий #4)
> Используйте Obsoletes и Provides.

Большое спасибо