diff options
author | Kurt Jaeger <pi@FreeBSD.org> | 2019-09-12 03:29:40 +0800 |
---|---|---|
committer | Kurt Jaeger <pi@FreeBSD.org> | 2019-09-12 03:29:40 +0800 |
commit | 36722726920d3e0d5e7c3220ea20c7a93bcb03dd (patch) | |
tree | 403f7ac754b3211725866ef01dd491516a0db25e | |
parent | f75e355c71be4fd7635f67f8483a9c6a20c2ae1b (diff) | |
download | freebsd-ports-gnome-36722726920d3e0d5e7c3220ea20c7a93bcb03dd.tar.gz freebsd-ports-gnome-36722726920d3e0d5e7c3220ea20c7a93bcb03dd.tar.zst freebsd-ports-gnome-36722726920d3e0d5e7c3220ea20c7a93bcb03dd.zip |
New port: databases/galera26
Galera v26 wsrep provider library for Galera Cluster for MySQL, an
easy-to-use high-availability solution with high system up-time,
no data loss, and scalability for future growth.
WWW: https://galeracluster.com/
PR: 240483
Submitted by: Nicolas Embriz <nbari@tequila.io>
-rw-r--r-- | databases/Makefile | 1 | ||||
-rw-r--r-- | databases/galera26/Makefile | 71 | ||||
-rw-r--r-- | databases/galera26/distinfo | 5 | ||||
-rw-r--r-- | databases/galera26/files/garb.sh.in | 95 | ||||
-rw-r--r-- | databases/galera26/pkg-descr | 5 | ||||
-rw-r--r-- | databases/galera26/pkg-message | 8 |
6 files changed, 185 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile index fc7ac12fc7aa..befd52766e0b 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -91,6 +91,7 @@ SUBDIR += frontbase-jdbc SUBDIR += gadfly SUBDIR += galera + SUBDIR += galera26 SUBDIR += gdbm SUBDIR += geoserver-mysql-plugin SUBDIR += gigabase diff --git a/databases/galera26/Makefile b/databases/galera26/Makefile new file mode 100644 index 000000000000..eec65fd6342b --- /dev/null +++ b/databases/galera26/Makefile @@ -0,0 +1,71 @@ +# Created by: Nicolas Embriz <nbari@tequila.io> +# $FreeBSD$ + +PORTNAME= galera +PORTVERSION= 26.4.2 +DISTVERSIONPREFIX= release_ +CATEGORIES= databases +PKGNAMESUFFIX= 26 + +MAINTAINER= devel@galeracluster.com +COMMENT= Synchronous multi-master replication engine + +LICENSE= GPLv2 + +BROKEN_aarch64= fails to compile: gu_int128.h: use of undeclared identifier '__bswap64_var' +BROKEN_armv6= fails to compile: gu_int128.h: use of undeclared identifier '__bswap64_var' +BROKEN_armv7= fails to compile: gu_int128.h: use of undeclared identifier '__bswap64_var' +NOT_FOR_ARCHS= i386 +# On i386 older versions of clang produce: +# cannot compile this atomic library call yet ... __atomic_add_fetch +# whereas newer ones generate a call to __atomic_add_fetch which ends up with +# undefined reference at link time: +# undefined reference to `__atomic_fetch_add_8' +# https://bugs.llvm.org//show_bug.cgi?id=23262 +# https://bugs.llvm.org//show_bug.cgi?id=24908 +# https://tracker.crystax.net/issues/1263 +NOT_FOR_ARCHS_REASON_i386=Uses 64 bit atomics that clang cannot generate on i386 + +BUILD_DEPENDS= checkmk:devel/check \ + ${LOCALBASE}/include/boost/shared_ptr.hpp:devel/boost-libs +LIB_DEPENDS= libboost_date_time.so:devel/boost-libs + +USES= compiler:c++11-lang python:build scons ssl + +USE_LDCONFIG= yes + +USE_GITHUB= yes +GH_TUPLE?= codership:galera:${DISTVERSIONPREFIX}${PORTVERSION}${DISTVERSIONSUFFIX} \ + codership:wsrep-API:75a5f452f2ba07b0f4a3a9a94825fccc71b27398:dummy/wsrep/src + +LDFLAGS+= -lboost_program_options -lboost_system +MAKE_ARGS+= revno=${GH_TAGNAME} system_asio=0 tests=0 + +USE_RC_SUBR= garb.sh + +# Abuse TEST_TARGET to append tests=1 (which is not a target, strictly +# speaking) at the end of the "scons ..." command so that it overrides +# tests=0 from ${MAKE_ARGS}. To rerun the tests a second time, remove +# all *.passed files: find ./work -name *.passed -print -delete +TEST_TARGET= deterministic_tests=1 tests=1 + +PLIST_FILES= bin/garbd \ + lib/libgalera.so \ + lib/libgalera_smm.so + +OPTIONS_DEFINE= BOOSTPOOL BPOSTATIC DEBUG + +BOOSTPOOL_DESC= Use boost pool allocator +BPOSTATIC_DESC= Use static boost_program_options + +BOOSTPOOL_MAKE_ARGS= boost_pool=1 +BPOSTATIC_MAKE_ARGS= bpostatic=${LOCALBASE}/lib/libboost_program_options.a +DEBUG_MAKE_ARGS= debug=0 + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/garb/garbd ${STAGEDIR}${PREFIX}/bin/ + ${INSTALL_LIB} ${WRKSRC}/libgalera_smm.so ${STAGEDIR}${PREFIX}/lib/ + @(cd ${STAGEDIR}${PREFIX}/lib && ${LN} -sf libgalera_smm.so \ + libgalera.so) + +.include <bsd.port.mk> diff --git a/databases/galera26/distinfo b/databases/galera26/distinfo new file mode 100644 index 000000000000..84c51e11c678 --- /dev/null +++ b/databases/galera26/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1568151779 +SHA256 (codership-galera-release_26.4.2_GH0.tar.gz) = 367ff81e52d2b3c95e8bf2092616f7d1dcfb9723a91fa13e7e5a7b4573f7dcd1 +SIZE (codership-galera-release_26.4.2_GH0.tar.gz) = 3397996 +SHA256 (codership-wsrep-API-75a5f452f2ba07b0f4a3a9a94825fccc71b27398_GH0.tar.gz) = ac782d33d84a874d89bbe4eeb818ab56ae729aee4c491f91892694a2e134c558 +SIZE (codership-wsrep-API-75a5f452f2ba07b0f4a3a9a94825fccc71b27398_GH0.tar.gz) = 50214 diff --git a/databases/galera26/files/garb.sh.in b/databases/galera26/files/garb.sh.in new file mode 100644 index 000000000000..48cc876f3add --- /dev/null +++ b/databases/galera26/files/garb.sh.in @@ -0,0 +1,95 @@ +#!/bin/sh +# +# garb.sh for rc.d usage (c) 2013 Codership Oy +# $Id$ + +# PROVIDE: garb +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf to enable Galera Arbitrator Daemon (garbd): +# garb_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable Galera Arbitrator Daemon. +# garb_galera_nodes (str): A space-separated list of node addresses (address[:port]) in the cluster +# (default empty). +# garb_galera_group (str): Galera cluster name, should be the same as on the rest of the nodes. +# (default empty). +# Optional: +# garb_galera_options (str): Optional Galera internal options string (e.g. SSL settings) +# see http://www.codership.com/wiki/doku.php?id=galera_parameters +# (default empty). +# garb_log_file (str): Log file for garbd (default empty). Optional, by default logs to syslog +# garb_pid_file (str): Custum PID file path and name. +# Default to "/var/run/garb.pid". +# + +. /etc/rc.subr + +name="garb" +rcvar=garb_enable + +load_rc_config $name + +# set defaults +: ${garb_enable="NO"} +: ${garb_galera_nodes=""} +: ${garb_galera_group=""} +: ${garb_galera_options=""} +: ${garb_log_file=""} +: ${garb_pid_file="/var/run/garbd"} + +procname="/usr/local/bin/garbd" +command="/usr/sbin/daemon" +command_args="-c -f -u nobody -p $garb_pid_file $procname" +start_precmd="${name}_prestart" +#start_cmd="${name}_start" +start_postcmd="${name}_poststart" +stop_precmd="${name}_prestop" +#stop_cmd="${name}_stop" +#stop_postcmd="${name}_poststop" +#extra_commands="reload" +#reload_cmd="${name}_reload" +#export LD_LIBRARY_PATH=/usr/local/lib/gcc44 + +garb_prestart() +{ + [ "$(id -ur)" != "0" ] && err 4 "root rights are required to start $name" + [ -r "$garb_pid_file" ] && err 0 "$procname is already running with PID $(cat $garb_pid_file)" + [ -x "$procname" ] || err 5 "$procname is not found" + + # check that node addresses are configured + [ -z "$garb_galera_nodes" ] && err 6 "List of garb_galera_nodes is not configured" + [ -z "$garb_galera_group" ] && err 6 "garb_galera_group name is not configured" + + GALERA_PORT=${GALERA_PORT:-4567} + + # Concatenate all nodes in the list (for backward compatibility) + ADDRESS= + for NODE in ${garb_galera_nodes}; do + [ -z "$ADDRESS" ] && ADDRESS="$NODE" || ADDRESS="$ADDRESS,$NODE" + done + + command_args="$command_args -a gcomm://$ADDRESS" + [ -n "$garb_galera_group" ] && command_args="$command_args -g $garb_galera_group" + [ -n "$garb_galera_options" ] && command_args="$command_args -o $garb_galera_options" + [ -n "$garb_log_file" ] && command_args="$command_args -l $garb_log_file" + return 0 +} + +garb_poststart() +{ + local timeout=15 + while [ ! -f "$garb_pid_file" -a $timeout -gt 0 ]; do + timeout=$(( timeout - 1 )) + sleep 1 + done + return 0 +} + +garb_prestop() { + [ "$(id -ur)" != "0" ] && err 4 "root rights are required to stop $name" + [ -r $garb_pid_file ] || err 0 "" + return 0 +} + +run_rc_command "$1" diff --git a/databases/galera26/pkg-descr b/databases/galera26/pkg-descr new file mode 100644 index 000000000000..2c21687fe034 --- /dev/null +++ b/databases/galera26/pkg-descr @@ -0,0 +1,5 @@ +Galera v26 wsrep provider library for Galera Cluster for MySQL, an +easy-to-use high-availability solution with high system up-time, +no data loss, and scalability for future growth. + +WWW: https://galeracluster.com/ diff --git a/databases/galera26/pkg-message b/databases/galera26/pkg-message new file mode 100644 index 000000000000..ee97d9728fc1 --- /dev/null +++ b/databases/galera26/pkg-message @@ -0,0 +1,8 @@ +[ +{ type: install + message: <<EOM +Find the Galera Cluster documentation at +http://galeracluster.com/documentation-webpages/ +EOM +} +] |