Hi,
it is currently not possible to modify the component part of the package
name for Debian packages generated by CPack. For component-based
packaging, the name is currently composed of
"${CPACK_PACKAGE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_NAME}", where
the latter is set to "-${CPACK_DEB_PACKAGE_COMPONENT}".
The use of CPACK_PACKAGE_NAME here does not match the behavior of
non-component-based packaging, where CPACK_DEBIAN_PACKAGE_NAME can be
defined.
With CPACK_PACKAGE_NAME set to "foo" and CPACK_DEBIAN_PACKAGE_NAME set
to "libfoo", a component "libraries" that gathers the libraries in a
project then defaults to, e.g., "foo-libraries", rather than "libfoo"
(without a component part) in the control file.
These conventions can also differ between, e.g., Debian/Ubuntu and
Fedora. The former would expect libraries in "libfoo", headers in
"libfoo-dev", and documentation in "libfoo-doc", the latter however
rather "foo"/"foo-devel" or "libfoo"/"libfoo-devel".
I've included two possible patches for this. The first one adds a fully
configurable component package name via
CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME, the latter only allows to set the
part name appended to CPACK_DEBIAN_PACKAGE_NAME (with "-<COMPONENT>"
still the default behavior).
It would be great if one of those solutions could be integrated, as this
enables better matching of CPack and upstream conventions. A similar
patch could also be added to CPackRPM.
Best regards,
Markus Rickert
From 09b171fb5b6965c571aa57bf68856eac04d21ab6 Mon Sep 17 00:00:00 2001
From: Markus Rickert <rick...@fortiss.org>
Date: Sat, 7 Nov 2015 18:58:56 +0100
Subject: [PATCH] Configure Debian component part name for package name
---
Modules/CPackDeb.cmake | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 875a534..3161ffd 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -34,6 +34,14 @@
# * Default : :variable:`CPACK_PACKAGE_NAME` (lower case)
#
#
+# .. variable:: CPACK_DEBIAN_<COMPONENT>_PART_NAME
+#
+# The Debian package summary component part
+#
+# * Mandatory : NO
+# * Default : `-<COMPONENT>` (lower case)
+#
+#
# .. variable:: CPACK_DEBIAN_PACKAGE_VERSION
#
# The Debian package version
@@ -694,8 +702,12 @@ function(cpack_deb_prepare_package_vars)
endif()
endforeach()
- set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME
"-${CPACK_DEB_PACKAGE_COMPONENT}")
- string(TOLOWER
"${CPACK_PACKAGE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_NAME}"
CPACK_DEBIAN_PACKAGE_NAME)
+ if(NOT DEFINED CPACK_DEBIAN_${_local_component_name}_PART_NAME)
+ set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME
"-${CPACK_DEB_PACKAGE_COMPONENT}")
+ else()
+ set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME
${CPACK_DEBIAN_${_local_component_name}_PART_NAME})
+ endif()
+ string(TOLOWER
"${CPACK_DEBIAN_PACKAGE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_NAME}"
CPACK_DEBIAN_PACKAGE_NAME)
else()
set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME "")
endif()
--
1.9.1
From 779742c19847bbb0ec28a3071fa59074a9989743 Mon Sep 17 00:00:00 2001
From: Markus Rickert <rick...@fortiss.org>
Date: Sat, 7 Nov 2015 18:56:24 +0100
Subject: [PATCH] Configure Debian package name per component
---
Modules/CPackDeb.cmake | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 875a534..552e430 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -27,6 +27,7 @@
# However as a handy reminder here comes the list of specific variables:
#
# .. variable:: CPACK_DEBIAN_PACKAGE_NAME
+# .. variable:: CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME
#
# The Debian package summary
#
@@ -593,7 +594,7 @@ function(cpack_deb_prepare_package_vars)
# if per-component dependency, overrides the global
CPACK_DEBIAN_PACKAGE_${dependency_type_}
# automatic dependency discovery will be performed afterwards.
if(CPACK_DEB_PACKAGE_COMPONENT)
- foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES
BREAKS CONFLICTS PROVIDES REPLACES SOURCE)
+ foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES
BREAKS CONFLICTS PROVIDES REPLACES SOURCE NAME)
set(_component_var
"CPACK_DEBIAN_${_local_component_name}_PACKAGE_${dependency_type_}")
# if set, overrides the global dependency
@@ -694,8 +695,13 @@ function(cpack_deb_prepare_package_vars)
endif()
endforeach()
- set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME
"-${CPACK_DEB_PACKAGE_COMPONENT}")
- string(TOLOWER
"${CPACK_PACKAGE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_NAME}"
CPACK_DEBIAN_PACKAGE_NAME)
+ if(NOT CPACK_DEBIAN_${_local_component_name}_PACKAGE_NAME)
+ set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME
"-${CPACK_DEB_PACKAGE_COMPONENT}")
+ string(TOLOWER
"${CPACK_DEBIAN_PACKAGE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_NAME}"
CPACK_DEBIAN_PACKAGE_NAME)
+ else()
+ set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME "")
+ string(TOLOWER ${CPACK_DEBIAN_PACKAGE_NAME} CPACK_DEBIAN_PACKAGE_NAME)
+ endif()
else()
set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME "")
endif()
--
1.9.1
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers