[devel] icewm-3:2.5.0-alt1: Sisyphus/x86_64 test rebuild failed

Dmitriy Khanzhin dmitriy.khanzhin на gmail.com
Вс Июл 11 21:35:03 MSK 2021


11.07.2021 13:25, Vitaly Lipatov пишет:
> Dmitriy Khanzhin писал 10.7.21 19:55:
>> 10.07.2021 10:20, ALT beekeeper пишет:
>>> Package: icewm-3:2.5.0-alt1
>>> Status: Sisyphus/x86_64 test rebuild failed
>>> URL:
>>> http://git.altlinux.org/beehive/logs/Sisyphus/x86_64/archive/2021/0710/error/icewm-3:2.5.0-alt1
>>>
>>> Cannot build this package.
>>> Please investigate.
>>> Excerpt from build log:
>>>
> ...
>> Здравствуйте, коллеги.
>> Перестал собираться icewm, я подозреваю, после обновления cmake.
>> Что изменилось в сборочной среде, о чем не предупредили?
>> И с чего начинать починку?
> 
> 
> 
> В проекте используется некорректный способ добавления путей к
> заголовочным файлам — их вручную запихивают во флаги, в частности:
>     INCLUDE(FindIntl)
>     if(Intl_FOUND)
>         LIST(APPEND nls_LIBS ${Intl_LIBRARIES})
>         LIST(APPEND nls_CFLAGS -I${Intl_INCLUDE_DIRS})
>     endif()
> 
> ...
> target_compile_options(ice PUBLIC ${icewm_pc_flags})
> 
> 
> Это взрывается, если Intl_INCLUDE_DIRS пустая или имеет несколько значений.
> 
> 
> Правильным является использование специального механизма для добавления
> путей:
> target_include_directories(${target_name} PRIVATE ${LIBYUV_INCLUDE_DIRS})
> 
> В нашем случае путь оказался пустой, и -I «съела» -o:
>  -I/usr/include/fribidi -I -o CMakeFiles/ice.dir/udir.cc.o
> 
> В качестве быстрого исправления можно заменить
>     if(Intl_FOUND)
> на
>     if(Intl_FOUND AND NOT Intl_IS_BUILT_IN)
> 
> 
Большое спасибо.
Уточняющий вопрос- это поведение появилось в cmake 3.20? Видимо, апстрим
пока не использует его. Постараюсь вникнуть, осознвть и озадачить.

Лирическое отступление: я почти всегда в дороге, работа такая, и времени
на самообразование все меньше. Прошу прощения.



Подробная информация о списке рассылки Devel