mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
8a6e23fbdb
16
CHANGELOG
16
CHANGELOG
|
@ -37,9 +37,23 @@ devel
|
||||||
* Foxx OAuth2 module now correctly passes the `access_token` to the OAuth2 server
|
* Foxx OAuth2 module now correctly passes the `access_token` to the OAuth2 server
|
||||||
|
|
||||||
|
|
||||||
v3.0.4 (XXXX-XX-XX)
|
v3.0.5 (XXXX-XX-XX)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* fixed issue #1977
|
||||||
|
|
||||||
|
* fixed extraction of _id attribute in AQL traversal conditions
|
||||||
|
|
||||||
|
|
||||||
|
v3.0.4 (2016-08-01)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
* added missing lock for periodic jobs access
|
||||||
|
|
||||||
|
* fix multiple foxx related cluster issues
|
||||||
|
|
||||||
|
* fix handling of empty AQL query strings
|
||||||
|
|
||||||
* fixed issue in `INTERSECTION` AQL function with duplicate elements
|
* fixed issue in `INTERSECTION` AQL function with duplicate elements
|
||||||
in the source arrays
|
in the source arrays
|
||||||
|
|
||||||
|
|
|
@ -56,11 +56,14 @@ endif ()
|
||||||
set(ARANGODB_VERSION_MAJOR "3")
|
set(ARANGODB_VERSION_MAJOR "3")
|
||||||
set(ARANGODB_VERSION_MINOR "0")
|
set(ARANGODB_VERSION_MINOR "0")
|
||||||
set(ARANGODB_VERSION_REVISION "devel")
|
set(ARANGODB_VERSION_REVISION "devel")
|
||||||
|
set(ARANGODB_PACKAGE_REVISION "1")
|
||||||
|
|
||||||
set(ARANGODB_VERSION
|
set(ARANGODB_VERSION
|
||||||
"${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}")
|
"${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}")
|
||||||
|
|
||||||
# for NSIS
|
# for the packages
|
||||||
|
set(ARANGODB_PACKAGE_VENDOR "ArangoDB GmbH")
|
||||||
|
set(ARANGODB_PACKAGE_CONTACT "info@arangodb.com")
|
||||||
set(ARANGODB_DISPLAY_NAME "ArangoDB")
|
set(ARANGODB_DISPLAY_NAME "ArangoDB")
|
||||||
set(ARANGODB_URL_INFO_ABOUT "https://www.arangodb.com")
|
set(ARANGODB_URL_INFO_ABOUT "https://www.arangodb.com")
|
||||||
set(ARANGODB_HELP_LINK "https://docs.arangodb.com/${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}/")
|
set(ARANGODB_HELP_LINK "https://docs.arangodb.com/${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}/")
|
||||||
|
@ -91,7 +94,7 @@ set(BIN_ARANGOVPACK arangovpack)
|
||||||
# test binaries
|
# test binaries
|
||||||
set(TEST_BASICS_SUITE basics_suite)
|
set(TEST_BASICS_SUITE basics_suite)
|
||||||
set(TEST_GEO_SUITE geo_suite)
|
set(TEST_GEO_SUITE geo_suite)
|
||||||
|
set(PACKAGES_LIST)
|
||||||
################################################################################
|
################################################################################
|
||||||
## VERSION FILES
|
## VERSION FILES
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -618,6 +621,7 @@ if (VERBOSE)
|
||||||
message(STATUS)
|
message(STATUS)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
## 3RD PARTY
|
## 3RD PARTY
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -734,8 +738,9 @@ add_definitions("-DARANGODB_ZLIB_VERSION=\"${ZLIB_VERSION}\"")
|
||||||
## PATHS, installation, packages
|
## PATHS, installation, packages
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
include(ArangoDBMacros)
|
include(ArangoDBInstall)
|
||||||
|
|
||||||
|
include(packages/packages)
|
||||||
################################################################################
|
################################################################################
|
||||||
## ERRORS FILE
|
## ERRORS FILE
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -855,10 +860,7 @@ if( EXISTS "${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json" )
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client)
|
|
||||||
configure_file(cmake/packages/package-client.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
|
||||||
add_custom_target(package-arongodb-client COMMAND ${CMAKE_COMMAND} .
|
|
||||||
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
|
|
||||||
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
|
||||||
WORKING_DIRECTORY ${BUILD_DIR})
|
|
||||||
|
|
||||||
|
add_custom_target(packages
|
||||||
|
DEPENDS ${PACKAGES_LIST}
|
||||||
|
)
|
||||||
|
|
|
@ -330,24 +330,29 @@ ${MAKE_CMD_PREFIX} ${MAKE} ${VERBOSE_MAKE} "${PAR}" "${PARALLEL_BUILDS}" ${MAKE_
|
||||||
git rev-parse HEAD > ../last_compiled_version.sha
|
git rev-parse HEAD > ../last_compiled_version.sha
|
||||||
|
|
||||||
if [ -n "$CPACK" -a -n "${TARGET_DIR}" ]; then
|
if [ -n "$CPACK" -a -n "${TARGET_DIR}" ]; then
|
||||||
for PACK in ${CPACK}; do
|
make packages
|
||||||
# if [ "$PACK" == "DEB" ]; then
|
#todo cmake -build -target packages
|
||||||
# make prepare_debian
|
|
||||||
# fi
|
|
||||||
|
|
||||||
cpack -G "$PACK"
|
|
||||||
|
|
||||||
EXT=`echo $PACK|tr '[:upper:]' '[:lower:]'`
|
|
||||||
if [ "$PACK" == "Bundle" ]; then
|
|
||||||
EXT = 'dmg'
|
|
||||||
fi
|
|
||||||
if [ "$PACK" == "NSIS" ]; then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
cp *.${EXT} ${TARGET_DIR}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
#if [ -n "$CPACK" -a -n "${TARGET_DIR}" ]; then
|
||||||
|
# for PACK in ${CPACK}; do
|
||||||
|
## if [ "$PACK" == "DEB" ]; then
|
||||||
|
## make prepare_debian
|
||||||
|
## fi
|
||||||
|
#
|
||||||
|
# cpack -G "$PACK"
|
||||||
|
#
|
||||||
|
# EXT=`echo $PACK|tr '[:upper:]' '[:lower:]'`
|
||||||
|
# if [ "$PACK" == "Bundle" ]; then
|
||||||
|
# EXT = 'dmg'
|
||||||
|
# fi
|
||||||
|
# if [ "$PACK" == "NSIS" ]; then
|
||||||
|
# true
|
||||||
|
# else
|
||||||
|
# cp *.${EXT} ${TARGET_DIR}
|
||||||
|
# fi
|
||||||
|
# done
|
||||||
|
#fi
|
||||||
|
|
||||||
|
|
||||||
# and install
|
# and install
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
# debian
|
|
||||||
if (CPACK_GENERATOR STREQUAL "DEB")
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
|
|
||||||
|
|
||||||
set(CPACK_COMPONENTS_ALL debian-extras)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# OSX bundle
|
# OSX bundle
|
||||||
if (CPACK_GENERATOR STREQUAL "Bundle")
|
if (CPACK_GENERATOR STREQUAL "Bundle")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
a multi-purpose NoSQL database
|
the multi-model NoSQL database
|
||||||
A distributed free and open-source database with a flexible data model for documents,
|
A distributed free and open-source database with a flexible data model for documents,
|
||||||
graphs, and key-values. Build high performance applications using a convenient
|
graphs, and key-values. Build high performance applications using a convenient
|
||||||
SQL-like query language or JavaScript extensions.
|
SQL-like query language or JavaScript extensions.
|
||||||
|
|
|
@ -711,11 +711,16 @@ std::string Transaction::extractIdString(CollectionNameResolver const* resolver,
|
||||||
|
|
||||||
if (*p == basics::VelocyPackHelper::IdAttribute) {
|
if (*p == basics::VelocyPackHelper::IdAttribute) {
|
||||||
id = VPackSlice(p + 1);
|
id = VPackSlice(p + 1);
|
||||||
|
if (id.isCustom()) {
|
||||||
// we should be pointing to a custom value now
|
// we should be pointing to a custom value now
|
||||||
TRI_ASSERT(id.isCustom() && id.head() == 0xf3);
|
TRI_ASSERT(id.head() == 0xf3);
|
||||||
|
|
||||||
return makeIdFromCustom(resolver, id, key);
|
return makeIdFromCustom(resolver, id, key);
|
||||||
}
|
}
|
||||||
|
if (id.isString()) {
|
||||||
|
return id.copyString();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// in case the quick access above did not work out, use the slow path...
|
// in case the quick access above did not work out, use the slow path...
|
||||||
|
|
|
@ -211,19 +211,24 @@ void TraverserExpression::toVelocyPack(VPackBuilder& builder) const {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
|
bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
|
||||||
arangodb::velocypack::Slice& element) const {
|
arangodb::velocypack::Slice& element,
|
||||||
|
arangodb::velocypack::Slice& base) const {
|
||||||
|
|
||||||
|
base = arangodb::basics::VelocyPackHelper::EmptyObjectValue();
|
||||||
|
|
||||||
switch (node->type) {
|
switch (node->type) {
|
||||||
case arangodb::aql::NODE_TYPE_REFERENCE:
|
case arangodb::aql::NODE_TYPE_REFERENCE:
|
||||||
// We are on the variable access
|
// We are on the variable access
|
||||||
return true;
|
return true;
|
||||||
case arangodb::aql::NODE_TYPE_ATTRIBUTE_ACCESS: {
|
case arangodb::aql::NODE_TYPE_ATTRIBUTE_ACCESS: {
|
||||||
std::string name(node->getString());
|
std::string name(node->getString());
|
||||||
if (!recursiveCheck(node->getMember(0), element)) {
|
if (!recursiveCheck(node->getMember(0), element, base)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!element.isObject() || !element.hasKey(name)) {
|
if (!element.isObject() || !element.hasKey(name)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
base = element; // set base object
|
||||||
element = element.get(name);
|
element = element.get(name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -232,7 +237,7 @@ bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
|
||||||
if (!index->isIntValue()) {
|
if (!index->isIntValue()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!recursiveCheck(node->getMember(0), element)) {
|
if (!recursiveCheck(node->getMember(0), element, base)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
auto idx = index->getIntValue();
|
auto idx = index->getIntValue();
|
||||||
|
@ -255,16 +260,24 @@ bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
|
||||||
bool TraverserExpression::matchesCheck(arangodb::Transaction* trx,
|
bool TraverserExpression::matchesCheck(arangodb::Transaction* trx,
|
||||||
VPackSlice const& element) const {
|
VPackSlice const& element) const {
|
||||||
TRI_ASSERT(trx != nullptr);
|
TRI_ASSERT(trx != nullptr);
|
||||||
|
VPackSlice base = arangodb::basics::VelocyPackHelper::EmptyObjectValue();
|
||||||
|
|
||||||
VPackSlice value = element.resolveExternal();
|
VPackSlice value = element.resolveExternal();
|
||||||
|
|
||||||
// initialize compare value to Null
|
// initialize compare value to Null
|
||||||
VPackSlice result = arangodb::basics::VelocyPackHelper::NullValue();
|
VPackSlice result = arangodb::basics::VelocyPackHelper::NullValue();
|
||||||
// perform recursive check. this may modify value
|
// perform recursive check. this may modify value
|
||||||
if (recursiveCheck(varAccess, value)) {
|
if (recursiveCheck(varAccess, value, base)) {
|
||||||
result = value;
|
result = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hack for _id attribute
|
||||||
|
TransactionBuilderLeaser builder(trx);
|
||||||
|
if (result.isCustom() && base.isObject()) {
|
||||||
|
builder->add(VPackValue(trx->extractIdString(base)));
|
||||||
|
result = builder->slice();
|
||||||
|
}
|
||||||
|
|
||||||
TRI_ASSERT(compareTo != nullptr);
|
TRI_ASSERT(compareTo != nullptr);
|
||||||
VPackOptions* options = trx->transactionContext()->getVPackOptions();
|
VPackOptions* options = trx->transactionContext()->getVPackOptions();
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,8 @@ class TraverserExpression {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool recursiveCheck(arangodb::aql::AstNode const*,
|
bool recursiveCheck(arangodb::aql::AstNode const*,
|
||||||
arangodb::velocypack::Slice&) const;
|
arangodb::velocypack::Slice& value,
|
||||||
|
arangodb::velocypack::Slice& base) const;
|
||||||
|
|
||||||
// Required when creating this expression without AST
|
// Required when creating this expression without AST
|
||||||
std::vector<std::unique_ptr<arangodb::aql::AstNode const>> _nodeRegister;
|
std::vector<std::unique_ptr<arangodb::aql::AstNode const>> _nodeRegister;
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
# -*- mode: CMAKE; -*-
|
||||||
|
# these are the install targets for the client package.
|
||||||
|
# we can't use RUNTIME DESTINATION here.
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOBENCH}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
install_config(arangobench)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGODUMP}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
install_config(arangodump)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOIMP}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
install_config(arangoimp)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGORESTORE}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
install_config(arangorestore)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOSH}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
install_config(arangosh)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOVPACK}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
|
||||||
|
install_command_alias(${BIN_ARANGOSH}
|
||||||
|
${CMAKE_INSTALL_FULL_BINDIR}
|
||||||
|
foxx-manager)
|
||||||
|
install_config(foxx-manager)
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
set(ARANGODB_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
if (MSVC OR DARWIN)
|
if (MSVC OR DARWIN)
|
||||||
set(ENABLE_UID_CFG false)
|
set(ENABLE_UID_CFG false)
|
||||||
else ()
|
else ()
|
||||||
|
@ -22,7 +24,7 @@ FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/arangodb3-apps")
|
||||||
# logs
|
# logs
|
||||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/arangodb3")
|
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/arangodb3")
|
||||||
|
|
||||||
include(ArangoDBinstallCfg)
|
include(InstallMacros)
|
||||||
|
|
||||||
# install ----------------------------------------------------------------------
|
# install ----------------------------------------------------------------------
|
||||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
|
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
|
||||||
|
@ -33,44 +35,6 @@ install_readme(README.md README.md)
|
||||||
install_readme(LICENSE LICENSE.txt)
|
install_readme(LICENSE LICENSE.txt)
|
||||||
install_readme(LICENSES-OTHER-COMPONENTS.md LICENSES-OTHER-COMPONENTS.md)
|
install_readme(LICENSES-OTHER-COMPONENTS.md LICENSES-OTHER-COMPONENTS.md)
|
||||||
|
|
||||||
|
|
||||||
# Build package ----------------------------------------------------------------
|
|
||||||
|
|
||||||
if (NOT(MSVC))
|
|
||||||
set(CPACK_SET_DESTDIR ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_VENDOR "ArangoDB GmbH")
|
|
||||||
set(CPACK_PACKAGE_CONTACT "info@arangodb.com")
|
|
||||||
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
|
|
||||||
|
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
|
||||||
|
|
||||||
set(CPACK_STRIP_FILES "ON")
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_NAME "arangodb3")
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}")
|
|
||||||
|
|
||||||
|
|
||||||
if ("${PACKAGING}" STREQUAL "DEB")
|
|
||||||
include(packaging_deb)
|
|
||||||
elseif ("${PACKAGING}" STREQUAL "RPM")
|
|
||||||
include(packaging_rpm)
|
|
||||||
elseif ("${PACKAGING}" STREQUAL "Bundle")
|
|
||||||
include(packaging_bundle)
|
|
||||||
elseif (MSVC)
|
|
||||||
include(packaging_nsis)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
configure_file(
|
|
||||||
"${CMAKE_SOURCE_DIR}/Installation/cmake/CMakeCPackOptions.cmake.in"
|
|
||||||
"${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
|
|
||||||
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake")
|
|
||||||
|
|
||||||
# Finally: user cpack
|
|
||||||
include(CPack)
|
|
||||||
|
|
||||||
# Custom targets ----------------------------------------------------------------
|
# Custom targets ----------------------------------------------------------------
|
||||||
# love
|
# love
|
||||||
add_custom_target (love
|
add_custom_target (love
|
||||||
|
@ -78,18 +42,7 @@ add_custom_target (love
|
||||||
COMMAND ""
|
COMMAND ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(InstallArangoDBJSClient)
|
||||||
################################################################################
|
|
||||||
### @brief install client-side JavaScript files
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
install(
|
|
||||||
DIRECTORY ${PROJECT_SOURCE_DIR}/js/common ${PROJECT_SOURCE_DIR}/js/client
|
|
||||||
DESTINATION share/arangodb3/js
|
|
||||||
FILES_MATCHING PATTERN "*.js"
|
|
||||||
REGEX "^.*/common/test-data$" EXCLUDE
|
|
||||||
REGEX "^.*/common/tests$" EXCLUDE
|
|
||||||
REGEX "^.*/client/tests$" EXCLUDE)
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
### @brief install server-side JavaScript files
|
### @brief install server-side JavaScript files
|
|
@ -0,0 +1,11 @@
|
||||||
|
################################################################################
|
||||||
|
### @brief install client-side JavaScript files
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
install(
|
||||||
|
DIRECTORY ${ARANGODB_SOURCE_DIR}/js/common ${ARANGODB_SOURCE_DIR}/js/client
|
||||||
|
DESTINATION share/arangodb3/js
|
||||||
|
FILES_MATCHING PATTERN "*.js"
|
||||||
|
REGEX "^.*/common/test-data$" EXCLUDE
|
||||||
|
REGEX "^.*/common/tests$" EXCLUDE
|
||||||
|
REGEX "^.*/client/tests$" EXCLUDE)
|
|
@ -0,0 +1,78 @@
|
||||||
|
################################################################################
|
||||||
|
# the client package is a complete cmake sub package.
|
||||||
|
################################################################################
|
||||||
|
project(PACKAGE-CLIENT)
|
||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# variables from the main build have to be explicitely forwarded:
|
||||||
|
################################################################################
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Substitute the install binaries:
|
||||||
|
################################################################################
|
||||||
|
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
|
||||||
|
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
|
||||||
|
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
|
||||||
|
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
|
||||||
|
set(BIN_ARANGOSH @BIN_ARANGOSH@)
|
||||||
|
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# build specific variables:
|
||||||
|
################################################################################
|
||||||
|
set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@)
|
||||||
|
set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@)
|
||||||
|
set(ARANGODB_VERSION @ARANGODB_VERSION@)
|
||||||
|
set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@)
|
||||||
|
set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@)
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
|
||||||
|
set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@)
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
|
||||||
|
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
|
||||||
|
|
||||||
|
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
|
||||||
|
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Get the final values for cpack:
|
||||||
|
################################################################################
|
||||||
|
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
|
||||||
|
set(CPACK_PACKAGE_NAME "arangodb3-client")
|
||||||
|
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
|
||||||
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb, arangodb3")
|
||||||
|
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
|
||||||
|
set(CPACK_COMPONENTS_ALL debian-extras)
|
||||||
|
|
||||||
|
file(READ "${PROJECT_SOURCE_DIR}/Installation/debian/client_packagedesc.txt"
|
||||||
|
CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# specify which target archcitecture the package is going to be:
|
||||||
|
################################################################################
|
||||||
|
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
|
||||||
|
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
|
||||||
|
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "arm7")
|
||||||
|
else()
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Install the external files into the package directory:
|
||||||
|
################################################################################
|
||||||
|
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallMacros.cmake)
|
||||||
|
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallArangoDBJSClient.cmake)
|
||||||
|
include(${ORIGINAL_SOURCE_DIR}/arangosh/install.cmake)
|
||||||
|
|
||||||
|
include(CPack)
|
|
@ -0,0 +1,79 @@
|
||||||
|
################################################################################
|
||||||
|
# the client package is a complete cmake sub package.
|
||||||
|
################################################################################
|
||||||
|
project(PACKAGE-CLIENT)
|
||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# variables from the main build have to be explicitely forwarded:
|
||||||
|
################################################################################
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Substitute the install binaries:
|
||||||
|
################################################################################
|
||||||
|
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
|
||||||
|
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
|
||||||
|
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
|
||||||
|
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
|
||||||
|
set(BIN_ARANGOSH @BIN_ARANGOSH@)
|
||||||
|
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# build specific variables:
|
||||||
|
################################################################################
|
||||||
|
set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@)
|
||||||
|
set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@)
|
||||||
|
set(ARANGODB_VERSION @ARANGODB_VERSION@)
|
||||||
|
set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@)
|
||||||
|
set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@)
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
|
||||||
|
set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@)
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
|
||||||
|
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
|
||||||
|
|
||||||
|
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
|
||||||
|
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Get the final values for cpack:
|
||||||
|
################################################################################
|
||||||
|
set(CPACK_GENERATOR "DEB")
|
||||||
|
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
|
||||||
|
set(CPACK_PACKAGE_NAME "arangodb3-client")
|
||||||
|
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
|
||||||
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb, arangodb3")
|
||||||
|
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
|
||||||
|
set(CPACK_COMPONENTS_ALL debian-extras)
|
||||||
|
|
||||||
|
file(READ "${PROJECT_SOURCE_DIR}/Installation/debian/client_packagedesc.txt"
|
||||||
|
CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# specify which target archcitecture the package is going to be:
|
||||||
|
################################################################################
|
||||||
|
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
|
||||||
|
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
|
||||||
|
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "arm7")
|
||||||
|
else()
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Install the external files into the package directory:
|
||||||
|
################################################################################
|
||||||
|
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallMacros.cmake)
|
||||||
|
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallArangoDBJSClient.cmake)
|
||||||
|
include(${ORIGINAL_SOURCE_DIR}/arangosh/install.cmake)
|
||||||
|
|
||||||
|
include(CPack)
|
|
@ -0,0 +1,65 @@
|
||||||
|
# -*- mode: CMAKE; -*-
|
||||||
|
################################################################################
|
||||||
|
# This produces the debian packages, using client/deb.txt for the second package.
|
||||||
|
################################################################################
|
||||||
|
FILE(READ "${PROJECT_SOURCE_DIR}/Installation/debian/packagedesc.txt" CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SECTION "database")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
|
||||||
|
set(CPACK_COMPONENTS_ALL debian-extras)
|
||||||
|
set(CPACK_GENERATOR "DEB")
|
||||||
|
|
||||||
|
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||||
|
"${PROJECT_SOURCE_DIR}/Installation/debian/templates"
|
||||||
|
"${PROJECT_SOURCE_DIR}/Installation/debian/config"
|
||||||
|
"${PROJECT_SOURCE_DIR}/Installation/debian/postinst"
|
||||||
|
"${PROJECT_SOURCE_DIR}/Installation/debian/preinst"
|
||||||
|
"${PROJECT_SOURCE_DIR}/Installation/debian/postrm"
|
||||||
|
"${PROJECT_SOURCE_DIR}/Installation/debian/prerm;")
|
||||||
|
|
||||||
|
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
|
||||||
|
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
|
||||||
|
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "arm7")
|
||||||
|
else()
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
|
||||||
|
endif()
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
|
||||||
|
|
||||||
|
|
||||||
|
# deploy the Init script:
|
||||||
|
install(
|
||||||
|
FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
|
||||||
|
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d
|
||||||
|
RENAME arangodb3
|
||||||
|
COMPONENT debian-extras
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# hook to build the server package
|
||||||
|
################################################################################
|
||||||
|
add_custom_target(package-arongodb-server
|
||||||
|
COMMAND ${CMAKE_COMMAND} .
|
||||||
|
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
|
||||||
|
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||||
|
|
||||||
|
list(APPEND PACKAGES_LIST package-arongodb-server)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# hook to build the client package
|
||||||
|
################################################################################
|
||||||
|
set(CLIENT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client)
|
||||||
|
configure_file(cmake/packages/client/deb.txt ${CLIENT_BUILD_DIR}/CMakeLists.txt @ONLY)
|
||||||
|
add_custom_target(package-arongodb-client
|
||||||
|
COMMAND ${CMAKE_COMMAND} .
|
||||||
|
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
|
||||||
|
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
||||||
|
WORKING_DIRECTORY ${CLIENT_BUILD_DIR})
|
||||||
|
|
||||||
|
|
||||||
|
list(APPEND PACKAGES_LIST package-arongodb-client)
|
|
@ -1,73 +0,0 @@
|
||||||
# the client package is a complete cmake sub package.
|
|
||||||
project(PACKAGE-CLIENT)
|
|
||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
|
|
||||||
# variables from the main build have to be explicitely forwarded:
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
|
|
||||||
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
|
|
||||||
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
|
|
||||||
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
|
|
||||||
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
|
|
||||||
set(BIN_ARANGOSH @BIN_ARANGOSH@)
|
|
||||||
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
|
|
||||||
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
|
|
||||||
|
|
||||||
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
|
|
||||||
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
|
|
||||||
|
|
||||||
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
|
|
||||||
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
|
|
||||||
|
|
||||||
include(${ORIGINAL_SOURCE_DIR}/cmake/ArangoDBinstallCfg.cmake)
|
|
||||||
|
|
||||||
# Start installing the client components:
|
|
||||||
install(
|
|
||||||
DIRECTORY ${ORIGINAL_SOURCE_DIR}/js/common ${ORIGINAL_SOURCE_DIR}/js/client
|
|
||||||
DESTINATION share/arangodb3/js
|
|
||||||
FILES_MATCHING PATTERN "*.js"
|
|
||||||
REGEX "^.*/common/test-data$" EXCLUDE
|
|
||||||
REGEX "^.*/common/tests$" EXCLUDE
|
|
||||||
REGEX "^.*/client/tests$" EXCLUDE)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOBENCH}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
|
||||||
install_config(arangobench)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGODUMP}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
|
||||||
install_config(arangodump)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOIMP}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
|
||||||
install_config(arangoimp)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGORESTORE}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
|
||||||
install_config(arangorestore)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOSH}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
|
||||||
install_config(arangosh)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOVPACK}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
|
|
||||||
|
|
||||||
install_command_alias(${BIN_ARANGOSH}
|
|
||||||
${CMAKE_INSTALL_FULL_BINDIR}
|
|
||||||
foxx-manager)
|
|
||||||
install_config(foxx-manager)
|
|
||||||
|
|
||||||
|
|
||||||
# client packaging starts here:
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_NAME "arangodb3-client")
|
|
||||||
set(CPACK_PACKAGE_CONTACT "info@arangodb.com")
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ArangoDB Client Package")
|
|
||||||
|
|
||||||
include(CPack)
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
if (NOT(MSVC))
|
||||||
|
set(CPACK_SET_DESTDIR ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_VENDOR ${ARANGODB_PACKAGE_VENDOR})
|
||||||
|
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
|
||||||
|
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
|
||||||
|
|
||||||
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||||
|
|
||||||
|
set(CPACK_STRIP_FILES "ON")
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_NAME "arangodb3")
|
||||||
|
set(ARANGODB_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
# eventually the package string will be modified later on:
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}.${ARANGODB_PACKAGE_ARCHITECTURE}")
|
||||||
|
|
||||||
|
if ("${PACKAGING}" STREQUAL "DEB")
|
||||||
|
include(packages/deb)
|
||||||
|
elseif ("${PACKAGING}" STREQUAL "RPM")
|
||||||
|
include(packages/rpm)
|
||||||
|
elseif ("${PACKAGING}" STREQUAL "Bundle")
|
||||||
|
include(packages/bundle)
|
||||||
|
elseif (MSVC)
|
||||||
|
include(packages/nsis)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
"${CMAKE_SOURCE_DIR}/Installation/cmake/CMakeCPackOptions.cmake.in"
|
||||||
|
"${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
|
||||||
|
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake")
|
||||||
|
|
||||||
|
|
||||||
|
# Finally: user cpack
|
||||||
|
include(CPack)
|
|
@ -0,0 +1,46 @@
|
||||||
|
# -*- mode: CMAKE; -*-
|
||||||
|
|
||||||
|
set(CPACK_GENERATOR "RPM")
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Installation/rpm/arangodb.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/arangodb.spec" @ONLY IMMEDIATE)
|
||||||
|
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_BINARY_DIR}/arangodb.spec")
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This produces the RPM packages, using client/rpm.txt for the second package.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
|
||||||
|
|
||||||
|
|
||||||
|
# deploy the Init script:
|
||||||
|
#install(
|
||||||
|
# FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
|
||||||
|
# PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
# DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d
|
||||||
|
# RENAME arangodb3
|
||||||
|
# COMPONENT debian-extras
|
||||||
|
# )
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# hook to build the server package
|
||||||
|
################################################################################
|
||||||
|
add_custom_target(package-arongodb-server
|
||||||
|
COMMAND ${CMAKE_COMMAND} .
|
||||||
|
COMMAND ${CMAKE_CPACK_COMMAND} -G RPM
|
||||||
|
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||||
|
|
||||||
|
list(APPEND PACKAGES_LIST package-arongodb-server)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# hook to build the client package
|
||||||
|
################################################################################
|
||||||
|
set(CLIENT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client)
|
||||||
|
configure_file(cmake/packages/client/rpm.txt ${CLIENT_BUILD_DIR}/CMakeLists.txt @ONLY)
|
||||||
|
add_custom_target(package-arongodb-client
|
||||||
|
COMMAND ${CMAKE_COMMAND} .
|
||||||
|
COMMAND ${CMAKE_CPACK_COMMAND} -G RPM
|
||||||
|
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
||||||
|
WORKING_DIRECTORY ${CLIENT_BUILD_DIR})
|
||||||
|
|
||||||
|
|
||||||
|
list(APPEND PACKAGES_LIST package-arongodb-client)
|
|
@ -1,36 +0,0 @@
|
||||||
set(CPACK_DEBIAN_PACKAGE_SECTION "database")
|
|
||||||
FILE(READ "${PROJECT_SOURCE_DIR}/Installation/debian/packagedesc.txt" CPACK_DEBIAN_PACKAGE_DESCRIPTION)
|
|
||||||
SET(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
|
||||||
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
|
|
||||||
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
|
||||||
"${PROJECT_SOURCE_DIR}/Installation/debian/templates"
|
|
||||||
"${PROJECT_SOURCE_DIR}/Installation/debian/config"
|
|
||||||
"${PROJECT_SOURCE_DIR}/Installation/debian/postinst"
|
|
||||||
"${PROJECT_SOURCE_DIR}/Installation/debian/preinst"
|
|
||||||
"${PROJECT_SOURCE_DIR}/Installation/debian/postrm"
|
|
||||||
"${PROJECT_SOURCE_DIR}/Installation/debian/prerm;")
|
|
||||||
|
|
||||||
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
|
|
||||||
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
|
|
||||||
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm7")
|
|
||||||
else()
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# components
|
|
||||||
install(
|
|
||||||
FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
|
|
||||||
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d
|
|
||||||
RENAME arangodb3
|
|
||||||
COMPONENT debian-extras
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
set(CPACK_GENERATOR "RPM")
|
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Installation/rpm/arangodb.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/arangodb.spec" @ONLY IMMEDIATE)
|
|
||||||
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_BINARY_DIR}/my_project.spec")
|
|
|
@ -26,14 +26,26 @@
|
||||||
|
|
||||||
var db = require('@arangodb').db;
|
var db = require('@arangodb').db;
|
||||||
var flatten = require('internal').flatten;
|
var flatten = require('internal').flatten;
|
||||||
var exponentialBackOff = require('internal').exponentialBackOff;
|
|
||||||
var console = require('console');
|
var console = require('console');
|
||||||
var queues = require('@arangodb/foxx/queues');
|
var queues = require('@arangodb/foxx/queues');
|
||||||
var fm = require('@arangodb/foxx/manager');
|
var fm = require('@arangodb/foxx/manager');
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
var internal = require('internal');
|
var internal = require('internal');
|
||||||
|
|
||||||
function getBackOffDelay (job) {
|
function exponentialBackOff(n, i) {
|
||||||
|
if (i === 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (n === 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (n === 1) {
|
||||||
|
return Math.random() < 0.5 ? 0 : i;
|
||||||
|
}
|
||||||
|
return Math.floor(Math.random() * (n + 1)) * i;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getBackOffDelay(job) {
|
||||||
var n = job.runFailures - 1;
|
var n = job.runFailures - 1;
|
||||||
if (typeof job.backOff === 'string') {
|
if (typeof job.backOff === 'string') {
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue