mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-18 21:44:02 +03:00
MCOL-5548: Fix cmapi package filenaming.
[add] dynamic year to cmapi CmakeLists [add] package description to cmapi CmakeLists [add] use MDB ES repo cmake dir [fix] cmapi package filenaming [fix] .drone.jsonnet to do cmapi build step depending on clonning mdb step [add] cmapi_misc.cmake file [add] lsb-release package to build deps in drone.jsonnet file [fix] wrong debian and rpm requires curl placement [fix] SET(CPACK_PACKAGE_FILE_NAME [add] redhat-lsb-core package for RHEL systems [add] SERVER_DIR argument for cmapi CmakeLists.txt [add] get_linux_lsb_release_information() for both deb and rpm builds
This commit is contained in:
parent
e0d9b82705
commit
d2aaf857f7
@ -533,6 +533,7 @@ local Pipeline(branch, platform, event, arch='amd64', server='10.6-enterprise')
|
||||
},
|
||||
cmapipython:: {
|
||||
name: 'cmapi python',
|
||||
depends_on: ['clone-mdb'],
|
||||
image: img,
|
||||
volumes: [pipeline._volumes.mdb],
|
||||
environment: {
|
||||
@ -562,10 +563,11 @@ local Pipeline(branch, platform, event, arch='amd64', server='10.6-enterprise')
|
||||
},
|
||||
commands: [
|
||||
'cd cmapi',
|
||||
if (pkg_format == 'rpm') then 'yum install -y cmake make rpm-build libarchive createrepo findutils' else 'apt update && apt install --no-install-recommends -y cmake make dpkg-dev',
|
||||
if (platform == 'rockylinux:9') then 'dnf install -y yum-utils && dnf config-manager --set-enabled devel && dnf update -y',
|
||||
if (pkg_format == 'rpm') then 'yum install -y cmake make rpm-build libarchive createrepo findutils redhat-lsb-core' else 'apt update && apt install --no-install-recommends -y cmake make dpkg-dev lsb-release',
|
||||
if (platform == 'centos:7') then 'yum install -y epel-release && yum install -y cmake3 && ln -sf /usr/bin/cmake3 /usr/bin/cmake',
|
||||
'./cleanup.sh',
|
||||
'cmake -D' + std.asciiUpper(pkg_format) + '=1 . && make package',
|
||||
'cmake -D' + std.asciiUpper(pkg_format) + '=1 -DSERVER_DIR=/mdb/' + builddir + ' . && make package',
|
||||
'mkdir ./' + result,
|
||||
'mv -v *.%s ./%s/' % [pkg_format, result],
|
||||
if (pkg_format == 'rpm') then 'createrepo ./' + result else 'dpkg-scanpackages %s | gzip > ./%s/Packages.gz' % [result, result],
|
||||
|
@ -29,6 +29,7 @@ MACRO(GET_COLUMNSTORE_VERSION)
|
||||
SET(CMAPI_VERSION_MAJOR ${CS_MAJOR_VERSION})
|
||||
SET(CMAPI_VERSION_MINOR ${CS_MINOR_VERSION})
|
||||
SET(CMAPI_VERSION_PATCH ${CS_PATCH_VERSION}${CS_EXTRA_VERSION})
|
||||
SET(CMAPI_VERSION_RELEASE ${CS_RELEASE_VERSION})
|
||||
ENDIF()
|
||||
|
||||
IF(NOT "${CS_MAJOR_VERSION}" MATCHES "[0-9]+" OR
|
||||
|
@ -1,4 +1,7 @@
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
|
||||
|
||||
STRING(TIMESTAMP CURRENT_YEAR "%Y")
|
||||
|
||||
PROJECT(cmapi NONE)
|
||||
|
||||
SET(CPACK_PACKAGE_NAME "MariaDB-columnstore-cmapi")
|
||||
@ -6,19 +9,37 @@ SET(CPACK_PACKAGE_NAME "MariaDB-columnstore-cmapi")
|
||||
|
||||
# use columnstore package versioning
|
||||
SET(CMAPI "YES")
|
||||
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
|
||||
MESSAGE(STATUS "GET SERVER_DIR from input argument ${SERVER_DIR}")
|
||||
SET(SERVER_SOURCE_DIR "${SERVER_DIR}")
|
||||
INCLUDE(cmapi_misc)
|
||||
# Get mysql version
|
||||
GET_MYSQL_VERSION()
|
||||
# get CMAPI version from Columnstore version
|
||||
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_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_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}
|
||||
|
||||
It is GPL v2 licensed, which means you can use the it free of charge under the
|
||||
conditions of the GNU General Public License Version 2 (http://www.gnu.org/licenses/).
|
||||
|
||||
MariaDB documentation can be found at https://mariadb.com/kb
|
||||
MariaDB bug reports should be submitted through https://jira.mariadb.org
|
||||
|
||||
")
|
||||
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(CPACK_PACKAGE_LICENSE "Copyright (c) ${CURRENT_YEAR} 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")
|
||||
@ -81,7 +102,7 @@ IF(RPM)
|
||||
# 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_VERSION ${CMAPI_PACKAGE_VERSION})
|
||||
SET(CPACK_RPM_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
|
||||
|
||||
SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
|
||||
@ -101,30 +122,56 @@ IF(RPM)
|
||||
SET(CPACK_RPM_USER_FILELIST "%config(noreplace) ${CMAPI_CONF_FILEPATH}")
|
||||
|
||||
SET(CPACK_RPM_PACKAGE_OBSOLETES "mariadb-columnstore-cmapi")
|
||||
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "curl")
|
||||
SET(CPACK_RPM_PACKAGE_REQUIRES "curl")
|
||||
STRING(REPLACE "-" "_" SERVER_VERSION ${SERVER_VERSION})
|
||||
get_linux_lsb_release_information()
|
||||
|
||||
STRING(REGEX MATCH "^." OS_VERSION_MAJOR "${LSB_RELEASE_VERSION_SHORT}")
|
||||
MESSAGE(STATUS ${OS_VERSION_MAJOR})
|
||||
IF (LSB_RELEASE_ID_SHORT MATCHES "centos|rocky")
|
||||
SET(OS_NAME_SHORT "el")
|
||||
ELSE()
|
||||
SET(OS_NAME_SHORT "unknown")
|
||||
ENDIF()
|
||||
SET(OS_VERSION "${OS_NAME_SHORT}${OS_VERSION_MAJOR}")
|
||||
MESSAGE(STATUS "OS_VERSION ${OS_VERSION}")
|
||||
|
||||
SET(CPACK_RPM_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${SERVER_VERSION}_${CMAPI_PACKAGE_VERSION}-${CMAPI_VERSION_RELEASE}.${OS_VERSION}.${CMAKE_HOST_SYSTEM_PROCESSOR}")
|
||||
MESSAGE(STATUS "CPACK_RPM_PACKAGE_FILE_NAME ${CPACK_RPM_PACKAGE_FILE_NAME}")
|
||||
SET(CPACK_PACKAGE_FILE_NAME ${CPACK_RPM_PACKAGE_FILE_NAME})
|
||||
ENDIF()
|
||||
|
||||
OPTION(DEB "Build a DEB" OFF)
|
||||
IF(DEB)
|
||||
SET(CPACK_GENERATOR "DEB")
|
||||
|
||||
SET(CPACK_GENERATOR "DEB")
|
||||
SET(CPACK_DEBIAN_PACKAGE_VERSION ${CMAPI_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_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_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_DEBIAN_PACKAGE_DEPENDS "curl")
|
||||
STRING(REPLACE "-" "." SERVER_VERSION ${SERVER_VERSION})
|
||||
SET(PATCHLEVEL "+maria")
|
||||
get_linux_lsb_release_information()
|
||||
STRING(REGEX MATCH "^..." LSBID ${LSB_RELEASE_ID_SHORT})
|
||||
MESSAGE(STATUS "LSBID ${LSBID}")
|
||||
STRING(REPLACE "." "" LSBVERSION ${LSB_RELEASE_VERSION_SHORT})
|
||||
MESSAGE(STATUS "LSBVERSION ${LSBVERSION}")
|
||||
EXECUTE_PROCESS(COMMAND dpkg-architecture -q DEB_BUILD_ARCH OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
MESSAGE(STATUS "ARCHITECTURE detected ${ARCHITECTURE}")
|
||||
SET(CPACK_DEBIAN_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${SERVER_VERSION}-${CMAPI_PACKAGE_VERSION}${PATCHLEVEL}~${LSBID}${LSBVERSION}_${ARCHITECTURE}")
|
||||
MESSAGE(STATUS "CPACK_DEBIAN_PACKAGE_FILE_NAME ${CPACK_DEBIAN_PACKAGE_FILE_NAME}")
|
||||
SET(CPACK_PACKAGE_FILE_NAME ${CPACK_DEBIAN_PACKAGE_FILE_NAME})
|
||||
ENDIF()
|
||||
|
||||
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)
|
||||
|
@ -1,3 +1,4 @@
|
||||
CMAPI_VERSION_MAJOR=${CMAPI_VERSION_MAJOR}
|
||||
CMAPI_VERSION_MINOR=${CMAPI_VERSION_MINOR}
|
||||
CMAPI_VERSION_PATCH=${CMAPI_VERSION_PATCH}
|
||||
CMAPI_VERSION_RELEASE=${CMAPI_VERSION_RELEASE}
|
||||
|
64
cmapi/cmake/cmapi_misc.cmake
Normal file
64
cmapi/cmake/cmapi_misc.cmake
Normal file
@ -0,0 +1,64 @@
|
||||
# Read value for a variable from VERSION.
|
||||
MACRO(MYSQL_GET_CONFIG_VALUE keyword var)
|
||||
IF(NOT ${var})
|
||||
FILE (STRINGS ${SERVER_SOURCE_DIR}/VERSION str REGEX "^[ ]*${keyword}=")
|
||||
IF(str)
|
||||
STRING(REPLACE "${keyword}=" "" str ${str})
|
||||
STRING(REGEX REPLACE "[ ].*" "" str "${str}")
|
||||
SET(${var} ${str})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
function(get_linux_lsb_release_information)
|
||||
# made like in autobake script but for rhel too, cause aws linux gives
|
||||
# wrong CMAKE_SYSTEM for eg: Linux-5.4.0-1029-aws
|
||||
FIND_PROGRAM(LSB_RELEASE_EXEC lsb_release)
|
||||
if(NOT LSB_RELEASE_EXEC)
|
||||
MESSAGE(FATAL_ERROR "Could not detect lsb_release executable, can not gather required information")
|
||||
endif()
|
||||
|
||||
EXECUTE_PROCESS(COMMAND "${LSB_RELEASE_EXEC}" --short --id OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
MESSAGE(STATUS "LSB_RELEASE_ID_SHORT ${LSB_RELEASE_ID_SHORT}")
|
||||
STRING(TOLOWER ${LSB_RELEASE_ID_SHORT} LSB_RELEASE_ID_SHORT)
|
||||
MESSAGE(STATUS "LSB_RELEASE_ID_SHORT ${LSB_RELEASE_ID_SHORT}")
|
||||
|
||||
EXECUTE_PROCESS(COMMAND "${LSB_RELEASE_EXEC}" --short --release OUTPUT_VARIABLE LSB_RELEASE_VERSION_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
MESSAGE(STATUS "LSB_RELEASE_VERSION_SHORT ${LSB_RELEASE_VERSION_SHORT}")
|
||||
EXECUTE_PROCESS(COMMAND "${LSB_RELEASE_EXEC}" --short --codename OUTPUT_VARIABLE LSB_RELEASE_CODENAME_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
SET(LSB_RELEASE_ID_SHORT "${LSB_RELEASE_ID_SHORT}" PARENT_SCOPE)
|
||||
SET(LSB_RELEASE_VERSION_SHORT "${LSB_RELEASE_VERSION_SHORT}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
|
||||
# Read mysql version for configure script
|
||||
MACRO(GET_MYSQL_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_MAJOR" MAJOR_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_MINOR" MINOR_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_PATCH" PATCH_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_EXTRA" EXTRA_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("SERVER_MATURITY" SERVER_MATURITY)
|
||||
|
||||
IF(NOT "${MAJOR_VERSION}" MATCHES "[0-9]+" OR
|
||||
NOT "${MINOR_VERSION}" MATCHES "[0-9]+" OR
|
||||
NOT "${PATCH_VERSION}" MATCHES "[0-9]+")
|
||||
MESSAGE(FATAL_ERROR "VERSION file cannot be parsed.")
|
||||
ENDIF()
|
||||
IF((NOT TINY_VERSION) AND (EXTRA_VERSION MATCHES "[\\-][0-9]+"))
|
||||
STRING(REPLACE "-" "" TINY_VERSION "${EXTRA_VERSION}")
|
||||
ELSE()
|
||||
SET(TINY_VERSION "0")
|
||||
ENDIF()
|
||||
SET(VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EXTRA_VERSION}")
|
||||
SET(SERVER_VERSION ${VERSION})
|
||||
MESSAGE(STATUS "MariaDB ${VERSION}")
|
||||
SET(MYSQL_BASE_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}" CACHE INTERNAL "MySQL Base version")
|
||||
SET(MYSQL_NO_DASH_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
|
||||
MATH(EXPR MYSQL_VERSION_ID "10000*${MAJOR_VERSION} + 100*${MINOR_VERSION} + ${PATCH_VERSION}")
|
||||
MARK_AS_ADVANCED(VERSION MYSQL_VERSION_ID MYSQL_BASE_VERSION)
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION}${EXTRA_VERSION})
|
||||
ENDMACRO()
|
Loading…
x
Reference in New Issue
Block a user