From 26b4c8f71f91d22e081b27814782686edde0c90a Mon Sep 17 00:00:00 2001 From: Antoine Brodin Date: Fri, 1 Jan 2021 10:11:34 +0000 Subject: Revert r559792 to unbreak INDEX and bulk -a It seems a lot of reverse dependencies were missed With hat: portmgr --- databases/arangodb33/Makefile | 49 + databases/arangodb33/distinfo | 3 + databases/arangodb33/files/arangod.in | 86 + .../patch-3rdParty_rocksdb_v5.6.X_util_channel.h | 28 + databases/arangodb33/files/patch-CMakeLists.txt | 43 + .../files/patch-arangod_Agency_Store.cpp | 11 + .../patch-arangod_RestHandler_RestAuthHandler.cpp | 11 + ...patch-arangod_RocksDBEngine_RocksDBThrottle.cpp | 25 + .../files/patch-cmake_ArangoDBInstall.cmake | 11 + .../files/patch-lib_Basics_ArangoGlobalContext.cpp | 14 + .../files/patch-lib_Basics_process-utils.cpp | 36 + .../files/patch-lib_Basics_socket-utils.h | 15 + .../files/patch-lib_Logger_LogAppenderSyslog.cpp | 11 + databases/arangodb33/pkg-descr | 5 + databases/arangodb33/pkg-message | 27 + databases/arangodb33/pkg-plist | 4798 ++++++++++++++++++++ 16 files changed, 5173 insertions(+) create mode 100644 databases/arangodb33/Makefile create mode 100644 databases/arangodb33/distinfo create mode 100644 databases/arangodb33/files/arangod.in create mode 100644 databases/arangodb33/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h create mode 100644 databases/arangodb33/files/patch-CMakeLists.txt create mode 100644 databases/arangodb33/files/patch-arangod_Agency_Store.cpp create mode 100644 databases/arangodb33/files/patch-arangod_RestHandler_RestAuthHandler.cpp create mode 100644 databases/arangodb33/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp create mode 100644 databases/arangodb33/files/patch-cmake_ArangoDBInstall.cmake create mode 100644 databases/arangodb33/files/patch-lib_Basics_ArangoGlobalContext.cpp create mode 100644 databases/arangodb33/files/patch-lib_Basics_process-utils.cpp create mode 100644 databases/arangodb33/files/patch-lib_Basics_socket-utils.h create mode 100644 databases/arangodb33/files/patch-lib_Logger_LogAppenderSyslog.cpp create mode 100644 databases/arangodb33/pkg-descr create mode 100644 databases/arangodb33/pkg-message create mode 100644 databases/arangodb33/pkg-plist (limited to 'databases/arangodb33') diff --git a/databases/arangodb33/Makefile b/databases/arangodb33/Makefile new file mode 100644 index 000000000000..6b7c19273067 --- /dev/null +++ b/databases/arangodb33/Makefile @@ -0,0 +1,49 @@ +# $FreeBSD$ + +PORTNAME= arangodb +DISTVERSIONPREFIX= v +DISTVERSION= 3.3.7 +PORTREVISION= 1 +CATEGORIES= databases net +PKGNAMESUFFIX= 33 + +MAINTAINER= dev@dudu.ro +COMMENT= Distributed NoSQL database with multiple data models + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS_REASON= "Only builds on amd64: https://github.com/arangodb/arangodb/issues/2334" + +CONFLICTS_INSTALL= arangodb32 +CONFLICTS_BUILD= v8 + +USES= cmake:noninja compiler gmake python:2.7 ssl # ninja: error: loading 'build.ninja': No such file or directory +USE_GITHUB= yes + +CMAKE_OFF= USE_JEMALLOC +CMAKE_ON= USE_BACKTRACE +CMAKE_ARGS= -DBASE_LD_FLAGS:STRING="-L${BUILD_WRKSRC}/3rdParty/V8/v5.7.492.77/x64.release/obj.target/src -L${BUILD_WRKSRC}/3rdParty/V8/v5.7.492.77/x64.release/obj.target/third_party/icu -L${LOCALBASE}/lib -L/usr/lib" + +USERS= arangodb +GROUPS= arangodb +USE_RC_SUBR= arangod + +OPTIONS_DEFINE= DOCS + +.include + +.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057 +SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS="" +.else +SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment " +.endif + +post-install: + @${REINPLACE_CMD} -e 's|/usr/local/var/lib/arangodb3|/var/db/arangodb|g' ${STAGEDIR}${PREFIX}/etc/arangodb/*.conf + @${REINPLACE_CMD} -e 's|/usr/local/var/log/arangodb3|/var/log/arangodb|g' ${STAGEDIR}${PREFIX}/etc/arangodb/arangod.conf + @${FIND} ${STAGEDIR}${PREFIX}/etc/arangodb/ -type f -name *.conf -exec ${MV} {} {}.sample \; + @cd ${STAGEDIR}${PREFIX} && ${RMDIR} var/lib/arangodb var/lib/arangodb-apps var/lib var/log/arangodb var/log var + +.include diff --git a/databases/arangodb33/distinfo b/databases/arangodb33/distinfo new file mode 100644 index 000000000000..78e058a3c72f --- /dev/null +++ b/databases/arangodb33/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1523536668 +SHA256 (arangodb-arangodb-v3.3.7_GH0.tar.gz) = e28128d127a8a00cc3e7ffbd9c991f6534f8924ac28d073e8204b60beff65184 +SIZE (arangodb-arangodb-v3.3.7_GH0.tar.gz) = 148263131 diff --git a/databases/arangodb33/files/arangod.in b/databases/arangodb33/files/arangod.in new file mode 100644 index 000000000000..a71bc94b6f90 --- /dev/null +++ b/databases/arangodb33/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/arangodb33/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h b/databases/arangodb33/files/patch-3rdParty_rocksdb_v5.6.X_util_channel.h new file mode 100644 index 000000000000..332a42556ea4 --- /dev/null +++ b/databases/arangodb33/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::lock_guard 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' 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 buffer_; + bool eof_; + }; diff --git a/databases/arangodb33/files/patch-CMakeLists.txt b/databases/arangodb33/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..05d422b21018 --- /dev/null +++ b/databases/arangodb33/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/arangodb33/files/patch-arangod_Agency_Store.cpp b/databases/arangodb33/files/patch-arangod_Agency_Store.cpp new file mode 100644 index 000000000000..aaf556283e4e --- /dev/null +++ b/databases/arangodb33/files/patch-arangod_Agency_Store.cpp @@ -0,0 +1,11 @@ +--- arangod/Agency/Store.cpp.orig 2018-01-05 13:56:52 UTC ++++ arangod/Agency/Store.cpp +@@ -603,7 +603,7 @@ void Store::dumpToBuilder(Builder& build + auto ts = std::chrono::duration_cast( + i.first.time_since_epoch()) + .count(); +- builder.add(i.second, VPackValue(ts)); ++ builder.add(i.second, VPackValue((int64_t)ts)); + } + } + { diff --git a/databases/arangodb33/files/patch-arangod_RestHandler_RestAuthHandler.cpp b/databases/arangodb33/files/patch-arangod_RestHandler_RestAuthHandler.cpp new file mode 100644 index 000000000000..df9643a70ff3 --- /dev/null +++ b/databases/arangodb33/files/patch-arangod_RestHandler_RestAuthHandler.cpp @@ -0,0 +1,11 @@ +--- arangod/RestHandler/RestAuthHandler.cpp.orig 2018-04-06 22:44:29 UTC ++++ arangod/RestHandler/RestAuthHandler.cpp +@@ -54,7 +54,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())); + } + AuthenticationFeature* af = AuthenticationFeature::instance(); + TRI_ASSERT(af != nullptr); diff --git a/databases/arangodb33/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp b/databases/arangodb33/files/patch-arangod_RocksDBEngine_RocksDBThrottle.cpp new file mode 100644 index 000000000000..1b8be3c36734 --- /dev/null +++ b/databases/arangodb33/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/arangodb33/files/patch-cmake_ArangoDBInstall.cmake b/databases/arangodb33/files/patch-cmake_ArangoDBInstall.cmake new file mode 100644 index 000000000000..91a7456014ad --- /dev/null +++ b/databases/arangodb33/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/arangodb33/files/patch-lib_Basics_ArangoGlobalContext.cpp b/databases/arangodb33/files/patch-lib_Basics_ArangoGlobalContext.cpp new file mode 100644 index 000000000000..1e656e16fc88 --- /dev/null +++ b/databases/arangodb33/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/arangodb33/files/patch-lib_Basics_process-utils.cpp b/databases/arangodb33/files/patch-lib_Basics_process-utils.cpp new file mode 100644 index 000000000000..052bc9d3ee68 --- /dev/null +++ b/databases/arangodb33/files/patch-lib_Basics_process-utils.cpp @@ -0,0 +1,36 @@ +--- lib/Basics/process-utils.cpp.orig 2018-01-05 13:56:52 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 + #include + #endif +@@ -557,6 +557,7 @@ ProcessInfo TRI_ProcessInfoSelf() { + } + + #else ++#ifdef _WIN32 + /// -------------------------------------------- + /// transform a file time to timestamp + /// Particularities: +@@ -648,6 +649,7 @@ ProcessInfo TRI_ProcessInfoSelf() { + return result; + } + #endif ++#endif + + //////////////////////////////////////////////////////////////////////////////// + /// @brief returns information about the process +@@ -1435,7 +1437,7 @@ bool TRI_ContinueExternalProcess(Externa + /// @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]; diff --git a/databases/arangodb33/files/patch-lib_Basics_socket-utils.h b/databases/arangodb33/files/patch-lib_Basics_socket-utils.h new file mode 100644 index 000000000000..0bb3c0dd8b6b --- /dev/null +++ b/databases/arangodb33/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 + #endif + ++#ifdef __FreeBSD__ ++#include ++#include ++#include ++#endif ++ + //////////////////////////////////////////////////////////////////////////////// + /// @brief socket types + //////////////////////////////////////////////////////////////////////////////// diff --git a/databases/arangodb33/files/patch-lib_Logger_LogAppenderSyslog.cpp b/databases/arangodb33/files/patch-lib_Logger_LogAppenderSyslog.cpp new file mode 100644 index 000000000000..8d31e1dd1545 --- /dev/null +++ b/databases/arangodb33/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(facilitynames); ++ const CODE* ptr = reinterpret_cast(facilitynames); + + while (ptr->c_name != 0) { + if (strcmp(ptr->c_name, facility.c_str()) == 0) { diff --git a/databases/arangodb33/pkg-descr b/databases/arangodb33/pkg-descr new file mode 100644 index 000000000000..9c83131f5380 --- /dev/null +++ b/databases/arangodb33/pkg-descr @@ -0,0 +1,5 @@ +ArangoDB is a native multi-model database with flexible data models for +documents, graphs, and key-values. Build high performance applications +using a convenient SQL-like query language or JavaScript extensions + +WWW: https://www.arangodb.com diff --git a/databases/arangodb33/pkg-message b/databases/arangodb33/pkg-message new file mode 100644 index 000000000000..0c88d9af080f --- /dev/null +++ b/databases/arangodb33/pkg-message @@ -0,0 +1,27 @@ +[ +{ type: install + message: <