You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
[fix] columnstore_version.cmake setting extra variables for CMAPI versioning [fix] CMAPI CmakeLists.txt using columnstore_version.cmake file [fix] CMAPI VERSION file to template file due to using it inside CMAPI applicatio n
131 lines
5.9 KiB
CMake
131 lines
5.9 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
|
|
PROJECT(cmapi NONE)
|
|
|
|
SET(CPACK_PACKAGE_NAME "MariaDB-columnstore-cmapi")
|
|
|
|
|
|
# use columnstore package versioning
|
|
SET(CMAPI "YES")
|
|
SET(ENGINE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
|
|
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../cmake)
|
|
INCLUDE(columnstore_version)
|
|
SET(PACKAGE_VERSION "${CMAPI_VERSION_MAJOR}.${CMAPI_VERSION_MINOR}.${CMAPI_VERSION_PATCH}")
|
|
|
|
SET(CMAPI_USER "root")
|
|
|
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MariaDB ColumnStore CMAPI: cluster management API and command line tool.")
|
|
SET(CPACK_PACKAGE_URL "http://www.mariadb.com")
|
|
SET(CPACK_PACKAGE_CONTACT "MariaDB Corporation Ab")
|
|
SET(CPACK_PACKAGE_SUMMARY "MariaDB ColumnStore CMAPI: cluster management API and command line tool.")
|
|
SET(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
|
|
SET(CPACK_PACKAGE_LICENSE "Copyright (c) 2023 MariaDB Corporation Ab.; redistributable under the terms of the GPLv2, see the file LICENSE.GPL2 for details.")
|
|
|
|
SET(BIN_DIR "/usr/bin")
|
|
SET(ETC_DIR "/etc/columnstore")
|
|
SET(SHARE_DIR "/usr/share/columnstore")
|
|
SET(CMAPI_DIR "${SHARE_DIR}/cmapi")
|
|
SET(SYSTEMD_UNIT_DIR "/usr/lib/systemd/system")
|
|
SET(SYSTEMD_ENGINE_UNIT_NAME "mariadb-columnstore")
|
|
SET(CMAPI_CONF_FILEPATH "${ETC_DIR}/cmapi_server.conf")
|
|
|
|
STRING(TOLOWER ${CPACK_PACKAGE_NAME} SYSTEMD_UNIT_NAME)
|
|
|
|
CONFIGURE_FILE(VERSION.template VERSION)
|
|
CONFIGURE_FILE(service.template ${SYSTEMD_UNIT_NAME}.service)
|
|
CONFIGURE_FILE(systemd.env.template systemd.env)
|
|
CONFIGURE_FILE(postinst.template postinst)
|
|
CONFIGURE_FILE(prerm.template prerm)
|
|
CONFIGURE_FILE(conffiles.template conffiles)
|
|
CONFIGURE_FILE(mcs.template mcs)
|
|
|
|
INSTALL(DIRECTORY python deps mcs_node_control failover cmapi_server engine_files mcs_cluster_tool
|
|
DESTINATION ${CMAPI_DIR}
|
|
USE_SOURCE_PERMISSIONS
|
|
PATTERN "test" EXCLUDE
|
|
PATTERN "cmapi_server.conf" EXCLUDE)
|
|
INSTALL(FILES LICENSE.GPL2 VERSION
|
|
DESTINATION ${CMAPI_DIR})
|
|
INSTALL(FILES check_ready.sh
|
|
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
|
DESTINATION ${CMAPI_DIR})
|
|
INSTALL(FILES cmapi_server/cmapi_server.conf systemd.env
|
|
DESTINATION ${ETC_DIR})
|
|
INSTALL(FILES ${SYSTEMD_UNIT_NAME}.service
|
|
DESTINATION ${SYSTEMD_UNIT_DIR})
|
|
INSTALL(FILES mcs
|
|
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
|
DESTINATION ${BIN_DIR})
|
|
|
|
OPTION(RPM "Build an RPM" OFF)
|
|
IF(RPM)
|
|
SET(CPACK_GENERATOR "RPM")
|
|
# cmake wants to byte-compile all .py files.
|
|
# this line below will prevent it of doing such
|
|
# trying to byte-compile could produce some issues with not existing
|
|
# python3 on some systems like centos7
|
|
# more info:
|
|
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation#Status_quo
|
|
# https://stackoverflow.com/questions/69988093/cmake-brp-python-bytecompile-and-python3
|
|
SET(CPACK_RPM_SPEC_INSTALL_POST "%global _python_bytecompile_extra 0")
|
|
SET(CPACK_RPM_SPEC_MORE_DEFINE "%global _python_bytecompile_extra 0")
|
|
# Turn off the brp-python-bytecompile script
|
|
# for every release including EPEL
|
|
# more info here:
|
|
# https://pagure.io/packaging-committee/issue/755
|
|
SET(CPACK_RPM_SPEC_INSTALL_POST "%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')")
|
|
SET(CPACK_RPM_SPEC_MORE_DEFINE "%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')")
|
|
# otherwise it could be solved to install python3 in centos7 and adding this line:
|
|
# SET(CPACK_RPM_SPEC_MORE_DEFINE "%define __python %{__python3}")
|
|
# example here:
|
|
# https://github.com/irods/irods/pull/6347/files
|
|
# but it's doesn't work because of some CPACK versions don't add definitions
|
|
# to the spec file using CPACK_RPM_SPEC_MORE_DEFINE
|
|
|
|
SET(CPACK_RPM_PACKAGE_VERSION ${PACKAGE_VERSION})
|
|
SET(CPACK_RPM_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
|
|
|
|
SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
|
|
SET(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
|
|
SET(CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_URL})
|
|
SET(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_SUMMARY})
|
|
SET(CPACK_RPM_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR})
|
|
SET(CPACK_RPM_PACKAGE_LICENSE ${CPACK_PACKAGE_LICENSE})
|
|
SET(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
|
|
|
|
SET(CPACK_RPM_SPEC_MORE_DEFINE "%undefine __brp_mangle_shebangs")
|
|
SET(CPACK_RPM_PACKAGE_AUTOREQ "no")
|
|
|
|
SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/postinst)
|
|
SET(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/prerm)
|
|
SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION ${ETC_DIR} ${SHARE_DIR})
|
|
SET(CPACK_RPM_USER_FILELIST "%config(noreplace) ${CMAPI_CONF_FILEPATH}")
|
|
|
|
SET(CPACK_RPM_PACKAGE_OBSOLETES "mariadb-columnstore-cmapi")
|
|
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "curl")
|
|
ENDIF()
|
|
|
|
OPTION(DEB "Build a DEB" OFF)
|
|
IF(DEB)
|
|
|
|
SET(CPACK_GENERATOR "DEB")
|
|
|
|
SET(CPACK_DEBIAN_PACKAGE_VERSION ${PACKAGE_VERSION})
|
|
# TODO: different names in deb and rpm packages, fix it in next releases.
|
|
STRING(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_DEBIAN_PACKAGE_NAME)
|
|
STRING(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_PACKAGE_NAME)
|
|
SET(CPACK_DEBIAN_PACKAGE_LICENSE "GPLv2")
|
|
SET(CPACK_DEBIAN_PACKAGE_URL ${CPACK_PACKAGE_URL})
|
|
SET(CPACK_DEBIAN_PACKAGE_SUMMARY ${CPACK_PACKAGE_SUMMARY})
|
|
SET(CPACK_DEBIAN_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR})
|
|
SET(CPACK_DEBIAN_PACKAGE_LICENSE ${CPACK_PACKAGE_LICENSE})
|
|
SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
|
|
|
|
SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/conffiles")
|
|
|
|
SET(CPACK_DEBIAN_PACKAGE_REPLACES "mariadb-columnstore-cmapi")
|
|
SET(CPACK_RPM_PACKAGE_REQUIRES "curl")
|
|
ENDIF()
|
|
|
|
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PACKAGE_VERSION}.${CMAKE_HOST_SYSTEM_PROCESSOR}")
|
|
INCLUDE (CPack)
|