2019-02-11 12:51:36 +08:00
|
|
|
################################################################################
|
|
|
|
# Helper Functions
|
|
|
|
################################################################################
|
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
function(install_symlink_impl)
|
2019-02-17 04:07:52 +08:00
|
|
|
if (NOT WIN32)
|
|
|
|
set(options "")
|
2019-02-28 12:17:11 +08:00
|
|
|
set(one_value_options TO DESTINATION)
|
|
|
|
set(multi_value_options COMPONENTS)
|
2019-02-17 04:07:52 +08:00
|
|
|
cmake_parse_arguments(SYM "${options}" "${one_value_options}" "${multi_value_options}" "${ARGN}")
|
|
|
|
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/symlinks)
|
|
|
|
get_filename_component(fname ${SYM_DESTINATION} NAME)
|
|
|
|
get_filename_component(dest_dir ${SYM_DESTINATION} DIRECTORY)
|
|
|
|
set(sl ${CMAKE_CURRENT_BINARY_DIR}/symlinks/${fname})
|
|
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SYM_TO} ${sl})
|
2019-02-28 12:17:11 +08:00
|
|
|
foreach(component IN LISTS SYM_COMPONENTS)
|
|
|
|
install(FILES ${sl} DESTINATION ${dest_dir} COMPONENT ${component})
|
|
|
|
endforeach()
|
2019-02-17 04:07:52 +08:00
|
|
|
endif()
|
2019-02-11 12:51:36 +08:00
|
|
|
endfunction()
|
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
function(install_symlink)
|
|
|
|
if(NOT WIN32 AND NOT OPEN_FOR_IDE)
|
|
|
|
set(options "")
|
|
|
|
set(one_value_options COMPONENT LINK_DIR FILE_DIR LINK_NAME FILE_NAME)
|
|
|
|
set(multi_value_options "")
|
|
|
|
cmake_parse_arguments(IN "${options}" "${one_value_options}" "${multi_value_options}" "${ARGN}")
|
2018-05-06 00:43:50 +08:00
|
|
|
|
2019-03-03 02:58:54 +08:00
|
|
|
set(rel_path "")
|
2019-02-28 12:17:11 +08:00
|
|
|
string(REGEX MATCHALL "\\/" slashes "${IN_LINK_NAME}")
|
2019-03-03 02:58:54 +08:00
|
|
|
foreach(ignored IN LISTS slashes)
|
2019-02-28 12:17:11 +08:00
|
|
|
set(rel_path "../${rel_path}")
|
|
|
|
endforeach()
|
|
|
|
if("${IN_FILE_DIR}" MATCHES "bin")
|
|
|
|
if("${IN_LINK_DIR}" MATCHES "lib")
|
|
|
|
install_symlink_impl(
|
2019-03-03 02:58:54 +08:00
|
|
|
TO "../${rel_path}bin/${IN_FILE_NAME}"
|
2019-02-28 12:17:11 +08:00
|
|
|
DESTINATION "lib/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-tgz")
|
|
|
|
install_symlink_impl(
|
2019-03-03 02:58:54 +08:00
|
|
|
TO "../${rel_path}bin/${IN_FILE_NAME}"
|
2019-02-28 12:17:11 +08:00
|
|
|
DESTINATION "usr/lib64/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-el6"
|
|
|
|
"${IN_COMPONENT}-el7"
|
|
|
|
"${IN_COMPONENT}-deb")
|
|
|
|
install_symlink_impl(
|
2019-03-03 02:58:54 +08:00
|
|
|
TO "../${rel_path}bin/${IN_FILE_NAME}"
|
2019-02-28 12:17:11 +08:00
|
|
|
DESTINATION "usr/lib64/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-deb")
|
|
|
|
elseif("${IN_LINK_DIR}" MATCHES "bin")
|
|
|
|
install_symlink_impl(
|
2019-03-03 02:58:54 +08:00
|
|
|
TO "../${rel_path}bin/${IN_FILE_NAME}"
|
2019-02-28 12:17:11 +08:00
|
|
|
DESTINATION "bin/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-tgz")
|
|
|
|
install_symlink_impl(
|
2019-03-03 02:58:54 +08:00
|
|
|
TO "../${rel_path}bin/${IN_FILE_NAME}"
|
2019-02-28 12:17:11 +08:00
|
|
|
DESTINATION "usr/bin/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-el6"
|
|
|
|
"${IN_COMPONENT}-el7"
|
|
|
|
"${IN_COMPONENT}-deb")
|
2019-03-03 06:05:05 +08:00
|
|
|
elseif("${IN_LINK_DIR}" MATCHES "fdbmonitor")
|
|
|
|
install_symlink_impl(
|
|
|
|
TO "../../${rel_path}bin/${IN_FILE_NAME}"
|
|
|
|
DESTINATION "lib/foundationdb/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-tgz")
|
|
|
|
install_symlink_impl(
|
|
|
|
TO "../../${rel_path}bin/${IN_FILE_NAME}"
|
|
|
|
DESTINATION "usr/lib/foundationdb/${IN_LINK_NAME}"
|
|
|
|
COMPONENTS "${IN_COMPONENT}-el6"
|
|
|
|
"${IN_COMPONENT}-el7"
|
|
|
|
"${IN_COMPONENT}-deb")
|
2019-02-28 12:17:11 +08:00
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unknown LINK_DIR ${IN_LINK_DIR}")
|
|
|
|
endif()
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unknown FILE_DIR ${IN_FILE_DIR}")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endfunction()
|
2019-02-11 07:50:11 +08:00
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
function(fdb_install)
|
|
|
|
if(NOT WIN32 AND NOT OPEN_FOR_IDE)
|
|
|
|
set(one_value_options COMPONENT DESTINATION)
|
|
|
|
set(multi_value_options TARGETS FILES DIRECTORY)
|
|
|
|
cmake_parse_arguments(IN "${options}" "${one_value_options}" "${multi_value_options}" "${ARGN}")
|
2019-02-11 07:50:11 +08:00
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
if(IN_TARGETS)
|
|
|
|
set(args TARGETS ${IN_TARGETS})
|
|
|
|
elseif(IN_FILES)
|
|
|
|
set(args FILES ${IN_FILES})
|
|
|
|
elseif(IN_DIRECTORY)
|
|
|
|
set(args DIRECTORY ${IN_DIRECTORY})
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Expected FILES or TARGETS")
|
|
|
|
endif()
|
2019-03-02 06:13:16 +08:00
|
|
|
if("${IN_DESTINATION}" STREQUAL "bin")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "bin" COMPONENT "${IN_COMPONENT}-tgz")
|
|
|
|
install(${args} DESTINATION "usr/bin" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "usr/bin" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "usr/bin" COMPONENT "${IN_COMPONENT}-el7")
|
|
|
|
install(${args} DESTINATION "usr/local/bin" COMPONENT "${IN_COMPONENT}-pm")
|
2019-03-02 06:13:16 +08:00
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "sbin")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "sbin" COMPONENT "${IN_COMPONENT}-tgz")
|
|
|
|
install(${args} DESTINATION "usr/sbin" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "usr/sbin" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "usr/sbin" COMPONENT "${IN_COMPONENT}-el7")
|
|
|
|
install(${args} DESTINATION "usr/local/libexec" COMPONENT "${IN_COMPONENT}-pm")
|
2019-03-16 01:24:49 +08:00
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "lib")
|
|
|
|
install(${args} DESTINATION "lib" COMPONENT "${IN_COMPONENT}-tgz")
|
|
|
|
install(${args} DESTINATION "usr/lib" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "usr/lib64" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "usr/lib64" COMPONENT "${IN_COMPONENT}-el7")
|
|
|
|
install(${args} DESTINATION "lib" COMPONENT "${IN_COMPONENT}-pm")
|
2019-03-02 06:13:16 +08:00
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "fdbmonitor")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "libexec" COMPONENT "${IN_COMPONENT}-tgz")
|
2019-03-02 06:13:16 +08:00
|
|
|
install(${args} DESTINATION "usr/lib/foundationdb" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "usr/lib/foundationdb" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "usr/lib/foundationdb" COMPONENT "${IN_COMPONENT}-el7")
|
|
|
|
install(${args} DESTINATION "usr/local/libexec" COMPONENT "${IN_COMPONENT}-pm")
|
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "include")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "include" COMPONENT "${IN_COMPONENT}-tgz")
|
|
|
|
install(${args} DESTINATION "usr/include" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "usr/include" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "usr/include" COMPONENT "${IN_COMPONENT}-el7")
|
|
|
|
install(${args} DESTINATION "usr/local/include" COMPONENT "${IN_COMPONENT}-pm")
|
2019-03-02 06:13:16 +08:00
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "etc")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-tgz")
|
|
|
|
install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-el7")
|
|
|
|
install(${args} DESTINATION "usr/local/etc/foundationdb" COMPONENT "${IN_COMPONENT}-pm")
|
2019-03-02 06:13:16 +08:00
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "log")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "log/foundationdb" COMPONENT "${IN_COMPONENT}-tgz")
|
|
|
|
install(${args} DESTINATION "var/log/foundationdb" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "var/log/foundationdb" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "var/log/foundationdb" COMPONENT "${IN_COMPONENT}-el7")
|
2019-03-02 06:13:16 +08:00
|
|
|
elseif("${IN_DESTINATION}" STREQUAL "data")
|
2019-02-28 12:17:11 +08:00
|
|
|
install(${args} DESTINATION "lib/foundationdb" COMPONENT "${IN_COMPONENT}-tgz")
|
2019-03-04 05:40:15 +08:00
|
|
|
install(${args} DESTINATION "var/lib/foundationdb/data" COMPONENT "${IN_COMPONENT}-deb")
|
|
|
|
install(${args} DESTINATION "var/lib/foundationdb/data" COMPONENT "${IN_COMPONENT}-el6")
|
|
|
|
install(${args} DESTINATION "var/lib/foundationdb/data" COMPONENT "${IN_COMPONENT}-el7")
|
2019-03-16 01:24:37 +08:00
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "unrecognized destination ${IN_DESTINATION}")
|
2019-02-28 12:17:11 +08:00
|
|
|
endif()
|
2019-02-11 12:51:36 +08:00
|
|
|
endif()
|
2019-02-28 12:17:11 +08:00
|
|
|
endfunction()
|
2018-05-06 00:43:50 +08:00
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
if(APPLE)
|
2019-05-12 05:42:48 +08:00
|
|
|
set(CPACK_GENERATOR TGZ productbuild)
|
2019-02-08 08:35:08 +08:00
|
|
|
else()
|
2019-02-28 12:17:11 +08:00
|
|
|
set(CPACK_GENERATOR RPM DEB TGZ)
|
2019-02-08 08:35:08 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
set(CPACK_PACKAGE_CHECKSUM SHA256)
|
2019-05-12 05:42:48 +08:00
|
|
|
configure_file("${CMAKE_SOURCE_DIR}/cmake/CPackConfig.cmake" "${CMAKE_BINARY_DIR}/packaging/CPackConfig.cmake")
|
|
|
|
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/packaging/CPackConfig.cmake")
|
2019-02-28 12:17:11 +08:00
|
|
|
|
2018-05-06 00:43:50 +08:00
|
|
|
################################################################################
|
|
|
|
# Version information
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
string(REPLACE "." ";" FDB_VERSION_LIST ${FDB_VERSION_PLAIN})
|
|
|
|
list(GET FDB_VERSION_LIST 0 FDB_MAJOR)
|
|
|
|
list(GET FDB_VERSION_LIST 1 FDB_MINOR)
|
|
|
|
list(GET FDB_VERSION_LIST 2 FDB_PATCH)
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# General CPack configuration
|
|
|
|
################################################################################
|
|
|
|
|
2018-05-06 03:08:39 +08:00
|
|
|
include(InstallRequiredSystemLibraries)
|
2018-05-06 00:43:50 +08:00
|
|
|
set(CPACK_PACKAGE_NAME "foundationdb")
|
2019-05-03 13:14:18 +08:00
|
|
|
set(CPACK_PACKAGE_VENDOR "FoundationDB")
|
|
|
|
set(CPACK_PACKAGE_CONTACT "fdb-dist@apple.com")
|
2018-05-06 00:43:50 +08:00
|
|
|
set(CPACK_PACKAGE_VERSION_MAJOR ${FDB_MAJOR})
|
|
|
|
set(CPACK_PACKAGE_VERSION_MINOR ${FDB_MINOR})
|
|
|
|
set(CPACK_PACKAGE_VERSION_PATCH ${FDB_PATCH})
|
2019-02-17 04:07:52 +08:00
|
|
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${FDB_VERSION}-${CPACK_SYSTEM_NAME}")
|
|
|
|
set(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_BINARY_DIR}/packages")
|
2018-05-06 00:43:50 +08:00
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/packaging/description)
|
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
|
|
|
"FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions.")
|
|
|
|
set(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/packaging/foundationdb.ico)
|
2018-05-07 05:20:21 +08:00
|
|
|
set(CPACK_PACKAGE_CONTACT "The FoundationDB Community")
|
2019-03-02 06:13:16 +08:00
|
|
|
|
|
|
|
set(CPACK_COMPONENT_SERVER-EL6_DEPENDS clients-el6)
|
|
|
|
set(CPACK_COMPONENT_SERVER-EL7_DEPENDS clients-el7)
|
|
|
|
set(CPACK_COMPONENT_SERVER-DEB_DEPENDS clients-deb)
|
|
|
|
set(CPACK_COMPONENT_SERVER-TGZ_DEPENDS clients-tgz)
|
|
|
|
set(CPACK_COMPONENT_SERVER-PM_DEPENDS clients-pm)
|
|
|
|
|
|
|
|
set(CPACK_COMPONENT_SERVER-EL6_DISPLAY_NAME "foundationdb-server")
|
|
|
|
set(CPACK_COMPONENT_SERVER-EL7_DISPLAY_NAME "foundationdb-server")
|
|
|
|
set(CPACK_COMPONENT_SERVER-DEB_DISPLAY_NAME "foundationdb-server")
|
|
|
|
set(CPACK_COMPONENT_SERVER-TGZ_DISPLAY_NAME "foundationdb-server")
|
|
|
|
set(CPACK_COMPONENT_SERVER-PM_DISPLAY_NAME "foundationdb-server")
|
|
|
|
|
|
|
|
set(CPACK_COMPONENT_CLIENTS-EL6_DISPLAY_NAME "foundationdb-clients")
|
|
|
|
set(CPACK_COMPONENT_CLIENTS-EL7_DISPLAY_NAME "foundationdb-clients")
|
|
|
|
set(CPACK_COMPONENT_CLIENTS-DEB_DISPLAY_NAME "foundationdb-clients")
|
|
|
|
set(CPACK_COMPONENT_CLIENTS-TGZ_DISPLAY_NAME "foundationdb-clients")
|
|
|
|
set(CPACK_COMPONENT_CLIENTS-PM_DISPLAY_NAME "foundationdb-clients")
|
|
|
|
|
2019-03-01 06:05:24 +08:00
|
|
|
|
|
|
|
# MacOS needs a file exiension for the LICENSE file
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/LICENSE ${CMAKE_BINARY_DIR}/License.txt COPYONLY)
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# Filename of packages
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
if(NOT FDB_RELEASE)
|
|
|
|
set(prerelease_string ".PRERELEASE")
|
2018-05-06 00:43:50 +08:00
|
|
|
endif()
|
2019-03-01 06:05:24 +08:00
|
|
|
set(clients-filename "foundationdb-clients-${PROJECT_VERSION}.${CURRENT_GIT_VERSION}${prerelease_string}")
|
|
|
|
set(server-filename "foundationdb-server-${PROJECT_VERSION}.${CURRENT_GIT_VERSION}${prerelease_string}")
|
2018-05-06 00:43:50 +08:00
|
|
|
|
2018-05-06 06:33:21 +08:00
|
|
|
################################################################################
|
|
|
|
# Configuration for RPM
|
|
|
|
################################################################################
|
2019-02-11 14:51:40 +08:00
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0")
|
|
|
|
|
|
|
|
set(CPACK_RPM_PACKAGE_NAME "foundationdb")
|
2019-03-02 07:21:21 +08:00
|
|
|
set(CPACK_RPM_CLIENTS-EL6_PACKAGE_NAME "foundationdb-clients")
|
|
|
|
set(CPACK_RPM_CLIENTS-EL7_PACKAGE_NAME "foundationdb-clients")
|
|
|
|
set(CPACK_RPM_SERVER-EL6_PACKAGE_NAME "foundationdb-server")
|
|
|
|
set(CPACK_RPM_SERVER-EL7_PACKAGE_NAME "foundationdb-server")
|
2019-03-02 06:13:16 +08:00
|
|
|
|
|
|
|
set(CPACK_RPM_CLIENTS-EL6_FILE_NAME "${clients-filename}.el6.x86_64.rpm")
|
|
|
|
set(CPACK_RPM_CLIENTS-EL7_FILE_NAME "${clients-filename}.el7.x86_64.rpm")
|
|
|
|
set(CPACK_RPM_SERVER-EL6_FILE_NAME "${server-filename}.el6.x86_64.rpm")
|
|
|
|
set(CPACK_RPM_SERVER-EL7_FILE_NAME "${server-filename}.el7.x86_64.rpm")
|
|
|
|
|
2019-03-02 07:21:21 +08:00
|
|
|
set(CPACK_RPM_CLIENTS-EL6_DEBUGINFO_FILE_NAME "${clients-filename}.el6-debuginfo.x86_64.rpm")
|
|
|
|
set(CPACK_RPM_CLIENTS-EL7_DEBUGINFO_FILE_NAME "${clients-filename}.el7-debuginfo.x86_64.rpm")
|
|
|
|
set(CPACK_RPM_SERVER-EL6_DEBUGINFO_FILE_NAME "${server-filename}.el6-debuginfo.x86_64.rpm")
|
|
|
|
set(CPACK_RPM_SERVER-EL7_DEBUGINFO_FILE_NAME "${server-filename}.el7-debuginfo.x86_64.rpm")
|
2019-03-02 06:13:16 +08:00
|
|
|
|
2019-02-28 12:17:11 +08:00
|
|
|
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir")
|
2019-03-02 06:13:16 +08:00
|
|
|
fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION data COMPONENT server)
|
2019-02-28 12:17:11 +08:00
|
|
|
fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION log COMPONENT server)
|
2019-03-19 07:02:12 +08:00
|
|
|
fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION etc COMPONENT clients)
|
2018-05-06 06:33:21 +08:00
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL6_USER_FILELIST
|
|
|
|
"%config(noreplace) /etc/foundationdb/foundationdb.conf"
|
|
|
|
"%attr(0700,foundationdb,foundationdb) /var/log/foundationdb"
|
|
|
|
"%attr(0700, foundationdb, foundationdb) /var/lib/foundationdb")
|
|
|
|
set(CPACK_RPM_SERVER-EL7_USER_FILELIST
|
2019-02-28 12:17:11 +08:00
|
|
|
"%config(noreplace) /etc/foundationdb/foundationdb.conf"
|
|
|
|
"%attr(0700,foundationdb,foundationdb) /var/log/foundationdb"
|
|
|
|
"%attr(0700, foundationdb, foundationdb) /var/lib/foundationdb")
|
|
|
|
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
|
|
|
"/usr/sbin"
|
|
|
|
"/usr/share/java"
|
|
|
|
"/usr/lib64/python2.7"
|
|
|
|
"/usr/lib64/python2.7/site-packages"
|
|
|
|
"/var"
|
|
|
|
"/var/log"
|
|
|
|
"/var/lib"
|
|
|
|
"/lib"
|
|
|
|
"/lib/systemd"
|
|
|
|
"/lib/systemd/system"
|
|
|
|
"/etc/rc.d/init.d")
|
|
|
|
set(CPACK_RPM_DEBUGINFO_PACKAGE ON)
|
2019-03-02 06:13:16 +08:00
|
|
|
#set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX /usr/src)
|
2019-02-28 12:17:11 +08:00
|
|
|
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_CLIENTS-EL6_PRE_INSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preclients.sh)
|
|
|
|
set(CPACK_RPM_clients-el7_PRE_INSTALL_SCRIPT_FILE
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preclients.sh)
|
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_CLIENTS-EL6_POST_INSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postclients.sh)
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_CLIENTS-EL7_POST_INSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postclients.sh)
|
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL6_PRE_INSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preserver.sh)
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL7_PRE_INSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preserver.sh)
|
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL6_POST_INSTALL_SCRIPT_FILE
|
2019-03-03 06:36:55 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postserver-el6.sh)
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL7_POST_INSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postserver.sh)
|
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL6_PRE_UNINSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preunserver.sh)
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL7_PRE_UNINSTALL_SCRIPT_FILE
|
2019-02-28 12:17:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preunserver.sh)
|
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL6_PACKAGE_REQUIRES
|
2019-03-03 06:05:05 +08:00
|
|
|
"foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}")
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_RPM_SERVER-EL7_PACKAGE_REQUIRES
|
2019-03-02 08:02:51 +08:00
|
|
|
"foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}")
|
2019-02-28 12:17:11 +08:00
|
|
|
#set(CPACK_RPM_java_PACKAGE_REQUIRES
|
|
|
|
# "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}")
|
2019-03-02 06:13:16 +08:00
|
|
|
#set(CPACK_RPM_python_PACKAGE_REQUIRES
|
|
|
|
# "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}")
|
2018-05-07 05:20:21 +08:00
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# Configuration for DEB
|
|
|
|
################################################################################
|
|
|
|
|
2019-03-01 06:05:24 +08:00
|
|
|
set(CPACK_DEBIAN_CLIENTS-DEB_FILE_NAME "${clients-filename}_amd64.deb")
|
|
|
|
set(CPACK_DEBIAN_SERVER-DEB_FILE_NAME "${server-filename}_amd64.deb")
|
2019-02-28 12:17:11 +08:00
|
|
|
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
|
|
|
set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON)
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_SECTION "database")
|
|
|
|
set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON)
|
2018-05-07 05:20:21 +08:00
|
|
|
|
2019-03-02 06:13:16 +08:00
|
|
|
set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_NAME "foundationdb-server")
|
|
|
|
set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_NAME "foundationdb-clients")
|
|
|
|
|
2019-03-19 01:24:01 +08:00
|
|
|
set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12), foundationdb-clients (= ${FDB_VERSION})")
|
2019-03-20 00:51:52 +08:00
|
|
|
set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_RECOMMENDS "python (>= 2.6)")
|
2019-02-28 12:17:11 +08:00
|
|
|
set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12)")
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.foundationdb.org")
|
|
|
|
set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_CONTROL_EXTRA
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-clients/postinst)
|
|
|
|
set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_CONTROL_EXTRA
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
|
|
|
|
${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)
|
2018-05-06 00:43:50 +08:00
|
|
|
|
2019-02-08 07:10:32 +08:00
|
|
|
################################################################################
|
|
|
|
# MacOS configuration
|
|
|
|
################################################################################
|
|
|
|
|
2019-05-12 05:42:48 +08:00
|
|
|
if(APPLE)
|
2019-02-08 08:35:08 +08:00
|
|
|
install(PROGRAMS ${CMAKE_SOURCE_DIR}/packaging/osx/uninstall-FoundationDB.sh
|
|
|
|
DESTINATION "usr/local/foundationdb"
|
2019-02-28 12:17:11 +08:00
|
|
|
COMPONENT clients-pm)
|
2019-02-08 08:35:08 +08:00
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/osx/com.foundationdb.fdbmonitor.plist
|
|
|
|
DESTINATION "Library/LaunchDaemons"
|
2019-02-28 12:17:11 +08:00
|
|
|
COMPONENT server-pm)
|
2019-02-08 07:10:32 +08:00
|
|
|
endif()
|
|
|
|
|
2019-03-01 06:05:24 +08:00
|
|
|
################################################################################
|
|
|
|
# Configuration for DEB
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
|
|
|
set(CPACK_ARCHIVE_CLIENTS-TGZ_FILE_NAME "${clients-filename}.x86_64")
|
|
|
|
set(CPACK_ARCHIVE_SERVER-TGZ_FILE_NAME "${server-filename}.x86_64")
|
|
|
|
|
2018-05-06 03:08:39 +08:00
|
|
|
################################################################################
|
|
|
|
# Server configuration
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
string(RANDOM LENGTH 8 description1)
|
|
|
|
string(RANDOM LENGTH 8 description2)
|
|
|
|
set(CLUSTER_DESCRIPTION1 ${description1} CACHE STRING "Cluster description")
|
|
|
|
set(CLUSTER_DESCRIPTION2 ${description2} CACHE STRING "Cluster description")
|
|
|
|
|
2019-02-07 04:02:19 +08:00
|
|
|
if(NOT WIN32)
|
2019-02-28 12:17:11 +08:00
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/osx/foundationdb.conf.new
|
|
|
|
DESTINATION "usr/local/etc"
|
|
|
|
COMPONENT server-pm)
|
|
|
|
fdb_install(FILES ${CMAKE_SOURCE_DIR}/packaging/foundationdb.conf
|
|
|
|
DESTINATION etc
|
2019-02-07 04:02:19 +08:00
|
|
|
COMPONENT server)
|
2019-02-28 12:17:11 +08:00
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/argparse.py
|
|
|
|
DESTINATION "usr/lib/foundationdb"
|
|
|
|
COMPONENT server-el6)
|
2019-02-07 04:02:19 +08:00
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/make_public.py
|
2019-02-28 12:17:11 +08:00
|
|
|
DESTINATION "usr/lib/foundationdb"
|
|
|
|
COMPONENT server-el6)
|
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/argparse.py
|
|
|
|
DESTINATION "usr/lib/foundationdb"
|
|
|
|
COMPONENT server-deb)
|
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/make_public.py
|
|
|
|
DESTINATION "usr/lib/foundationdb"
|
|
|
|
COMPONENT server-deb)
|
2019-02-11 13:30:50 +08:00
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/packaging/rpm/foundationdb.service
|
|
|
|
DESTINATION "lib/systemd/system"
|
2019-02-28 12:17:11 +08:00
|
|
|
COMPONENT server-el7)
|
|
|
|
install(PROGRAMS ${CMAKE_SOURCE_DIR}/packaging/rpm/foundationdb-init
|
|
|
|
DESTINATION "etc/rc.d/init.d"
|
|
|
|
RENAME "foundationdb"
|
|
|
|
COMPONENT server-el6)
|
|
|
|
install(PROGRAMS ${CMAKE_SOURCE_DIR}/packaging/deb/foundationdb-init
|
|
|
|
DESTINATION "etc/init.d"
|
|
|
|
RENAME "foundationdb"
|
|
|
|
COMPONENT server-deb)
|
2018-05-06 06:33:21 +08:00
|
|
|
endif()
|