RPM.cmake 5.6 KB
Newer Older
O
oceanbase-admin 已提交
1 2 3 4 5 6 7 8
set(CPACK_GENERATOR "RPM")
# use seperated RPM SPECs and generate different RPMs
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
set(CPACK_RPM_COMPONENT_INSTALL ON)
# use "server" as main component so its RPM filename won't have "server"
set(CPACK_RPM_MAIN_COMPONENT "server")
# let rpmbuild determine rpm filename
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
9
set(CPACK_RPM_PACKAGE_RELEASE ${OB_RELEASEID})
O
oceanbase-admin 已提交
10 11 12
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
# RPM package informations.
set(CPACK_PACKAGING_INSTALL_PREFIX /home/admin/oceanbase)
F
Fireatoms 已提交
13 14 15
# set relocation path install prefix for each component
set(CPACK_RPM_DEVEL_PACKAGE_PREFIX /usr)
set(CPACK_RPM_UTILS_PACKAGE_PREFIX /usr)
X
xh0 已提交
16
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/home/admin/oceanbase")
O
oceanbase-admin 已提交
17 18 19
set(CPACK_PACKAGE_NAME "oceanbase-ce")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OceanBase CE is a distributed relational database")
set(CPACK_PACKAGE_VENDOR "Ant Group CO., Ltd.")
20
set(CPACK_PACKAGE_VERSION 3.1.5)
O
oceanbase-admin 已提交
21 22
set(CPACK_PACKAGE_VERSION_MAJOR 3)
set(CPACK_PACKAGE_VERSION_MINOR 1)
23
set(CPACK_PACKAGE_VERSION_PATCH 5)
O
oceanbase-admin 已提交
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
set(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
set(CPACK_RPM_PACKAGE_URL "https://open.oceanbase.com")
set(CPACK_RPM_PACKAGE_DESCRIPTION "OceanBase CE is a distributed relational database")
set(CPACK_RPM_PACKAGE_LICENSE "Mulan PubL v2.")
set(CPACK_RPM_DEFAULT_USER "admin")
set(CPACK_RPM_DEFAULT_GROUP "admin")
set(CPACK_RPM_SPEC_MORE_DEFINE
  "%global _missing_build_ids_terminate_build 0
%global _find_debuginfo_opts -g
%define __debug_install_post %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} %{_builddir}/%{?buildsubdir};%{nil}
%define debug_package %{nil}")

## TIPS
#
# - PATH is relative to the **ROOT directory** of project other than the cmake directory.

## server
install(PROGRAMS
  tools/timezone/import_time_zone_info.py
  ${CMAKE_BINARY_DIR}/src/observer/observer
  $<$<STREQUAL:${ARCHITECTURE},"x86_64">:tools/timezone/mysql_tzinfo_to_sql>
  DESTINATION bin
  COMPONENT server)

install(FILES
  tools/timezone/timezone_V1.log
50 51 52 53 54 55 56 57 58
  tools/upgrade/upgrade_pre.py
  tools/upgrade/upgrade_post.py
  tools/upgrade/upgrade_post_checker.py
  tools/upgrade/upgrade_checker.py
  tools/upgrade/upgrade_cluster_health_checker.py
  tools/upgrade/upgrade_rolling_pre.py
  tools/upgrade/upgrade_rolling_post.py
  tools/upgrade/priv_checker.py
  tools/upgrade/oceanbase_upgrade_dep.yml
O
oceanbase-admin 已提交
59 60 61
  DESTINATION etc
  COMPONENT server)

M
MizuhaHimuraki 已提交
62
## oceanbase-devel
63
# libobcdc.so and libob_sql_proxy_parser_static.a
64 65
set(OCEANBASE_DEVEL_LIB_FILES "")
set(OCEANBASE_DEVEL_INCLUDE_FILES deps/oblib/src/lib/ob_errno.h)
X
xh0 已提交
66 67
set(OCEANBASE_DEVEL_BIN_FILES "")

68 69 70 71 72 73 74 75 76 77 78 79 80 81
message(STATUS "OB_BUILD_LIBOB_SQL_PROXY_PARSER ${OB_BUILD_LIBOB_SQL_PROXY_PARSER}")
if (OB_BUILD_LIBOB_SQL_PROXY_PARSER)
  # lib
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/src/sql/parser/libob_sql_proxy_parser_static.a)

  # headers
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES deps/oblib/src/common/sql_mode/ob_sql_mode.h)
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES src/sql/parser/ob_item_type.h)
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES src/sql/parser/ob_sql_parser.h)
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES src/sql/parser/parse_malloc.h)
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES src/sql/parser/parser_proxy_func.h)
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES src/sql/parser/parse_node.h)
endif()

