diff options
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/galera/ChangeLog | 5 | ||||
-rw-r--r-- | sys-cluster/galera/Manifest | 1 | ||||
-rw-r--r-- | sys-cluster/galera/files/disable-tests.patch | 80 | ||||
-rw-r--r-- | sys-cluster/galera/files/garb.cnf | 17 | ||||
-rwxr-xr-x | sys-cluster/galera/files/garb.sh | 58 | ||||
-rw-r--r-- | sys-cluster/galera/galera-23.2.4.ebuild | 78 | ||||
-rw-r--r-- | sys-cluster/galera/metadata.xml | 8 |
7 files changed, 247 insertions, 0 deletions
diff --git a/sys-cluster/galera/ChangeLog b/sys-cluster/galera/ChangeLog new file mode 100644 index 0000000..ef382a7 --- /dev/null +++ b/sys-cluster/galera/ChangeLog @@ -0,0 +1,5 @@ +*galera-23.2.4 (14 May 2013) + + 14 May 2013; <grknight@lavabit.com> +files/disable-tests.patch, + +files/garb.cnf, +files/garb.sh, +galera-23.2.4.ebuild, +metadata.xml: + Add required runtime-only library for mariadb-galera diff --git a/sys-cluster/galera/Manifest b/sys-cluster/galera/Manifest new file mode 100644 index 0000000..4b82998 --- /dev/null +++ b/sys-cluster/galera/Manifest @@ -0,0 +1 @@ +DIST galera-23.2.4-src.tar.gz 3061934 SHA256 83eec5e8df53b9adcd601a84312a54e843b2584b0cbe445125c2266b22590e78 SHA512 b953d07cdd69c7e42e80053125bb69f4becf457529924768348846612db49d92c4a46e6c85739cc0c0b102d703dc3a3b73bc368171e6f863a1f56b2cd22cb711 WHIRLPOOL 3842dd7f4bd11ab4cb656c3d89758232b96d85ba64919932d03dde2f44cb13bdf7913e6d217e6ca49f376aaf15b7271d3a870a16ba1010d522b57ff59247edc2 diff --git a/sys-cluster/galera/files/disable-tests.patch b/sys-cluster/galera/files/disable-tests.patch new file mode 100644 index 0000000..b82294b --- /dev/null +++ b/sys-cluster/galera/files/disable-tests.patch @@ -0,0 +1,80 @@ +diff -aurN a/galera/SConscript b/galera/SConscript +--- a/galera/SConscript 2013-03-11 02:44:50.000000000 -0400 ++++ b/galera/SConscript 2013-05-13 13:13:20.851827437 -0400 +@@ -1,2 +1,2 @@ + +-SConscript(['src/SConscript', 'tests/SConscript']) ++SConscript(['src/SConscript']) +diff -aurN a/galerautils/SConscript b/galerautils/SConscript +--- a/galerautils/SConscript 2013-03-11 02:44:50.000000000 -0400 ++++ b/galerautils/SConscript 2013-05-13 13:15:37.010071765 -0400 +@@ -1,3 +1,3 @@ + # SConscript for building galerautils + +-SConscript(Split('''src/SConscript tests/SConscript''')) ++SConscript(Split('''src/SConscript''')) +diff -aurN a/gcache/SConscript b/gcache/SConscript +--- a/gcache/SConscript 2013-03-11 02:44:50.000000000 -0400 ++++ b/gcache/SConscript 2013-05-13 13:15:55.179837389 -0400 +@@ -1,3 +1,3 @@ + # SConscript for building galerautils + +-SConscript(Split('''src/SConscript tests/SConscript''')) ++SConscript(Split('''src/SConscript''')) +diff -aurN a/gcomm/SConscript b/gcomm/SConscript +--- a/gcomm/SConscript 2013-03-11 02:44:50.000000000 -0400 ++++ b/gcomm/SConscript 2013-05-13 13:16:08.979659369 -0400 +@@ -1,3 +1,3 @@ + # SCons build script for building gcomm + +-SConscript(Split('''src/SConscript test/SConscript''')) ++SConscript(Split('''src/SConscript''')) +diff -aurN a/gcs/src/SConscript b/gcs/src/SConscript +--- a/gcs/src/SConscript 2013-03-11 02:44:50.000000000 -0400 ++++ b/gcs/src/SConscript 2013-05-13 13:12:53.122184848 -0400 +@@ -46,8 +46,6 @@ + source = 'gcs_test.c', + LINK = libgcs_env['CXX']) + +-SConscript('unit_tests/SConscript') +- + # + env.Append(LIBGALERA_OBJS = libgcs_env.SharedObject(libgcs_sources)) + +diff -aurN a/SConstruct b/SConstruct +--- a/SConstruct 2013-03-11 02:44:50.000000000 -0400 ++++ b/SConstruct 2013-05-13 13:11:03.493597370 -0400 +@@ -305,20 +305,6 @@ + # Clone base from default environment + check_env = env.Clone() + +-conf = Configure(check_env) +- +-# Check header and library +- +-if not conf.CheckHeader('check.h'): +- print 'Error: check header file not found or not usable' +- Exit(1) +- +-if not conf.CheckLib('check'): +- print 'Error: check library not found or not usable' +- Exit(1) +- +-conf.Finish() +- + # Note: Don't do this, glibc does not like static linking + # Link unit tests statically + # check_env.Append(LINKFLAGS = ' -static') +@@ -328,11 +314,7 @@ + # + + def builder_unit_test(target, source, env): +- app = str(source[0].abspath) +- if os.spawnl(os.P_WAIT, app, app)==0: +- open(str(target[0]),'w').write("PASSED\n") +- else: +- return 1 ++ print("Disabled\n") + # Create a builder for tests + bld = Builder(action = builder_unit_test) + check_env.Append(BUILDERS = {'Test' : bld}) diff --git a/sys-cluster/galera/files/garb.cnf b/sys-cluster/galera/files/garb.cnf new file mode 100644 index 0000000..4f0047a --- /dev/null +++ b/sys-cluster/galera/files/garb.cnf @@ -0,0 +1,17 @@ +# Copyright (C) 2012 Coedership Oy +# This config file is to be sourced by garbd service script. + +# A space-separated list of node addresses (address[:port]) in the cluster +# GALERA_NODES="" + +# Galera cluster name, should be the same as on the rest of the nodes. +# GALERA_GROUP="" + +# Optional Galera internal options string (e.g. SSL settings) +# see http://www.codership.com/wiki/doku.php?id=galera_parameters +# GALERA_OPTIONS="" + +# Log file for garbd. Optional, by default logs to syslog +# LOG_FILE="" + +PIDFILE=/var/run/garbd diff --git a/sys-cluster/galera/files/garb.sh b/sys-cluster/galera/files/garb.sh new file mode 100755 index 0000000..1744639 --- /dev/null +++ b/sys-cluster/galera/files/garb.sh @@ -0,0 +1,58 @@ +#!/sbin/runscript +# +# Copyright (C) 2012 Codership Oy <info@codership.com> +# Modified by: Brian Evans <grknight@lavabit.com> for OpenRC +# $Header: $ + +depend() { + need net +} + +stop() { + ebegin $"Shutting down "${SVCNAME}" " + start-stop-daemon --stop --quiet --oknodo --retry TERM/30/KILL/5 \ + --pidfile $PIDFILE + eend $? +} + +start() { + local rcode + + # Check that node addresses are configured + if [ -z "$GALERA_NODES" ]; then + eerror "List of GALERA_NODES is not configured" + return 6 + fi + if [ -z "$GALERA_GROUP" ]; then + eerror "GALERA_GROUP name is not configured" + return 6 + fi + + GALERA_PORT=${GALERA_PORT:-4567} + + # Find a working node + for ADDRESS in ${GALERA_NODES} 0; do + HOST=$(echo $ADDRESS | cut -d \: -f 1 ) + PORT=$(echo $ADDRESS | cut -d \: -f 2 ) + PORT=${PORT:-$GALERA_PORT} + nc -z $HOST $PORT >/dev/null && break + done + if [ ${ADDRESS} == "0" ]; then + eerror "None of the nodes in $GALERA_NODES is accessible" + return 1 + fi + + OPTIONS="-d -a gcomm://$ADDRESS" + [ -n "$GALERA_GROUP" ] && OPTIONS="$OPTIONS -g $GALERA_GROUP" + [ -n "$GALERA_OPTIONS" ] && OPTIONS="$OPTIONS -o $GALERA_OPTIONS" + [ -n "$LOG_FILE" ] && OPTIONS="$OPTIONS -l $LOG_FILE" + + ebegin "Starting ${SVCNAME} " + start-stop-daemon --start --quiet --background \ + --pidfile "${PIDFILE}" --make-pidfile \ + --exec /usr/bin/garbd -- $OPTIONS + rcode=$? + # Hack: sleep a bit to give garbd some time to fork + sleep 1 + eend $rcode +} diff --git a/sys-cluster/galera/galera-23.2.4.ebuild b/sys-cluster/galera/galera-23.2.4.ebuild new file mode 100644 index 0000000..3dab48e --- /dev/null +++ b/sys-cluster/galera/galera-23.2.4.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +MY_P="${PN}-${PV}-src" + +inherit scons-utils multilib toolchain-funcs base versionator +DESCRIPTION="Synchronous multi-master replication engine that provides its service through wsrep API" +HOMEPAGE="http://www.codership.org/" +SRC_URI="https://launchpad.net/${PN}/$(get_version_component_range 2).x/${PV}/+download/${MY_P}.tar.gz" +LICENSE="GPL-3" + +SLOT="0" + +KEYWORDS="~x86 ~amd64" +IUSE="garbd ssl test" + +RDEPEND=" + ssl? ( dev-libs/openssl ) + >=dev-libs/boost-1.41 + " +DEPEND="${DEPEND} + ${RDEPEND} + test? ( dev-libs/check ) + >=sys-devel/gcc-4.4 + >=dev-cpp/asio-1.4.8[ssl?] + " +#Run time only +RDEPEND="${RDEPEND} + garbd? ( || ( + net-analyzer/netcat + net-analyzer/netcat6 + net-analyzer/gnu-netcat + net-analyzer/openbsd-netcat + ) )" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + #Remove bundled dev-cpp/asio + rm -fr "${S}/asio" + #Remove Werror from build file, no way to disable + sed -i -e "s/-Werror //" \ + -e "s/LINKFLAGS = link_arch/LINKFLAGS = link_arch + ' ' + os.environ['LDFLAGS']/" \ + "${S}/SConstruct" + #Remove optional garbd daemon + if ! use garbd ; then + rm -fr "${S}/garb" + fi + if ! use test ; then + epatch "${FILESDIR}/disable-tests.patch" + fi +} + +src_configure() { + tc-export CC + tc-export CXX + myesconsargs=( + $(use_scons ssl ssl 1 0) + ) +} + +src_compile() { + escons --warn=no-missing-sconscript +} + +src_install() { + dodoc scripts/packages/README scripts/packages/README-MySQL + if use garbd ; then + dobin garb/garbd + newconfd "${FILESDIR}/garbd.cnf" garbd + newinitd "${FILESDIR}/garbd.sh" garbd + fi + exeinto /usr/$(get_libdir)/${PN} + doexe libgalera_smm.so +} diff --git a/sys-cluster/galera/metadata.xml b/sys-cluster/galera/metadata.xml new file mode 100644 index 0000000..6c8e585 --- /dev/null +++ b/sys-cluster/galera/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>mysql</herd> +<use> + <flag name='garbd'>Install Galera Arbitrator - a stateless daemon which acts as a lightweight group member</flag> +</use> +</pkgmetadata> |