summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2014-07-30 06:26:12 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2014-07-30 06:26:12 +0000
commit5d5122dc8d390522e9ebccf0169e1e9b48a9bc77 (patch)
treed4f6860bbda0cc54fae83323020a95c21899cb28 /sys-cluster
parentold (diff)
downloadhistorical-5d5122dc8d390522e9ebccf0169e1e9b48a9bc77.tar.gz
historical-5d5122dc8d390522e9ebccf0169e1e9b48a9bc77.tar.bz2
historical-5d5122dc8d390522e9ebccf0169e1e9b48a9bc77.zip
Bring MariaDB-Galera from the overlay into the tree. Thanks to the great work of Brian Evans <grknight@gentoo.org>.
Package-Manager: portage-2.2.10/cvs/Linux x86_64
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/galera/ChangeLog11
-rw-r--r--sys-cluster/galera/Manifest8
-rw-r--r--sys-cluster/galera/files/disable-tests.patch80
-rw-r--r--sys-cluster/galera/files/garb.cnf17
-rw-r--r--sys-cluster/galera/files/garb.sh63
-rw-r--r--sys-cluster/galera/files/respect-flags.patch35
-rw-r--r--sys-cluster/galera/galera-25.3.5.ebuild87
-rw-r--r--sys-cluster/galera/metadata.xml8
8 files changed, 309 insertions, 0 deletions
diff --git a/sys-cluster/galera/ChangeLog b/sys-cluster/galera/ChangeLog
new file mode 100644
index 000000000000..c299b5b013db
--- /dev/null
+++ b/sys-cluster/galera/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for sys-cluster/galera
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/galera/ChangeLog,v 1.1 2014/07/30 06:26:05 robbat2 Exp $
+
+*galera-25.3.5 (30 Jul 2014)
+
+ 30 Jul 2014; Robin H. Johnson <robbat2@gentoo.org> +files/disable-tests.patch,
+ +files/garb.cnf, +files/garb.sh, +files/respect-flags.patch,
+ +galera-25.3.5.ebuild, +metadata.xml:
+ Bring MariaDB-Galera from the overlay into the tree. Thanks to the great work
+ of Brian Evans <grknight@gentoo.org>.
diff --git a/sys-cluster/galera/Manifest b/sys-cluster/galera/Manifest
new file mode 100644
index 000000000000..a47714489c8b
--- /dev/null
+++ b/sys-cluster/galera/Manifest
@@ -0,0 +1,8 @@
+AUX disable-tests.patch 2703 SHA256 80da2484a51c7ff6f9a1ccd37481c006d87fb1e0964600a132d6a72fc3eba6fa SHA512 6ae782e9ab346c77be434c285d3bb291cc3056b0180c4b8987ab8356e793999e4efb40b9e516a01f3fe2486fcc63339fc6a6b6ba7ea470b65cf408c1c3098e9b WHIRLPOOL 9e5702fe21e13e91a43b61708c35b491c33a048277d390f86c34e80c22652b6d61fd8fc5058db6a136195cfdb1ae1717f753cfe9ea6c3b889702385f41d1cee4
+AUX garb.cnf 526 SHA256 5fdf48f4a908c1b4cd680dc607ec6fee11ae098893bd66fd8a18ed11dab958ea SHA512 e7ca11b169074e70d62a49f9b494f502ebe051f543ef5bd5e24ded6dc1ba7080f2d9813de7ba870783290a67f1e01dc8a57902d9f90544e7470c42947a383689 WHIRLPOOL 8a1e0db0c49ac863a1055933bbbe105522282b7d887834db471fcadb5ce384a5896aa844d0580ed26fb7bec3f3f20967cbd385bc902551decfbad3d9bda6cde5
+AUX garb.sh 1336 SHA256 0d1cf49d9d33e816a9d2caf215a98068a91f65591ae510868814c2a1c1b227f2 SHA512 3aded833797857e3421f796ddc40cad444e588be74c38afda8943226ba1510e16b432e610012fa302ff31a14db9ce408ba8e7fced804e6ab68041ac10228205a WHIRLPOOL 08e7cfa4522f23589e825f827c0c6be689ab537b7ccbc9aadb87278f87ffe28605dbef40364d49f997019c1de4e570aaecf1d83a16ab6b1fc33d0041a27c4ecd
+AUX respect-flags.patch 1210 SHA256 3c0463df1ae23d219bd411f08a238f2eabb31f29ed8c97bdc4433b7031942dc8 SHA512 73a9284d8da412f822ec2a57811c1785a5057d10f647184ead9ae6eb4469d0bd0efada3f53b1ce40700d4f161bae05761abf7800ffce8c91f0e8fbda571cfde7 WHIRLPOOL 5a23ad3dc3710987ff22deb5cebee93220b821fb0700bfd5626c836be1001d907f9bfb376ad659afa74426ff59e6d80f0aafac344001c12180afc4ff2d03d199
+DIST galera-25.3.5-src.tar.gz 3820268 SHA256 9e6d718bac9608c69cbfc0662963b29c13659c576aaa8469b6a325d75603f7a3 SHA512 34bd01c46b080219106e140a7ff011c39ce2c9afaf6b8205daca91347ac3979a3af61bcddaf9c5cc63748b19236a2e4efa88532760b347fefa38e037f90b0995 WHIRLPOOL 055a59cc3631ccb0501c2ce4c5812ae0e001104254a97540f78a3f8feaed94b85bd82ecc3e1e4a3c2e477ab6f02d638dc8e8ea1471b8a63ca603f3a9ecd6403d
+EBUILD galera-25.3.5.ebuild 1851 SHA256 04f18bef3aef3b06adeba994c33b642b5506d924a1d2267c9a03dba11f28bc07 SHA512 0c7ac410bd0090b2dc57261ddca653ec6191fc53af2317e645bf6df7958d1fbe66546de17e11eb7591dfa44934bfa98ba45a5b309818b79bf9e67193e3dfa2de WHIRLPOOL 761e19b37312a73a998d0b42c812641528846d982939acddbdcd342c8177f86ff63c75eb928b6b86ea6600b157f2d2e474e0a88d5d58e44bc8ce034295d12dc3
+MISC ChangeLog 544 SHA256 f6cda15a2d2669e6fe46efe3f87259439727f784bad50c6ccc8443af22ab6c5a SHA512 8ee0f8b73b6223e2494addbc4a4d734a491bff51ff230eb6cfe4941aec0d9e6a6aa128871f1ee5ec7382077a518ff6179b23644c75b37bfa2d55b8d4816374dd WHIRLPOOL d00919c1e40273eaf403d21f18d9da6f43c2c9b6127dd10c1937cba039674065af8fcadcd7ebe8acd7a128e22bf12ab7b08939170c2402acf71d217e058099b1
+MISC metadata.xml 287 SHA256 a721bbdc105190e59b893dd6045954be5335317a3cb3ee04ade10ae84e91ed66 SHA512 b948f84f81ab15a82c332c9daecd73da57f7029c09a1779475dbd08667f90932ffb05507756d2daa7035dd949979f0233ddc15a68ccce01f05ad4fc57028d582 WHIRLPOOL 4a7f7eef9bf626325e0690d772b16e8816db42cac95f4df19e6ccde55beb36671246ea9e8878b904ce93b336f2d235a56d1df795bd059161694ac67f86193da7
diff --git a/sys-cluster/galera/files/disable-tests.patch b/sys-cluster/galera/files/disable-tests.patch
new file mode 100644
index 000000000000..b82294b32241
--- /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 000000000000..4f0047a02c25
--- /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 100644
index 000000000000..e5538bcb4269
--- /dev/null
+++ b/sys-cluster/galera/files/garb.sh
@@ -0,0 +1,63 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use net
+ after mysql
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+
+ if [ -z "${GALERA_NODES}" ]; then
+ eerror "List of GALERA_NODES is not configured"
+ return 1
+ fi
+
+ if [ -z "${GALERA_GROUP}" ]; then
+ eerror "GALERA_GROUP name is not configured"
+ return 1
+ fi
+
+ GALERA_PORT="${GALERA_PORT:-4567}"
+
+ for ADDRESS in ${GALERA_NODES} 0; do
+ HOST=$(echo $ADDRESS | cut -d \: -f 1 )
+ PORT=$(echo $ADDRESS | cut -d \: -f 2 )
+ if [[ "${HOST}" == "${PORT}" ]]; then
+ PORT=${GALERA_PORT}
+ fi
+ 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="-a gcomm://${ADDRESS} -g ${GALERA_GROUP}"
+ [ -n "${GALERA_OPTIONS}" ] && OPTIONS="${OPTIONS} -o ${GALERA_OPTIONS}"
+ [ -n "${LOG_FILE}" ] && OPTIONS="${OPTIONS} -l ${LOG_FILE}"
+
+ start-stop-daemon \
+ --start \
+ --exec /usr/bin/garbd \
+ --pidfile "${PIDFILE}" \
+ --make-pidfile \
+ --user garbd \
+ --group garbd \
+ --background \
+ -- ${OPTIONS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon \
+ --stop \
+ --exec /usr/bin/garbd \
+ --pidfile "${PIDFILE}"
+ eend $?
+}
+
diff --git a/sys-cluster/galera/files/respect-flags.patch b/sys-cluster/galera/files/respect-flags.patch
new file mode 100644
index 000000000000..d7e5f37817ef
--- /dev/null
+++ b/sys-cluster/galera/files/respect-flags.patch
@@ -0,0 +1,35 @@
+--- a/SConstruct 2014-03-07 14:27:26.797904671 -0500
++++ b/SConstruct 2014-03-07 14:31:18.672478115 -0500
+@@ -49,7 +49,7 @@
+ build_target = 'all'
+
+ # Optimization level
+-opt_flags = ' -g -O3 -DNDEBUG'
++opt_flags = ' -DNDEBUG'
+
+ # Architecture (defaults to build host type)
+ compile_arch = ''
+@@ -214,12 +214,12 @@
+ ' -Wall -Wextra -Wno-unused-parameter')
+
+ # C-specific flags
+-env.Replace(CFLAGS = ' -std=c99 -fno-strict-aliasing -pipe')
++env.Replace(CFLAGS = os.getenv('CFLAGS','') + ' -std=c99 -fno-strict-aliasing -pipe')
+
+ # CXX-specific flags
+ # Note: not all 3rd-party libs like '-Wold-style-cast -Weffc++'
+ # adding those after checks
+-env.Replace(CXXFLAGS = ' -Wno-long-long -Wno-deprecated -ansi')
++env.Replace(CXXFLAGS = os.getenv('CXXFLAGS','') + ' -Wno-long-long -Wno-deprecated -ansi')
+ if sysname != 'sunos':
+ env.Append(CXXFLAGS = ' -pipe')
+
+@@ -228,7 +228,7 @@
+ # TODO: enable '-Wl,--warn-common -Wl,--fatal-warnings' after warnings from
+ # static linking have beed addressed
+ #
+-env.Append(LINKFLAGS = link_arch)
++env.Append(LINKFLAGS = link_arch + ' ' + os.getenv('LDFLAGS',''))
+
+ #
+ # Check required headers and libraries (autoconf functionality)
diff --git a/sys-cluster/galera/galera-25.3.5.ebuild b/sys-cluster/galera/galera-25.3.5.ebuild
new file mode 100644
index 000000000000..bc4359116e58
--- /dev/null
+++ b/sys-cluster/galera/galera-25.3.5.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/galera/galera-25.3.5.ebuild,v 1.1 2014/07/30 06:26:05 robbat2 Exp $
+
+EAPI=5
+
+MY_P="${PN}-${PV}-src"
+
+inherit scons-utils multilib toolchain-funcs base versionator eutils
+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-2 BSD"
+
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="garbd ssl test"
+
+CDEPEND="
+ ssl? ( dev-libs/openssl )
+ >=dev-libs/boost-1.41
+ "
+DEPEND="${DEPEND}
+ ${CDEPEND}
+ dev-libs/check
+ >=sys-devel/gcc-4.4
+ >=dev-cpp/asio-1.4.8[ssl?]
+ "
+#Run time only
+RDEPEND="${CDEPEND}
+ garbd? ( || (
+ net-analyzer/netcat
+ net-analyzer/netcat6
+ net-analyzer/gnu-netcat
+ net-analyzer/openbsd-netcat
+ ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_preinst() {
+ if use garbd ; then
+ enewgroup garbd
+ enewuser garbd
+ fi
+}
+
+src_prepare() {
+ # Remove bundled dev-cpp/asio
+ rm -r "${S}/asio" || die
+
+ # Respect {C,LD}FLAGS.
+ epatch "${FILESDIR}/respect-flags.patch"
+
+ #Remove optional garbd daemon
+ if ! use garbd ; then
+ rm -r "${S}/garb" || die
+ fi
+
+ epatch_user
+}
+
+src_configure() {
+ tc-export CC CXX
+ # strict_build_flags=0 disables -Werror, -pedantic, -Weffc++,
+ # and -Wold-style-cast
+ myesconsargs=(
+ $(use_scons ssl ssl 1 0)
+ $(use_scons test tests 1 0)
+ strict_build_flags=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}/garb.cnf" garbd
+ newinitd "${FILESDIR}/garb.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 000000000000..6c8e5852a141
--- /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>