The package descriptions, summaries and licenses now use a generic mechanism. This makes it easier to add new components that only include small parts or use a different license. Also updated the descriptions, the license versions and package summaries for the main packages.
		
			
				
	
	
		
			110 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
# Common packaging configuration
 | 
						|
 | 
						|
execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE)
 | 
						|
 | 
						|
# Check target
 | 
						|
set(PACK_TARGETS "core" "devel" "experimental" "cdc-connector" "all")
 | 
						|
if(DEFINED TARGET_COMPONENT AND NOT TARGET_COMPONENT STREQUAL "")
 | 
						|
  set(LIST_INDEX -1)
 | 
						|
  list(FIND PACK_TARGETS ${TARGET_COMPONENT} LIST_INDEX)
 | 
						|
  if (${LIST_INDEX} EQUAL -1)
 | 
						|
    message(FATAL_ERROR "Unrecognized TARGET_COMPONENT value. Allowed values: ${PACK_TARGETS}.")
 | 
						|
  endif()
 | 
						|
else()
 | 
						|
  set(TARGET_COMPONENT "core")
 | 
						|
  message(STATUS "No TARGET_COMPONENT defined, using default value 'core'")
 | 
						|
endif()
 | 
						|
 | 
						|
# Generic CPack configuration variables
 | 
						|
set(CPACK_SET_DESTDIR ON)
 | 
						|
set(CPACK_PACKAGE_RELOCATABLE FALSE)
 | 
						|
set(CPACK_STRIP_FILES FALSE)
 | 
						|
set(CPACK_PACKAGE_VERSION_MAJOR "${MAXSCALE_VERSION_MAJOR}")
 | 
						|
set(CPACK_PACKAGE_VERSION_MINOR "${MAXSCALE_VERSION_MINOR}")
 | 
						|
set(CPACK_PACKAGE_VERSION_PATCH "${MAXSCALE_VERSION_PATCH}")
 | 
						|
set(CPACK_PACKAGE_CONTACT "MariaDB Corporation Ab")
 | 
						|
