summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/galera/ChangeLog5
-rw-r--r--sys-cluster/galera/Manifest1
-rw-r--r--sys-cluster/galera/files/disable-tests.patch80
-rw-r--r--sys-cluster/galera/files/garb.cnf17
-rwxr-xr-xsys-cluster/galera/files/garb.sh58
-rw-r--r--sys-cluster/galera/galera-23.2.4.ebuild78
-rw-r--r--sys-cluster/galera/metadata.xml8
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>