From da925080e7eddd86f5987f6ef95c7b0e333bb2b5 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Mon, 31 Jul 2017 11:42:14 +0100 Subject: Removed init script, added systemd service, removed common package etc Also * added bundler boilerplate to bin/mauveserver * fixed jquery symlinks in server postinst and links files * updated gitignore --- .gitignore | 4 + bin/mauveserver | 9 ++ debian/changelog | 6 + debian/control | 22 +--- debian/mauvealert-client.install | 6 + debian/mauvealert-common.install | 6 - debian/mauvealert-server.init | 225 -------------------------------------- debian/mauvealert-server.install | 2 + debian/mauvealert-server.links | 2 +- debian/mauvealert-server.postinst | 4 +- debian/mauvealert-server.service | 14 +++ 11 files changed, 50 insertions(+), 250 deletions(-) delete mode 100644 debian/mauvealert-common.install delete mode 100644 debian/mauvealert-server.init create mode 100644 debian/mauvealert-server.service diff --git a/.gitignore b/.gitignore index b512c0f..c432cb8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,7 @@ test.* doc/ .yardoc/ coverage/ +.bundle/ +vendor/ +debian/*.debhelper.log + diff --git a/bin/mauveserver b/bin/mauveserver index 286b126..dcb51f6 100755 --- a/bin/mauveserver +++ b/bin/mauveserver @@ -34,6 +34,15 @@ # Patrick J Cherry # +# Bundler boilerplate. +require 'pathname' +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', + Pathname.new(__FILE__).realpath) +require 'rubygems' +require 'bundler/setup' + +$LOAD_PATH << File.join(File.dirname(ENV['BUNDLE_GEMFILE']), 'lib') + help = manual = verbose = version = test = false while arg = ARGV.pop case arg diff --git a/debian/changelog b/debian/changelog index 0627303..ab9ca5f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +mauvealert (3.16.0) UNRELEASED; urgency=medium + + * Re-packaged to install server into /srv, removing common package. + + -- Patrick J Cherry Mon, 31 Jul 2017 11:31:34 +0100 + mauvealert (3.15.15-1) stable; urgency=medium * Tidied up iconv usage for ruby1.9+ diff --git a/debian/control b/debian/control index 7786112..3686b43 100644 --- a/debian/control +++ b/debian/control @@ -9,9 +9,9 @@ Build-Depends: ruby | ruby-interpreter, debhelper, rdoc, txt2man, dh-systemd, Standards-Version: 3.9.1 Package: mauvealert-server -Architecture: all +Architecture: any Pre-Depends: libjs-jquery -Depends: adduser, lsb-base, ruby | ruby-interpreter, ${misc:Depends} +Depends: adduser, lsb-base, ruby | ruby-interpreter, ruby-bundler, libpq5, ${misc:Depends} Suggests: mauvealert-client Recommends: ruby-locale | liblocale-ruby1.8 Description: Mauve network alert system -- server @@ -24,10 +24,12 @@ Description: Mauve network alert system -- server Package: mauvealert-client Architecture: all -Depends: ruby | ruby-interpreter, - mauvealert-common (>= 3.8.0), +Depends: ruby | ruby-interpreter, ruby-protobuf, ${misc:Depends} ${misc:Depends} Recommends: liblocale-ruby1.8 | ruby-locale +Replaces: mauvealert-common +Conflicts: mauvealert-common +Provides: mauvealert-common Description: Mauve network alert system -- client Mauve is a network alert system for system and network administrators. You can use it to quickly set up ad-hoc monitoring for a variety of services, and @@ -36,15 +38,3 @@ Description: Mauve network alert system -- client . This is the client package. -Package: mauvealert-common -Architecture: all -Depends: ruby | ruby-interpreter, ruby-protobuf, ${misc:Depends} -Suggests: mauvealert-client -Description: Mauve network alert system -- common libraries - Mauve is a network alert system for system and network administrators. You can - use it to quickly set up ad-hoc monitoring for a variety of services, and to - confidently replace all scripts that might otherwise send floods of emails or - text messages. - . - This is the package of libraries in common with both the client and server. - diff --git a/debian/mauvealert-client.install b/debian/mauvealert-client.install index 5cdaca6..839a24b 100644 --- a/debian/mauvealert-client.install +++ b/debian/mauvealert-client.install @@ -1,3 +1,9 @@ bin/mauvesend usr/bin/ lib/mauve/sender.rb usr/lib/ruby/vendor_ruby/mauve/ lib/mauve/quick_update.rb usr/lib/ruby/vendor_ruby/mauve/ +mauve.proto usr/lib/mauvealert/ +lib/mauve/proto.rb usr/lib/ruby/vendor_ruby/mauve/ +lib/mauve/mauve_time.rb usr/lib/ruby/vendor_ruby/mauve/ +lib/mauve/version.rb usr/lib/ruby/vendor_ruby/mauve/ +lib/mauve/mauve_resolv.rb usr/lib/ruby/vendor_ruby/mauve/ + diff --git a/debian/mauvealert-common.install b/debian/mauvealert-common.install deleted file mode 100644 index b132d51..0000000 --- a/debian/mauvealert-common.install +++ /dev/null @@ -1,6 +0,0 @@ -mauve.proto usr/lib/mauvealert/ -lib/mauve/proto.rb usr/lib/ruby/vendor_ruby/mauve/ -lib/mauve/mauve_time.rb usr/lib/ruby/vendor_ruby/mauve/ -lib/mauve/version.rb usr/lib/ruby/vendor_ruby/mauve/ -lib/mauve/mauve_resolv.rb usr/lib/ruby/vendor_ruby/mauve/ - diff --git a/debian/mauvealert-server.init b/debian/mauvealert-server.init deleted file mode 100644 index 71d287d..0000000 --- a/debian/mauvealert-server.init +++ /dev/null @@ -1,225 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: mauvealert-server -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Mauve Alert Server -# Description: Mauve Alert Server -### END INIT INFO - -# Author: Patrick J Cherry -# - -# Do NOT "set -e" - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="Mauve Alert Server" -NAME=mauveserver -DAEMON=/usr/sbin/$NAME -DAEMON_ARGS="/etc/mauvealert/$NAME.conf" -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -RUNASUSER=mauvealert - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.2-14) to ensure that this file is present -# and status_of_proc is working. -. /lib/lsb/init-functions - -# -# Function that starts the daemon/service -# -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - do_test || return 2 - - start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON --chuid $RUNASUSER --test > /dev/null \ - || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --chuid $RUNASUSER --background --startas $DAEMON -- \ - $DAEMON_ARGS \ - || return 2 - # Add code here, if necessary, that waits for the process to be ready - # to handle requests from services started subsequently which depend - # on this one. As a last resort, sleep for some time. - count=0 - - while [ $((count = count + 1)) -le 5 ] ; do - sleep 1 - # This is just a test to see if the daemon is running yet. - start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON --chuid $RUNASUSER --test > /dev/null \ - || return 0 - done - - return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --user $RUNASUSER - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - - # Wait for children to finish too if this is a daemon that forks - # and if the daemon is only ever run from this initscript. - # If the above conditions are not satisfied then add some other code - # that waits for the process to drop all resources that could be - # needed by services started subsequently. A last resort is to - # sleep for some time. - start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --pidfile $PIDFILE --user $RUNASUSER - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - -# -# Function that sends a SIGHUP to the daemon/service -# -do_reload() { - # - # If the daemon can reload its configuration without - # restarting (for example, when it is sent a SIGHUP), - # then implement that here. - # - start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --user $RUNASUSER - return 0 -} - -# -# Function that sends a SIGUSR1 to reopen logfiles -# -do_reopenlogs() { - start-stop-daemon --stop --signal USR1 --quiet --pidfile $PIDFILE --user $RUNASUSER - return 0 -} - - -# -# Test the config file before execution -# -do_test() { - # - # Make sure we're root - # - [ "$USER" = "root" ] || return 1 - - # - # OK test. - # - su $RUNASUSER -s /bin/bash -c "$DAEMON -t $DAEMON_ARGS" 1>/dev/null 2>&1 || return 1 - return 0 -} - -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 || exit 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 || exit 1 ;; - esac - ;; - - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 || exit 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 || exit 1 ;; - esac - ;; - - status) - status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - - # - # If do_reload() is not implemented then leave this commented out - # and leave 'force-reload' as an alias for 'restart'. - # - reload|force-reload) - log_daemon_msg "Reloading $DESC" "$NAME" - do_reload - log_end_msg $? - ;; - - # - # This is for use by logrotate, as the post-rotate method. - # - reopen-logs) - log_daemon_msg "Re-opening logs for $DESC" "$NAME" - do_reopenlogs - log_end_msg $? - ;; - - # - # This is to test the configuration - # - test|config-test) - log_daemon_msg "Testing configuration for $DESC" "$NAME" - do_test - log_end_msg $? - ;; - - # - # If the "reload" option is implemented then remove the - # 'force-reload' alias - # - restart) - log_daemon_msg "Restarting $DESC" "$NAME" - - do_test - if [ "$?" != "0" ] ; then - log_end_msg 1 # test failed - fi - - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - - *) - #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload|test}" >&2 - exit 3 - ;; -esac - diff --git a/debian/mauvealert-server.install b/debian/mauvealert-server.install index 95dce77..089726b 100644 --- a/debian/mauvealert-server.install +++ b/debian/mauvealert-server.install @@ -5,3 +5,5 @@ views srv/mauvealert vendor srv/mauvealert .bundle srv/mauvealert etc/mauveserver.conf etc/mauvealert/ +Gemfile srv/mauvealert +Gemfile.lock srv/mauvealert diff --git a/debian/mauvealert-server.links b/debian/mauvealert-server.links index bc1cdbe..0a2fc11 100644 --- a/debian/mauvealert-server.links +++ b/debian/mauvealert-server.links @@ -1 +1 @@ -usr/share/javascript/jquery usr/share/mauvealert/static/javascript/jquery +usr/share/javascript/jquery srv/mauvealert/static/javascript/jquery diff --git a/debian/mauvealert-server.postinst b/debian/mauvealert-server.postinst index 967aa8d..945cec4 100644 --- a/debian/mauvealert-server.postinst +++ b/debian/mauvealert-server.postinst @@ -20,8 +20,8 @@ done # # Symlink jquery libraries in. # -if [ -e /usr/share/javascript/jquery -a ! -e /usr/share/mauvealert/static/javascript/jquery ] ; then - ln -s /usr/share/javascript/jquery /usr/share/mauvealert/static/javascript/ +if [ -e /usr/share/javascript/jquery -a ! -e /srv/mauvealert/static/javascript/jquery ] ; then + ln -s /usr/share/javascript/jquery /srv/mauvealert/static/javascript/ fi diff --git a/debian/mauvealert-server.service b/debian/mauvealert-server.service new file mode 100644 index 0000000..7cd49ba --- /dev/null +++ b/debian/mauvealert-server.service @@ -0,0 +1,14 @@ +[Unit] +Description=Mauve Alert Server +After=network.target + +[Service] +Type=simple +Restart=always +WorkingDirectory=/srv/mauvealert +ExecStart=/srv/mauvealert/bin/mauvealert /etc/mauveserver.conf + +[Install] +WantedBy=multi-user.target + + -- cgit v1.2.1