[devel] Об упаковке статических библиотек

Vitaly Lipatov lav на altlinux.ru
Ср Сен 8 14:40:42 MSK 2021


У нас существует некоторое недопонимание в упаковке статических 
библиотек. Некоторые понимают правило буквально, и обязательно кладут 
статические библиотеки в подпакеты devel-static

Например, это выглядит так:
«В Альте статические библиотеки пакуются в отдельные пакеты с суффиксом 
-static:»
https://www.altlinux.org/Shared_Libs_Policy

Или так:
  $ rpm -ql qt5-tools-devel | grep 5UiTools
/usr/lib64/cmake/Qt5UiTools
/usr/lib64/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake
/usr/lib64/cmake/Qt5UiTools/Qt5UiToolsConfigVersion.cmake
/usr/lib64/libQt5UiTools.prl
/usr/share/qt5/lib/libQt5UiTools.prl

  $ rpm -ql qt5-tools-devel-static
/usr/lib64/libQt5UiTools.a
/usr/lib64/pkgconfig/Qt5UiTools.pc
/usr/share/qt5/lib/libQt5UiTools.a

Дело в том, что паковать статические библиотеки в отдельный пакет нужно 
только, если эти библиотеки являются альтернативной динамическим. Если 
же иного способа сборки нет, выносить такую библиотеку в отдельный пакет 
не нужно.

Таким образом, пакет qt5-tools-devel-static не должен существовать — его 
содержимое нужно перенести в qt5-tools-devel. Существующее разделение 
пакета вызывает непонимание у разработчиков и проблемы у пользователей.

На всякий случай процитирую из policy:
«Статические библиотеки, собираемые в дополнение к динамическим, должны 
быть выделены в отдельный пакет lib%name-devel-static или 
lib%name%abiversion-devel-static (сооветственно стилю -devel-пакета). 
Если же собирается только статическая библиотека, без динамической, то 
пакет должен называться -devel.»

https://www.altlinux.org/Shared_Libs_Policy

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


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