Hi!

On Thu, 2016-10-13 at 19:54:23 +0200, Guillem Jover wrote:
> Package: wnpp
> Severity: wishlist
> 
> * Package name    : influxdb-relay
>   Version         : 0.0~20160928.0.535181e
>   Upstream Author : InfluxData
> * URL             : https://github.com/influxdata/influxdb-relay
> * License         : Expat
>   Programming Lang: Go
>   Description     : basic high availability layer for InfluxDB
> 
>   This daemon listens for InfluxDB requests and forwards them to one or
>   more InfluxDB servers, allowing to replicate for example writes requests
>   to multiple destinations.

> This package is helpful if you are deploying InfluxDB on a cluster
> and need some kind of basic replication and HA setup.
> 
> Attached a working and tested packaging patch (execept for the systemd
> service file), where only the ITP bug number needs to be filled in the
> debian/changelog, Maintainer changed, and Vcs fields added.

Updated patch against latest upstream, and several minor fixes to the
init script and packaging metadata.

Thanks,
Guillem
From 003fe691dd6a7cadb88440e005969156767da1ae Mon Sep 17 00:00:00 2001
From: Guillem Jover <gjo...@sipwise.com>
Date: Wed, 28 Sep 2016 16:24:34 +0200
Subject: [PATCH] Initial packaging

---
 debian/changelog                                   |   5 +
 debian/compat                                      |   1 +
 debian/control                                     |  44 ++++++++
 debian/copyright                                   |  32 ++++++
 ...lang-github-influxdb-influxdb-relay-dev.install |   1 +
 ...golang-github-influxdb-influxdb-relay-dev.links |   1 +
 debian/influxdb-relay.conf                         |  54 ++++++++++
 debian/influxdb-relay.dirs                         |   2 +
 debian/influxdb-relay.init                         | 120 +++++++++++++++++++++
 debian/influxdb-relay.install                      |   2 +
 debian/influxdb-relay.lintian-overrides            |   5 +
 debian/influxdb-relay.logrotate                    |   8 ++
 debian/influxdb-relay.manpages                     |   1 +
 debian/influxdb-relay.postinst                     |  44 ++++++++
 debian/influxdb-relay.postrm                       |  31 ++++++
 debian/influxdb-relay.service                      |  16 +++
 debian/manpages/influxdb-relay.1                   |  13 +++
 debian/rules                                       |  11 ++
 debian/source/format                               |   1 +
 19 files changed, 392 insertions(+)
 create mode 100644 debian/changelog
 create mode 100644 debian/compat
 create mode 100644 debian/control
 create mode 100644 debian/copyright
 create mode 100644 debian/golang-github-influxdb-influxdb-relay-dev.install
 create mode 100644 debian/golang-github-influxdb-influxdb-relay-dev.links
 create mode 100644 debian/influxdb-relay.conf
 create mode 100644 debian/influxdb-relay.dirs
 create mode 100644 debian/influxdb-relay.init
 create mode 100644 debian/influxdb-relay.install
 create mode 100644 debian/influxdb-relay.lintian-overrides
 create mode 100644 debian/influxdb-relay.logrotate
 create mode 100644 debian/influxdb-relay.manpages
 create mode 100644 debian/influxdb-relay.postinst
 create mode 100644 debian/influxdb-relay.postrm
 create mode 100644 debian/influxdb-relay.service
 create mode 100644 debian/manpages/influxdb-relay.1
 create mode 100755 debian/rules
 create mode 100644 debian/source/format

diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..44d88f7
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+influxdb-relay (0.0~20161114.0.adaa2ea-1) UNRELEASED; urgency=medium
+
+  * Initial release. (Closes: #840675)
+
+ -- Guillem Jover <gjo...@sipwise.com>  Wed, 28 Sep 2016 14:21:32 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..c4d65d2
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,44 @@
+Source: influxdb-relay
+Section: database
+Priority: extra
+Homepage: https://github.com/influxdata/influxdb-relay
+Maintainer: Sipwise Development Team <supp...@sipwise.com>
+Build-Depends:
+ debhelper (>= 9),
+ dh-golang (>= 1.9),
+ golang-go,
+# Golang libraries below - Shared deps with dev package
+ golang-github-influxdb-influxdb-dev,
+ golang-github-naoina-go-stringutil-dev,
+ golang-github-naoina-toml-dev,
+Standards-Version: 3.9.8
+XS-Go-Import-Path: github.com/influxdata/influxdb-relay
+
+Package: golang-github-influxdb-influxdb-relay-dev
+Architecture: all
+Pre-Depends:
+ ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ golang-github-influxdb-influxdb-dev,
+ golang-github-naoina-go-stringutil-dev,
+ golang-github-naoina-toml-dev,
+Description: basic high availability layer for InfluxDB -- development files
+ This daemon listens for InfluxDB requests and forwards them to one or
+ more InfluxDB servers, allowing to replicate for example writes requests
+ to multiple destination InfluxDB servers.
+ .
+ This is the development package.
+
+Package: influxdb-relay
+Architecture: any
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ adduser,
+ lsb-base (>= 3.0-6),
+Built-Using: ${misc:Built-Using}
+Description: basic high availability layer for InfluxDB
+ This daemon listens for InfluxDB requests and forwards them to one or
+ more InfluxDB servers, allowing to replicate for example writes requests
+ to multiple destination InfluxDB servers.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..9535d44
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,32 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Source: https://github.com/influxdata/influxdb-relay
+Upstream-Name: influxdb-relay
+
+Files: *
+Copyright:
+ Copyright © 2016 InfluxData
+License: Expat
+
+Files: debian/*
+Copyright:
+ Copyright © 2016 Sipwise GmbH, Austria
+License: Expat
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
diff --git a/debian/golang-github-influxdb-influxdb-relay-dev.install b/debian/golang-github-influxdb-influxdb-relay-dev.install
new file mode 100644
index 0000000..1237e8d
--- /dev/null
+++ b/debian/golang-github-influxdb-influxdb-relay-dev.install
@@ -0,0 +1 @@
+usr/share/gocode/src usr/share/gocode
diff --git a/debian/golang-github-influxdb-influxdb-relay-dev.links b/debian/golang-github-influxdb-influxdb-relay-dev.links
new file mode 100644
index 0000000..50da994
--- /dev/null
+++ b/debian/golang-github-influxdb-influxdb-relay-dev.links
@@ -0,0 +1 @@
+usr/share/gocode/src/github.com/influxdata/influxdb-relay usr/share/gocode/src/github.com/influxdb/influxdb-relay
diff --git a/debian/influxdb-relay.conf b/debian/influxdb-relay.conf
new file mode 100644
index 0000000..14e1fb0
--- /dev/null
+++ b/debian/influxdb-relay.conf
@@ -0,0 +1,54 @@
+### Welcome to the InfluxDB-Relay configuration file.
+
+# Standard
+
+#[[http]]
+#name = "example-http"
+#bind-addr = "127.0.0.1:9096"
+#output = [
+#    { name="local1", location = "http://127.0.0.1:8086/write"; },
+#    { name="local2", location = "http://127.0.0.1:7086/write"; },
+#]
+#
+#[[udp]]
+#name = "example-udp"
+#bind-addr = "127.0.0.1:9096"
+#read-buffer = 0 # default
+#output = [
+#    { name="local1", location="127.0.0.1:8089", mtu=512 },
+#    { name="local2", location="127.0.0.1:7089", mtu=1024 },
+#]
+
+# Buffered
+
+#[[http]]
+#name = "example-http-buffered"
+#bind-addr = "127.0.0.1:9096"
+#output = [
+#    { name="local1", location = "http://127.0.0.1:8086/write";, buffer-size-mb = 100, max-batch-kb = 50, max-delay-interval = "5s" },
+#    { name="local2", location = "http://127.0.0.1:7086/write";, buffer-size-mb = 100, max-batch-kb = 50, max-delay-interval = "5s" },
+#]
+
+# The relay can also be used to dual write data to Kapacitor
+#
+# There are a few advantages of using the relay instead of relying on InfluxDB subscriptions
+#
+# 1. Traffic is HTTP/TCP meaning you don't have to worry about dropped UDP packets
+# 2. Less load on InfluxDB since it doesn't have to fork the data.
+# 3. Slighly lower latency since there is one less hop.
+#
+# Kapacitor is wire compatible with InfluxDB for writes.
+# This means you can add a Kapacitor instance to the output list as if it were an InfluxDB instance.
+#
+
+# This example config sends all writes to
+# two InfluxDB hosts and a single Kapacitor host.
+#[[http]]
+#name = "kapacitor-http"
+#bind-addr = "0.0.0.0:9096"
+#default-retention-policy = "default"
+#output = [
+#    { name="influxdb1", location = "http://influxdb1:8086/write"; },
+#    { name="influxdb2", location = "http://influxdb2:8086/write"; },
+#    { name="kapacitor1", location = "http://kapacitor1:9092/write"; },
+#]
diff --git a/debian/influxdb-relay.dirs b/debian/influxdb-relay.dirs
new file mode 100644
index 0000000..8a147b7
--- /dev/null
+++ b/debian/influxdb-relay.dirs
@@ -0,0 +1,2 @@
+var/lib/influxdb-relay
+var/log/influxdb-relay
diff --git a/debian/influxdb-relay.init b/debian/influxdb-relay.init
new file mode 100644
index 0000000..1c080f2
--- /dev/null
+++ b/debian/influxdb-relay.init
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:          influxdb-relay
+# Required-Start:    $network $local_fs $remote_fs
+# Required-Stop:     $network $local_fs $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Basic HA layer for InfluxDB
+# Description:       InfluxDB-Relay is a basic HA layer for InfluxDB. With
+#                    the right architecture and and disaster recovery
+#                    processes, this achieves a highly available setup.
+### END INIT INFO
+
+# If you modify this, please make sure to also edit influxdb.service.
+
+# Command-line options that can be set in /etc/default/influxdb-relay.
+# These will override any config file values.
+INFLUXDB_RELAY_OPTS=
+NAME=influxdb-relay
+
+USER=influxdb
+GROUP=influxdb
+
+if [ -r /lib/lsb/init-functions ]; then
+    . /lib/lsb/init-functions
+fi
+
+DEFAULT=/etc/default/$NAME
+
+if [ -r $DEFAULT ]; then
+    . $DEFAULT
+fi
+
+if [ -z "$STDOUT" ]; then
+    STDOUT=/var/log/$NAME/$NAME.log
+fi
+if [ ! -f "$STDOUT" ]; then
+    mkdir -p $(dirname $STDOUT)
+fi
+
+if [ -z "$STDERR" ]; then
+    STDERR=/var/log/$NAME/$NAME.log
+fi
+if [ ! -f "$STDERR" ]; then
+    mkdir -p $(dirname $STDERR)
+fi
+
+OPEN_FILE_LIMIT=65536
+
+# Process name ( For display )
+DESC=database
+
+# Daemon name, where is the actual executable
+DAEMON=/usr/bin/$NAME
+
+# pid file for the daemon
+PIDFILE=/var/run/$NAME/$NAME.pid
+PIDDIR=$(dirname $PIDFILE)
+
+if [ ! -d "$PIDDIR" ]; then
+    mkdir -p $PIDDIR
+    chown $USER:$GROUP $PIDDIR
+fi
+
+# Configuration file
+CONFIG=/etc/$NAME/$NAME.conf
+
+# If the daemon is not there, then exit.
+[ -x $DAEMON ] || exit 0
+
+case $1 in
+    start)
+        log_daemon_msg "Starting $DESC" "$NAME"
+
+        # Bump the file limits, before launching the daemon. These will carry
+        # over to launched processes.
+        ulimit -n $OPEN_FILE_LIMIT
+        if [ $? -ne 0 ]; then
+            log_progress_msg "set open file limit to $OPEN_FILE_LIMIT"
+            log_end_msg 1
+            exit 1
+        fi
+
+        start-stop-daemon --start --quiet --oknodo --exec $DAEMON \
+          --user $USER --chuid $GROUP:$USER \
+          --pidfile $PIDFILE --make-pidfile --background --no-close \
+          -- -config $CONFIG $INFLUXD_RELAY_OPTS \
+          >>$STDOUT 2>>$STDERR
+
+        log_end_msg $?
+        ;;
+
+    stop)
+        log_daemon_msg "Stopping $DESC" "$NAME"
+
+        start-stop-daemon --stop --quiet --oknodo --exec $DAEMON \
+          --user $USER --pidfile $PIDFILE --remove-pidfile
+
+        log_end_msg $?
+        ;;
+
+    restart|force-reload)
+        log_daemon_msg "Restarting $DESC" "$NAME"
+        # Restart the daemon.
+        $0 stop && sleep 2 && $0 start
+        $0 status || errcode=$?
+        log_end_msg $errcode
+        ;;
+
+    status)
+        status_of_proc $DAEMON $NAME
+        ;;
+
+    *)
+        # For invalid arguments, print the usage message.
+        echo "Usage: $0 {start|stop|force-reload|restart|status}"
+        exit 2
+        ;;
+esac
diff --git a/debian/influxdb-relay.install b/debian/influxdb-relay.install
new file mode 100644
index 0000000..75b07ed
--- /dev/null
+++ b/debian/influxdb-relay.install
@@ -0,0 +1,2 @@
+usr/bin/influxdb-relay usr/bin
+debian/influxdb-relay.conf etc/influxdb-relay
diff --git a/debian/influxdb-relay.lintian-overrides b/debian/influxdb-relay.lintian-overrides
new file mode 100644
index 0000000..fdff022
--- /dev/null
+++ b/debian/influxdb-relay.lintian-overrides
@@ -0,0 +1,5 @@
+# The Go compiler is currently unable to produce read-only relocations
+# (it produces static binaries).
+hardening-no-bindnow usr/bin/influxdb-relay
+hardening-no-pie usr/bin/influxdb-relay
+hardening-no-fortify-functions usr/bin/influxdb-relay
diff --git a/debian/influxdb-relay.logrotate b/debian/influxdb-relay.logrotate
new file mode 100644
index 0000000..17010f0
--- /dev/null
+++ b/debian/influxdb-relay.logrotate
@@ -0,0 +1,8 @@
+/var/log/influxdb-relay/influxdb-relay.log {
+    daily
+    rotate 7
+    missingok
+    dateext
+    copytruncate
+    compress
+}
diff --git a/debian/influxdb-relay.manpages b/debian/influxdb-relay.manpages
new file mode 100644
index 0000000..524e21d
--- /dev/null
+++ b/debian/influxdb-relay.manpages
@@ -0,0 +1 @@
+debian/manpages/influxdb-relay.1
diff --git a/debian/influxdb-relay.postinst b/debian/influxdb-relay.postinst
new file mode 100644
index 0000000..a13758e
--- /dev/null
+++ b/debian/influxdb-relay.postinst
@@ -0,0 +1,44 @@
+#!/bin/sh
+# postinst script for influxdb
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+configure|reconfigure)
+  # Create an influxdb group and user.
+  if ! getent passwd influxdb >/dev/null; then
+    adduser --system --home /var/lib/influxdb --no-create-home influxdb
+    addgroup --system influxdb
+    adduser influxdb influxdb
+  fi
+
+  if [ -d /var/lib/influxdb-relay ]; then
+    chown -R influxdb:influxdb /var/lib/influxdb-relay
+  fi
+
+  if [ -d /var/log/influxdb-relay ]; then
+    chown -R influxdb:influxdb /var/log/influxdb-relay
+  fi
+
+  # Create rundir.
+  mkdir -p /var/run/influxdb-relay
+  chown -R influxdb:influxdb /var/run/influxdb-relay
+  ;;
+
+abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+*)
+  echo "postinst called with unknown argument '$1'" >&2
+  exit 1
+  ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/influxdb-relay.postrm b/debian/influxdb-relay.postrm
new file mode 100644
index 0000000..c5d3a01
--- /dev/null
+++ b/debian/influxdb-relay.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh
+# postrm script for influxdb
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+  # Always remove /var/run dir.
+  rm -rf /var/run/influxdb-relay
+
+  # Only remove /var/lib and /var/log dirs on purge.
+  if [ "$1" = "purge" ] ; then
+    rm -rf /var/lib/influxdb-relay
+    rm -rf /var/log/influxdb-relay
+  fi
+  ;;
+
+*)
+  echo "postrm called with unknown argument '$1'" >&2
+  exit 1
+  ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/influxdb-relay.service b/debian/influxdb-relay.service
new file mode 100644
index 0000000..28345df
--- /dev/null
+++ b/debian/influxdb-relay.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=InfluxDB-Relay is a basic HA layer for InfluxDB
+After=network.target
+Documentation=man:influxdb-relay(1)
+
+[Service]
+User=influxdb
+Group=influxdb
+LimitNOFILE=65536
+EnvironmentFile=-/etc/default/influxdb-relay
+ExecStart=/usr/bin/influxdb-relay -config /etc/influxdb-relay/influxdb-relay.conf $INFLUXDB_RELAY_OPTS
+KillMode=control-group
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/manpages/influxdb-relay.1 b/debian/manpages/influxdb-relay.1
new file mode 100644
index 0000000..970dd1e
--- /dev/null
+++ b/debian/manpages/influxdb-relay.1
@@ -0,0 +1,13 @@
+.TH influxdb\-relay 8 "2016-09-28" "0.0~20160928.0.535181e" "influxdata"
+.SH NAME
+influxdb-relay \- Basic HA layer for InfluxDB Server
+.SH SYNOPSIS
+.BR influxdb\-relay " [\fIoptions\fP...]"
+.SH DESCRIPTION
+influxdb-relay provides a basic HA layer for InfluxDB.
+.SH OPTIONS
+.TP
+.BR \-config " \fIpath\fP"
+Set the configuration file
+.SH SEE ALSO
+influxd(1)
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..4b4ec9d
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,11 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/pkg-info.mk
+
+export DH_GOLANG_GO_GENERATE := 1
+
+%:
+	dh $@ --buildsystem=golang --with=golang --builddirectory=_build
+
+override_dh_auto_build:
+	dh_auto_build -- -ldflags="-X main.version=$(DEB_VERSION_UPSTREAM)"
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
-- 
2.10.2

_______________________________________________
Pkg-go-maintainers mailing list
Pkg-go-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-go-maintainers

Reply via email to