Browse Source

Revert "CPack/DEB: Make package description variable precedence match RPM"

This reverts commit 332b089ad213a1aa89658fffd8f68c9064c6d3db as multiline
descriptions require special formatting.
Domen Vrankar 9 years ago
parent
commit
1ef45a30aa

+ 0 - 15
Help/release/dev/cpack-deb-package-description-fallback.rst

@@ -1,15 +0,0 @@
-cpack-deb-package-description-fallback
---------------------------------------
-
-* The :module:`CPackDeb` module gained a new
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DESCRIPTION`
-  variable for component-specific package descriptions.
-
-* The :module:`CPackDeb` module changed its package description
-  override rules to match :module:`CPackRPM` module behavior.
-  If the :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` variable is set to
-  a non-default location then it is preferred to the
-  :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` variable.
-  This is a behavior change from previous versions but produces
-  more consistent and expected behavior.
-  See :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION`.

+ 21 - 22
Modules/CPackDeb.cmake

@@ -156,18 +156,16 @@
 #  * Default   : :code:`CPACK_PACKAGE_CONTACT`
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_DESCRIPTION
-#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_DESCRIPTION
+#               CPACK_COMPONENT_<COMPONENT>_DESCRIPTION
 #
 #  The Debian package description
 #
 #  * Mandatory : YES
 #  * Default   :
 #
-#    - :variable:`CPACK_COMPONENT_<compName>_DESCRIPTION` (component based installers only) if set,
-#    - :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` if set to non default location,
-#    - :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` if set,
-#    - :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` default value if set,
-#    - or "no package description available"
+#    - :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` if set or
+#    - :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
+#
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_SECTION
 #               CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION
@@ -831,23 +829,24 @@ function(cpack_deb_prepare_package_vars)
   endif()
 
   # Description: (mandatory)
-  if(CPACK_DEB_PACKAGE_COMPONENT)
-    if(CPACK_DEBIAN_${_local_component_name}_PACKAGE_DESCRIPTION)
-      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_DEBIAN_${_local_component_name}_PACKAGE_DESCRIPTION}")
-    elseif(CPACK_COMPONENT_${_local_component_name}_DESCRIPTION)
-      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_COMPONENT_${_local_component_name}_DESCRIPTION}")
+  if(NOT CPACK_DEB_PACKAGE_COMPONENT)
+    if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
+      if(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+        message(FATAL_ERROR "CPackDeb: Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION")
+      endif()
+      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
     endif()
-  endif()
-
-  if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
-    if(CPACK_PACKAGE_DESCRIPTION_FILE AND NOT "${CPACK_PACKAGE_DESCRIPTION_FILE}" STREQUAL "${CMAKE_ROOT}/Templates/CPack.GenericDescription.txt")
-      file(READ "${CPACK_PACKAGE_DESCRIPTION_FILE}" CPACK_DEBIAN_PACKAGE_DESCRIPTION)
-    elseif(CPACK_PACKAGE_DESCRIPTION_SUMMARY)
-      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}")
-    elseif(CPACK_PACKAGE_DESCRIPTION_FILE) # use default package description file content
-      file(READ "${CPACK_PACKAGE_DESCRIPTION_FILE}" CPACK_DEBIAN_PACKAGE_DESCRIPTION)
-    else()
-      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "no package description available")
+  else()
+    set(component_description_var CPACK_COMPONENT_${_local_component_name}_DESCRIPTION)
+
+    # component description overrides package description
+    if(${component_description_var})
+      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${${component_description_var}})
+    elseif(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
+      if(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+        message(FATAL_ERROR "CPackDeb: Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION or ${component_description_var}")
+      endif()
+      set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
     endif()
   endif()
 

+ 3 - 3
Tests/CPackComponentsDEB/MyLibCPackConfig-components-description1.cmake.in

@@ -15,8 +15,8 @@ set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
 #set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)
 
 # overriding previous descriptions
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY               "main description")
-set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_DESCRIPTION   "applications_description")
-set(CPACK_COMPONENT_HEADERS_DESCRIPTION             "headers_description")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY           "main description")
+set(CPACK_COMPONENT_APPLICATIONS_DESCRIPTION    "applications_description")
+set(CPACK_COMPONENT_HEADERS_DESCRIPTION         "headers_description")
 # libraries does not have any description and should inherit from CPACK_PACKAGE_DESCRIPTION_SUMMARY
 unset(CPACK_COMPONENT_LIBRARIES_DESCRIPTION)

+ 2 - 4
Tests/CPackComponentsDEB/MyLibCPackConfig-components-description2.cmake.in

@@ -17,12 +17,10 @@ set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
 # overriding previous descriptions
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY           "main description 2")
 
-# and override CPACK_PACKAGE_DESCRIPTION_SUMMARY because of precedence
-set(CPACK_PACKAGE_DESCRIPTION_FILE
-  "@CPackComponentsDEB_SOURCE_DIR@/pkg_description.txt")
-
 # Components do not have any description
 unset(CPACK_COMPONENT_APPLICATIONS_DESCRIPTION)
 unset(CPACK_COMPONENT_HEADERS_DESCRIPTION)
+unset(CPACK_COMPONENT_LIBRARIES_DESCRIPTION)
+
 
 set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION       "library description")

+ 2 - 2
Tests/CPackComponentsDEB/RunCPackVerifyResult-components-description2.cmake

@@ -55,12 +55,12 @@ if(DPKGDEB_EXECUTABLE)
     message(STATUS "package='${dpkg_package_name}', description='${dpkg_description}'")
 
     if("${dpkg_package_name}" STREQUAL "mylib-applications")
-      if(NOT "${dpkg_description}" STREQUAL "Debian package description file")
+      if(NOT "${dpkg_description}" STREQUAL "main description 2")
         set(dpkgdeb_output_errors_all ${dpkgdeb_output_errors_all}
                                       "dpkg-deb: ${_f}: Incorrect description for package ${dpkg_package_name}: ${dpkg_description} != applications_description")
       endif()
     elseif("${dpkg_package_name}" STREQUAL "mylib-headers")
-      if(NOT "${dpkg_description}" STREQUAL "Debian package description file")
+      if(NOT "${dpkg_description}" STREQUAL "main description 2")
         set(dpkgdeb_output_errors_all ${dpkgdeb_output_errors_all}
                                       "dpkg-deb: ${_f}: Incorrect description for package ${dpkg_package_name}: ${dpkg_description} != headers_description")
       endif()

+ 0 - 1
Tests/CPackComponentsDEB/pkg_description.txt

@@ -1 +0,0 @@
-Debian package description file