CPACK_DEBIAN_ <component>_PACKAGE_CONTROL_EXTRA игнорируется - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь собрать пакеты deb для проекта cmake. Этот проект (foundationdb - но это, вероятно, не относится к этому вопросу) содержит два компонента, и я хочу создать два пакета для него. Тем не менее, это, кажется, не работает хорошо. В частности, кажется, что дополнения к контрольному архиву игнорируются. Это моя текущая конфигурация cpack:

set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON)
# clients
set(CPACK_DEBIAN_clients_PACKAGE_CONTROL_STRICT_PERMISSION ON)
set(CPACK_DEBIAN_clients_PACKAGE_SECTION "database")
set(CPACK_DEBIAN_clients_PACKAGE_DEPENDS "adduser, libc6 (>= 2.11)")
set(CPACK_DEBIAN_clients_PACKAGE_HOMEPAGE "https://www.foundationdb.org")
set(CPACK_DEBIAN_clients_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-clients/postinst)

set(CPACK_DEBIAN_server_PACKAGE_CONTROL_STRICT_PERMISSION ON)
set(CPACK_DEBIAN_server_PACKAGE_SECTION "database")
set(CPACK_DEBIAN_server_PACKAGE_DEPENDS "adduser, libc6 (>= 2.11), python (>= 2.6)")
set(CPACK_DEBIAN_server_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)

Однако, когда я собираю пакеты с помощью cpack dpkg -I для пакета сервера, я получаю следующий вывод (вывод для клиента выглядит очень похожим, и этот пакет имеет ту же проблему):

new Debian package, version 2.0.
size 376987382 bytes: control archive=1088 bytes.
    265 bytes,     9 lines      control
   1864 bytes,    27 lines      md5sums
Package: foundationdb
Version: 6.0.0
Section: devel
Priority: optional
Architecture: amd64
Installed-Size: 1240492
Maintainer: The FoundationDB Community
Description: FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions.

Это означает, что контрольные файлы отсутствуют. Это означает, что сценарии не запускаются во время установки и удаления.

Я уже проверил, что переменные установлены правильно в CPackConfig.cmake, и когда я собираю один пакет вместо компонентов, добавление дополнительных компонентов, кажется, работает нормально.

Есть что-то, чего я здесь не хватает? Я использую cmake версии 3.10.2

1 Ответ

0 голосов
/ 07 мая 2018

Попробовав несколько вещей, которые я нашел в сети и добавив, я наконец нашел проблему. Имя компонента должно быть в верхнем регистре. Так, например, эта строка

set(CPACK_DEBIAN_server_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)

должно быть

set(CPACK_DEBIAN_SERVER_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)

Я не мог видеть это в документации, и это не имеет значения для CPackRPM - но вполне возможно, что я просто немного слепой ...

...