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

Vitaly Lipatov lav на altlinux.ru
Вс Июл 11 13:25:10 MSK 2021


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)


-- 
С уважением,
Виталий Липатов,
ALT Linux Team


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