summaryrefslogtreecommitdiff
path: root/pcr/cluster-glue
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2013-07-12 22:53:11 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2013-07-12 22:53:11 -0300
commite14736ca7ac051726b587d8fdb8368be502a9109 (patch)
tree6a40b3b2de9bf45e8f31ba5fd45ee8f2615bd4ae /pcr/cluster-glue
parente6e169990bdfc35fb6151f148510bf3f0da1dc1e (diff)
parent360a407f262ac47087ff29718465fbfc7765cb73 (diff)
Merge branch 'master' of ssh://gparabola/srv/git/abslibre
Diffstat (limited to 'pcr/cluster-glue')
-rw-r--r--pcr/cluster-glue/PKGBUILD169
-rw-r--r--pcr/cluster-glue/cluster-glue.install17
-rw-r--r--pcr/cluster-glue/fixing-path.sed29
-rw-r--r--pcr/cluster-glue/ha-log.service12
-rw-r--r--pcr/cluster-glue/replace-linux_os-to-gnulinux_os-term.sed73
-rw-r--r--pcr/cluster-glue/replace-opensource-to-free-term.sed19
6 files changed, 319 insertions, 0 deletions
diff --git a/pcr/cluster-glue/PKGBUILD b/pcr/cluster-glue/PKGBUILD
new file mode 100644
index 000000000..2c45a3b0c
--- /dev/null
+++ b/pcr/cluster-glue/PKGBUILD
@@ -0,0 +1,169 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=cluster-glue
+_pkgname1=${pkgname::7}
+_pkgname2=${pkgname:8}
+_pkgname=${_pkgname1^}_${_pkgname2^}
+pkgver=1.0.11
+pkgrel=14
+pkgdesc='Set of libraries, tools and utilities suitable for the Heartbeat/Pacemaker cluster stack (Linux-HA)'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+group=linux-ha
+url=http://$group.org/wiki/$_pkgname
+license=(
+ GPL2
+ LGPL2.1
+)
+depends=(
+ curl
+ dbus-glib
+ glib2
+ libaio
+ libesmtp
+ libltdl
+ libnet
+ libxml2
+ net-snmp
+ openhpi
+ openipmi
+ openssh
+ python2
+ util-linux
+)
+optdepends=net-tools
+makedepends=(
+ help2man
+ libxslt
+ lynx
+ net-tools
+ openssh
+ valgrind
+ w3m
+)
+options=(!libtool)
+provides=(ha-$_pkgname2)
+conflicts=ha-$_pkgname2
+replaces=ha-$_pkgname2
+install=$pkgname.install
+source=(
+ http://hg.$group.org/$_pkgname2/archive/$_pkgname2-$pkgver.tar.bz2
+ ha-log.service
+ fixing-path.sed
+ replace-linux_os-to-gnulinux_os-term.sed
+ replace-opensource-to-free-term.sed
+)
+sha512sums=(
+ 35ac8ac555c39f24c11e3a768cc50eba051fe617edf4cdc0429dac73f45a472f144cfe6ec5faff575606f2b04ff76a2f732556d848b61410c2683d93ba928413
+ bb5bc5c5a9347302be583c43b100c0c3760ec4dcc3348a9f9708d5b2c58ec02dd5782c5ac9dcb86223258493ad3fba8ddd8dc5670390f0f602c34869b26bee6d
+ ce58a2af9f32265f12cc4984e9ae7f285fdb7737813ecccc0780015d048938d9dd79278635eb1cc6833f12f37a8c43211fec17411780220cf38fc44b91ecc076
+ e59386aee4db5857fa131798327aa449a5efcd7d50c3ab45dadfa0becc31698a62367ce83b85ca739bdebaad4a9daf96d02c42673a4e26294ec0fa67323fdb5b
+ c82bd919d1cd02afccd10aea3e015f289ac97e387a1485097d681f9161a00c64859a5dce0ed36b98ad6a340264c2d854dcc83e3248e12828795b73c6ff67ef5b
+)
+
+prepare() {
+ export _CLUSTER_USER=hacluster
+ export _CLUSTER_GROUP=haclient
+ _DGID=666
+ _DUID=666
+
+ #verify the cluster user and group
+ if ! getent group $_CLUSTER_GROUP >/dev/null;then
+ msg 'BEFORE COMPILE THIS SOFTWARE YOU MUST CREATE A CLUSTER GROUP, EXECUTE AS ROOT:'
+ echo -e "# groupadd -r -g $_DGID $_CLUSTER_GROUP\n"
+ _EXITCODE=1
+ fi
+ if ! getent passwd $_CLUSTER_USER >/dev/null;then
+ msg 'BEFORE COMPILE THIS SOFTWARE YOU MUST CREATE A CLUSTER USER, EXECUTE AS ROOT:'
+ echo -e "# useradd -r -g $_CLUSTER_GROUP -u $_DUID -d /var/lib/heartbeat/cores/$_CLUSTER_USER -s /sbin/nologin -c \"cluster user\" $_CLUSTER_USER\n"
+ _EXITCODE=1
+ fi
+ if [[ $_EXITCODE -eq 1 ]] ;then
+ return 1
+ fi
+
+ cd $srcdir/Reusable-${_pkgname1^}-Components-$_pkgname2--$_pkgname2-$pkgver
+ sed -i 's|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|;
+ s| -O0||;
+ s|AM_INIT_AUTOMAKE($PACKAGE_NAME, $PACKAGE_VERSION)|AM_INIT_AUTOMAKE|;
+ s|${localstatedir}/lock ${localstatedir}/spool/lock ${localstatedir}/spool/locks ${localstatedir}/lock|/run/lock|;
+ s|/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin|/usr/bin|;
+ ' configure.ac
+ sed -i 's|INCLUDES|AM_CPPFLAGS|;
+ ' $(grep -rlI INCLUDES | grep Makefile.am)
+
+ # fixing path
+ sed -i -f $srcdir/fixing-path.sed\
+ $(grep -rlI /bin)\
+ $(grep -rlI /sbin)\
+ $(grep -rlI /lib)\
+ $(grep -rlI /var)
+
+ # fixing python2 path
+ sed -i 's|bin/env python|bin/env python2|g;
+ s|bin/python|bin/python2|g;
+ ' $(grep -rlI 'bin/env python')\
+ $(grep -rlI bin/python)
+
+ # remove Linux (OS) term to GNU/Linux (OS) term
+ sed -i -f $srcdir/replace-linux_os-to-gnulinux_os-term.sed\
+ $(grep -rlI Linux)
+
+ # replace Open Source term to Free term
+ sed -i -f $srcdir/replace-opensource-to-free-term.sed\
+ $(grep -rilI 'open.\{0,1\}source')
+#}
+
+#build() { # disabled, due that is needed internet for generating man pages with libxslt.
+ cd $srcdir/Reusable-${_pkgname1^}-Components-$_pkgname2--$_pkgname2-$pkgver
+ setarch $CARCH ./autogen.sh
+ setarch $CARCH ./configure\
+ --sysconfdir=/etc\
+ --prefix=/usr\
+ --exec-prefix=/usr\
+ --bindir=/usr/bin\
+ --sbindir=/usr/bin\
+ --includedir=/usr/include\
+ --oldincludedir=/usr/include\
+ --libdir=/usr/lib\
+ --libexecdir=/usr/lib\
+ --datarootdir=/usr/share\
+ --datadir=/usr/share\
+ --docdir=/usr/share/doc/$pkgname\
+ --dvidir=/usr/share/doc/$pkgname\
+ --htmldir=/usr/share/doc/$pkgname\
+ --pdfdir=/usr/share/doc/$pkgname\
+ --psdir=/usr/share/doc/$pkgname\
+ --infodir=/usr/share/info\
+ --localedir=/usr/share/locale\
+ --mandir=/usr/share/man\
+ --localstatedir=/var\
+ --disable-ansi\
+ --disable-fatal-warnings\
+ --disable-static\
+ --enable-doc\
+ --enable-libnet\
+ --enable-shared\
+ --enable-upstart\
+ --with-daemon-group=haclient\
+ --with-daemon-user=hacluster\
+ --with-ocf-root=/usr/lib/ocf
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/Reusable-${_pkgname1^}-Components-$_pkgname2--$_pkgname2-$pkgver
+ setarch $CARCH make DESTDIR=$pkgdir install
+
+ install -d $pkgdir/usr/lib/systemd/system
+ install -m644 $srcdir/ha-log.service $pkgdir/usr/lib/systemd/system
+
+ msg 'AFTER COMPILE THIS SOFTWARE YOU MUST DELETE A CLUSTER USER AND A CLUSTER GROUP, EXECUTE AS ROOT:'
+ echo -e "# userdel $_CLUSTER_USER"
+ echo -e "# groupdel $_CLUSTER_GROUP"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/cluster-glue/cluster-glue.install b/pcr/cluster-glue/cluster-glue.install
new file mode 100644
index 000000000..05e2160d3
--- /dev/null
+++ b/pcr/cluster-glue/cluster-glue.install
@@ -0,0 +1,17 @@
+_CLUSTER_USER=hacluster
+_CLUSTER_GROUP=haclient
+_DGID=666
+_DUID=666
+
+pre_install() {
+ getent group $_CLUSTER_GROUP >/dev/null || groupadd -r -g $_DGID $_CLUSTER_GROUP
+ getent passwd $_CLUSTER_USER >/dev/null || useradd -r -g $_CLUSTER_GROUP -u $_DUID -d /var/lib/heartbeat/cores/hacluster -s /sbin/nologin -c 'cluster user' $_CLUSTER_USER
+}
+
+post_install() {
+ echo -e 'Now you must install ha-resourceagent, ha-heartbeat and ha-pacemaker'
+}
+post_remove() {
+ echo -e "Deleting user $_CLUSTER_USER and group $_CLUSTER_GROUP"
+ userdel $_CLUSTER_USER && groupdel $_CLUSTER_GROUP
+}
diff --git a/pcr/cluster-glue/fixing-path.sed b/pcr/cluster-glue/fixing-path.sed
new file mode 100644
index 000000000..43ef66253
--- /dev/null
+++ b/pcr/cluster-glue/fixing-path.sed
@@ -0,0 +1,29 @@
+s|/bin/sh|/bin/bash|g;
+s| /bin| /usr/bin|g;
+s|=/bin|=/usr/bin|g;
+s|!/bin|!/usr/bin|g;
+s|:/bin|:/usr/bin|g;
+s|#/bin|#/usr/bin|g;
+s| /sbin| /usr/bin|g;
+s|=/sbin|=/usr/bin|g;
+s|!/sbin|!/usr/bin|g;
+s|:/sbin|:/usr/bin|g;
+s|#/sbin|#/usr/bin|g;
+s| /usr/sbin| /usr/bin|g;
+s|=/usr/sbin|=/usr/bin|g;
+s|!/usr/sbin|!/usr/bin|g;
+s|:/usr/sbin|:/usr/bin|g;
+s|#/usr/sbin|#/usr/bin|g;
+s|:/usr/bin:/usr/bin|:/usr/bin|g;
+s|lib64|lib|g;
+s| /lib| /usr/lib|g;
+s|=/lib|=/usr/lib|g;
+s|#/lib|#/usr/lib|g;
+s| /usr/libexec| /usr/lib|g;
+s|=/usr/libexec|=/usr/lib|g;
+s|#/usr/libexec|#/usr/lib|g;
+s| /usr/var| /var|g;
+s|=/usr/var|=/var|g;
+s|#/usr/var|#/var|g;
+s|/var/lock|/run/lock|g;
+s|/var/run|/run|g;
diff --git a/pcr/cluster-glue/ha-log.service b/pcr/cluster-glue/ha-log.service
new file mode 100644
index 000000000..5115298d7
--- /dev/null
+++ b/pcr/cluster-glue/ha-log.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Non-blocking logging daemon.
+Requires=network.target remote-fs.target
+Before=heartbeat.service openais.service corosync.service
+
+[Service]
+Type=forking
+ExecStart=/usr/lib/heartbeat/ha_logd -d >/dev/null 2>&1
+ExecStop=/usr/lib/heartbeat/ha_logd -k >/dev/null 2>&1
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/cluster-glue/replace-linux_os-to-gnulinux_os-term.sed b/pcr/cluster-glue/replace-linux_os-to-gnulinux_os-term.sed
new file mode 100644
index 000000000..2c9801c11
--- /dev/null
+++ b/pcr/cluster-glue/replace-linux_os-to-gnulinux_os-term.sed
@@ -0,0 +1,73 @@
+s|Linux,|GNU/Linux,|g;
+s|Linux and|GNU/Linux and|g;
+s|Linux distro|GNU/Linux distro|g;
+s|Linux distribution|GNU/Linux distribution|g;
+s|Linux machine|GNU/Linux machine|g;
+s|Linux Only|GNU/Linux Only|g;
+s|Linux only|GNU/Linux only|g;
+s|Linux operating|GNU/Linux operating|g;
+s|Linux OS|GNU/Linux OS|g;
+s|Linux platform|GNU/Linux platform|g;
+s|Linux software|GNU/Linux software|g;
+s|Linux specific|GNU/Linux specific|g;
+s|Linux system|GNU/Linux system|g;
+s|Linux will|GNU/Linux will|g;
+s|# Linux$|# GNU/Linux|g;
+s|# Linux[.]$|# GNU/Linux.|g;
+s|* Linux$|* GNU/Linux|g;
+s|* Linux[.]$|* GNU/Linux.|g;
+s|// Linux$|// GNU/Linux|g;
+s|// Linux[.]$|// GNU/Linux.|g;
+s|, Linux|, GNU/Linux|g;
+s|As Linux|As GNU/Linux|g;
+s|as Linux|as GNU/Linux|g;
+s|And Linux|And GNU/Linux|g;
+s|and Linux|and GNU/Linux|g;
+s|Be Linux|Be GNU/Linux|g;
+s|be Linux|be GNU/Linux|g;
+s|Because Linux|Because GNU/Linux|g;
+s|because Linux|because GNU/Linux|g;
+s|e[.]g[.] Linux|e.g. GNU/Linux|g;
+s|For Linux|For GNU/Linux|g;
+s|for Linux|for GNU/Linux|g;
+s|In Linux|In GNU/Linux|g;
+s|in Linux|in GNU/Linux|g;
+s|Like Linux|Like GNU/Linux|g;
+s|like Linux|like GNU/Linux|g;
+s|non-Linux|non GNU/Linux|g;
+s|Of Linux|Of GNU/Linux|g;
+s|of Linux|of GNU/Linux|g;
+s|On Linux|On GNU/Linux|g;
+s|on Linux|on GNU/Linux|g;
+s|OS type: Linux|OS type: GNU/Linux|g;
+s|Other Linux|Other GNU/Linux|g;
+s|other Linux|other GNU/Linux|g;
+s|The Linux|The GNU/Linux|g;
+s|the Linux|the GNU/Linux|g;
+s|Typically Linux|Typically GNU/Linux|g;
+s|typically Linux|typically GNU/Linux|g;
+s|To Linux|To GNU/Linux|g;
+s|to Linux|to GNU/Linux|g;
+s|Under Linux|Under GNU/Linux|g;
+s|under Linux|under GNU/Linux|g;
+s|e2fsprogs, typically GNU/Linux|e2fsprogs, typically Linux|g;
+s|GNU/GNU|GNU|g;
+s|ArchGNU/Linux|ArchLinux|g;
+s|MkGNU/Linux|MkLinux|g;
+s|GNU/Linux device|Linux device|g;
+s|GNU/Linux Director Daemon|Linux Director Daemon|g;
+s|GNU/Linux is a registered trademark of Linus Torvalds|Linux is a registered trademark of Linus Torvalds|g;
+s|GNU/Linux kernel|Linux kernel|g;
+s|GNU/Linux specific kernel|Linux specific kernel|g;
+s|GNU/Linux Standard Base|Linux Standard Base|g;
+s|GNU/Linux sysfs|Linux sysfs|g;
+s|GNU/Linux Virtual Server|Linux Virtual Server|g;
+s|GNU/Linux Watchdog|Linux Watchdog|g;
+s|GNU/Linux watchdog|Linux watchdog|g;
+s|GNU/LinuxHA|LinuxHA|g;
+s|GNU/Linux-HA|Linux-HA|g;
+s|GNU/LinuxSCSI|LinuxSCSI|g;
+s|HA GNU/Linux|HA Linux|g;
+s|High-Availability GNU/Linux|High-Availability Linux|g;
+s|SEGNU/Linux|SELinux|g;
+s|VA GNU/Linux Cluster|VA Linux Cluster|g;
diff --git a/pcr/cluster-glue/replace-opensource-to-free-term.sed b/pcr/cluster-glue/replace-opensource-to-free-term.sed
new file mode 100644
index 000000000..c086bb91e
--- /dev/null
+++ b/pcr/cluster-glue/replace-opensource-to-free-term.sed
@@ -0,0 +1,19 @@
+s|Open Source Definition (Version [0-9].[0-9])|Free Software Definition|g;
+s|Open Source Definition|Free Software Definition|g;
+s|Open Source Initiative|Free Software Foundation|g;
+s|OSI Certifi|FSF Certif|g;
+s|OSI certifi|FSF certif|g;
+s|opensource[.]org/osd-annotated|gnu.org/philosophy/free-sw.html|g;
+s|opensource[.]org/osd|gnu.org/philosophy/free-sw.html|g;
+s|opensource[.]org/|gnu.org/philosophy/free-sw.html|g;
+s|[ _-].\{1,3\}[ _-][oO][pP][eE][nN].\{0,1\}[sS][oO][uU][rR][cC][eE]||g;
+s|[oO][pP][eE][nN].\{0,1\}[sS][oO][uU][rR][cC][eE][ _-].\{1,3\}[ _-]||g;
+s|OPEN.\{0,1\}SOURCE|FREE|g;
+s|Open.\{0,1\}[sS]ource|Free|g;
+s|open.\{0,1\}[sS]ource|free|g;
+s|Free Development Lab|Open Source Development Lab|g;
+s|free[.]org|opensource.org|g;
+s|gnu[.]org/philosophy/free-sw[.]htmllicenses|opensource.org/licenses|g;
+s|oss[.]software[.]ibm[.]com/developerworks/free|oss.software.ibm.com/developerworks/opensource|g;
+s|oberhumer[.]com/free|oberhumer.com/opensource|g;
+s|free@google[.]com|opensource@google.com|g;