summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Bidulock2018-09-02 15:58:17 -0600
committerBrian Bidulock2018-09-02 15:58:17 -0600
commit95c77348632ad9714a418019100d045cdcdd965d (patch)
tree7693758f5f025deff38affe1cebe249a86115732
parentbbc78f5a9c6fcb6fbba05c9317f845408a6c72d4 (diff)
downloadaur-95c77348632ad9714a418019100d045cdcdd965d.tar.gz
add systemd files and better build
-rw-r--r--.SRCINFO11
-rw-r--r--PKGBUILD33
-rwxr-xr-xcsync2-rm-ssl-cert46
-rw-r--r--csync2.socket7
-rw-r--r--csync2@.service9
5 files changed, 95 insertions, 11 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f3c57917631f..7476ff618701 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,16 +1,25 @@
pkgbase = csync2
pkgdesc = Asynchronous cluster syncronisation tool based on librsync and inspired by Unison
pkgver = 2.0
- pkgrel = 3
+ pkgrel = 4
url = http://oss.linbit.com/csync2/
arch = i686
arch = x86_64
license = GPL
+ makedepends = texlive-latexextra
+ makedepends = sqlite
+ makedepends = git
depends = librsync
depends = gnutls
optdepends = sqlite: for sqlite backend
source = http://oss.linbit.com/csync2/csync2-2.0.tar.gz
+ source = csync2.socket
+ source = csync2@.service
+ source = csync2-rm-ssl-cert
sha256sums = 11cb37380fb185bce0c22b804fec9b01c385d9d83cc528cfd48d748453834fa2
+ sha256sums = ccb6ac225d2a4b490d47c87d835c1f2fb8caa5a21c46cf117cce0253c05c8eb1
+ sha256sums = c51e1ca1b41e0204d73e036727f8122d2420e8b044ec50ae9fe8fc07a0712a43
+ sha256sums = f63ccb9d5dd4da556eec7920aed21925d8809d4fb6c081b22e82cc87c617567f
pkgname = csync2
diff --git a/PKGBUILD b/PKGBUILD
index 9835f90b0f13..65ee70d0ea23 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,17 +1,25 @@
-# Maintainer : gls < ghostlovescorebg at gmail dot com >
+# vim:set ts=2 sw=2 et:
+# Maintainer: Brian Bidulock <bidulock@openss7.org>
+# Contributor : gls < ghostlovescorebg at gmail dot com >
pkgname=csync2
pkgver=2.0
-pkgrel=3
+pkgrel=4
arch=('i686' 'x86_64')
pkgdesc="Asynchronous cluster syncronisation tool based on librsync and inspired by Unison"
url="http://oss.linbit.com/csync2/"
license=('GPL')
-makedepnds=('sqlite')
+makedepends=('texlive-latexextra' 'sqlite' 'git')
depends=('librsync' 'gnutls')
optdepends=('sqlite: for sqlite backend')
-source=(http://oss.linbit.com/csync2/${pkgname}-${pkgver}.tar.gz)
-sha256sums=('11cb37380fb185bce0c22b804fec9b01c385d9d83cc528cfd48d748453834fa2')
+source=("http://oss.linbit.com/csync2/${pkgname}-${pkgver}.tar.gz"
+ 'csync2.socket'
+ 'csync2@.service'
+ 'csync2-rm-ssl-cert')
+sha256sums=('11cb37380fb185bce0c22b804fec9b01c385d9d83cc528cfd48d748453834fa2'
+ 'ccb6ac225d2a4b490d47c87d835c1f2fb8caa5a21c46cf117cce0253c05c8eb1'
+ 'c51e1ca1b41e0204d73e036727f8122d2420e8b044ec50ae9fe8fc07a0712a43'
+ 'f63ccb9d5dd4da556eec7920aed21925d8809d4fb6c081b22e82cc87c617567f')
build() {
cd ${pkgname}-${pkgver}
@@ -20,15 +28,20 @@ build() {
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/bin \
- --sysconfdir=/etc \
+ --sysconfdir=/etc/csync2 \
--localstatedir=/var
-
- make
+ make V=0
}
package() {
cd ${pkgname}-${pkgver}
- make DESTDIR="${pkgdir}" install
+ make -j1 DESTDIR="${pkgdir}" install
+ install -Dm644 ../'csync2.socket' "$pkgdir/usr/lib/systemd/system/csync2.socket"
+ install -Dm644 ../'csync2@.service' "$pkgdir/usr/lib/systemd/system/csync2@.service"
+ install -Dm755 ../'csync2-rm-ssl-cert' "$pkgdir/usr/bin/csync2-rm-ssl-cert"
+ rm -fr "${pkgdir}"/var
+ install -Dm644 /dev/stdin "${pkgdir}"/usr/lib/tmpfiles.d/${_pkgname}.conf <<-END
+ d /var/lib/${_pkgname} 0755 root root -
+END
}
-# vim:set ts=2 sw=2 et:
diff --git a/csync2-rm-ssl-cert b/csync2-rm-ssl-cert
new file mode 100755
index 000000000000..06a3809a5951
--- /dev/null
+++ b/csync2-rm-ssl-cert
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+if [ $# -eq 0 -o "$1" = "-h" ]; then
+ cat <<END
+
+Remove a peer's SSL certificate from csync2's local database. Use this after
+replacing a peer node (or regenerating its SSL certificate).
+
+Usage: $0 [-h] <hostname>
+
+Options:
+ -h Display this usage information
+
+END
+ exit 0
+fi
+
+DBFILE=/var/lib/csync2/$(hostname).db3
+if [ ! -f "$DBFILE" ]; then
+ echo "Local csync2 database ($DBFILE) not found."
+ exit 1
+fi
+
+# Strip double and single quotes from hostname so they can't interfere with the SQL
+PEERNAME=$(echo $1 | sed -e "s/['\"]//g")
+
+certcount()
+{
+ echo "SELECT COUNT(peername) FROM x509_cert WHERE peername='$1';" | sqlite3 $DBFILE
+}
+
+if [ $(certcount "$PEERNAME") -eq 0 ]; then
+ echo "Certificate for '$PEERNAME' not in local database."
+ exit 0
+fi
+
+echo "DELETE FROM x509_cert WHERE peername='$PEERNAME';" | sqlite3 $DBFILE
+
+if [ $(certcount "$PEERNAME") -ne 0 ]; then
+ echo "Error removing certificate for '$PEERNAME' from local database."
+ exit 1
+fi
+
+echo "Certificate for '$PEERNAME' removed from local database."
+
+
diff --git a/csync2.socket b/csync2.socket
new file mode 100644
index 000000000000..c314aa27b9ca
--- /dev/null
+++ b/csync2.socket
@@ -0,0 +1,7 @@
+[Socket]
+ListenStream=30865
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
+
diff --git a/csync2@.service b/csync2@.service
new file mode 100644
index 000000000000..d2cc59653a33
--- /dev/null
+++ b/csync2@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Csync2 connection handler
+After=syslog.target
+
+[Service]
+ExecStart=-/usr/bin/csync2 -i -v
+StandardInput=socket
+StandardOutput=socket
+