Date: Mon, 22 May 2017 11:47:41 +0000 (UTC) From: Vasil Dimov <vd@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r441450 - in head/databases/galera: . files Message-ID: <201705221147.v4MBlf9Y074624@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: vd Date: Mon May 22 11:47:41 2017 New Revision: 441450 URL: https://svnweb.freebsd.org/changeset/ports/441450 Log: Upgrade databases/galera from 25.3.5_7 to 25.3.20_2 * Fetch from GitHub * Adopt by devel@galeracluster.com * Remove all documentation building from this port. The documentation is now online at http://galeracluster.com/documentation-webpages/ * Fix the linking with libboost_program_options if a static linkage has been chosen - it should be libboost_program_options.a, not libboost_program_options.so * The new version of the port could have been 25.3.20. The reason for 25.3.20_2 is to ease upgrades for people that are using https://github.com/codership/freebsd-ports/tree/master/databases/galera which is at 25.3.20_1. Relnotes: http://releases.galeracluster.com/release-notes-galera-25.3.20.txt Added: head/databases/galera/files/garb.sh.in (contents, props changed) head/databases/galera/files/patch-galerautils__src__gu_asio.hpp (contents, props changed) head/databases/galera/pkg-message (contents, props changed) Deleted: head/databases/galera/files/patch-galerautils-src-gu_mmap.cpp head/databases/galera/files/patch-galerautils__src__gu_errno.h Modified: head/databases/galera/Makefile head/databases/galera/distinfo head/databases/galera/files/patch-SConstruct head/databases/galera/pkg-descr Modified: head/databases/galera/Makefile ============================================================================== --- head/databases/galera/Makefile Mon May 22 11:42:31 2017 (r441449) +++ head/databases/galera/Makefile Mon May 22 11:47:41 2017 (r441450) @@ -2,67 +2,44 @@ # $FreeBSD$ PORTNAME= galera -PORTVERSION= 25.3.5 -DISTVERSIONSUFFIX= -src -PORTREVISION= 7 +PORTVERSION= 25.3.20 +PORTREVISION= 2 CATEGORIES= databases -MASTER_SITES= https://launchpadlibrarian.net/170877450/ -MAINTAINER= ports@FreeBSD.org +MAINTAINER= devel@galeracluster.com COMMENT= Synchronous multi-master replication engine LICENSE= GPLv2 BUILD_DEPENDS= checkmk:devel/check \ - doxygen:devel/doxygen \ - ${PYTHON_PKGNAMEPREFIX}cloud_sptheme>=0:textproc/py-cloud_sptheme + ${LOCALBASE}/include/boost/shared_ptr.hpp:devel/boost-libs LIB_DEPENDS= libboost_date_time.so:devel/boost-libs -NOT_FOR_ARCHS= aarch64 -NOT_FOR_ARCHS_REASON= error Please add support for your architecture in build/build_config.h +USES= execinfo python:build scons ssl -USES= execinfo python:build scons shebangfix ssl - -USE_CXXSTD= c++11 -USE_GCC= yes USE_LDCONFIG= yes -LDFLAGS+= -lboost_program_options -lboost_system -MAKE_ARGS+= --config=force - -SHEBANG_FILES= docs/sphinx-* - -PLIST_FILES= lib/libgalera_smm.so \ - lib/libgalera.so - -PORTDOCS= * - -DOCSRCDIR1= ${WRKSRC} -DOC_FILES1= AUTHORS README - -DOCSRCDIR2= ${DOCSRCDIR1}/docs/build/doc - -DOCSRCDIR3= ${DOCSRCDIR1}/galerautils -DOCSDIR3= ${DOCSDIR}/galerautils -DOC_FILES3= ChangeLog README - -DOCSRCDIR4= ${DOCSRCDIR1}/gcache -DOCSDIR4= ${DOCSDIR}/gcache -DOC_FILES4= AUTHORS README +USE_GITHUB= yes +GH_ACCOUNT= codership +GH_TAGNAME= release_${DISTVERSION} -DOCSRCDIR5= ${DOCSRCDIR1}/gcs -DOCSDIR5= ${DOCSDIR}/gcs -DOC_FILES5= ChangeLog README doc/*.txt doc/*.odt doc/*.png +LDFLAGS+= -lboost_program_options -lboost_system +MAKE_ARGS+= --config=force \ + -j ${MAKE_JOBS_NUMBER} \ + deterministic_tests=1 \ + revno=${GH_TAGNAME} \ + system_asio=0 + +USE_RC_SUBR= garb.sh + +PLIST_FILES= bin/garbd \ + lib/libgalera.so \ + lib/libgalera_smm.so -OPTIONS_DEFINE= BOOSTPOOL BPOSTATIC DEBUG DOCS TEST -OPTIONS_GROUP= DOCS -OPTIONS_GROUP_DOCS= EPUB JSON LATEX PICKLE -OPTIONS_SUB= yes +OPTIONS_DEFINE= BOOSTPOOL BPOSTATIC DEBUG BOOSTPOOL_DESC= Use boost pool allocator BPOSTATIC_DESC= Use static boost_program_options -EPUB_DESC= EPUB support -PICKLE_DESC= Pickle support .include <bsd.port.pre.mk> @@ -71,141 +48,17 @@ MAKE_ARGS+= boost_pool=1 .endif .if ${PORT_OPTIONS:MBPOSTATIC} -MAKE_ARGS+= bpostatic=${PREFIX}/lib/libboost_program_options.so +MAKE_ARGS+= bpostatic=${LOCALBASE}/lib/libboost_program_options.a .endif .if ${PORT_OPTIONS:MDEBUG} MAKE_ARGS+= debug=3 .endif -post-patch: - @${REINPLACE_CMD} -e "/-Werror/d; \ - s|LINKFLAGS = link_arch|& + ' ' + os.environ['LDFLAGS']|" \ - ${WRKSRC}/SConstruct - @${REINPLACE_CMD} -e '/#\/asio/d; s|asio.hpp|boost/&|; \ - s|asio/ssl.hpp|boost/&|' ${WRKSRC}/SConstruct - @${REINPLACE_CMD} -e 's|asio.hpp|boost/&|; s|asio/ssl.hpp|boost/&|' \ - ${WRKSRC}/galera/src/ist.hpp \ - ${WRKSRC}/gcomm/src/asio_protonet.hpp - @${REINPLACE_CMD} -e 's|asio::system_error|::boost::system::system_error|g' \ - ${WRKSRC}/galera/src/ist.cpp \ - ${WRKSRC}/gcomm/src/asio_tcp.cpp \ - ${WRKSRC}/gcomm/src/asio_udp.cpp - @${REINPLACE_CMD} -e 's|asio::error_code|::boost::system::error_code|g' \ - ${WRKSRC}/gcomm/src/asio_protonet.*pp \ - ${WRKSRC}/gcomm/src/asio_tcp.*pp \ - ${WRKSRC}/gcomm/src/asio_udp.*pp - @${REINPLACE_CMD} -e 's|asio::|boost::&|g' \ - ${WRKSRC}/galera/src/ist.*pp \ - ${WRKSRC}/galera/src/ist_proto.hpp \ - ${WRKSRC}/gcomm/src/asio_addr.hpp \ - ${WRKSRC}/gcomm/src/asio_protonet.*pp \ - ${WRKSRC}/gcomm/src/asio_tcp.*pp \ - ${WRKSRC}/gcomm/src/asio_udp.*pp - @${REINPLACE_CMD} -e 's|LLONG_MAX|gu::LOG_MAX|' \ - ${WRKSRC}/galera/src/monitor.hpp - @${REINPLACE_CMD} -e "s|'galera/SConscript',|'galera/SConscript'])|; \ - /'garb\/SConscript'])/d" ${WRKSRC}/SConscript - @${REINPLACE_CMD} -e "s|'tests', 1|'tests', 0|" ${WRKSRC}/SConstruct - -.if ! ${PORT_OPTIONS:MTEST} - @${REINPLACE_CMD} -e 's| tests/SConscript||' \ - ${WRKSRC}/galerautils/SConscript ${WRKSRC}/gcache/SConscript - @${REINPLACE_CMD} -e "s|, 'tests/SConscript'||" \ - ${WRKSRC}/galera/SConscript -.endif - - @${REINPLACE_CMD} -e "s|\[u'Codership Oy'\], 1|\[u'Codership Oy'\], 8|" \ - ${WRKSRC}/docs/pasture/source/conf.py - -.for d in galerautils gcomm gcs - @${REINPLACE_CMD} -e 's|= ./|= ../../docs/build/doc/${d}|; \ - s|= man|= ../../man|' ${WRKSRC}/${d}/doc/Doxyfile - -. if ! ${PORT_OPTIONS:MDOCS} - @${MKDIR} ${WRKSRC}/docs/build/doc/${d} - @${REINPLACE_CMD} -e '/GENERATE_HTML / s|YES|NO|' \ - ${WRKSRC}/${d}/doc/Doxyfile -. elif ${PORT_OPTIONS:MLATEX} - @${REINPLACE_CMD} -e '/GENERATE_LATEX/ s|NO|YES|; s|= a4wide|= a4|; \ - /LATEX_OUTPUT/ s|latex|&|' ${WRKSRC}/${d}/doc/Doxyfile -. endif -.endfor - -post-build: - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b man \ - -d build/doctrees source build/man/man1) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b man \ - -d build/doctrees/pasture pasture/source build/man/man8) - -.if ${PORT_OPTIONS:MDOCS} - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b html \ - -d build/doctrees source build/doc/galera/html) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b text \ - -d build/doctrees source build/doc/galera/text) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b html \ - -d build/doctrees/pasture pasture/source build/doc/pasture/html) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b text \ - -d build/doctrees/pasture pasture/source build/doc/pasture/text) - -. if ${PORT_OPTIONS:MEPUB} - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b epub \ - -d build/doctrees source build/doc/galera/epub) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b epub \ - -d build/doctrees/pasture pasture/source build/doc/pasture/epub) -. endif - -. if ${PORT_OPTIONS:MJSON} - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b json \ - -d build/doctrees source build/doc/galera/json) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b json \ - -d build/doctrees/pasture pasture/source build/doc/pasture/json) -. endif - -. if ${PORT_OPTIONS:MLATEX} - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b latex \ - -d build/doctrees source build/doc/galera/latex) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b latex \ - -d build/doctrees/pasture pasture/source \ - build/doc/pasture/latex) -. endif - -. if ${PORT_OPTIONS:MPICKLE} - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b pickle \ - -d build/doctrees source build/doc/galera/pickle) - @(cd ${BUILD_WRKSRC}/docs && sphinx-build -a -b pickle \ - -d build/doctrees/pasture \ - pasture/source build/doc/pasture/pickle) -. endif -.endif - - @(cd ${BUILD_WRKSRC}/galerautils/doc && doxygen Doxyfile) - @(cd ${BUILD_WRKSRC}/gcomm/doc && doxygen Doxyfile) - @(cd ${BUILD_WRKSRC}/gcs/doc && doxygen Doxyfile) - do-install: - ${INSTALL_LIB} ${WRKDIR}/${DISTNAME}/libgalera_smm.so \ - ${STAGEDIR}${PREFIX}/lib/ + ${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) - @(cd ${WRKSRC}/docs/build/man/man1 && ${INSTALL_MAN} \ - ${PORTNAME}.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/) - @(cd ${WRKSRC}/docs/build/man/man3 && ${RM} _*.3 && ${INSTALL_MAN} \ - *.3 ${STAGEDIR}${MAN3PREFIX}/man/man3/) - @(cd ${WRKSRC}/docs/build/man/man8 && ${INSTALL_MAN} \ - ${PORTNAME}.8 ${STAGEDIR}${MAN8PREFIX}/man/man8/) - - @cd ${STAGEDIR}${MANPREFIX} && \ - ${FIND} -H -s man/man*/ -maxdepth 1 -type f -print | \ - ${SED} 's|$$|.gz|' >> ${TMPPLIST} - -post-install-DOCS-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR} ${STAGEDIR}${DOCSDIR4} - ${INSTALL_DATA} ${DOC_FILES1:S|^|${DOCSRCDIR1}/|} ${STAGEDIR}${DOCSDIR} - (cd ${DOCSRCDIR2} && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) - ${INSTALL_DATA} ${DOC_FILES3:S|^|${DOCSRCDIR3}/|} ${STAGEDIR}${DOCSDIR3} - ${INSTALL_DATA} ${DOC_FILES4:S|^|${DOCSRCDIR4}/|} ${STAGEDIR}${DOCSDIR4} - ${INSTALL_DATA} ${DOC_FILES5:S|^|${DOCSRCDIR5}/|} ${STAGEDIR}${DOCSDIR5} - .include <bsd.port.post.mk> Modified: head/databases/galera/distinfo ============================================================================== --- head/databases/galera/distinfo Mon May 22 11:42:31 2017 (r441449) +++ head/databases/galera/distinfo Mon May 22 11:47:41 2017 (r441450) @@ -1,2 +1,3 @@ -SHA256 (galera-25.3.5-src.tar.gz) = 9e6d718bac9608c69cbfc0662963b29c13659c576aaa8469b6a325d75603f7a3 -SIZE (galera-25.3.5-src.tar.gz) = 3820268 +TIMESTAMP = 1495385457 +SHA256 (codership-galera-25.3.20-release_25.3.20_GH0.tar.gz) = bcfe8cc188b19a9dec2c4c07d09c53ea8b2d4dd0479d412d82528583f6c91310 +SIZE (codership-galera-25.3.20-release_25.3.20_GH0.tar.gz) = 3271813 Added: head/databases/galera/files/garb.sh.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/databases/galera/files/garb.sh.in Mon May 22 11:47:41 2017 (r441450) @@ -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" Modified: head/databases/galera/files/patch-SConstruct ============================================================================== --- head/databases/galera/files/patch-SConstruct Mon May 22 11:42:31 2017 (r441449) +++ head/databases/galera/files/patch-SConstruct Mon May 22 11:47:41 2017 (r441450) @@ -1,21 +1,68 @@ ---- ./SConstruct.orig 2014-08-01 16:33:09.000000000 -0400 -+++ ./SConstruct 2014-08-01 16:34:45.000000000 -0400 -@@ -153,7 +153,7 @@ - - # Initialize CPPFLAGS and LIBPATH from environment to get user preferences - env.Replace(CPPFLAGS = os.getenv('CPPFLAGS', '')) --env.Replace(LIBPATH = [os.getenv('LIBPATH', '')]) -+env.Replace(RPATH = [os.getenv('RPATH', '')]) +--- SConstruct.orig 2017-01-25 07:55:06 UTC ++++ SConstruct +@@ -28,6 +28,7 @@ + import os + import platform + import string ++import subprocess - # Set -pthread flag explicitly to make sure that pthreads are + sysname = os.uname()[0].lower() + machine = platform.machine() +@@ -182,10 +183,10 @@ env.Replace(RPATH = [os.getenv('RPAT # enabled on all platforms. -@@ -165,6 +165,9 @@ - env.Append(CPPFLAGS = ' -I/usr/local/include ') + env.Append(CCFLAGS = ' -pthread') + +-# Freebsd ports are installed under /usr/local ++# FreeBSD ports are usually installed under /usr/local + if sysname == 'freebsd' or sysname == 'sunos': +- env.Append(LIBPATH = ['/usr/local/lib']) +- env.Append(CPPFLAGS = ' -I/usr/local/include ') ++ env.Append(LIBPATH = ['/usr/local/lib']) ++ env.Append(CPPPATH = ['/usr/local/include']) if sysname == 'sunos': env.Replace(SHLINKFLAGS = '-shared ') -+ env.Replace(AR = 'ar') -+ env.Replace(ARFLAGS= 'r') -+ env.Replace(ARCOM = '$AR $ARFLAGS $TARGET $SOURCES') - # Add paths is extra_sysroot argument was specified - extra_sysroot = ARGUMENTS.get('extra_sysroot', '') +@@ -418,8 +419,10 @@ else: + print "Falling back to bundled asio" + + if not system_asio: +- # Fall back to embedded asio +- conf.env.Append(CPPPATH = [ '#/asio' ]) ++ # Make sure that -Iasio goes before other paths (e.g. -I/usr/local/include) ++ # that may contain a system wide installed asio. We should use the bundled ++ # asio if "scons system_asio=0" is specified. Thus use Prepend(). ++ conf.env.Prepend(CPPPATH = [ '#/asio' ]) + if conf.CheckCXXHeader('asio.hpp'): + conf.env.Append(CPPFLAGS = ' -DHAVE_ASIO_HPP') + else: +@@ -442,17 +445,26 @@ if ssl == 1: + Exit(1) + + +-# these will be used only with our softaware ++# get compiler name/version, CXX may be set to "c++" which may be clang or gcc ++try: ++ compiler_version = subprocess.check_output([conf.env['CXX'], '--version'], ++ stderr=subprocess.STDOUT) ++except: ++ # in case "$CXX --version" returns an error, e.g. "unknown option" ++ compiler_version = 'unknown' ++ ++# these will be used only with our software + if strict_build_flags == 1: + conf.env.Append(CCFLAGS = ' -Werror -pedantic') +- if 'clang' not in conf.env['CXX']: +- conf.env.Prepend(CXXFLAGS = '-Weffc++ -Wold-style-cast ') +- else: ++ if 'clang' in compiler_version: + conf.env.Append(CCFLAGS = ' -Wno-self-assign') + conf.env.Append(CCFLAGS = ' -Wno-gnu-zero-variadic-macro-arguments') + conf.env.Append(CXXFLAGS = ' -Wno-variadic-macros') ++ # CXX may be something like "ccache clang++" + if 'ccache' in conf.env['CXX']: + conf.env.Append(CCFLAGS = ' -Qunused-arguments') ++ else: ++ conf.env.Prepend(CXXFLAGS = '-Weffc++ -Wold-style-cast ') + + env = conf.Finish() + Added: head/databases/galera/files/patch-galerautils__src__gu_asio.hpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/databases/galera/files/patch-galerautils__src__gu_asio.hpp Mon May 22 11:47:41 2017 (r441450) @@ -0,0 +1,22 @@ +--- galerautils/src/gu_asio.hpp.orig 2017-01-25 07:55:06 UTC ++++ galerautils/src/gu_asio.hpp +@@ -32,6 +32,19 @@ + #endif // __GNUG__ + #endif // ! HAVE_SYSTEM_ASIO + ++#ifdef ASIO_HPP ++#error asio.hpp is already included before gu_asio.hpp, can't customize asio.hpp ++#endif // ASIO_HPP ++ ++#include "asio/version.hpp" ++ ++// ASIO does not interact well with kqueue before ASIO 1.10.5, see ++// https://readlist.com/lists/freebsd.org/freebsd-current/23/119264.html ++// http://think-async.com/Asio/asio-1.10.6/doc/asio/history.html#asio.history.asio_1_10_5 ++#if ASIO_VERSION < 101005 ++# define ASIO_DISABLE_KQUEUE ++#endif // ASIO_VERSION < 101005 ++ + #include "asio.hpp" + #include "asio/ssl.hpp" + Modified: head/databases/galera/pkg-descr ============================================================================== --- head/databases/galera/pkg-descr Mon May 22 11:42:31 2017 (r441449) +++ head/databases/galera/pkg-descr Mon May 22 11:47:41 2017 (r441450) @@ -1,4 +1,4 @@ -Galera wsrep provider to Galera Cluster for MySQL, an easy-to-use +Galera 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. Added: head/databases/galera/pkg-message ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/databases/galera/pkg-message Mon May 22 11:47:41 2017 (r441450) @@ -0,0 +1,6 @@ +====================================================================== + +Find the Galera Cluster documentation at +http://galeracluster.com/documentation-webpages/ + +======================================================================
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705221147.v4MBlf9Y074624>