X
xh0 已提交
82 83
if (OB_BUILD_LIBOBLOG)
  # lib
84 85 86 87
  # list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/tools/libobcdc/src/libobcdc.a)
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/tools/obcdc/src/libobcdc.so)
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/tools/obcdc/src/libobcdc.so.1)
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/tools/obcdc/src/libobcdc.so.1.0.0)
X
xh0 已提交
88

89
  # include lilboblog header
90
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES tools/obcdc/src/libobcdc.h)
X
xh0 已提交
91 92

  # bin
93
  list(APPEND OCEANBASE_DEVEL_BIN_FILES ${CMAKE_BINARY_DIR}/tools/obcdc/tests/obcdc_tailf)
X
xh0 已提交
94 95 96 97
endif()

set(CPACK_RPM_DEVEL_DEFAULT_USER "root")
set(CPACK_RPM_DEVEL_DEFAULT_GROUP "root")
M
MizuhaHimuraki 已提交
98 99

install(PROGRAMS
X
xh0 已提交
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
  ${OCEANBASE_DEVEL_LIB_FILES}
  DESTINATION /usr/lib
  COMPONENT devel
)

install(FILES
  ${OCEANBASE_DEVEL_INCLUDE_FILES}
  DESTINATION /usr/include
  COMPONENT devel
)

install(PROGRAMS
  ${OCEANBASE_DEVEL_BIN_FILES}
  DESTINATION /usr/bin
  COMPONENT devel
)
O
oceanbase-admin 已提交
116

117 118 119 120 121 122 123
if (OB_BUILD_LIBOBLOG)
  install(DIRECTORY
    "deps/logmessage/include/"
    DESTINATION /usr/include/oblogmsg
    COMPONENT devel)
endif()

O
oceanbase-admin 已提交
124 125 126 127 128 129 130 131 132 133 134
## oceanbase-libs
install(PROGRAMS
  deps/3rd/usr/local/oceanbase/deps/devel/lib/libaio.so.1
  deps/3rd/usr/local/oceanbase/deps/devel/lib/libaio.so.1.0.1
  deps/3rd/usr/local/oceanbase/deps/devel/lib/libaio.so
  deps/3rd/usr/local/oceanbase/deps/devel/lib/mariadb/libmariadb.so
  deps/3rd/usr/local/oceanbase/deps/devel/lib/mariadb/libmariadb.so.3
  DESTINATION lib
  COMPONENT libs
  )

X
xh0 已提交
135
# utils
X
xh0 已提交
136 137 138
set(CPACK_RPM_UTILS_DEFAULT_USER "root")
set(CPACK_RPM_UTILS_DEFAULT_GROUP "root")

139 140 141 142 143 144 145 146
if (OB_BUILD_TOOLS)
  install(PROGRAMS
    ${CMAKE_BINARY_DIR}/tools/ob_admin/ob_admin
    ${CMAKE_BINARY_DIR}/tools/ob_error/src/ob_error
    DESTINATION /usr/bin
    COMPONENT utils
  )
endif()
X
xh0 已提交
147 148 149 150 151
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_post.script "/sbin/ldconfig /home/admin/oceanbase/lib")
set(CPACK_RPM_UTILS_POST_INSTALL_SCRIPT_FILE  ${CMAKE_CURRENT_BINARY_DIR}/utils_post.script)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script "/sbin/ldconfig")
set(CPACK_RPM_UTILS_POST_UNINSTALL_SCRIPT_FILE  ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script)

O
oceanbase-admin 已提交
152 153 154 155 156 157 158
# install cpack to make everything work
include(CPack)

#add rpm target to create RPMS
add_custom_target(rpm
  COMMAND +make package
  DEPENDS
X
xh0 已提交
159
  observer ob_admin ob_error
M
MizuhaHimuraki 已提交
160
  ob_sql_proxy_parser_static)