diff options
Diffstat (limited to 'databases/arangodb32/files')
11 files changed, 307 insertions, 0 deletions
diff --git a/databases/arangodb32/files/arangod.in b/databases/arangodb32/files/arangod.in new file mode 100644 index 000000000000..a71bc94b6f90 --- /dev/null +++ b/databases/arangodb32/files/arangod.in @@ -0,0 +1,86 @@ +#!/bin/sh + +# PROVIDE: arangod +# REQUIRE: NETWORK ldconfig +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# arangod_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable arangod. +%%LEGACY_LIMITS%%# arangod_limits (bool): Set to "NO" by default. +%%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U arangodb` +%%LEGACY_LIMITS%%# just before arangod starts. +# arangod_dbpath (str): Default to "/var/db/arangodb" +# Base database directory. +# arangod_logpath (str): Default to "/var/log/arangodb" +# Base logging directory +# arangod_apppath (str): Default to "/var/db/arangodb-apps" +# Base apps directory +# arangod_flags (str): Custom additional arguments to be passed to arangod. +# Default to "". +# arangod_config (str): Default to "%%PREFIX%%/etc/arangodb/arangod.conf" +# Path to config file +# + +. /etc/rc.subr + +name="arangod" +rcvar=arangod_enable + +load_rc_config $name + +: ${arangod_enable="NO"} +%%LEGACY_LIMITS%%: ${arangod_limits="NO"} +: ${arangod_dbpath="/var/db/arangodb"} +: ${arangod_logpath="/var/log/arangodb"} +: ${arangod_apppath="/var/db/arangodb-apps"} +: ${arangod_flags=""} +: ${arangod_user="arangodb"} +: ${arangod_group="arangodb"} +: ${arangod_config="%%PREFIX%%/etc/arangodb/arangod.conf"} + +pidfile="${arangod_dbpath}/arangod.lock" +command=%%PREFIX%%/sbin/${name} +command_args="--configuration $arangod_config --database.directory $arangod_dbpath --log.output ${arangod_logpath}/arangod.log --javascript.app-path ${arangod_apppath} --daemon --pid-file ${pidfile} >/dev/null 2>/dev/null" +start_precmd="${name}_prestart" + +arangod_create_dbpath() +{ + mkdir ${arangod_dbpath} >/dev/null 2>/dev/null + [ $? -eq 0 ] && chown -R ${arangod_user}:${arangod_group} ${arangod_dbpath} +} + +arangod_create_logpath() +{ + mkdir ${arangod_logpath} >/dev/null 2>/dev/null + [ $? -eq 0 ] && chown -R ${arangod_user}:${arangod_group} ${arangod_logpath} +} + +arangod_create_apppath() +{ + mkdir ${arangod_apppath} >/dev/null 2>/dev/null + [ $? -eq 0 ] && chown -R ${arangod_user}:${arangod_group} ${arangod_apppath} +} + +arangod_prestart() +{ + if [ ! -d ${arangod_dbpath} ]; then + arangod_create_dbpath || return 1 + fi + if [ ! -d ${arangod_logpath} ]; then + arangod_create_logpath || return 1 + fi + if [ ! -d ${arangod_apppath} ]; then + arangod_create_apppath || return 1 + fi +%%LEGACY_LIMITS%% if checkyesno arangod_limits; then +%%LEGACY_LIMITS%% eval `/usr/bin/limits -e -U ${arangod_user}` 2>/dev/null +%%LEGACY_LIMITS%% else +%%LEGACY_LIMITS%% return 0 +%%LEGACY_LIMITS%% fi +%%MODERN_LIMITS%% return 0 +} + +run_rc_command "$1" diff --git a/databases/arangodb32/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h b/databases/arangodb32/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h new file mode 100644 index 000000000000..332a42556ea4 --- /dev/null +++ b/databases/arangodb32/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h @@ -0,0 +1,28 @@ +In file included from rocksdb/utilities/backupable/backupable_db.cc:16: +rocksdb/util/channel.h:35:33: error: no matching constructor for initialization of 'std::lock_guard<std::mutex>' + std::lock_guard<std::mutex> lk(lock_); + ^ ~~~~~ +/usr/include/c++/v1/__mutex_base:90:14: note: candidate constructor not viable: 1st argument ('const std::mutex') would lose const qualifier + explicit lock_guard(mutex_type& __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(acquire_capability(__m)) + ^ +/usr/include/c++/v1/__mutex_base:100:5: note: candidate constructor not viable: no known conversion from 'const std::mutex' to 'const std::__1::lock_guard<std::__1::mutex>' for 1st argument + lock_guard(lock_guard const&) _LIBCPP_EQUAL_DELETE; + ^ +/usr/include/c++/v1/__mutex_base:94:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided + lock_guard(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m)) + ^ +1 error generated. + +https://github.com/facebook/rocksdb/commit/a796c06fef6a8e43d793f8e627db3f29e6f95964 + +--- 3rdParty/rocksdb/v5.6.X/util/channel.h.orig 2018-04-13 11:22:33 UTC ++++ 3rdParty/rocksdb/v5.6.X/util/channel.h +@@ -62,7 +62,7 @@ class channel { + + private: + std::condition_variable cv_; +- std::mutex lock_; ++ mutable std::mutex lock_; + std::queue<T> buffer_; + bool eof_; + }; diff --git a/databases/arangodb32/files/patch-CMakeLists.txt b/databases/arangodb32/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..05d422b21018 --- /dev/null +++ b/databases/arangodb32/files/patch-CMakeLists.txt @@ -0,0 +1,43 @@ +--- CMakeLists.txt.orig 2018-04-11 15:16:11 UTC ++++ CMakeLists.txt +@@ -38,9 +38,9 @@ if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) + endif () + + if (WIN32) +- project(arangodb3 CXX C) ++ project(arangodb CXX C) + else () +- project(arangodb3 CXX C ASM) ++ project(arangodb CXX C ASM) + endif () + + # required for clang completion in editors +@@ -377,7 +377,7 @@ if (CMAKE_COMPILER_IS_GNUCC OR APPLE) + endif () + + if (CMAKE_COMPILER_IS_CLANG) +- if (APPLE) ++ if (APPLE OR FREEBSD) + set(BASE_CXX_FLAGS "${BASE_CXX_FLAGS} -stdlib=libc++") + add_definitions("-Wno-deprecated-declarations") + else () +@@ -483,7 +483,7 @@ else () + + include(VcMacros) + +- option(USE_OPTIMIZE_FOR_ARCHITECTURE "try to determine CPU architecture" ON) ++ option(USE_OPTIMIZE_FOR_ARCHITECTURE "try to determine CPU architecture" OFF) + + if (USE_OPTIMIZE_FOR_ARCHITECTURE) + # mop: core2 (merom) is our absolute minimum! +@@ -594,9 +594,7 @@ endif () + ################################################################################ + + if (NOT WINDOWS) +- set(SYS_LIBS ${SYS_LIBS} resolv) +- +- if (NOT DARWIN) ++ if (NOT DARWIN OR FREEBSD) + set(SYS_LIBS ${SYS_LIBS} rt) + endif () + endif () diff --git a/databases/arangodb32/files/patch-arangod_Agency_Store.cpp b/databases/arangodb32/files/patch-arangod_Agency_Store.cpp new file mode 100644 index 000000000000..5860dfdcd0fd --- /dev/null +++ b/databases/arangodb32/files/patch-arangod_Agency_Store.cpp @@ -0,0 +1,11 @@ +--- arangod/Agency/Store.cpp.orig 2017-11-15 11:23:07 UTC ++++ arangod/Agency/Store.cpp +@@ -601,7 +601,7 @@ void Store::dumpToBuilder(Builder& build + auto ts = std::chrono::duration_cast<std::chrono::seconds>( + i.first.time_since_epoch()) + .count(); +- builder.add(i.second, VPackValue(ts)); ++ builder.add(i.second, VPackValue((int64_t)ts)); + } + } + { diff --git a/databases/arangodb32/files/patch-arangod_RestHandler_RestAuthHandler.cpp b/databases/arangodb32/files/patch-arangod_RestHandler_RestAuthHandler.cpp new file mode 100644 index 000000000000..b3134688347a --- /dev/null +++ b/databases/arangodb32/files/patch-arangod_RestHandler_RestAuthHandler.cpp @@ -0,0 +1,11 @@ +--- arangod/RestHandler/RestAuthHandler.cpp.orig 2017-11-15 11:23:07 UTC ++++ arangod/RestHandler/RestAuthHandler.cpp +@@ -59,7 +59,7 @@ std::string RestAuthHandler::generateJwt + VPackObjectBuilder p(&bodyBuilder); + bodyBuilder.add("preferred_username", VPackValue(username)); + bodyBuilder.add("iss", VPackValue("arangodb")); +- bodyBuilder.add("exp", VPackValue(exp.count())); ++ bodyBuilder.add("exp", VPackValue((int64_t)exp.count())); + } + return authentication->authInfo()->generateJwt(bodyBuilder); + } diff --git a/databases/arangodb32/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp b/databases/arangodb32/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp new file mode 100644 index 000000000000..1b8be3c36734 --- /dev/null +++ b/databases/arangodb32/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp @@ -0,0 +1,25 @@ +--- arangod/RocksDBEngine/RocksDBThrottle.cpp.orig 2018-01-05 13:56:52 UTC ++++ arangod/RocksDBEngine/RocksDBThrottle.cpp +@@ -515,8 +515,8 @@ void RocksDBThrottle::AdjustThreadPriori + pid_t tid; + int ret_val; + +- tid = syscall(SYS_gettid); +- if (-1!=(int)tid) ++ ret_val = syscall(SYS_thr_self, &tid); ++ if (-1!=ret_val) + { + errno=0; + ret_val=getpriority(PRIO_PROCESS, tid); +@@ -534,8 +534,9 @@ void RocksDBThrottle::AdjustThreadPriori + && (gThreadPriority._basePriority+Adjustment)!=gThreadPriority._currentPriority) { + + pid_t tid; +- tid = syscall(SYS_gettid); +- if (-1!=(int)tid) ++ int ret_val; ++ ret_val = syscall(SYS_thr_self, &tid); ++ if (-1!=(int)ret_val) + { + gThreadPriority._currentPriority = gThreadPriority._basePriority + Adjustment; + setpriority(PRIO_PROCESS, tid, gThreadPriority._currentPriority); diff --git a/databases/arangodb32/files/patch-cmake_ArangoDBInstall.cmake b/databases/arangodb32/files/patch-cmake_ArangoDBInstall.cmake new file mode 100644 index 000000000000..91a7456014ad --- /dev/null +++ b/databases/arangodb32/files/patch-cmake_ArangoDBInstall.cmake @@ -0,0 +1,11 @@ +--- cmake/ArangoDBInstall.cmake.orig 2017-11-16 20:17:40 UTC ++++ cmake/ArangoDBInstall.cmake +@@ -100,7 +100,7 @@ endif () + + install( + DIRECTORY +- ${PROJECT_BINARY_DIR}/var/log/arangodb3 ++ ${PROJECT_BINARY_DIR}/var/log/arangodb + DESTINATION + ${CMAKE_INSTALL_LOCALSTATEDIR}/log + ) diff --git a/databases/arangodb32/files/patch-lib_Basics_ArangoGlobalContext.cpp b/databases/arangodb32/files/patch-lib_Basics_ArangoGlobalContext.cpp new file mode 100644 index 000000000000..1e656e16fc88 --- /dev/null +++ b/databases/arangodb32/files/patch-lib_Basics_ArangoGlobalContext.cpp @@ -0,0 +1,14 @@ +--- lib/Basics/ArangoGlobalContext.cpp.orig 2018-04-12 13:04:01 UTC ++++ lib/Basics/ArangoGlobalContext.cpp +@@ -145,10 +145,9 @@ ArangoGlobalContext::ArangoGlobalContext + #ifndef __GLIBC__ + // Increase default stack size for libmusl: + pthread_attr_t a; +- memset(&a, 0, sizeof(pthread_attr_t)); ++ pthread_attr_init(&a); + pthread_attr_setstacksize(&a, 8*1024*1024); // 8MB as in glibc + pthread_attr_setguardsize(&a, 4096); // one page +- pthread_setattr_default_np(&a); + #endif + #endif + #endif diff --git a/databases/arangodb32/files/patch-lib_Basics_process-utils.cpp b/databases/arangodb32/files/patch-lib_Basics_process-utils.cpp new file mode 100644 index 000000000000..895a1f4ad680 --- /dev/null +++ b/databases/arangodb32/files/patch-lib_Basics_process-utils.cpp @@ -0,0 +1,52 @@ +--- lib/Basics/process-utils.cpp.orig 2017-11-15 11:23:07 UTC ++++ lib/Basics/process-utils.cpp +@@ -23,7 +23,7 @@ + + #include "process-utils.h" + +-#if defined(TRI_HAVE_MACOS_MEM_STATS) ++#if defined(TRI_HAVE_MACOS_MEM_STATS) || defined (__FreeBSD__) + #include <sys/types.h> + #include <sys/sysctl.h> + #endif +@@ -581,6 +581,7 @@ TRI_process_info_t TRI_ProcessInfoSelf() + } + + #else ++#ifdef _WIN32 + /// -------------------------------------------- + /// transform a file time to timestamp + /// Particularities: +@@ -673,6 +674,7 @@ TRI_process_info_t TRI_ProcessInfoSelf() + return result; + } + #endif ++#endif + + //////////////////////////////////////////////////////////////////////////////// + /// @brief returns information about the process +@@ -1254,7 +1256,7 @@ bool TRI_ContinueExternalProcess(TRI_ext + /// @brief gets the physical memory + //////////////////////////////////////////////////////////////////////////////// + +-#if defined(TRI_HAVE_MACOS_MEM_STATS) ++#if defined(TRI_HAVE_MACOS_MEM_STATS) || defined(__FreeBSD__) + + static uint64_t GetPhysicalMemory() { + int mib[2]; +@@ -1297,6 +1299,7 @@ static uint64_t GetPhysicalMemory() { + + #else + ++#ifdef _WIN32 + static uint64_t GetPhysicalMemory() { + PROCESS_MEMORY_COUNTERS pmc; + memset(&result, 0, sizeof(result)); +@@ -1307,6 +1310,7 @@ static uint64_t GetPhysicalMemory() { + } + return 0; + } ++#endif // _WIN32 + #endif + #endif + #endif diff --git a/databases/arangodb32/files/patch-lib_Basics_socket-utils.h b/databases/arangodb32/files/patch-lib_Basics_socket-utils.h new file mode 100644 index 000000000000..0bb3c0dd8b6b --- /dev/null +++ b/databases/arangodb32/files/patch-lib_Basics_socket-utils.h @@ -0,0 +1,15 @@ +--- lib/Basics/socket-utils.h.orig 2017-11-15 11:23:07 UTC ++++ lib/Basics/socket-utils.h +@@ -31,6 +31,12 @@ + #include <WS2tcpip.h> + #endif + ++#ifdef __FreeBSD__ ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <netinet/in.h> ++#endif ++ + //////////////////////////////////////////////////////////////////////////////// + /// @brief socket types + //////////////////////////////////////////////////////////////////////////////// diff --git a/databases/arangodb32/files/patch-lib_Logger_LogAppenderSyslog.cpp b/databases/arangodb32/files/patch-lib_Logger_LogAppenderSyslog.cpp new file mode 100644 index 000000000000..8d31e1dd1545 --- /dev/null +++ b/databases/arangodb32/files/patch-lib_Logger_LogAppenderSyslog.cpp @@ -0,0 +1,11 @@ +--- lib/Logger/LogAppenderSyslog.cpp.orig 2018-04-12 15:37:36 UTC ++++ lib/Logger/LogAppenderSyslog.cpp +@@ -62,7 +62,7 @@ LogAppenderSyslog::LogAppenderSyslog(std + if ('0' <= facility[0] && facility[0] <= '9') { + value = StringUtils::int32(facility); + } else { +- CODE* ptr = reinterpret_cast<CODE*>(facilitynames); ++ const CODE* ptr = reinterpret_cast<const CODE*>(facilitynames); + + while (ptr->c_name != 0) { + if (strcmp(ptr->c_name, facility.c_str()) == 0) { |