set(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
 | 
						|
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
 | 
						|
 | 
						|
# Descriptions for the main packages
 | 
						|
set(core_PACKAGE_SUMMARY "MaxScale - An intelligent database proxy")
 | 
						|
set(core_PACKAGE_DESCRIPTION "
 | 
						|
The MariaDB Corporation MaxScale is an intelligent proxy that allows forwarding of
 | 
						|
database statements to one or more database servers using complex rules,
 | 
						|
a semantic understanding of the database statements and the roles of
 | 
						|
the various servers within the backend cluster of databases.
 | 
						|
 | 
						|
MaxScale is designed to provide load balancing and high availability
 | 
						|
functionality transparently to the applications. In addition it provides
 | 
						|
a highly scalable and flexible architecture, with plugin components to
 | 
						|
support different protocols and routing decisions.")
 | 
						|
 | 
						|
set(devel_PACKAGE_SUMMARY "MaxScale plugin development headers")
 | 
						|
set(devel_PACKAGE_DESCRIPTION "
 | 
						|
This package contains header files required for plugin module development for
 | 
						|
MariaDB MaxScale. The source of MariaDB MaxScale is not required.")
 | 
						|
 | 
						|
set(experimental_PACKAGE_SUMMARY "MaxScale experimental modules")
 | 
						|
set(experimental_PACKAGE_DESCRIPTION "
 | 
						|
This package contains experimental and community contributed modules for MariaDB
 | 
						|
MaxScale. The packages are not fully supported parts of MaxScale and should be
 | 
						|
considered as alpha quality software.")
 | 
						|
 | 
						|
set(all_PACKAGE_SUMMARY ${core_PACKAGE_SUMMARY})
 | 
						|
set(all_PACKAGE_DESCRIPTION ${core_PACKAGE_DESCRIPTION})
 | 
						|
 | 
						|
# Set the package description for this component
 | 
						|
if (${TARGET_COMPONENT}_PACKAGE_DESCRIPTION AND ${TARGET_COMPONENT}_PACKAGE_SUMMARY)
 | 
						|
  set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${${TARGET_COMPONENT}_PACKAGE_SUMMARY})
 | 
						|
  set(CPACK_PACKAGE_DESCRIPTION ${${TARGET_COMPONENT}_PACKAGE_DESCRIPTION})
 | 
						|
  set(DESCRIPTION_TEXT ${${TARGET_COMPONENT}_PACKAGE_DESCRIPTION})
 | 
						|
 | 
						|
elseif((${TARGET_COMPONENT}_PACKAGE_DESCRIPTION OR ${TARGET_COMPONENT}_PACKAGE_SUMMARY))
 | 
						|
  message(FATAL_ERROR "Component '${TARGET_COMPONENT}' does not define both "
 | 
						|
    "${TARGET_COMPONENT}_PACKAGE_DESCRIPTION and ${TARGET_COMPONENT}_PACKAGE_SUMMARY variables.")
 | 
						|
endif()
 | 
						|
 | 
						|
# If we're building something other than the main package, append the target name
 | 
						|
# to the package name.
 | 
						|
if(DEFINED TARGET_COMPONENT AND NOT TARGET_COMPONENT STREQUAL "core" AND NOT TARGET_COMPONENT STREQUAL "")
 | 
						|
  set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}-${TARGET_COMPONENT}")
 | 
						|
else()
 | 
						|
  set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}")
 | 
						|
endif()
 | 
						|
 | 
						|
if(DISTRIB_SUFFIX)
 | 
						|
  set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${MAXSCALE_VERSION}-${MAXSCALE_BUILD_NUMBER}.${DISTRIB_SUFFIX}.${CMAKE_SYSTEM_PROCESSOR}")
 | 
						|
else()
 | 
						|
  set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${MAXSCALE_VERSION}-${MAXSCALE_BUILD_NUMBER}.${CMAKE_SYSTEM_PROCESSOR}")
 | 
						|
endif()
 | 
						|
 | 
						|
# See if we are on a RPM-capable or DEB-capable system
 | 
						|
find_program(RPMBUILD rpmbuild)
 | 
						|
find_program(DEBBUILD dpkg-buildpackage)
 | 
						|
 | 
						|
if(TARBALL)
 | 
						|
  include(cmake/package_tgz.cmake)
 | 
						|
 | 
						|
elseif(${RPMBUILD} MATCHES "NOTFOUND" AND ${DEBBUILD} MATCHES "NOTFOUND")
 | 
						|
  message(FATAL_ERROR "Could not automatically resolve the package generator and no generators "
 | 
						|
    "defined on the command line. Please install distribution specific packaging software or "
 | 
						|
    "define -DTARBALL=Y to build tar.gz packages.")
 | 
						|
else()
 | 
						|
 | 
						|
  if(${DEBBUILD} MATCHES "NOTFOUND")
 | 
						|
    # No DEB packaging tools found, must be an RPM system
 | 
						|
    include(cmake/package_rpm.cmake)
 | 
						|
  else()
 | 
						|
    # We have DEB packaging tools, must be a DEB system
 | 
						|
    if (NOT ${RPMBUILD} MATCHES "NOTFOUND")
 | 
						|
      # Debian based systems can have both RPM and DEB packaging tools
 | 
						|
      message(WARNING "Found both DEB and RPM packaging tools, generating DEB packages. If this is not correct, "
 | 
						|
        "remove the packaging tools for the package type you DO NOT want to create.")
 | 
						|
    endif()
 | 
						|
    include(cmake/package_deb.cmake)
 | 
						|
  endif()
 | 
						|
 | 
						|
  message(STATUS "You can install startup scripts and system configuration files for MaxScale by running the 'postinst' shell script located at ${CMAKE_INSTALL_PREFIX}.")
 | 
						|
  message(STATUS "To remove these installed files, run the 'postrm' shell script located in the same folder.")
 | 
						|
endif()
 |