[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