summaryrefslogtreecommitdiff
path: root/databases/arangodb32/files
diff options
context:
space:
mode:
Diffstat (limited to 'databases/arangodb32/files')
-rw-r--r--databases/arangodb32/files/arangod.in86
-rw-r--r--databases/arangodb32/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h28
-rw-r--r--databases/arangodb32/files/patch-CMakeLists.txt43
-rw-r--r--databases/arangodb32/files/patch-arangod_Agency_Store.cpp11
-rw-r--r--databases/arangodb32/files/patch-arangod_RestHandler_RestAuthHandler.cpp11
-rw-r--r--databases/arangodb32/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp25
-rw-r--r--databases/arangodb32/files/patch-cmake_ArangoDBInstall.cmake11
-rw-r--r--databases/arangodb32/files/patch-lib_Basics_ArangoGlobalContext.cpp14
-rw-r--r--databases/arangodb32/files/patch-lib_Basics_process-utils.cpp52
-rw-r--r--databases/arangodb32/files/patch-lib_Basics_socket-utils.h15
-rw-r--r--databases/arangodb32/files/patch-lib_Logger_LogAppenderSyslog.cpp11
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) {