From 87fc981e5250ed75c3d3355d13c1dafd03e5af7e Mon Sep 17 00:00:00 2001 From: "Ralf S. Engelschall" Date: Sat, 27 Jan 2018 23:42:46 +0100 Subject: [PATCH] new package --- beehive/beehive.conf | 5 ++ beehive/beehive.patch | 49 ++++++++++++++++ beehive/beehive.spec | 130 ++++++++++++++++++++++++++++++++++++++++++ beehive/rc.beehive | 65 +++++++++++++++++++++ 4 files changed, 249 insertions(+) create mode 100644 beehive/beehive.conf create mode 100644 beehive/beehive.patch create mode 100644 beehive/beehive.spec create mode 100644 beehive/rc.beehive diff --git a/beehive/beehive.conf b/beehive/beehive.conf new file mode 100644 index 0000000000..3f0e9a0c22 --- /dev/null +++ b/beehive/beehive.conf @@ -0,0 +1,5 @@ +{ + "Bees": [], + "Actions": null, + "Chains": [] +} \ No newline at end of file diff --git a/beehive/beehive.patch b/beehive/beehive.patch new file mode 100644 index 0000000000..231246c292 --- /dev/null +++ b/beehive/beehive.patch @@ -0,0 +1,49 @@ +Index: src/github.com/muesli/beehive/Makefile +--- src/github.com/muesli/beehive/Makefile.orig 2018-01-27 23:18:58.000000000 +0100 ++++ src/github.com/muesli/beehive/Makefile 2018-01-27 23:24:56.022648000 +0100 +@@ -1,23 +1,21 @@ + BEEHIVE_VERSION=0.2.99 +-COMMIT_SHA=$(shell git rev-parse --short HEAD) ++COMMIT_SHA=000000 + + all: embed + + submodule: +- git submodule update --init + + noembed: submodule build + + generate: +- $(shell go env GOPATH)/bin/go-bindata --tags embed --pkg api -o api/bindata.go --ignore \\.git assets/... config/... ++ go-bindata --tags embed --pkg api -o api/bindata.go --ignore \\.git assets/... config/... + + go-bindata: +- [ -f $(shell go env GOPATH)/bin/go-bindata ] || go get -u github.com/jteeuwen/go-bindata/go-bindata + + embed: submodule go-bindata generate build + + build: +- go build -tags 'embed' -ldflags '-s -w -X main.Version=$(BEEHIVE_VERSION) -X main.CommitSHA=$(COMMIT_SHA)' ++ go build -x -tags 'embed' -ldflags '-X main.Version=$(BEEHIVE_VERSION) -X main.CommitSHA=$(COMMIT_SHA)' + + debug: submodule go-bindata generate + go build -tags 'embed' -ldflags '-X main.Version=$(BEEHIVE_VERSION) -X main.CommitSHA=$(COMMIT_SHA)' +Index: src/github.com/muesli/beehive/vendor/github.com/guelfey/go.dbus/transport_freebsd.go +--- src/github.com/muesli/beehive/vendor/github.com/guelfey/go.dbus/transport_freebsd.go.orig 2018-01-27 23:26:47.414312000 +0100 ++++ src/github.com/muesli/beehive/vendor/github.com/guelfey/go.dbus/transport_freebsd.go 2018-01-27 23:26:38.638965000 +0100 +@@ -0,0 +1,6 @@ ++package dbus ++ ++func (t *unixTransport) SendNullByte() error { ++ _, err := t.Write([]byte{0}) ++ return err ++} +Index: src/github.com/muesli/beehive/vendor/github.com/guelfey/go.dbus/transport_unixcred.go +--- src/github.com/muesli/beehive/vendor/github.com/guelfey/go.dbus/transport_unixcred.go.orig 2018-01-27 23:19:06.000000000 +0100 ++++ src/github.com/muesli/beehive/vendor/github.com/guelfey/go.dbus/transport_unixcred.go 2018-01-27 23:24:56.022795000 +0100 +@@ -1,4 +1,4 @@ +-// +build !darwin ++// +build !darwin,!freebsd + + package dbus + diff --git a/beehive/beehive.spec b/beehive/beehive.spec new file mode 100644 index 0000000000..5b54d6acb3 --- /dev/null +++ b/beehive/beehive.spec @@ -0,0 +1,130 @@ +## +## beehive.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2018 OpenPKG Project +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package version +%define V_opkg 0.2.99 +%define V_dist 20180127 + +# package information +Name: beehive +Summary: Event and Agent System +URL: https://github.com/muesli/beehive +Vendor: Christian Muehlhaeuser +Packager: OpenPKG Project +Distribution: OpenPKG Community +Class: EVAL +Group: Networking +License: AGPL +Version: %{V_opkg}.%{V_dist} +Release: 20180127 + +# list of sources +Source0: http://download.openpkg.org/components/versioned/beehive/beehive-%{V_dist}.tar.xz +Source1: beehive.conf +Source2: rc.beehive +Patch0: beehive.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20160101, go +PreReq: OpenPKG, openpkg >= 20160101 + +%description + Beehive is an event and agent system, which allows you to create + your own agents that perform automated tasks triggered by events + and filters. It is modular, flexible and really easy to extend for + anyone. It has modules (we call them Hives), so it can interface + with, talk to, or retrieve information from Twitter, Tumblr, Email, + IRC, Jabber, RSS, Jenkins, Hue - to name just a few. + +%track + prog beehive:release = { + version = %{V_opkg} + url = https://github.com/muesli/beehive/releases + regex = (__VER__)\.tar\.gz + } + prog beehive:snapshot = { + version = %{V_dist} + url = http://download.openpkg.org/components/versioned/beehive/ + regex = beehive-(__VER__)\.tar\.xz + } + +%prep + %setup -q -n beehive + %patch -p0 + +%build + # build program + export GOPATH=`pwd` + cd src/github.com/muesli/beehive + %{l_make} %{l_mflags} embed + +%install + # create directory hierarchy + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/sbin \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ + $RPM_BUILD_ROOT%{l_prefix}/etc/beehive \ + $RPM_BUILD_ROOT%{l_prefix}/var/beehive/run \ + $RPM_BUILD_ROOT%{l_prefix}/var/beehive/log + + # install program + %{l_shtool} install -c -s -m 755 \ + src/github.com/muesli/beehive/beehive \ + $RPM_BUILD_ROOT%{l_prefix}/sbin/ + + # install default configuration + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE beehive.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/beehive/ + + # install run-command script + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE rc.beehive} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ + %{l_files_std} \ + '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/beehive' \ + '%config %attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/beehive/*' \ + '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/beehive/*' + +%files -f files + +%clean + +%post + if [ $1 -eq 2 ]; then + # after upgrade, restart service + eval `%{l_rc} beehive status 2>/dev/null` + [ ".$beehive_active" = .yes ] && %{l_rc} beehive restart + fi + exit 0 + +%preun + if [ $1 -eq 0 ]; then + # before erase, stop service and remove log files + %{l_rc} beehive stop 2>/dev/null + rm -rf $RPM_INSTALL_PREFIX/var/beehive/log/* >/dev/null 2>&1 || true + rm -rf $RPM_INSTALL_PREFIX/var/beehive/run/* >/dev/null 2>&1 || true + fi + exit 0 + diff --git a/beehive/rc.beehive b/beehive/rc.beehive new file mode 100644 index 0000000000..430b290454 --- /dev/null +++ b/beehive/rc.beehive @@ -0,0 +1,65 @@ +#!@l_prefix@/bin/openpkg rc +## +## rc.beehive -- Run-Commands +## + +%config + beehive_enable="$openpkg_rc_def" + beehive_flags="-bind 127.0.0.1:8181 -canonicalurl http://localhost:8181" + beehive_log_prolog="true" + beehive_log_epilog="true" + beehive_log_numfiles="10" + beehive_log_minsize="1M" + beehive_log_complevel="9" + +%common + beehive_cfgfile="@l_prefix@/etc/beehive/beehive.conf" + beehive_pidfile="@l_prefix@/var/beehive/run/beehive.pid" + beehive_logfile="@l_prefix@/var/beehive/log/beehive.log" + beehive_signal () { + [ -f $beehive_pidfile ] && kill -$1 `cat $beehive_pidfile` + } + +%status -u @l_rusr@ -o + beehive_usable="unknown" + beehive_active="no" + rcService beehive enable yes && \ + beehive_signal 0 && beehive_active="yes" + echo "beehive_enable=\"$beehive_enable\"" + echo "beehive_usable=\"$beehive_usable\"" + echo "beehive_active=\"$beehive_active\"" + +%start -u @l_rusr@ + rcService beehive enable yes || exit 0 + rcService beehive active yes && exit 0 + ( GOMAXPROCS=32 + export GOMAXPROCS + . @l_prefix@/etc/beehive/beehive.cf + nohup @l_prefix@/sbin/beehive \ + -config $beehive_cfgfile \ + $beehive_flags \ + >$beehive_logfile 2>&1 & + echo $! >$beehive_pidfile + ) >/dev/null 2>&1 + +%stop -u @l_rusr@ + rcService beehive enable yes || exit 0 + rcService beehive active no && exit 0 + beehive_signal TERM + sleep 2 + rm -f $beehive_pidfile >/dev/null 2>&1 || true + +%restart -u @l_rusr@ + rcService beehive enable yes || exit 0 + rcService beehive active no && exit 0 + rc beehive stop start + +%daily -u @l_rusr@ + rcService beehive enable yes || exit 0 + shtool rotate -f \ + -n ${beehive_log_numfiles} -s ${beehive_log_minsize} -d \ + -z ${beehive_log_complevel} -m 664 -o @l_rusr@ -g @l_rgrp@ \ + -P "${beehive_log_prolog}" \ + -E "${beehive_log_epilog}; rc beehive restart" \ + $beehive_logfile +