diff options
author | Justin Lecher <jlec@gentoo.org> | 2011-01-15 12:14:19 +0100 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2011-01-15 12:14:19 +0100 |
commit | 0deed8731ba700f265818ec9dc72079402037e32 (patch) | |
tree | a7383014831b2189bf83bae20c8b66142cd409cd /sys-cluster | |
parent | Merge branch 'master' of git+ssh://git.overlays.gentoo.org/proj/sci (diff) | |
parent | Update manifest (diff) | |
download | sci-0deed8731ba700f265818ec9dc72079402037e32.tar.gz sci-0deed8731ba700f265818ec9dc72079402037e32.tar.bz2 sci-0deed8731ba700f265818ec9dc72079402037e32.zip |
Merge branch 'master' of git+ssh://git.overlays.gentoo.org/proj/sci
* 'master' of git+ssh://git.overlays.gentoo.org/proj/sci: (98 commits)
Update manifest
[sys-cluster/pacemaker] add bits missed in previous commit
[sys-cluster/pacemaker] fix lib ordering wrt #351329. Thanks to Rafał Mużyło <galtgendo@o2.pl> for suggestion.
[sys-cluster/pacemaker] fix autotools issues, patch send upstream
[dev-vcs/mercurial-server] InCVS
Unmask icm-3.7
sys-cluster/pacemaker dependency bump and LIBADD patch
sys-cluster/pacemaker-gui bump
sys-cluster/pacemaker-gui upstream revision bump
Fix repoman warnings and missing manifest
synchronize polybori with s-o-g overlay
Remove singular - now in tree
sci-libs/cgnsfoam: Version bump
sci-libs/libcgnsoo: Version bump
sci-visualization/paraview: Added 2nd python path
sci-libs/gmsh: delete old version, added some USE-flags
sci-libs:/cgnslib: delete old version, made hdf5 really apply again
moved to g-x86
more cleaning
more removing
...
Diffstat (limited to 'sys-cluster')
21 files changed, 1972 insertions, 52 deletions
diff --git a/sys-cluster/condor/ChangeLog b/sys-cluster/condor/ChangeLog index c553548c0..484d64224 100644 --- a/sys-cluster/condor/ChangeLog +++ b/sys-cluster/condor/ChangeLog @@ -1,7 +1,12 @@ # ChangeLog for sys-cluster/condor -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*condor-7.5.4 (08 Jan 2011) + + 08 Jan 2011; Sébastien Fabbro <bicatali@gentoo.org> +condor-7.5.4.ebuild: + Version bump + 22 Jun 2010; Sébastien Fabbro <bicatali@gentoo.org> condor-7.5.2.ebuild, files/condor.initd: More initd fixes, now local config will reside in /var/lib diff --git a/sys-cluster/condor/Manifest b/sys-cluster/condor/Manifest index 57fa9004d..795698cbb 100644 --- a/sys-cluster/condor/Manifest +++ b/sys-cluster/condor/Manifest @@ -2,6 +2,8 @@ AUX condor.confd 75 RMD160 a58d37af4bbbcf1df486dd1397209832114cb614 SHA1 fcc784f AUX condor.initd 1783 RMD160 0af1b75734da761674693a768ef9a00fd3f1849c SHA1 2fa56c701351e15966754245893257e26defc642 SHA256 11d1ff517d1ca0ed53a69cdc444cf8020932b20970d1b73078c2b7223d57cf41 AUX condor_config.local 273 RMD160 5aa8e9b62d57059667aac9f2c583cf3f2490b603 SHA1 d53d14ce4fb79510ae267ad6070f0bf6e42e0db1 SHA256 849985bc53bb39c464c55e30a8ae5b7d33e90b2ccee8337452b17bf87edc0b1f DIST condor_src-7.5.2-all-all.tar.gz 21705891 RMD160 f9911e3a44b69bb22ef607964aec726b51ab9341 SHA1 7e85048545423b13f8173c6ba6d76d35b97f2dcc SHA256 1a4fc437541896aa9963f12ec9231495f6a5ab4cc5ca814b57755a38db407026 +DIST condor_src-7.5.4-all-all.tar.gz 21870900 RMD160 7118a7a7ee32d5d7d9378ed5b94ad7a058ac1fca SHA1 877f748b53dd5e796592f812ae65d75f7b907812 SHA256 a0429b2525047b2eaca988ff4546ff177a5b4e55511354c793e4b3f01b032c08 EBUILD condor-7.5.2.ebuild 4345 RMD160 912cb92deabde325068da49048edf483fb6b9f34 SHA1 73778f44eab0ab48d9466310b75bce1a54de2338 SHA256 37c88bdba428fb366ef8a220c492cbec73e6b84f3e5517b108c7869ce0aac237 -MISC ChangeLog 1461 RMD160 ca2724f6861e01ee441de87906846e34e7b36b25 SHA1 3a0577bcdbf180b5f80e02067548c1be2cc709be SHA256 7c52b89de1c861e71b16f3f974bcb3d70baa8cebceee9b74f4cf33eae9d6e726 +EBUILD condor-7.5.4.ebuild 4345 RMD160 c43f5b08d8d77cf07ca9b0d21c87e33eaf636b4e SHA1 0d25cdcc0c58506a8e9bcdfbaae2355dd5ab5998 SHA256 d0809dd9ec219939bba4788748a919a5950ed554f1b02c4d30794dc32b4df7f2 +MISC ChangeLog 1583 RMD160 1d4525812580e576ad5b458172b791955f9040d3 SHA1 03a96168e04e92d8ed58dccd6b4a3ab023c9ec4d SHA256 90a334777278b4fdb6fdfca76bf3fa25f29c06541112c014caf4cabfe6673eb0 MISC metadata.xml 1247 RMD160 bcc91575dc0a5cc4ac255d5c0c415d0ade7c96c4 SHA1 a9a3ca65688dc4f32a01df1a5c329065fc7b37bf SHA256 87fdc2d2b126339048785a67fa126a184ffdf08a6bf6e6e29e78c62581ca1f0f diff --git a/sys-cluster/condor/condor-7.5.4.ebuild b/sys-cluster/condor/condor-7.5.4.ebuild new file mode 100644 index 000000000..daf9d0f73 --- /dev/null +++ b/sys-cluster/condor/condor-7.5.4.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 + +inherit eutils flag-o-matic autotools + +DESCRIPTION="Workload management system for compute-intensive jobs" +HOMEPAGE="http://www.cs.wisc.edu/condor/" +SRC_URI="${PN}_src-${PV}-all-all.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="classads drmaa examples gcb kbdd kerberos postgres soap ssl static-libs" + +CDEPEND="sys-libs/zlib + app-emulation/libvirt + dev-libs/libpcre + classads? ( sys-cluster/classads[pcre] ) + gcb? ( net-firewall/gcb ) + kerberos? ( app-crypt/mit-krb5 ) + kbdd? ( x11-libs/libX11 ) + postgres? ( dev-db/postgresql-base ) + soap? ( net-libs/gsoap ) + ssl? ( dev-libs/openssl )" + +RDEPEND="${CDEPEND} + mail-client/mailx" + +DEPEND="${CDEPEND} + x11-misc/imake" + +RESTRICT=fetch + +S="${WORKDIR}/${P}/src" + +pkg_setup() { + enewgroup condor + enewuser condor -1 "${ROOT}"bin/bash "${ROOT}var/lib/condor" condor +} + +src_prepare() { + # these two eauto* are to replicate the build_init script + # not so sure they are really needed + eautoheader + eautoconf + # this patch is mostly to use standard fhs + cd condor_examples + epatch ./condor_config.generic.rpm.patch + # the base local file is in /etc, then the condor local file is updated and should reside in /var/lib + sed -i \ + -e 's:\(LOCAL_CONFIG_FILE.*=\).*:\1 /var/lib/condor/condor_config.local:' \ + condor_config.generic || die +} + +src_configure() { + # condor seems to be buggy with -O2 and above with gcc + filter-flags "-O[s2-9]" "-O1" + + # set USE_OLD_IMAKE to anything so condor_imake will use the system + # installed imake instead of building its own + export USE_OLD_IMAKE=YES + econf \ + --with-buildid=Gentoo-${P} \ + --enable-proper \ + --disable-full-port \ + --disable-gcc-version-check \ + --disable-glibc-version-check \ + --disable-rpm \ + --without-zlib \ + --with-libvirt \ + $(use_enable kbdd) \ + $(use_enable postgres quill) \ + $(use_enable static-libs static) \ + $(use_with classads) \ + $(use_with drmaa) \ + $(use_with gcb) \ + $(use_with kerberos krb5) \ + $(use_with postgres postgresql) \ + $(use_with soap gsoap) \ + $(use_with ssl openssl) +} + +src_compile() { + # yet to find a way to parallelize compilation + emake -j1 || die "emake failed" +} + +src_install() { + emake release manpages || die "emake release failed" + if use static-libs; then + emake static || die "emake static failed" + fi + + cd release_dir + ## remove a shitload of useless stuff to sync with the rpm package + ## comments are from the rpm fedora spec file + # used by old MPI universe, not packaged (it's rsh, it should die) + rm -rf libexec/rsh + # this is distributed as chirp_client.c/h and chirp_protocol.h + rm lib/libchirp_client.a include/chirp_client.h + # checkpoint, reschedule and vacate live in bin/, don't duplicate + rm sbin/condor_{checkpoint,reschedule,vacate} + # sbin/condor is a pointless hard links + rm sbin/condor + + # binaries + dosbin sbin/* || die + dobin bin/* || die + # headers + insinto /usr + doins -r include || die + # libs + dolib.so lib/*so || die + use static-libs && dolib.a lib/*a + insinto /usr/libexec/condor + doins -r libexec/* || die + + # data files + insinto /usr/share/${PN} + doins lib/*.jar lib/*.class lib/*.pm || die + use postgres && doins -r sql + + # examples + if use examples; then + insinto /usr/share/doc/${PF} + doins -r etc/examples || die + fi + + # config files + insinto /etc/condor + newins etc/examples/condor_config.generic condor_config || die + newins etc/examples/condor_config.local.generic condor_config.local || die + insinto /var/lib/condor/ + newins etc/examples/condor_config.local.generic + + dodir /var/log/condor + dodir /var/run/condor + dodir /var/lock/condor + + fperms 750 /var/lib/condor /var/log/condor + fperms 755 /var/run/condor + fperms 0775 /var/lock/condor + fowners condor:condor /var/lib/condor /var/log/condor /var/run/condor /var/lib/condor/condor_config.local + + newconfd "${FILESDIR}"/condor.confd condor || die + newinitd "${FILESDIR}"/condor.initd condor || die +} + +pkg_postinst() { + elog "Default configuration files have been installed" + elog "You can customize it from there or provide your own" + elog "in ${ROOT}etc/${PN}/condor_config*" + + elog "The condor ebuild is still under development." + elog "Help us improve the ebuild in participating in:" + elog "https://bugs.gentoo.org/show_bug.cgi?id=60281" +} diff --git a/sys-cluster/heartbeat/Manifest b/sys-cluster/heartbeat/Manifest new file mode 100644 index 000000000..21f18fa5f --- /dev/null +++ b/sys-cluster/heartbeat/Manifest @@ -0,0 +1,6 @@ +AUX 3.0.4-docs.patch 1728 RMD160 95e043df6208ce0899e5473e5e34d63cf49face6 SHA1 46a19d06b9cf06f72a3f5292c2083ff21cbec69b SHA256 035698b8a53e7a59a29a1bf81e64f96c56f6b231d195da85d107985303fe0fe0 +AUX 3.0.4-fix_configure.patch 2996 RMD160 d142f1c0346ee25a0c1616db41f25ca35c7adb6e SHA1 92987cf7a938fcd6b64a9e599a89dd527bcd0264 SHA256 663ddbae715e8f0ba1926dcc5e0f67404b0b7d3cbe569f0253ac9eb5ca2ec3d1 +AUX 3.0.4-python_tests.patch 464 RMD160 f89b045be69ade44f454330ec6940fdaa80b863d SHA1 3fbd36b9f433b1b2ae3f40e620bb7b2f8bab98d4 SHA256 4adecb3af45c651bd28bc315e1e8607c2a1829a7295b155e1ad61e65afe0efaf +AUX heartbeat-init 1770 RMD160 583e9081777c7143b0376a04150f1e125e63cd69 SHA1 2f6b3d17a335b99bc64eedf945490eb40c44fc23 SHA256 18c4dce7af12445ff207fabab83c70665b9724da224cb75b56d27a057ebb2f26 +DIST STABLE-3.0.4.tar.bz2 537449 RMD160 849fd1ca46bb247b3115fea978bb6e639f8a2718 SHA1 41920cebc9e260d5ac43be742c74c5e3998ef571 SHA256 8f6997acd673d7ffef9f5946fa507d78b5c81dd0941e998c71cd72dd61a39784 +EBUILD heartbeat-3.0.4.ebuild 1824 RMD160 3cd6de5c3cd07194521cedb92f377309e6262c1b SHA1 477a33e5cf91552aa2e9f126f5e12082c6ba4e88 SHA256 28e8a512e6445ebc0fb23ffd6f512e7593ae7f0682409fecab9d59676f809fbc diff --git a/sys-cluster/heartbeat/files/3.0.4-docs.patch b/sys-cluster/heartbeat/files/3.0.4-docs.patch new file mode 100644 index 000000000..3fdcfbda5 --- /dev/null +++ b/sys-cluster/heartbeat/files/3.0.4-docs.patch @@ -0,0 +1,57 @@ +--- configure.in ++++ configure.in +@@ -505,8 +505,15 @@ + AC_PATH_PROGS(TEST, test) + AC_PATH_PROGS(PKGCONFIG, pkg-config) + +-dnl xsltproc is required for building the man pages +-AC_PATH_PROGS(XSLTPROC, xsltproc) ++AC_ARG_ENABLE([doc], ++ AS_HELP_STRING([--enable-doc],[Build documentation] ++)) ++AS_IF([test "x$enable_doc" = "xyes"], [ ++ AC_PATH_PROGS(XSLTPROC, xsltproc) ++]) ++AM_CONDITIONAL([BUILD_DOC], [test "x$enable_doc" = "xyes"] ) ++AC_SUBST(XSLTPROC) ++ + + dnl ************************************************************************ + dnl Check whether non-root user can chown. +--- doc/Makefile.am ++++ doc/Makefile.am +@@ -33,11 +33,12 @@ + + doc_DATA = $(OTHER_DOCS) + ++if BUILD_DOC + man_MANS = heartbeat.8 apphbd.8 cl_status.1 \ + hb_standby.1 hb_takeover.1 hb_addnode.1 hb_delnode.1 \ + ha.cf.5 authkeys.5 + +-STYLESHEET_PREFIX ?= http://docbook.sourceforge.net/release/xsl/current ++STYLESHEET_PREFIX ?= /usr/share/sgml/docbook/xsl-stylesheets + MANPAGES_STYLESHEET ?= $(STYLESHEET_PREFIX)/manpages/docbook.xsl + HTML_STYLESHEET ?= $(STYLESHEET_PREFIX)/xhtml/docbook.xsl + FO_STYLESHEET ?= $(STYLESHEET_PREFIX)/fo/docbook.xsl +@@ -47,6 +48,12 @@ + XSLTPROC_HTML_OPTIONS ?= $(XSLTPROC_OPTIONS) + XSLTPROC_FO_OPTIONS ?= $(XSLTPROC_OPTIONS) + ++%.5 %.8 %.1: %.xml ++ $(XSLTPROC) \ ++ $(XSLTPROC_MANPAGES_OPTIONS) \ ++ $(MANPAGES_STYLESHEET) $< ++endif ++ + EXTRA_DIST = $(txtfiles) $(htmlfiles) $(man_MANS) $(OTHER_DOCS) + + ChangeLog: $(SPECSRC) +@@ -56,7 +63,3 @@ + .html.txt: + if [ "X$(HTML2TXT)" = "X" ]; then echo "Lynx or w3m or user-defined HTML2TXT required to convert $< to $@" >$@ ; else $(HTML2TXT) -dump $< >$@ ; fi + +-%.5 %.8 %.1: %.xml +- $(XSLTPROC) \ +- $(XSLTPROC_MANPAGES_OPTIONS) \ +- $(MANPAGES_STYLESHEET) $< diff --git a/sys-cluster/heartbeat/files/3.0.4-fix_configure.patch b/sys-cluster/heartbeat/files/3.0.4-fix_configure.patch new file mode 100644 index 000000000..03db0ccc7 --- /dev/null +++ b/sys-cluster/heartbeat/files/3.0.4-fix_configure.patch @@ -0,0 +1,99 @@ +--- work/Heartbeat-3-0-STABLE-3.0.4/configure.in 2010-12-09 21:09:47.000000000 +0100 ++++ work2/Heartbeat-3-0-STABLE-3.0.4/configure.in 2010-12-28 17:37:45.080773140 +0100 +@@ -243,9 +243,9 @@ + mandir=`var "$mandir" "$exec_prefix/man"` + dnl docdir is available in autoconf 2.60+, for older versions preseed + dnl with the same value that 2.60+ uses +-docdir=`var "$docdir" "${datadir}/doc/${PACKAGE_NAME}"` +-libdir=`var "$libdir" "$exec_prefix/lib"` +-libexecdir=`var "$libexecdir" "$exec_prefix/libexec"` ++dnl docdir=`var "$docdir" "${datadir}/doc/${PACKAGE_NAME}"` ++dnl libdir=`var "$libdir" "$exec_prefix/lib"` ++dnl libexecdir=`var "$libexecdir" "$exec_prefix/libexec"` + noarchlibdir=`var "$noarchlibdir" "$prefix/lib"` + + +@@ -284,59 +284,11 @@ + LIBC=`${LDD} ${tmpOutfile} | grep libc | sed -e 's%.*=> *%%' -e 's% .*$%%'` + LibCdir=`dirname $LIBC` + dirlist=`echo $LibCdir | tr '/' ' '` +- LibDirSuffix=unknown +- for dir in $dirlist +- do +- case $dir in +- *lib*) LibDirSuffix=$dir; break;; +- *);; +- esac +- done +- case $LibDirSuffix in +- unknown) LibDirSuffix=`basename $LibCdir`;; +- esac + OutFileType=`file $tmpOutfile` + rm -f $tmpCfile $tmpOutfile + else + AC_MSG_ERROR([Cannot Compile trivial C program]) + fi +-# +-# The code above doesn't work right everywhere +-# (like Fedora and OpenBSD) +-# +-case ${LibDirSuffix} in +- *lib*) : Cool;; +- *) : Sigh... +- case $OutFileType in +- *64-bit*) +- case $host_os in +- openbsd*) LibDirSuffix=lib;; +- *) LibDirSuffix=lib64;; +- esac;; +- *32-bit*) LibDirSuffix=lib;; +- *) LibDirSuffix=lib;; +- esac;; +-esac +-# +-# This may not yet be quite right for PPC where the default +-# is to produce 32-bit binaries, even though the OS is 64-bit +-# or for that matter for system Z, But, it's a lot better than +-# it used to be. +-# +-AC_MSG_RESULT($LibDirSuffix) +- +-case $libdir in +- */*${LibDirSuffix}) : Cool ;; +- *) : Uh Oh... +- libdir=`dirname $libdir`/$LibDirSuffix +- AC_MSG_WARN([Overriding libdir to: $libdir]);; +-esac +-case $libexecdir in +- */$LibDirSuffix) : Cool ;; +- *) : Uh Oh... +- libexecdir=`dirname $libexecdir`/$LibDirSuffix +- AC_MSG_WARN([Overriding libexecdir to: $libexecdir]);; +-esac + + for j in exec_prefix bindir sbindir datadir sysconfdir localstatedir \ + includedir oldincludedir mandir docdir stdocdir libdir noarchlibdir +@@ -386,7 +338,6 @@ + fi + + AC_CHECK_HEADERS(heartbeat/glue_config.h) +-GLUE_HEADER=none + if test "$ac_cv_header_heartbeat_glue_config_h" = "yes"; then + GLUE_HEADER=heartbeat/glue_config.h + else +@@ -453,15 +404,6 @@ + + dnl We use this in the RPM specfile... + AC_SUBST(ac_configure_args) +-cleaned_configure_args="" +-for j in ${ac_configure_args} +-do +- case $j in +- *--libdir=*|*--libexecdir=*) ;; +- *) cleaned_configure_args="$cleaned_configure_args $j";; +- esac +-done +-AC_SUBST(cleaned_configure_args) + + dnl ************************************************************************* + PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin" diff --git a/sys-cluster/heartbeat/files/3.0.4-python_tests.patch b/sys-cluster/heartbeat/files/3.0.4-python_tests.patch new file mode 100644 index 000000000..a91c7ec3f --- /dev/null +++ b/sys-cluster/heartbeat/files/3.0.4-python_tests.patch @@ -0,0 +1,29 @@ +--- cts/Makefile.am ++++ cts/Makefile.am +@@ -21,7 +21,7 @@ + + ctsdir = @HA_NOARCHDATAHBDIR@/cts + +-cts_PYTHON = \ ++cts_SCRIPTS = \ + CM_fs.py \ + CM_hb.py \ + CM_LinuxHAv2.py \ +@@ -32,14 +32,12 @@ + extracttests.py \ + getpeinputs.sh \ + OCFIPraTest.py \ +- CIB.py ++ CIB.py \ ++ CTSproxy.py \ ++ LSBDummy + + cts_DATA = README + +-cts_SCRIPTS = \ +- CTSproxy.py \ +- getpeinputs.sh \ +- LSBDummy + + all-local: $(cts_PYTHON) + diff --git a/sys-cluster/heartbeat/files/heartbeat-init b/sys-cluster/heartbeat/files/heartbeat-init new file mode 100644 index 000000000..5a81a21ce --- /dev/null +++ b/sys-cluster/heartbeat/files/heartbeat-init @@ -0,0 +1,91 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/heartbeat/files/heartbeat-init,v 1.7 2007/03/01 00:48:11 xmerlin Exp $ + +HA_DIR=/etc/ha.d +. $HA_DIR/shellfuncs + +depend() { + use logger + need net +} + +opts="start stop status reload restart" + +CheckBool() { + case `echo "$1" | tr A-Z a-z` in + y|yes|enable|on|true|1) true;; + *) false;; + esac +} + +# Run pre-startup script if it exists +RunStartStop() { + [ -f $HA_DIR/resource.d/startstop ] && $HA_DIR/resource.d/startstop "$@" +} + +start() { + ebegin "Starting heartbeat" + + . $HA_DIR/shellfuncs + + # start the log subsystem + CheckBool "`ha_parameter use_logd`" && \ + ( /usr/lib/heartbeat/ha_logd -s &>/dev/null || \ + /usr/lib/heartbeat/ha_logd -d -c /etc/ha.d/ha_logd.cf) + + RunStartStop pre-start + + CheckBool "`ha_parameter crm`" || \ + /usr/lib/heartbeat/ResourceManager verifyallidle + + /usr/lib/heartbeat/heartbeat &>/dev/null + ret=$? + + RunStartStop post-start + + eend ${ret} +} + +stop() { + ebegin "Stopping heartbeat" + + RunStartStop pre-stop + + /usr/lib/heartbeat/heartbeat -k &>/dev/null + ret=$? + + RunStartStop post-stop ${ret} + + # stop log subsystem + CheckBool "`ha_parameter use_logd`" && \ + ( /usr/lib/heartbeat/ha_logd -s &>/dev/null && \ + /usr/lib/heartbeat/ha_logd -k &>/dev/null ) + + eend ${ret} +} + +status() { + /usr/lib/heartbeat/heartbeat -s +} + +reload() { + ebegin "Reloading heartbeat" + /usr/lib/heartbeat/heartbeat -r &>/dev/null + eend $? +} + +restart() { + . $HA_DIR/shellfuncs + + sleeptime=$(( `ha_parameter deadtime` + 10 )) + + svc_stop + + ebegin " waiting ${sleeptime}s to allow resource takeover to complete" + sleep ${sleeptime} + eend 0 + + svc_start +} diff --git a/sys-cluster/heartbeat/heartbeat-3.0.4.ebuild b/sys-cluster/heartbeat/heartbeat-3.0.4.ebuild new file mode 100644 index 000000000..e2e8b2bfd --- /dev/null +++ b/sys-cluster/heartbeat/heartbeat-3.0.4.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/heartbeat/heartbeat-3.0.3-r2.ebuild,v 1.1 2010/10/06 09:25:37 xarthisius Exp $ + +EAPI="2" + +PYTHON_DEPEND="2" +inherit python autotools multilib eutils base + +DESCRIPTION="Heartbeat high availability cluster manager" +HOMEPAGE="http://www.linux-ha.org/wiki/Heartbeat" +SRC_URI="http://hg.linux-ha.org/${PN}-STABLE_3_0/archive/STABLE-${PV}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc ipmi snmp static-libs" + +RDEPEND="sys-cluster/cluster-glue + dev-libs/glib:2 + virtual/ssh + net-libs/gnutls + ipmi? ( sys-libs/openipmi ) + snmp? ( net-analyzer/net-snmp ) + " +DEPEND="${RDEPEND} + dev-util/pkgconfig + dev-lang/swig" + +PDEPEND="sys-cluster/resource-agents" + +S=${WORKDIR}/Heartbeat-3-0-STABLE-${PV} + +PATCHES=( + "${FILESDIR}/${PV}-fix_configure.patch" + "${FILESDIR}/${PV}-docs.patch" + "${FILESDIR}/${PV}-python_tests.patch" +) + +pkg_setup() { + python_set_active_version 2 + python_pkg_setup +} + +src_prepare() { + base_src_prepare + eautoreconf + + cp "${FILESDIR}"/heartbeat-init "${T}" || die + sed -i \ + -e "/ResourceManager/ s/lib/share/" \ + -e "s:lib:$(get_libdir):g" \ + "${T}"/heartbeat-init || die +} + +src_configure() { + econf \ + --disable-dependency-tracking \ + --disable-fatal-warnings \ + $(use_enable static-libs static) \ + $(use_enable doc) \ + --disable-tipc \ + $(use_enable ipmi ipmilan) \ + --enable-dopd \ + --libdir=/usr/$(get_libdir) \ + --localstatedir=/var \ + --docdir=/usr/share/doc/${PF} \ + $(use_enable snmp) +} + +src_install() { + base_src_install + + newinitd "${T}/heartbeat-init" heartbeat || die + + # fix collisions + rm -rf "${D}"/usr/include/heartbeat/{compress,ha_msg}.h + + if use doc ; then + dodoc README doc/*.txt doc/AUTHORS || die + fi +} diff --git a/sys-cluster/keepalived/Manifest b/sys-cluster/keepalived/Manifest new file mode 100644 index 000000000..958025aad --- /dev/null +++ b/sys-cluster/keepalived/Manifest @@ -0,0 +1,5 @@ +AUX init-keepalived 741 RMD160 7c01c24d94758cc93fe1c13f89dbc566187ee444 SHA1 90287f22be2a60af28d166481ce21ee497abf06b SHA256 eaae345df0c529fdfe5cf70e2a2626c280ecb483cfe8953b992fda29b5c7e063 +AUX keepalived-1.2.1-do-not-need-kernel-sources.patch 3277 RMD160 975f2a7aed51f3c538e158f6097e2c0663ccb82d SHA1 5f7cd816e6e5752315da06ffd762c9aed200a962 SHA256 b4a38f12714717016a7588dae8bd5d3717de0cc9a8d72f08b089e6ff0bd88bf4 +AUX keepalived-1.2.1-linux-2.6.35-ip_vs.h 28185 RMD160 5ee5bdaff3f9e2ff8070b38d8fcbda6dc048e107 SHA1 b9546d1b948d740ba4af26b8e18f187cc78c9fdd SHA256 b44b5c4b0621d2e0060b8e860c838cb0575ae98d3e47038172125de778f62ae4 +DIST keepalived-1.2.1.tar.gz 239438 RMD160 6a74e3f5e7a05a05557466cbd690a8ace1c963ee SHA1 37d9414748ec0def3f81ae96f06a71d3e1e25269 SHA256 314afa6bc1cb54fa256b13816a3a56f7a44765f71fa90c39385d1cff66eb94da +EBUILD keepalived-1.2.1.ebuild 1869 RMD160 84087e6b395dded02278e326c41bb21c0dc7eb63 SHA1 0894f232d5acd45fb77dedd088b50227b4c9e007 SHA256 a30ba9ede7c2f8322dbdc500a0d284b422699b36475e16a7af818e1bd6f13102 diff --git a/sys-cluster/keepalived/files/init-keepalived b/sys-cluster/keepalived/files/init-keepalived new file mode 100644 index 000000000..c7b34c3a2 --- /dev/null +++ b/sys-cluster/keepalived/files/init-keepalived @@ -0,0 +1,31 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/keepalived/files/init-keepalived,v 1.4 2007/04/30 06:45:49 robbat2 Exp $ + +depend() { + use logger + need net +} + +PIDFILE=/var/run/keepalived.pid + +checkconfig() { + if [ ! -e /etc/keepalived/keepalived.conf ] ; then + eerror "You need an /etc/keepalived/keepalived.conf file to run keepalived" + return 1 + fi +} + +start() { + checkconfig || return 1 + ebegin "Starting Keepalived" + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec /usr/sbin/keepalived + eend $? +} + +stop() { + ebegin "Stopping Keepalived" + start-stop-daemon --stop --quiet --pidfile $PIDFILE + eend $? +} diff --git a/sys-cluster/keepalived/files/keepalived-1.2.1-do-not-need-kernel-sources.patch b/sys-cluster/keepalived/files/keepalived-1.2.1-do-not-need-kernel-sources.patch new file mode 100644 index 000000000..e56cc6359 --- /dev/null +++ b/sys-cluster/keepalived/files/keepalived-1.2.1-do-not-need-kernel-sources.patch @@ -0,0 +1,110 @@ +diff -urN keepalived-1.1.20-orig/configure.in keepalived-1.1.20/configure.in +--- keepalived-1.1.20-orig/configure.in 2009-11-05 18:23:04.000000000 +0100 ++++ keepalived-1.1.20/configure.in 2010-05-31 11:42:05.000000000 +0200 +@@ -51,103 +51,18 @@ + AC_CHECK_LIB(popt, poptGetContext,,AC_MSG_ERROR([Popt libraries is required])) + + dnl ----[ Kernel version check ]---- +-CPPFLAGS="$CPPFLAGS -I$kernelinc" +-AC_MSG_CHECKING([for kernel version]) +-AC_TRY_RUN([ +- #include <stdlib.h> +- #include <stdio.h> +- #include <linux/version.h> +- #if !defined(UTS_RELEASE) && !defined(LINUX_VERSION_CODE) +- #include <linux/utsrelease.h> +- #endif +- int main (void) { +- FILE *fp = fopen ("linuxinfo", "w"); +- if (!fp) return 1; +- #if defined(UTS_RELEASE) +- fprintf (fp, "%s\n", UTS_RELEASE); +- #elif defined(LINUX_VERSION_CODE) +- fprintf (fp, "%d.%d.%d\n", LINUX_VERSION_CODE >> 16, (LINUX_VERSION_CODE >> 8) & 0xFF, LINUX_VERSION_CODE & 0xFF); +- #else +- fprintf (fp, "0.0.0\n"); /* Let's fail gently */ +- #endif +- fclose (fp); +- return 0; +- } +- ], [ +- LINUX_MAJOR=`cat linuxinfo | cut -d'.' -f1` +- LINUX_MINOR=`cat linuxinfo | cut -d'.' -f2` +- LINUX_PATCH=`cat linuxinfo | cut -d'.' -f3` +- ], [ +- LINUX_MAJOR="0" +- LINUX_MINOR="0" +- LINUX_PATCH="0" +- ], [ +- LINUX_MAJOR="0" +- LINUX_MINOR="0" +- LINUX_PATCH="0" +- ]) +- rm -f linuxinfo +- +- if test "$kernelversion" = "2.4"; then +- KERN="_KRNL_2_4_" +- AC_MSG_RESULT([2.4]) +- elif test "$kernelversion" = "2.6"; then +- KERN="_KRNL_2_6_" +- AC_MSG_RESULT([2.6]) +- else +- AC_MSG_RESULT([$LINUX_MAJOR.$LINUX_MINOR.$LINUX_PATCH]) +- if test "$LINUX_MINOR" = "6"; then +- KERN="_KRNL_2_6_" +- elif test "$LINUX_MINOR" = "4"; then +- KERN="_KRNL_2_4_" +- else +- KERN="_KRNL_2_6_" +- fi +- if test "$LINUX_MAJOR" = "0" -a "$LINUX_MINOR" = "0" -a "$LINUX_PATCH" = "0"; then +- AC_MSG_WARN([Cannot determine Linux Kernel version.]) +- fi +- fi +- ++KERN="_KRNL_2_6_" + AC_SUBST(KERN) + + dnl ----[ Checks for LVS and VRRP support ]---- +-IPVS_SUPPORT="_WITHOUT_LVS_" +-if test "$enable_lvs" != "no"; then +- AC_CHECK_HEADER([net/ip_vs.h], +- [IPVS_SUPPORT="_WITH_LVS_"], +- [ +- IPVS_SUPPORT="_WITHOUT_LVS_" +- AC_MSG_WARN([keepalived will be built without LVS support.]) +- ]) +-fi ++IPVS_SUPPORT="_WITH_LVS_" + + if test "$IPVS_SUPPORT" = "_WITHOUT_LVS_" -a "$enable_vrrp" = "no"; then + AC_MSG_ERROR([keepalived MUST be compiled at least with LVS or VRRP framework]) + fi + + dnl ----[ IPVS syncd support probe ]--- +-IPVS_SYNCD="_WITHOUT_IPVS_SYNCD_" +-if test "$IPVS_SUPPORT" = "_WITH_LVS_"; then +- AC_MSG_CHECKING([for IPVS syncd support]) +- if test "$KERN" = "_KRNL_2_6_"; then +- IPVS_SYNCD="_HAVE_IPVS_SYNCD_" +- elif test "_KRNL_2_4_"; then +- IPVS_SYNCD="_HAVE_IPVS_SYNCD_" +- else +- IPVS_SYNCD="_WITHOUT_IPVS_SYNCD_" +- fi +- +- if test "${IPVS_SUPPORT}" = "_WITHOUT_LVS_" -o "$enable_lvs_syncd" = "no"; then +- IPVS_SYNCD="_WITHOUT_IPVS_SYNCD_" +- fi +- +- if test "$IPVS_SYNCD" = "_HAVE_IPVS_SYNCD_"; then +- AC_MSG_RESULT([yes]) +- else +- AC_MSG_RESULT([no]) +- fi +-fi +- ++IPVS_SYNCD="_HAVE_IPVS_SYNCD_" + AC_SUBST(IPVS_SYNCD) + + dnl ----[ Checks for kernel netlink support ]---- diff --git a/sys-cluster/keepalived/files/keepalived-1.2.1-linux-2.6.35-ip_vs.h b/sys-cluster/keepalived/files/keepalived-1.2.1-linux-2.6.35-ip_vs.h new file mode 100644 index 000000000..fe82b1e10 --- /dev/null +++ b/sys-cluster/keepalived/files/keepalived-1.2.1-linux-2.6.35-ip_vs.h @@ -0,0 +1,950 @@ +/* + * IP Virtual Server + * data structure and functionality definitions + */ + +#ifndef _NET_IP_VS_H +#define _NET_IP_VS_H + +#include <linux/ip_vs.h> /* definitions shared with userland */ + +/* old ipvsadm versions still include this file directly */ +#ifdef __KERNEL__ + +#include <asm/types.h> /* for __uXX types */ + +#include <linux/sysctl.h> /* for ctl_path */ +#include <linux/list.h> /* for struct list_head */ +#include <linux/spinlock.h> /* for struct rwlock_t */ +#include <asm/atomic.h> /* for struct atomic_t */ +#include <linux/compiler.h> +#include <linux/timer.h> + +#include <net/checksum.h> +#include <linux/netfilter.h> /* for union nf_inet_addr */ +#include <linux/ip.h> +#include <linux/ipv6.h> /* for struct ipv6hdr */ +#include <net/ipv6.h> /* for ipv6_addr_copy */ + + +/* Connections' size value needed by ip_vs_ctl.c */ +extern int ip_vs_conn_tab_size; + + +struct ip_vs_iphdr { + int len; + __u8 protocol; + union nf_inet_addr saddr; + union nf_inet_addr daddr; +}; + +static inline void +ip_vs_fill_iphdr(int af, const void *nh, struct ip_vs_iphdr *iphdr) +{ +#ifdef CONFIG_IP_VS_IPV6 + if (af == AF_INET6) { + const struct ipv6hdr *iph = nh; + iphdr->len = sizeof(struct ipv6hdr); + iphdr->protocol = iph->nexthdr; + ipv6_addr_copy(&iphdr->saddr.in6, &iph->saddr); + ipv6_addr_copy(&iphdr->daddr.in6, &iph->daddr); + } else +#endif + { + const struct iphdr *iph = nh; + iphdr->len = iph->ihl * 4; + iphdr->protocol = iph->protocol; + iphdr->saddr.ip = iph->saddr; + iphdr->daddr.ip = iph->daddr; + } +} + +static inline void ip_vs_addr_copy(int af, union nf_inet_addr *dst, + const union nf_inet_addr *src) +{ +#ifdef CONFIG_IP_VS_IPV6 + if (af == AF_INET6) + ipv6_addr_copy(&dst->in6, &src->in6); + else +#endif + dst->ip = src->ip; +} + +static inline int ip_vs_addr_equal(int af, const union nf_inet_addr *a, + const union nf_inet_addr *b) +{ +#ifdef CONFIG_IP_VS_IPV6 + if (af == AF_INET6) + return ipv6_addr_equal(&a->in6, &b->in6); +#endif + return a->ip == b->ip; +} + +#ifdef CONFIG_IP_VS_DEBUG +#include <linux/net.h> + +extern int ip_vs_get_debug_level(void); + +static inline const char *ip_vs_dbg_addr(int af, char *buf, size_t buf_len, + const union nf_inet_addr *addr, + int *idx) +{ + int len; +#ifdef CONFIG_IP_VS_IPV6 + if (af == AF_INET6) + len = snprintf(&buf[*idx], buf_len - *idx, "[%pI6]", + &addr->in6) + 1; + else +#endif + len = snprintf(&buf[*idx], buf_len - *idx, "%pI4", + &addr->ip) + 1; + + *idx += len; + BUG_ON(*idx > buf_len + 1); + return &buf[*idx - len]; +} + +#define IP_VS_DBG_BUF(level, msg, ...) \ + do { \ + char ip_vs_dbg_buf[160]; \ + int ip_vs_dbg_idx = 0; \ + if (level <= ip_vs_get_debug_level()) \ + printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \ + } while (0) +#define IP_VS_ERR_BUF(msg...) \ + do { \ + char ip_vs_dbg_buf[160]; \ + int ip_vs_dbg_idx = 0; \ + pr_err(msg); \ + } while (0) + +/* Only use from within IP_VS_DBG_BUF() or IP_VS_ERR_BUF macros */ +#define IP_VS_DBG_ADDR(af, addr) \ + ip_vs_dbg_addr(af, ip_vs_dbg_buf, \ + sizeof(ip_vs_dbg_buf), addr, \ + &ip_vs_dbg_idx) + +#define IP_VS_DBG(level, msg, ...) \ + do { \ + if (level <= ip_vs_get_debug_level()) \ + printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \ + } while (0) +#define IP_VS_DBG_RL(msg, ...) \ + do { \ + if (net_ratelimit()) \ + printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \ + } while (0) +#define IP_VS_DBG_PKT(level, pp, skb, ofs, msg) \ + do { \ + if (level <= ip_vs_get_debug_level()) \ + pp->debug_packet(pp, skb, ofs, msg); \ + } while (0) +#define IP_VS_DBG_RL_PKT(level, pp, skb, ofs, msg) \ + do { \ + if (level <= ip_vs_get_debug_level() && \ + net_ratelimit()) \ + pp->debug_packet(pp, skb, ofs, msg); \ + } while (0) +#else /* NO DEBUGGING at ALL */ +#define IP_VS_DBG_BUF(level, msg...) do {} while (0) +#define IP_VS_ERR_BUF(msg...) do {} while (0) +#define IP_VS_DBG(level, msg...) do {} while (0) +#define IP_VS_DBG_RL(msg...) do {} while (0) +#define IP_VS_DBG_PKT(level, pp, skb, ofs, msg) do {} while (0) +#define IP_VS_DBG_RL_PKT(level, pp, skb, ofs, msg) do {} while (0) +#endif + +#define IP_VS_BUG() BUG() +#define IP_VS_ERR_RL(msg, ...) \ + do { \ + if (net_ratelimit()) \ + pr_err(msg, ##__VA_ARGS__); \ + } while (0) + +#ifdef CONFIG_IP_VS_DEBUG +#define EnterFunction(level) \ + do { \ + if (level <= ip_vs_get_debug_level()) \ + printk(KERN_DEBUG \ + pr_fmt("Enter: %s, %s line %i\n"), \ + __func__, __FILE__, __LINE__); \ + } while (0) +#define LeaveFunction(level) \ + do { \ + if (level <= ip_vs_get_debug_level()) \ + printk(KERN_DEBUG \ + pr_fmt("Leave: %s, %s line %i\n"), \ + __func__, __FILE__, __LINE__); \ + } while (0) +#else +#define EnterFunction(level) do {} while (0) +#define LeaveFunction(level) do {} while (0) +#endif + +#define IP_VS_WAIT_WHILE(expr) while (expr) { cpu_relax(); } + + +/* + * The port number of FTP service (in network order). + */ +#define FTPPORT cpu_to_be16(21) +#define FTPDATA cpu_to_be16(20) + +/* + * TCP State Values + */ +enum { + IP_VS_TCP_S_NONE = 0, + IP_VS_TCP_S_ESTABLISHED, + IP_VS_TCP_S_SYN_SENT, + IP_VS_TCP_S_SYN_RECV, + IP_VS_TCP_S_FIN_WAIT, + IP_VS_TCP_S_TIME_WAIT, + IP_VS_TCP_S_CLOSE, + IP_VS_TCP_S_CLOSE_WAIT, + IP_VS_TCP_S_LAST_ACK, + IP_VS_TCP_S_LISTEN, + IP_VS_TCP_S_SYNACK, + IP_VS_TCP_S_LAST +}; + +/* + * UDP State Values + */ +enum { + IP_VS_UDP_S_NORMAL, + IP_VS_UDP_S_LAST, +}; + +/* + * ICMP State Values + */ +enum { + IP_VS_ICMP_S_NORMAL, + IP_VS_ICMP_S_LAST, +}; + +/* + * SCTP State Values + */ +enum ip_vs_sctp_states { + IP_VS_SCTP_S_NONE, + IP_VS_SCTP_S_INIT_CLI, + IP_VS_SCTP_S_INIT_SER, + IP_VS_SCTP_S_INIT_ACK_CLI, + IP_VS_SCTP_S_INIT_ACK_SER, + IP_VS_SCTP_S_ECHO_CLI, + IP_VS_SCTP_S_ECHO_SER, + IP_VS_SCTP_S_ESTABLISHED, + IP_VS_SCTP_S_SHUT_CLI, + IP_VS_SCTP_S_SHUT_SER, + IP_VS_SCTP_S_SHUT_ACK_CLI, + IP_VS_SCTP_S_SHUT_ACK_SER, + IP_VS_SCTP_S_CLOSED, + IP_VS_SCTP_S_LAST +}; + +/* + * Delta sequence info structure + * Each ip_vs_conn has 2 (output AND input seq. changes). + * Only used in the VS/NAT. + */ +struct ip_vs_seq { + __u32 init_seq; /* Add delta from this seq */ + __u32 delta; /* Delta in sequence numbers */ + __u32 previous_delta; /* Delta in sequence numbers + before last resized pkt */ +}; + + +/* + * IPVS statistics objects + */ +struct ip_vs_estimator { + struct list_head list; + + u64 last_inbytes; + u64 last_outbytes; + u32 last_conns; + u32 last_inpkts; + u32 last_outpkts; + + u32 cps; + u32 inpps; + u32 outpps; + u32 inbps; + u32 outbps; +}; + +struct ip_vs_stats { + struct ip_vs_stats_user ustats; /* statistics */ + struct ip_vs_estimator est; /* estimator */ + + spinlock_t lock; /* spin lock */ +}; + +struct dst_entry; +struct iphdr; +struct ip_vs_conn; +struct ip_vs_app; +struct sk_buff; + +struct ip_vs_protocol { + struct ip_vs_protocol *next; + char *name; + u16 protocol; + u16 num_states; + int dont_defrag; + atomic_t appcnt; /* counter of proto app incs */ + int *timeout_table; /* protocol timeout table */ + + void (*init)(struct ip_vs_protocol *pp); + + void (*exit)(struct ip_vs_protocol *pp); + + int (*conn_schedule)(int af, struct sk_buff *skb, + struct ip_vs_protocol *pp, + int *verdict, struct ip_vs_conn **cpp); + + struct ip_vs_conn * + (*conn_in_get)(int af, + const struct sk_buff *skb, + struct ip_vs_protocol *pp, + const struct ip_vs_iphdr *iph, + unsigned int proto_off, + int inverse); + + struct ip_vs_conn * + (*conn_out_get)(int af, + const struct sk_buff *skb, + struct ip_vs_protocol *pp, + const struct ip_vs_iphdr *iph, + unsigned int proto_off, + int inverse); + + int (*snat_handler)(struct sk_buff *skb, + struct ip_vs_protocol *pp, struct ip_vs_conn *cp); + + int (*dnat_handler)(struct sk_buff *skb, + struct ip_vs_protocol *pp, struct ip_vs_conn *cp); + + int (*csum_check)(int af, struct sk_buff *skb, + struct ip_vs_protocol *pp); + + const char *(*state_name)(int state); + + int (*state_transition)(struct ip_vs_conn *cp, int direction, + const struct sk_buff *skb, + struct ip_vs_protocol *pp); + + int (*register_app)(struct ip_vs_app *inc); + + void (*unregister_app)(struct ip_vs_app *inc); + + int (*app_conn_bind)(struct ip_vs_conn *cp); + + void (*debug_packet)(struct ip_vs_protocol *pp, + const struct sk_buff *skb, + int offset, + const char *msg); + + void (*timeout_change)(struct ip_vs_protocol *pp, int flags); + + int (*set_state_timeout)(struct ip_vs_protocol *pp, char *sname, int to); +}; + +extern struct ip_vs_protocol * ip_vs_proto_get(unsigned short proto); + +/* + * IP_VS structure allocated for each dynamically scheduled connection + */ +struct ip_vs_conn { + struct list_head c_list; /* hashed list heads */ + + /* Protocol, addresses and port numbers */ + u16 af; /* address family */ + union nf_inet_addr caddr; /* client address */ + union nf_inet_addr vaddr; /* virtual address */ + union nf_inet_addr daddr; /* destination address */ + __be16 cport; + __be16 vport; + __be16 dport; + __u16 protocol; /* Which protocol (TCP/UDP) */ + + /* counter and timer */ + atomic_t refcnt; /* reference count */ + struct timer_list timer; /* Expiration timer */ + volatile unsigned long timeout; /* timeout */ + + /* Flags and state transition */ + spinlock_t lock; /* lock for state transition */ + volatile __u16 flags; /* status flags */ + volatile __u16 state; /* state info */ + volatile __u16 old_state; /* old state, to be used for + * state transition triggerd + * synchronization + */ + + /* Control members */ + struct ip_vs_conn *control; /* Master control connection */ + atomic_t n_control; /* Number of controlled ones */ + struct ip_vs_dest *dest; /* real server */ + atomic_t in_pkts; /* incoming packet counter */ + + /* packet transmitter for different forwarding methods. If it + mangles the packet, it must return NF_DROP or better NF_STOLEN, + otherwise this must be changed to a sk_buff **. + */ + int (*packet_xmit)(struct sk_buff *skb, struct ip_vs_conn *cp, + struct ip_vs_protocol *pp); + + /* Note: we can group the following members into a structure, + in order to save more space, and the following members are + only used in VS/NAT anyway */ + struct ip_vs_app *app; /* bound ip_vs_app object */ + void *app_data; /* Application private data */ + struct ip_vs_seq in_seq; /* incoming seq. struct */ + struct ip_vs_seq out_seq; /* outgoing seq. struct */ +}; + + +/* + * Extended internal versions of struct ip_vs_service_user and + * ip_vs_dest_user for IPv6 support. + * + * We need these to conveniently pass around service and destination + * options, but unfortunately, we also need to keep the old definitions to + * maintain userspace backwards compatibility for the setsockopt interface. + */ +struct ip_vs_service_user_kern { + /* virtual service addresses */ + u16 af; + u16 protocol; + union nf_inet_addr addr; /* virtual ip address */ + u16 port; + u32 fwmark; /* firwall mark of service */ + + /* virtual service options */ + char *sched_name; + unsigned flags; /* virtual service flags */ + unsigned timeout; /* persistent timeout in sec */ + u32 netmask; /* persistent netmask */ +}; + + +struct ip_vs_dest_user_kern { + /* destination server address */ + union nf_inet_addr addr; + u16 port; + + /* real server options */ + unsigned conn_flags; /* connection flags */ + int weight; /* destination weight */ + + /* thresholds for active connections */ + u32 u_threshold; /* upper threshold */ + u32 l_threshold; /* lower threshold */ +}; + + +/* + * The information about the virtual service offered to the net + * and the forwarding entries + */ +struct ip_vs_service { + struct list_head s_list; /* for normal service table */ + struct list_head f_list; /* for fwmark-based service table */ + atomic_t refcnt; /* reference counter */ + atomic_t usecnt; /* use counter */ + + u16 af; /* address family */ + __u16 protocol; /* which protocol (TCP/UDP) */ + union nf_inet_addr addr; /* IP address for virtual service */ + __be16 port; /* port number for the service */ + __u32 fwmark; /* firewall mark of the service */ + unsigned flags; /* service status flags */ + unsigned timeout; /* persistent timeout in ticks */ + __be32 netmask; /* grouping granularity */ + + struct list_head destinations; /* real server d-linked list */ + __u32 num_dests; /* number of servers */ + struct ip_vs_stats stats; /* statistics for the service */ + struct ip_vs_app *inc; /* bind conns to this app inc */ + + /* for scheduling */ + struct ip_vs_scheduler *scheduler; /* bound scheduler object */ + rwlock_t sched_lock; /* lock sched_data */ + void *sched_data; /* scheduler application data */ +}; + + +/* + * The real server destination forwarding entry + * with ip address, port number, and so on. + */ +struct ip_vs_dest { + struct list_head n_list; /* for the dests in the service */ + struct list_head d_list; /* for table with all the dests */ + + u16 af; /* address family */ + union nf_inet_addr addr; /* IP address of the server */ + __be16 port; /* port number of the server */ + volatile unsigned flags; /* dest status flags */ + atomic_t conn_flags; /* flags to copy to conn */ + atomic_t weight; /* server weight */ + + atomic_t refcnt; /* reference counter */ + struct ip_vs_stats stats; /* statistics */ + + /* connection counters and thresholds */ + atomic_t activeconns; /* active connections */ + atomic_t inactconns; /* inactive connections */ + atomic_t persistconns; /* persistent connections */ + __u32 u_threshold; /* upper threshold */ + __u32 l_threshold; /* lower threshold */ + + /* for destination cache */ + spinlock_t dst_lock; /* lock of dst_cache */ + struct dst_entry *dst_cache; /* destination cache entry */ + u32 dst_rtos; /* RT_TOS(tos) for dst */ + + /* for virtual service */ + struct ip_vs_service *svc; /* service it belongs to */ + __u16 protocol; /* which protocol (TCP/UDP) */ + union nf_inet_addr vaddr; /* virtual IP address */ + __be16 vport; /* virtual port number */ + __u32 vfwmark; /* firewall mark of service */ +}; + + +/* + * The scheduler object + */ +struct ip_vs_scheduler { + struct list_head n_list; /* d-linked list head */ + char *name; /* scheduler name */ + atomic_t refcnt; /* reference counter */ + struct module *module; /* THIS_MODULE/NULL */ + + /* scheduler initializing service */ + int (*init_service)(struct ip_vs_service *svc); + /* scheduling service finish */ + int (*done_service)(struct ip_vs_service *svc); + /* scheduler updating service */ + int (*update_service)(struct ip_vs_service *svc); + + /* selecting a server from the given service */ + struct ip_vs_dest* (*schedule)(struct ip_vs_service *svc, + const struct sk_buff *skb); +}; + + +/* + * The application module object (a.k.a. app incarnation) + */ +struct ip_vs_app { + struct list_head a_list; /* member in app list */ + int type; /* IP_VS_APP_TYPE_xxx */ + char *name; /* application module name */ + __u16 protocol; + struct module *module; /* THIS_MODULE/NULL */ + struct list_head incs_list; /* list of incarnations */ + + /* members for application incarnations */ + struct list_head p_list; /* member in proto app list */ + struct ip_vs_app *app; /* its real application */ + __be16 port; /* port number in net order */ + atomic_t usecnt; /* usage counter */ + + /* output hook: return false if can't linearize. diff set for TCP. */ + int (*pkt_out)(struct ip_vs_app *, struct ip_vs_conn *, + struct sk_buff *, int *diff); + + /* input hook: return false if can't linearize. diff set for TCP. */ + int (*pkt_in)(struct ip_vs_app *, struct ip_vs_conn *, + struct sk_buff *, int *diff); + + /* ip_vs_app initializer */ + int (*init_conn)(struct ip_vs_app *, struct ip_vs_conn *); + + /* ip_vs_app finish */ + int (*done_conn)(struct ip_vs_app *, struct ip_vs_conn *); + + + /* not used now */ + int (*bind_conn)(struct ip_vs_app *, struct ip_vs_conn *, + struct ip_vs_protocol *); + + void (*unbind_conn)(struct ip_vs_app *, struct ip_vs_conn *); + + int * timeout_table; + int * timeouts; + int timeouts_size; + + int (*conn_schedule)(struct sk_buff *skb, struct ip_vs_app *app, + int *verdict, struct ip_vs_conn **cpp); + + struct ip_vs_conn * + (*conn_in_get)(const struct sk_buff *skb, struct ip_vs_app *app, + const struct iphdr *iph, unsigned int proto_off, + int inverse); + + struct ip_vs_conn * + (*conn_out_get)(const struct sk_buff *skb, struct ip_vs_app *app, + const struct iphdr *iph, unsigned int proto_off, + int inverse); + + int (*state_transition)(struct ip_vs_conn *cp, int direction, + const struct sk_buff *skb, + struct ip_vs_app *app); + + void (*timeout_change)(struct ip_vs_app *app, int flags); +}; + + +/* + * IPVS core functions + * (from ip_vs_core.c) + */ +extern const char *ip_vs_proto_name(unsigned proto); +extern void ip_vs_init_hash_table(struct list_head *table, int rows); +#define IP_VS_INIT_HASH_TABLE(t) ip_vs_init_hash_table((t), ARRAY_SIZE((t))) + +#define IP_VS_APP_TYPE_FTP 1 + +/* + * ip_vs_conn handling functions + * (from ip_vs_conn.c) + */ + +enum { + IP_VS_DIR_INPUT = 0, + IP_VS_DIR_OUTPUT, + IP_VS_DIR_INPUT_ONLY, + IP_VS_DIR_LAST, +}; + +extern struct ip_vs_conn *ip_vs_conn_in_get +(int af, int protocol, const union nf_inet_addr *s_addr, __be16 s_port, + const union nf_inet_addr *d_addr, __be16 d_port); + +extern struct ip_vs_conn *ip_vs_ct_in_get +(int af, int protocol, const union nf_inet_addr *s_addr, __be16 s_port, + const union nf_inet_addr *d_addr, __be16 d_port); + +extern struct ip_vs_conn *ip_vs_conn_out_get +(int af, int protocol, const union nf_inet_addr *s_addr, __be16 s_port, + const union nf_inet_addr *d_addr, __be16 d_port); + +/* put back the conn without restarting its timer */ +static inline void __ip_vs_conn_put(struct ip_vs_conn *cp) +{ + atomic_dec(&cp->refcnt); +} +extern void ip_vs_conn_put(struct ip_vs_conn *cp); +extern void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __be16 cport); + +extern struct ip_vs_conn * +ip_vs_conn_new(int af, int proto, const union nf_inet_addr *caddr, __be16 cport, + const union nf_inet_addr *vaddr, __be16 vport, + const union nf_inet_addr *daddr, __be16 dport, unsigned flags, + struct ip_vs_dest *dest); +extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp); + +extern const char * ip_vs_state_name(__u16 proto, int state); + +extern void ip_vs_tcp_conn_listen(struct ip_vs_conn *cp); +extern int ip_vs_check_template(struct ip_vs_conn *ct); +extern void ip_vs_random_dropentry(void); +extern int ip_vs_conn_init(void); +extern void ip_vs_conn_cleanup(void); + +static inline void ip_vs_control_del(struct ip_vs_conn *cp) +{ + struct ip_vs_conn *ctl_cp = cp->control; + if (!ctl_cp) { + IP_VS_ERR_BUF("request control DEL for uncontrolled: " + "%s:%d to %s:%d\n", + IP_VS_DBG_ADDR(cp->af, &cp->caddr), + ntohs(cp->cport), + IP_VS_DBG_ADDR(cp->af, &cp->vaddr), + ntohs(cp->vport)); + + return; + } + + IP_VS_DBG_BUF(7, "DELeting control for: " + "cp.dst=%s:%d ctl_cp.dst=%s:%d\n", + IP_VS_DBG_ADDR(cp->af, &cp->caddr), + ntohs(cp->cport), + IP_VS_DBG_ADDR(cp->af, &ctl_cp->caddr), + ntohs(ctl_cp->cport)); + + cp->control = NULL; + if (atomic_read(&ctl_cp->n_control) == 0) { + IP_VS_ERR_BUF("BUG control DEL with n=0 : " + "%s:%d to %s:%d\n", + IP_VS_DBG_ADDR(cp->af, &cp->caddr), + ntohs(cp->cport), + IP_VS_DBG_ADDR(cp->af, &cp->vaddr), + ntohs(cp->vport)); + + return; + } + atomic_dec(&ctl_cp->n_control); +} + +static inline void +ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp) +{ + if (cp->control) { + IP_VS_ERR_BUF("request control ADD for already controlled: " + "%s:%d to %s:%d\n", + IP_VS_DBG_ADDR(cp->af, &cp->caddr), + ntohs(cp->cport), + IP_VS_DBG_ADDR(cp->af, &cp->vaddr), + ntohs(cp->vport)); + + ip_vs_control_del(cp); + } + + IP_VS_DBG_BUF(7, "ADDing control for: " + "cp.dst=%s:%d ctl_cp.dst=%s:%d\n", + IP_VS_DBG_ADDR(cp->af, &cp->caddr), + ntohs(cp->cport), + IP_VS_DBG_ADDR(cp->af, &ctl_cp->caddr), + ntohs(ctl_cp->cport)); + + cp->control = ctl_cp; + atomic_inc(&ctl_cp->n_control); +} + + +/* + * IPVS application functions + * (from ip_vs_app.c) + */ +#define IP_VS_APP_MAX_PORTS 8 +extern int register_ip_vs_app(struct ip_vs_app *app); +extern void unregister_ip_vs_app(struct ip_vs_app *app); +extern int ip_vs_bind_app(struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern void ip_vs_unbind_app(struct ip_vs_conn *cp); +extern int +register_ip_vs_app_inc(struct ip_vs_app *app, __u16 proto, __u16 port); +extern int ip_vs_app_inc_get(struct ip_vs_app *inc); +extern void ip_vs_app_inc_put(struct ip_vs_app *inc); + +extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff *skb); +extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff *skb); +extern int ip_vs_skb_replace(struct sk_buff *skb, gfp_t pri, + char *o_buf, int o_len, char *n_buf, int n_len); +extern int ip_vs_app_init(void); +extern void ip_vs_app_cleanup(void); + + +/* + * IPVS protocol functions (from ip_vs_proto.c) + */ +extern int ip_vs_protocol_init(void); +extern void ip_vs_protocol_cleanup(void); +extern void ip_vs_protocol_timeout_change(int flags); +extern int *ip_vs_create_timeout_table(int *table, int size); +extern int +ip_vs_set_state_timeout(int *table, int num, const char *const *names, + const char *name, int to); +extern void +ip_vs_tcpudp_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb, + int offset, const char *msg); + +extern struct ip_vs_protocol ip_vs_protocol_tcp; +extern struct ip_vs_protocol ip_vs_protocol_udp; +extern struct ip_vs_protocol ip_vs_protocol_icmp; +extern struct ip_vs_protocol ip_vs_protocol_esp; +extern struct ip_vs_protocol ip_vs_protocol_ah; +extern struct ip_vs_protocol ip_vs_protocol_sctp; + +/* + * Registering/unregistering scheduler functions + * (from ip_vs_sched.c) + */ +extern int register_ip_vs_scheduler(struct ip_vs_scheduler *scheduler); +extern int unregister_ip_vs_scheduler(struct ip_vs_scheduler *scheduler); +extern int ip_vs_bind_scheduler(struct ip_vs_service *svc, + struct ip_vs_scheduler *scheduler); +extern int ip_vs_unbind_scheduler(struct ip_vs_service *svc); +extern struct ip_vs_scheduler *ip_vs_scheduler_get(const char *sched_name); +extern void ip_vs_scheduler_put(struct ip_vs_scheduler *scheduler); +extern struct ip_vs_conn * +ip_vs_schedule(struct ip_vs_service *svc, const struct sk_buff *skb); +extern int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, + struct ip_vs_protocol *pp); + + +/* + * IPVS control data and functions (from ip_vs_ctl.c) + */ +extern int sysctl_ip_vs_cache_bypass; +extern int sysctl_ip_vs_expire_nodest_conn; +extern int sysctl_ip_vs_expire_quiescent_template; +extern int sysctl_ip_vs_sync_threshold[2]; +extern int sysctl_ip_vs_nat_icmp_send; +extern struct ip_vs_stats ip_vs_stats; +extern const struct ctl_path net_vs_ctl_path[]; + +extern struct ip_vs_service * +ip_vs_service_get(int af, __u32 fwmark, __u16 protocol, + const union nf_inet_addr *vaddr, __be16 vport); + +static inline void ip_vs_service_put(struct ip_vs_service *svc) +{ + atomic_dec(&svc->usecnt); +} + +extern struct ip_vs_dest * +ip_vs_lookup_real_service(int af, __u16 protocol, + const union nf_inet_addr *daddr, __be16 dport); + +extern int ip_vs_use_count_inc(void); +extern void ip_vs_use_count_dec(void); +extern int ip_vs_control_init(void); +extern void ip_vs_control_cleanup(void); +extern struct ip_vs_dest * +ip_vs_find_dest(int af, const union nf_inet_addr *daddr, __be16 dport, + const union nf_inet_addr *vaddr, __be16 vport, __u16 protocol); +extern struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp); + + +/* + * IPVS sync daemon data and function prototypes + * (from ip_vs_sync.c) + */ +extern volatile int ip_vs_sync_state; +extern volatile int ip_vs_master_syncid; +extern volatile int ip_vs_backup_syncid; +extern char ip_vs_master_mcast_ifn[IP_VS_IFNAME_MAXLEN]; +extern char ip_vs_backup_mcast_ifn[IP_VS_IFNAME_MAXLEN]; +extern int start_sync_thread(int state, char *mcast_ifn, __u8 syncid); +extern int stop_sync_thread(int state); +extern void ip_vs_sync_conn(struct ip_vs_conn *cp); + + +/* + * IPVS rate estimator prototypes (from ip_vs_est.c) + */ +extern int ip_vs_estimator_init(void); +extern void ip_vs_estimator_cleanup(void); +extern void ip_vs_new_estimator(struct ip_vs_stats *stats); +extern void ip_vs_kill_estimator(struct ip_vs_stats *stats); +extern void ip_vs_zero_estimator(struct ip_vs_stats *stats); + +/* + * Various IPVS packet transmitters (from ip_vs_xmit.c) + */ +extern int ip_vs_null_xmit +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_bypass_xmit +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_nat_xmit +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_tunnel_xmit +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_dr_xmit +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_icmp_xmit +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp, int offset); +extern void ip_vs_dst_reset(struct ip_vs_dest *dest); + +#ifdef CONFIG_IP_VS_IPV6 +extern int ip_vs_bypass_xmit_v6 +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_nat_xmit_v6 +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_tunnel_xmit_v6 +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_dr_xmit_v6 +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); +extern int ip_vs_icmp_xmit_v6 +(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp, + int offset); +#endif + +/* + * This is a simple mechanism to ignore packets when + * we are loaded. Just set ip_vs_drop_rate to 'n' and + * we start to drop 1/rate of the packets + */ +extern int ip_vs_drop_rate; +extern int ip_vs_drop_counter; + +static __inline__ int ip_vs_todrop(void) +{ + if (!ip_vs_drop_rate) return 0; + if (--ip_vs_drop_counter > 0) return 0; + ip_vs_drop_counter = ip_vs_drop_rate; + return 1; +} + +/* + * ip_vs_fwd_tag returns the forwarding tag of the connection + */ +#define IP_VS_FWD_METHOD(cp) (cp->flags & IP_VS_CONN_F_FWD_MASK) + +static inline char ip_vs_fwd_tag(struct ip_vs_conn *cp) +{ + char fwd; + + switch (IP_VS_FWD_METHOD(cp)) { + case IP_VS_CONN_F_MASQ: + fwd = 'M'; break; + case IP_VS_CONN_F_LOCALNODE: + fwd = 'L'; break; + case IP_VS_CONN_F_TUNNEL: + fwd = 'T'; break; + case IP_VS_CONN_F_DROUTE: + fwd = 'R'; break; + case IP_VS_CONN_F_BYPASS: + fwd = 'B'; break; + default: + fwd = '?'; break; + } + return fwd; +} + +extern void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp, + struct ip_vs_conn *cp, int dir); + +#ifdef CONFIG_IP_VS_IPV6 +extern void ip_vs_nat_icmp_v6(struct sk_buff *skb, struct ip_vs_protocol *pp, + struct ip_vs_conn *cp, int dir); +#endif + +extern __sum16 ip_vs_checksum_complete(struct sk_buff *skb, int offset); + +static inline __wsum ip_vs_check_diff4(__be32 old, __be32 new, __wsum oldsum) +{ + __be32 diff[2] = { ~old, new }; + + return csum_partial(diff, sizeof(diff), oldsum); +} + +#ifdef CONFIG_IP_VS_IPV6 +static inline __wsum ip_vs_check_diff16(const __be32 *old, const __be32 *new, + __wsum oldsum) +{ + __be32 diff[8] = { ~old[3], ~old[2], ~old[1], ~old[0], + new[3], new[2], new[1], new[0] }; + + return csum_partial(diff, sizeof(diff), oldsum); +} +#endif + +static inline __wsum ip_vs_check_diff2(__be16 old, __be16 new, __wsum oldsum) +{ + __be16 diff[2] = { ~old, new }; + + return csum_partial(diff, sizeof(diff), oldsum); +} + +#endif /* __KERNEL__ */ + +#endif /* _NET_IP_VS_H */ diff --git a/sys-cluster/keepalived/keepalived-1.2.1.ebuild b/sys-cluster/keepalived/keepalived-1.2.1.ebuild new file mode 100644 index 000000000..815970186 --- /dev/null +++ b/sys-cluster/keepalived/keepalived-1.2.1.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=3 + +inherit flag-o-matic autotools base + +DESCRIPTION="A strong & robust keepalive facility to the Linux Virtual Server project" +HOMEPAGE="http://www.keepalived.org/" +SRC_URI="http://www.keepalived.org/software/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="debug +lvs" + +RDEPEND="dev-libs/popt + sys-apps/iproute2 + dev-libs/openssl + lvs? ( sys-cluster/ipvsadm )" +DEPEND="${RDEPEND} + =sys-kernel/linux-headers-2.6*" + +use lvs && PATCHES=( "${FILESDIR}/${P}-do-not-need-kernel-sources.patch" ) + +src_prepare() { + base_src_prepare + + if use lvs; then + # Prepare a suitable copy of the IPVS headers + # So that we don't need kernel sources at all! + mkdir -p "${S}"/include/net || die "Failed to prepare ipvs header directory" + cp -f "${FILESDIR}"/${PN}-1.2.1-linux-2.6.35-ip_vs.h \ + "${S}"/include/net/ip_vs.h || die "Failed to add ipvs header" + + # Ensure that keepalived can find the header that we are injecting + append-flags -I"${S}"/include + + eautoreconf + fi +} + +src_configure() { + STRIP=/bin/true \ + econf \ + --enable-vrrp \ + $(use_enable lvs) \ + $(use_enable lvs lvs-syncd) \ + $(use_enable debug) +} + +src_install() { + base_src_install + + newinitd "${FILESDIR}"/init-keepalived keepalived || die + + dodoc doc/keepalived.conf.SYNOPSIS || die + dodoc README CONTRIBUTORS INSTALL VERSION ChangeLog AUTHOR TODO || die + + docinto genhash + dodoc genhash/README genhash/AUTHOR genhash/ChangeLog genhash/VERSION || die + # This was badly named by upstream, it's more HOWTO than anything else. + newdoc INSTALL INSTALL+HOWTO || die + + # Security risk to bundle SSL certs + rm -f "${D}"/etc/keepalived/samples/*.pem + # Clean up sysvinit files + rm -rf "${D}"/etc/sysconfig "${D}"/etc/rc.d/ +} diff --git a/sys-cluster/pacemaker-gui/Manifest b/sys-cluster/pacemaker-gui/Manifest index d2941b068..5e4908a78 100644 --- a/sys-cluster/pacemaker-gui/Manifest +++ b/sys-cluster/pacemaker-gui/Manifest @@ -1,8 +1,7 @@ AUX mgmtd.init 810 RMD160 14942aa1fc5dd6dbc49de1dc1c7b6120a5c88da3 SHA1 7e44d69ce08e0d4f06df36347f1fa68674a11559 SHA256 bf5cb45a8ea9cdd6807c489b711bf3e9a3f75e15ad7d20c61ce41608448276af AUX pacemaker-gui-2.0.0-doc.patch 427 RMD160 9db55433397f25884e255cf19c0062fd24a19b2d SHA1 148f8cde46ff165fe76f1dfd8a56a05fbd284ff9 SHA256 8aa4602f9ceb3e426293f0f660b3e54dd1cd651f776319a4bc65f5b91186ed56 AUX pacemaker-gui-2.0.0-gnutls.patch 1554 RMD160 474d03b50b3dc09b2495dd7c70962e0bdfe02802 SHA1 f6d810037195b5c72fcd2b677d4b2749b2c0fccf SHA256 aadc022cfdd5f04660fb4051a80b4921baa36761ae4c72ac5ecbeccf811f8677 -AUX pacemaker-gui-2.0.0-mgmt_crm.patch 842 RMD160 0f5612ee211d1b82f13ef9bf9f4f0ac5a1cc42b8 SHA1 3e3bb6438508cf1ed9a13b1377d12cf3c0915284 SHA256 c81187b4e9aa2686c5ad7dd78c6d5100bb4f4115bc22eac9a01b4bac75abcfc8 -DIST 0f1490eaa8d8.tar.bz2 335025 RMD160 1dc6817f12b84bdbb5977c9e795050105f36ea33 SHA1 54811e73b592c79616323df77ef10f9458e379fd SHA256 726fc64ba47cca418499f92e1bcf1f948965d5cd9b1723a419ade8e99396365c -EBUILD pacemaker-gui-2.0.0.ebuild 1998 RMD160 bdb983b56b15c2ad4264d2c433ca791d5ddb4fa6 SHA1 0aa7fb4ff0663ad388a649cdffa7e763dd082b5e SHA256 8306776371e257100006ae99c0e8299f85c3a1935a54587778fc3f23e21ab9ed +DIST 45aced6962a9.tar.bz2 338063 RMD160 240c76c91afb9c07ee439eaa22c8e9af29a078df SHA1 a72b6ebbb7ab3a8a8ae7541445b6caef7699856b SHA256 7f07fa6e939ff6ed60713442f85ed97723ca62bd7daf6ad3a9207e96d64b0347 +EBUILD pacemaker-gui-2.0.0.ebuild 2000 RMD160 ad046b21415dee2b97b1f68dd00c971e6e383079 SHA1 a78a11824ea5a9d1d5b6294cbcb38cfad333017a SHA256 591ea6e6ecd7bb8f274b3a44686b997ebe510c68d517025f6baff53a70b949a3 MISC ChangeLog 460 RMD160 41ae0d000c27b150642724e4d8e7ef10c7518656 SHA1 74fa7fe3e5da0a4c97f39abe447c8d0431869068 SHA256 d274c42ae55e6ec81a7b61bdf128e20d3f450648e04b2164335dce9d915f6b9c MISC metadata.xml 490 RMD160 925cc48d5b7b6c419375955d855d1622045e1d7b SHA1 40ba30b9e241c2d664e22613410d4d033f01120d SHA256 dfe28f44ad8e1d85e6bdcb98a03d7302635deceedfd88968c12405cd77695105 diff --git a/sys-cluster/pacemaker-gui/files/pacemaker-gui-2.0.0-mgmt_crm.patch b/sys-cluster/pacemaker-gui/files/pacemaker-gui-2.0.0-mgmt_crm.patch deleted file mode 100644 index 037f1eace..000000000 --- a/sys-cluster/pacemaker-gui/files/pacemaker-gui-2.0.0-mgmt_crm.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/mgmt/daemon/mgmt_crm.c 2010-06-28 17:48:35.209806899 +0000 -+++ b/mgmt/daemon/mgmt_crm.c 2010-06-28 17:50:16.779798538 +0000 -@@ -1304,7 +1304,7 @@ - } else { - buffer = crm_concat("fail-count", argv[2], '-'); - delete_attr(cib_conn, cib_sync_call, XML_CIB_TAG_STATUS, dest_node, NULL, NULL, -- NULL, buffer, NULL, FALSE); -+ NULL, buffer, FALSE); - crm_free(dest_node); - crm_free(buffer); - mgmt_log(LOG_INFO, "Delete fail-count for %s from %s", argv[2], argv[1]); -@@ -1313,7 +1313,7 @@ - sleep(2); /* wait for the refresh */ - now_s = crm_itoa(now); - update_attr(cib_conn, cib_sync_call, -- XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, "last-lrm-refresh", now_s, FALSE); -+ XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, "last-lrm-refresh", now_s, FALSE); - crm_free(now_s); - - crmd_channel->ops->destroy(crmd_channel); diff --git a/sys-cluster/pacemaker-gui/pacemaker-gui-2.0.0.ebuild b/sys-cluster/pacemaker-gui/pacemaker-gui-2.0.0.ebuild index e851f90ef..592b5e32f 100644 --- a/sys-cluster/pacemaker-gui/pacemaker-gui-2.0.0.ebuild +++ b/sys-cluster/pacemaker-gui/pacemaker-gui-2.0.0.ebuild @@ -9,7 +9,7 @@ inherit python base autotools DESCRIPTION="Pacemaker client GUI and management daemon" HOMEPAGE="http://hg.clusterlabs.org/pacemaker/pygui/" -SRC_URI="http://hg.clusterlabs.org/pacemaker/pygui/archive/0f1490eaa8d8.tar.bz2" +SRC_URI="http://hg.clusterlabs.org/pacemaker/pygui/archive/45aced6962a9.tar.bz2" LICENSE="GPL-2 LGPL-2.1" KEYWORDS="~amd64 ~x86" @@ -41,11 +41,11 @@ DEPEND="${CDEPEND} sys-devel/gettext )" -S="${WORKDIR}/Pacemaker-Python-GUI-0f1490eaa8d8/" +S="${WORKDIR}/Pacemaker-Python-GUI-45aced6962a9/" PATCHES=( - "${FILESDIR}"/${P}-gnutls.patch - "${FILESDIR}"/${P}-doc.patch + "${FILESDIR}/${P}-gnutls.patch" + "${FILESDIR}/${P}-doc.patch" ) pkg_setup() { diff --git a/sys-cluster/pacemaker/Manifest b/sys-cluster/pacemaker/Manifest index 97ec4a635..641285fb1 100644 --- a/sys-cluster/pacemaker/Manifest +++ b/sys-cluster/pacemaker/Manifest @@ -1,5 +1,5 @@ -AUX pacemaker-1.1.4-installpaths.patch 200 RMD160 d2b3bdae8d6f982b64af5f83375497df74fadbc0 SHA1 69a1b9a2c7415a0e0d10c982ecb64474da358fb3 SHA256 4b8d82244123f88491b7deecb99b2d36d6317ada5aa6c6339e95dbcdc73dbbee +AUX pacemaker-1.1.4-autotools-r2.patch 9080 RMD160 a1151afb2902929f227ca71e8e86f126da6fd00e SHA1 d791f3071ff384d94a5a406cf2335ad4df625b40 SHA256 c572c181b9cd0aee420202593f4be32453a9d46993caa21a66b59edf59ee9893 AUX pacemaker.initd 815 RMD160 f9c28c5d5a9a4f720954dc93966dcb8a04623173 SHA1 bc4a951e670144d6ff137f09b2beef9102634457 SHA256 adf97c7fe78cadc5390ac30f32377bf1afb67afd55e89ec93ffa742d4e2d0017 AUX pacemaker.service 105 RMD160 e743788acefa97f879ea67b5b3bbbff715c71bce SHA1 42739d9a111a25a643d8f5f8b9fdd2cf1267853a SHA256 43034635a3a92ef55bf638ea3e29c2285240228283a70fbd88fe5e28c0d57c8c DIST Pacemaker-1.1.4.tar.bz2 23444765 RMD160 ca2635622e2a63258d7dc9933541eb2e3b728679 SHA1 382a4cbd80ef8f1c303f1c5c02d60390e808397f SHA256 922e2929cf9f2efa2e2d9b3185a7ac826a96e86cd8d9f4c4eae177f88f1f03b1 -EBUILD pacemaker-1.1.4.ebuild 2132 RMD160 191f1aeea43ba7ab69e95a92946a295c9a2a973b SHA1 f6c13b4f3985637d56ebbe820cac9d1405c682e6 SHA256 db9608e51751fa29c8c2ea3041d691aeeed50159ecffc41a6719f4bfc58e0bf6 +EBUILD pacemaker-1.1.4-r4.ebuild 2038 RMD160 84a820c0027273fd63eba00d0e0fa9f3a3043ac1 SHA1 01181f8d2c4fdf31b1223320d4aefb4aa32a66fb SHA256 a97f8b5f3a9a183a5b37013329682398d024d87adc76a45cf7b561ccbc099f42 diff --git a/sys-cluster/pacemaker/files/pacemaker-1.1.4-autotools-r2.patch b/sys-cluster/pacemaker/files/pacemaker-1.1.4-autotools-r2.patch new file mode 100644 index 000000000..e2c8b4f51 --- /dev/null +++ b/sys-cluster/pacemaker/files/pacemaker-1.1.4-autotools-r2.patch @@ -0,0 +1,256 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -1354,6 +1354,7 @@ + if + $PKGCONFIG --exists $SERVICELOG + then ++ PKG_CHECK_MODULES([SERVICELOG], [servicelog-1]) + SERVICELOG_EXISTS="yes" + fi + AC_MSG_RESULT($SERVICELOG_EXISTS) +@@ -1366,6 +1367,7 @@ + if + $PKGCONFIG --exists $OPENIPMI $SERVICELOG + then ++ PKG_CHECK_MODULES([OPENIPMI_SERVICELOG],[OpenIPMI OpenIPMIposix]) + OPENIPMI_SERVICELOG_EXISTS="yes" + fi + AC_MSG_RESULT($OPENIPMI_SERVICELOG_EXISTS) +--- a/fencing/Makefile.am ++++ b/fencing/Makefile.am +@@ -36,21 +36,20 @@ + + stonith_test_SOURCES = test.c + +-stonith_test_LDADD = $(CRYPTOLIB) $(CLUSTERLIBS) \ +- $(top_builddir)/lib/common/libcrmcommon.la \ ++stonith_test_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/common/libcrmcluster.la \ +- $(top_builddir)/lib/fencing/libstonithd.la ++ $(top_builddir)/lib/fencing/libstonithd.la \ ++ $(CRYPTOLIB) $(CLUSTERLIBS) + + stonith_admin_SOURCES = admin.c + +-stonith_admin_LDADD = $(CRYPTOLIB) $(CLUSTERLIBS) \ +- $(top_builddir)/lib/common/libcrmcommon.la \ ++stonith_admin_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/common/libcrmcluster.la \ +- $(top_builddir)/lib/fencing/libstonithd.la +- ++ $(top_builddir)/lib/fencing/libstonithd.la \ ++ $(CRYPTOLIB) $(CLUSTERLIBS) + stonithd_SOURCES = main.c commands.c remote.c + +-stonithd_LDADD = $(CRYPTOLIB) $(CLUSTERLIBS) \ +- $(top_builddir)/lib/common/libcrmcommon.la \ ++stonithd_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/common/libcrmcluster.la \ +- $(top_builddir)/lib/fencing/libstonithd.la ++ $(top_builddir)/lib/fencing/libstonithd.la \ ++ $(CRYPTOLIB) $(CLUSTERLIBS) +--- a/mcp/Makefile.am ++++ b/mcp/Makefile.am +@@ -34,7 +34,7 @@ + noinst_HEADERS = + + pacemakerd_SOURCES = pacemaker.c corosync.c +-pacemakerd_LDADD = $(CLUSTERLIBS) $(top_builddir)/lib/common/libcrmcommon.la -lcfg -lconfdb ++pacemakerd_LDADD = $(top_builddir)/lib/common/libcrmcommon.la $(CLUSTERLIBS) -lcfg -lconfdb + + %.8: % + echo Creating $@ +--- a/crmd/Makefile.am ++++ b/crmd/Makefile.am +@@ -41,14 +41,13 @@ + cib.c pengine.c tengine.c lrm.c \ + utils.c misc.c te_events.c te_actions.c te_utils.c te_callbacks.c + +-crmd_LDADD = $(CLUSTERLIBS) -llrm \ +- $(top_builddir)/lib/fencing/libstonithd.la \ ++crmd_LDADD = $(top_builddir)/lib/fencing/libstonithd.la \ + $(top_builddir)/lib/transition/libtransitioner.la \ + $(top_builddir)/lib/pengine/libpe_rules.la \ + $(top_builddir)/lib/cib/libcib.la \ + $(top_builddir)/lib/common/libcrmcluster.la \ +- $(top_builddir)/lib/common/libcrmcommon.la +- ++ $(top_builddir)/lib/common/libcrmcommon.la \ ++ $(CLUSTERLIBS) -llrm + if BUILD_XML_HELP + man8_MANS = crmd.8 + +--- a/pengine/Makefile.am ++++ b/pengine/Makefile.am +@@ -73,14 +73,14 @@ + libpengine_la_LIBADD = $(top_builddir)/lib/pengine/libpe_status.la + + pengine_SOURCES = main.c +-pengine_LDADD = $(COMMONLIBS) $(top_builddir)/lib/cib/libcib.la ++pengine_LDADD = $(top_builddir)/lib/cib/libcib.la $(COMMONLIBS) + # libcib for get_object_root() + # $(top_builddir)/lib/hbclient/libhbclient.la + + ptest_SOURCES = ptest.c +-ptest_LDADD = $(COMMONLIBS) \ +- $(top_builddir)/lib/cib/libcib.la \ +- $(top_builddir)/lib/transition/libtransitioner.la ++ptest_LDADD = $(top_builddir)/lib/cib/libcib.la \ ++ $(top_builddir)/lib/transition/libtransitioner.la \ ++ $(COMMONLIBS) + + install-exec-local: + $(mkinstalldirs) $(DESTDIR)/$(PE_STATE_DIR) +--- a/lib/common/Makefile.am ++++ b/lib/common/Makefile.am +@@ -38,7 +38,7 @@ + endif + + libcrmcluster_la_LDFLAGS = -version-info 1:0:0 +-libcrmcluster_la_LIBADD = $(CLUSTERLIBS) libcrmcommon.la ++libcrmcluster_la_LIBADD = libcrmcommon.la $(CLUSTERLIBS) + libcrmcluster_la_DEPENDENCIES = libcrmcommon.la + + # Can't use -Wcast-qual here because glib insists on pretending things are const +@@ -51,7 +51,8 @@ + + libcrmcommon_la_SOURCES = ipc.c utils.c xml.c iso8601.c iso8601_fields.c remote.c mainloop.c + +-libcrmcommon_la_LDFLAGS = -version-info 2:0:0 $(GNUTLSLIBS) ++libcrmcommon_la_LDFLAGS = -version-info 2:0:0 ++libcrmcommon_la_LIBADD = $(GNUTLSLIBS) + + clean-generic: + rm -f *.log *.debug *.xml *~ +--- a/lib/plugins/lrm/Makefile.am ++++ b/lib/plugins/lrm/Makefile.am +@@ -29,8 +29,8 @@ + plugin_LTLIBRARIES = stonith.la + + stonith_la_SOURCES = raexecstonith.c +-stonith_la_LDFLAGS = -lpils -export-dynamic -module -avoid-version \ +- $(top_builddir)/lib/fencing/libstonithd.la -llrm ++stonith_la_LDFLAGS = -export-dynamic -module -avoid-version ++stonith_la_LIBADD = $(top_builddir)/lib/fencing/libstonithd.la -lpils -llrm + + install-exec-local: + $(mkinstalldirs) $(DESTDIR)$(lrmdir) +--- a/lib/fencing/Makefile.am ++++ b/lib/fencing/Makefile.am +@@ -25,8 +25,8 @@ + lib_LTLIBRARIES = libstonithd.la + + libstonithd_la_SOURCES = st_client.c +-libstonithd_la_LDFLAGS = -version-info 1:0:0 \ +- -lplumb -lstonith $(CLUSTERLIBS) \ +- $(top_builddir)/lib/common/libcrmcommon.la ++libstonithd_la_LDFLAGS = -version-info 1:0:0 ++libstonithd_la_LIBADD = $(top_builddir)/lib/common/libcrmcommon.la \ ++ -lplumb -lstonith $(CLUSTERLIBS) + + AM_CFLAGS = $(INCLUDES) +--- a/cib/Makefile.am ++++ b/cib/Makefile.am +@@ -47,8 +47,8 @@ + cib_SOURCES = io.c messages.c notify.c \ + callbacks.c main.c remote.c common.c + +-cib_LDADD = $(COMMONLIBS) $(CRYPTOLIB) $(CLUSTERLIBS) \ +- $(top_builddir)/lib/common/libcrmcluster.la ++cib_LDADD = $(top_builddir)/lib/common/libcrmcluster.la \ ++ $(COMMONLIBS) $(CRYPTOLIB) $(CLUSTERLIBS) + + cibmon_SOURCES = cibmon.c + cibmon_LDADD = $(COMMONLIBS) +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -62,8 +62,8 @@ + noinst_HEADERS = + + crmadmin_SOURCES = crmadmin.c +-crmadmin_LDADD = $(COMMONLIBS) $(CLUSTERLIBS) \ +- $(top_builddir)/lib/pengine/libpe_status.la ++crmadmin_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ ++ $(COMMONLIBS) $(CLUSTERLIBS) + + crm_uuid_SOURCES = crm_uuid.c + crm_uuid_LDADD = $(top_builddir)/lib/common/libcrmcluster.la +@@ -75,45 +75,45 @@ + crm_shadow_LDADD = $(COMMONLIBS) + + crm_node_SOURCES = ccm_epoche.c +-crm_node_LDADD = $(COMMONLIBS) $(CLUSTERLIBS) \ +- $(top_builddir)/lib/common/libcrmcluster.la ++crm_node_LDADD = $(top_builddir)/lib/common/libcrmcluster.la \ ++ $(COMMONLIBS) $(CLUSTERLIBS) + + crm_simulate_SOURCES = crm_inject.c + crm_simulate_CFLAGS = -I$(top_srcdir)/pengine + +-crm_simulate_LDADD = $(COMMONLIBS) \ +- $(top_builddir)/lib/pengine/libpe_status.la \ ++crm_simulate_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ + $(top_builddir)/pengine/libpengine.la \ + $(top_builddir)/lib/cib/libcib.la \ +- $(top_builddir)/lib/transition/libtransitioner.la ++ $(top_builddir)/lib/transition/libtransitioner.la \ ++ $(COMMONLIBS) + + crm_diff_SOURCES = xml_diff.c + crm_diff_LDADD = $(COMMONLIBS) + + crm_mon_SOURCES = crm_mon.c +-crm_mon_LDADD = $(COMMONLIBS) $(SNMPLIBS) $(ESMTPLIBS) -llrm \ +- $(top_builddir)/lib/pengine/libpe_status.la ++crm_mon_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ ++ $(COMMONLIBS) $(SNMPLIBS) $(ESMTPLIBS) -llrm + + # Arguments could be made that this should live in crm/pengine + crm_verify_SOURCES = crm_verify.c +-crm_verify_LDADD = $(COMMONLIBS) \ +- $(top_builddir)/lib/pengine/libpe_status.la \ +- $(top_builddir)/pengine/libpengine.la ++crm_verify_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ ++ $(top_builddir)/pengine/libpengine.la \ ++ $(COMMONLIBS) + + crm_attribute_SOURCES = crm_attribute.c + crm_attribute_LDADD = $(COMMONLIBS) + + crm_resource_SOURCES = crm_resource.c +-crm_resource_LDADD = $(COMMONLIBS) \ +- $(top_builddir)/lib/pengine/libpe_rules.la \ ++crm_resource_LDADD = $(top_builddir)/lib/pengine/libpe_rules.la \ + $(top_builddir)/lib/pengine/libpe_status.la \ +- $(top_builddir)/pengine/libpengine.la ++ $(top_builddir)/pengine/libpengine.la \ ++ $(COMMONLIBS) + + iso8601_SOURCES = test.iso8601.c + iso8601_LDADD = $(COMMONLIBS) + + attrd_SOURCES = attrd.c +-attrd_LDADD = $(COMMONLIBS) $(top_builddir)/lib/common/libcrmcluster.la ++attrd_LDADD = $(top_builddir)/lib/common/libcrmcluster.la $(COMMONLIBS) + + #pingd_SOURCES = pingd.c + #pingd_LDADD = $(COMMONLIBS) +@@ -123,14 +123,14 @@ + + if BUILD_SERVICELOG + notifyServicelogEvent_SOURCES = notifyServicelogEvent.c +-notifyServicelogEvent_CFLAGS = `pkg-config --cflags servicelog-1` +-notifyServicelogEvent_LDFLAGS = `pkg-config --libs servicelog-1` $(top_builddir)/lib/common/libcrmcommon.la ++notifyServicelogEvent_CFLAGS = $(SERVICELOG_CFLAGS) ++notifyServicelogEvent_LDADD = $(top_builddir)/lib/common/libcrmcommon.la $(SERVICELOG_LIBS) + endif + + if BUILD_OPENIPMI_SERVICELOG + ipmiservicelogd_SOURCES = ipmiservicelogd.c +-ipmiservicelogd_CFLAGS = `pkg-config --cflags OpenIPMI OpenIPMIposix servicelog-1` +-ipmiservicelogd_LDFLAGS = `pkg-config --libs OpenIPMI OpenIPMIposix servicelog-1` $(top_builddir)/lib/common/libcrmcommon.la ++ipmiservicelogd_CFLAGS = $(OPENIPMI_SERVICELOG_CFLAGS) $(SERVICELOG_CFLAGS) ++ipmiservicelogd_LDFLAGS = $(top_builddir)/lib/common/libcrmcommon.la $(OPENIPMI_SERVICELOG_LIBS) $(SERVICELOG_LIBS) + endif + + %.8: % crm_attribute diff --git a/sys-cluster/pacemaker/files/pacemaker-1.1.4-installpaths.patch b/sys-cluster/pacemaker/files/pacemaker-1.1.4-installpaths.patch deleted file mode 100644 index 5187b7967..000000000 --- a/sys-cluster/pacemaker/files/pacemaker-1.1.4-installpaths.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- extra/Makefile.am -+++ extra/Makefile.am -@@ -20,5 +20,5 @@ - - SUBDIRS = resources - --mibdir = $(datadir)/snmp/mibs -+mibdir = $(datadir)/$(PACKAGE)/snmp/mibs - mib_DATA = PCMK-MIB.txt diff --git a/sys-cluster/pacemaker/pacemaker-1.1.4.ebuild b/sys-cluster/pacemaker/pacemaker-1.1.4-r4.ebuild index 3e90a316d..d95597b98 100644 --- a/sys-cluster/pacemaker/pacemaker-1.1.4.ebuild +++ b/sys-cluster/pacemaker/pacemaker-1.1.4-r4.ebuild @@ -16,31 +16,26 @@ SRC_URI="http://hg.clusterlabs.org/${PN}/1.1/archive/${MY_P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="+ais heartbeat smtp snmp static-libs" +IUSE="heartbeat smtp snmp static-libs" RDEPEND=" dev-libs/libxslt + sys-cluster/corosync sys-cluster/cluster-glue sys-cluster/resource-agents - ais? ( sys-cluster/openais ) heartbeat? ( >=sys-cluster/heartbeat-3.0.0 ) - !heartbeat? ( !ais? ( sys-cluster/openais ) ) smtp? ( net-libs/libesmtp ) snmp? ( net-analyzer/net-snmp ) " DEPEND="${RDEPEND}" PATCHES=( - "${FILESDIR}/${P}-installpaths.patch" + "${FILESDIR}/${P}-autotools-r2.patch" ) -S="${WORKDIR}/${MY_PN}-1-1-${MY_P}" +S=${WORKDIR}/${MY_PN}-1-1-${MY_P} pkg_setup() { - if ! use ais && ! use heartbeat; then - ewarn "You disabled both cluster implementations" - ewarn "Silently enabling OpenAIS/CoroSync support." - fi python_set_active_version 2 python_pkg_setup } @@ -53,7 +48,7 @@ src_prepare() { src_configure() { local myopts="" - use heartbeat || use ais || myopts="--with-ais" + use heartbeat || myopts="--with-ais" # appends lib to localstatedir automatically econf \ --localstatedir=/var \ @@ -62,7 +57,6 @@ src_configure() { --with-cs-quorum \ --without-cman \ $(use_with smtp esmtp) \ - $(use_with ais) \ $(use_with heartbeat) \ $(use_with snmp) \ $(use_enable static-libs static) \ @@ -84,4 +78,7 @@ pkg_postinst() { elog "/etc/init.d/pacemaker start" elog elog "[1] http://theclusterguy.clusterlabs.org/post/907043024/introducing-the-pacemaker-master-control-process-for" -}
\ No newline at end of file + elog + elog "Note: sys-cluster/openais is no longer a hard dependency of ${P}," + elog "so you may need to install it yourself to suit your needs." +} |