diff options
-rw-r--r-- | .SRCINFO | 41 | ||||
-rw-r--r-- | PKGBUILD | 65 | ||||
-rw-r--r-- | oml2-server.conf | 13 | ||||
-rw-r--r-- | oml2-server.logrotate | 9 | ||||
-rw-r--r-- | oml2-server.rc | 104 | ||||
-rw-r--r-- | oml2-server.service | 32 | ||||
-rw-r--r-- | oml2.install | 24 |
7 files changed, 288 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..20f2e28d35cd --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,41 @@ +# Generated by makepkg 5.0.1 +# Tue Mar 8 04:52:14 UTC 2016 +pkgbase = oml2 + pkgdesc = OML is a measurement library that allows to define measurement points inside applications + pkgver = 2.11.1~rc + pkgrel = 1 + url = http://oml.mytestbed.net/ + install = oml2.install + arch = i686 + arch = x86_64 + license = custom:MIT-Nicta + checkdepends = check + makedepends = git + makedepends = asciidoc + depends = libxml2 + depends = sqlite3 + depends = popt + depends = ruby>=1.8.7 + depends = postgresql-libs + optdepends = postgresql: to use as a backend instead of sqlite3 + provides = liboml + provides = liboml-git + provides = oml2 + conflicts = liboml + conflicts = liboml-git + conflicts = oml2 + replaces = liboml-git + backup = etc/conf.d/oml2-server.conf + source = http://oml.mytestbed.net/attachments/download/1267/oml2-2.11.1rc.tar.gz + source = oml2-server.conf + source = oml2-server.logrotate + source = oml2-server.rc + source = oml2-server.service + md5sums = f9fae9569b03b14836f1669838ab31d9 + md5sums = 0fcaf350b4c5ac5bc8db2f17de11f9f9 + md5sums = 422a04d8bde681e43700d949750f2d99 + md5sums = 3d783cf3f03d339d5a1607325ee71b0f + md5sums = 06f39c048d6c3752b167770d991f984c + +pkgname = oml2 + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..ed0441df4581 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,65 @@ +# Contributor: Olivier Mehani <olivier.mehani@nicta.com.au> +pkgname=oml2 +_redmineid=1267 +pkgver=2.11.1~rc +pkgrel=1 +pkgdesc="OML is a measurement library that allows to define measurement points inside applications" +arch=(i686 x86_64) +url="http://oml.mytestbed.net/" +license=('custom:MIT-Nicta') +depends=('libxml2' 'sqlite3' 'popt' 'ruby>=1.8.7' 'postgresql-libs') +makedepends=('git' 'asciidoc') +optdepends=("postgresql: to use as a backend instead of sqlite3") +checkdepends=('check') +provides=(liboml liboml-git oml2) +conflicts=(liboml liboml-git oml2) +replaces=(liboml-git) +source=( + http://oml.mytestbed.net/attachments/download/${_redmineid}/oml2-${pkgver/\~/}.tar.gz + oml2-server.conf + oml2-server.logrotate + oml2-server.rc + oml2-server.service +) + +backup=(etc/conf.d/oml2-server.conf) +install="oml2.install" + +_builddir=${pkgname}-${pkgver/\~/} + +build() { + cd "${srcdir}" + cd "${srcdir}/${_builddir}" + ./configure --prefix=/usr --localstatedir=/var --enable-doc --disable-doxygen-doc --with-pgsql + make || return 1 +} + +package() { + cd "${srcdir}/${_builddir}" + make DESTDIR="${pkgdir}/" install + # XXX: We can only build the example application when we can find everything else + make -C example/liboml2 \ + BINDIR="${pkgdir}/usr/bin" \ + SCAFFOLD="${pkgdir}/usr/bin/oml2-scaffold" \ + CFLAGS="-I${pkgdir}/usr/include" \ + LDFLAGS="-L${pkgdir}/usr/lib" \ + LIBS="-loml2 -locomm -lpopt -lm" \ + install + mv ${pkgdir}/usr/bin/generator ${pkgdir}/usr/bin/oml2-generator + install -D -m 0644 ${srcdir}/${_builddir}/COPYING \ + ${pkgdir}/usr/share/licenses/${pkgname}/COPYING + install -D -m 0755 ${startdir}/oml2-server.rc ${pkgdir}/etc/rc.d/oml2-server + install -D -m 0644 ${startdir}/oml2-server.service ${pkgdir}/usr/lib/systemd/system/oml2-server.service + install -D -m 0644 ${startdir}/oml2-server.conf ${pkgdir}/etc/conf.d/oml2-server.conf + install -D -m 0644 ${startdir}/oml2-server.logrotate ${pkgdir}/etc/logrotate.d/oml2-server +} + +check() { + cd "${srcdir}/${_builddir}" + make check +} +md5sums=('f9fae9569b03b14836f1669838ab31d9' + '0fcaf350b4c5ac5bc8db2f17de11f9f9' + '422a04d8bde681e43700d949750f2d99' + '3d783cf3f03d339d5a1607325ee71b0f' + '06f39c048d6c3752b167770d991f984c') diff --git a/oml2-server.conf b/oml2-server.conf new file mode 100644 index 000000000000..c63175b0814a --- /dev/null +++ b/oml2-server.conf @@ -0,0 +1,13 @@ +# This creates SQLite3 databases in /var/oml2, use +# "--data-dir=DIR" +# to override. +# +# +# See oml2-server(1) for details. +OML2_OPTS="-l 3003 --logfile=/var/log/oml2-server.log --user=oml2 --group=oml2" + +# Uncomment the following to use the PostgreSQL backend instead (default values +# explicitely given here) +# Make sure the oml2 PG user exist and is allowed to create databases: +# createuser --username postgres --createdb --no-superuser --no-createrole oml2 +#OML2_OPTS="$OML2_OPTS --backend=postgresql --pg-host=localhost --pg-port=5432 --pg-user=oml2 --pg-pass=''" diff --git a/oml2-server.logrotate b/oml2-server.logrotate new file mode 100644 index 000000000000..60d066ab2e61 --- /dev/null +++ b/oml2-server.logrotate @@ -0,0 +1,9 @@ +/var/log/oml2-server.log { + weekly + rotate 4 + missingok + notifempty + compress + copytruncate +} + diff --git a/oml2-server.rc b/oml2-server.rc new file mode 100644 index 000000000000..efbc6147fbcc --- /dev/null +++ b/oml2-server.rc @@ -0,0 +1,104 @@ +#!/bin/bash + +daemon_name=oml2-server +pidfile=/run/$daemon_name.pid + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/$daemon_name.conf + +get_pid() { + pidof -o %PPID $daemon_name +} + +test_pid(){ + if [ -s "$pidfile" ]; then + if pidof -o %PPID $daemon_name | tr ' ' '\n' | grep -w $(cat $pidfile); then + return 0 + fi + fi + return 1 +} + +case "$1" in + start) + stat_busy "Starting $daemon_name daemon" + + PID=$(get_pid) + if [[ -z $PID ]]; then + [[ -f $pidfile ]] && + rm -f $pidfile + # RUN + $daemon_name $OML2_OPTS & + # + if [[ $? -gt 0 ]]; then + stat_fail + exit 1 + else + echo $(get_pid) > $pidfile + add_daemon $daemon_name + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping $daemon_name daemon" + PID=$(get_pid) + # KILL + [[ -n $PID ]] && kill $PID &> /dev/null + # + if [[ $? -gt 0 ]]; then + stat_fail + exit 1 + else + rm -f $pidfile &> /dev/null + rm_daemon $daemon_name + stat_done + fi + ;; + + restart) + $0 wait_stop + $0 start + ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + ;; + + wait_stop) + pidtmp=$(test_pid) || exit 0 + if kill -0 "${pidtmp:-}" 2> /dev/null; then + PID=$pidtmp + fi + + $0 stop + + if [ -n "${PID:-}" ]; then + i=0 + stat_busy "Waiting for server to terminate" + while kill -0 "${PID:-}" 2> /dev/null; do + if [ $i = '60' ]; then + stat_fail + break; + else + i=$(($i+1)) + sleep 1 + fi + done + stat_done + fi + ;; + + *) + echo "usage: $0 {start|stop|restart|status|wait_stop}" +esac + +exit 0 + +# vim:set ts=2 sw=2 et ft=sh: diff --git a/oml2-server.service b/oml2-server.service new file mode 100644 index 000000000000..fc756822ff58 --- /dev/null +++ b/oml2-server.service @@ -0,0 +1,32 @@ +# Do not make modifications to this file, as they may not survive update. +# Instead, copy it to /etc/systemd/system/, and modify it there; then, run +# sudo systemctl reenable oml2-server.service +# That modified copy will override the parameters here. +# +# See systemd(1) for details. +# +[Unit] +Description=OML2 measurements collection server +After=network.target +# SQLite3 backend (and logs) +RequiresMountsFor=/var + +# Uncomment the following lines when using the PostgreSQL backend +#Requires=postgresql.service +#After=postgresql.service + +[Service] +Type=simple +# This creates SQLite3 databases in /var/oml2, use +# "--data-dir=DIR" +# to override. +# +# See oml2-server(1) for details. +ExecStart=/usr/bin/oml2-server -l 3003 --logfile=/var/log/oml2-server.log --user=oml2 --group=oml2 + +# Add the following to the ExecStart line to enable and configure the PostgreSQL +# backend +#--backend=postgresql --pg-host=localhost --pg-port=5432 --pg-user=oml2 --pg-pass=correcthorsebatterystaple + +[Install] +WantedBy=multi-user.target diff --git a/oml2.install b/oml2.install new file mode 100644 index 000000000000..9c5a572bdfde --- /dev/null +++ b/oml2.install @@ -0,0 +1,24 @@ +## arg 1: the new package version +post_install() { + getent passwd oml2 >/dev/null && getent group oml2 >/dev/null && exit 0 + echo ">>> Creating oml2 user and group and setting permissions..." + getent group oml2 >/dev/null || usr/sbin/groupadd -g 137 oml2 + getent passwd oml2 >/dev/null || usr/sbin/useradd -c 'OML2 daemon' -u 137 -g oml2 -d '/var/oml2' -s /bin/bash oml2 + mkdir -p /var/oml2 + chown oml2:oml2 /var/oml2 +} + +## arg 1: the new package version +## arg 2: the old package version +post_upgrade() { + post_install +} + +## arg 1: the old package version +pre_remove() { + getent passwd oml2 >/dev/null && usr/sbin/userdel oml2 &>/dev/null + rm -rf /var/oml2 + (getent group oml2 >/dev/null && usr/sbin/groupdel oml2 &>/dev/null) || /bin/true +} + +# vim:set ts=2 sw=2 et: |