Merge branch 'make-deb' into 'main'
📦 — Add a make target for Debian packaging See merge request ppom/reaction!2
This commit is contained in:
commit
50e214c403
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
|||||||
/reaction*.sock
|
/reaction*.sock
|
||||||
/result
|
/result
|
||||||
/wiki
|
/wiki
|
||||||
|
*.deb
|
||||||
|
9
DEBIAN/control
Normal file
9
DEBIAN/control
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Package: reaction
|
||||||
|
Version: LAST_TAG
|
||||||
|
Architecture: amd64
|
||||||
|
Maintainer: ppom <>
|
||||||
|
Sections: utils
|
||||||
|
Package-Type: deb
|
||||||
|
Priority: Optional
|
||||||
|
Homepage: https://framagit.org/ppom/reaction
|
||||||
|
Description: A daemon that scans program outputs for repeated patterns, and takes action.
|
56
DEBIAN/postinst
Executable file
56
DEBIAN/postinst
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# postinst script for reaction
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postinst> `configure' <most-recently-configured-version>
|
||||||
|
# * <old-postinst> `abort-upgrade' <new version>
|
||||||
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||||
|
# <new-version>
|
||||||
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||||
|
# <failed-install-package> <version> `removing'
|
||||||
|
# <conflicting-package> <version>
|
||||||
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
#
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure|abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||||
|
# The following line should be removed in trixie or trixie+1
|
||||||
|
deb-systemd-helper unmask 'reaction.service' >/dev/null || true
|
||||||
|
|
||||||
|
# was-enabled defaults to true, so new installations run enable.
|
||||||
|
if deb-systemd-helper --quiet was-enabled 'reaction.service'; then
|
||||||
|
# Enables the unit on first installation, creates new
|
||||||
|
# symlinks on upgrades if the unit file has changed.
|
||||||
|
deb-systemd-helper enable 'reaction.service' >/dev/null || true
|
||||||
|
else
|
||||||
|
# Update the statefile to add new symlinks (if any), which need to be
|
||||||
|
# cleaned up on purge. Also remove old symlinks.
|
||||||
|
deb-systemd-helper update-state 'reaction.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||||
|
if [ -d /run/systemd/system ]; then
|
||||||
|
systemctl --system daemon-reload >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
40
DEBIAN/postrm
Executable file
40
DEBIAN/postrm
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# postrm script for reaction
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postrm> `remove'
|
||||||
|
# * <postrm> `purge'
|
||||||
|
# * <old-postrm> `upgrade' <new-version>
|
||||||
|
# * <new-postrm> `failed-upgrade' <old-version>
|
||||||
|
# * <new-postrm> `abort-install'
|
||||||
|
# * <new-postrm> `abort-install' <old-version>
|
||||||
|
# * <new-postrm> `abort-upgrade' <old-version>
|
||||||
|
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
|
||||||
|
# for details, see /usr/doc/packaging-manual/
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
purge|disappear)
|
||||||
|
# Remove configuration
|
||||||
|
rm -f /etc/reaction.yml
|
||||||
|
# Remove database
|
||||||
|
rm -f /var/lib/reaction/*
|
||||||
|
;;
|
||||||
|
remove|upgrade|failed-upgrade|abort-install|abort-upgrade)
|
||||||
|
# nothing
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
|
||||||
|
systemctl --system daemon-reload >/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "purge" ]; then
|
||||||
|
if [ -x "/usr/bin/deb-systemd-helper" ]; then
|
||||||
|
deb-systemd-helper purge 'reaction.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
6
DEBIAN/prerm
Executable file
6
DEBIAN/prerm
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
|
||||||
|
deb-systemd-invoke stop 'reaction.service' >/dev/null || true
|
||||||
|
fi
|
15
Makefile
15
Makefile
@ -1,9 +1,22 @@
|
|||||||
all: reaction ip46tables
|
all: reaction ip46tables
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f reaction ip46tables
|
rm -f reaction ip46tables reaction.deb
|
||||||
|
|
||||||
ip46tables: ip46tables.d/ip46tables.c
|
ip46tables: ip46tables.d/ip46tables.c
|
||||||
gcc -static ip46tables.d/ip46tables.c -o ip46tables
|
gcc -static ip46tables.d/ip46tables.c -o ip46tables
|
||||||
|
|
||||||
reaction: app/* reaction.go go.mod go.sum
|
reaction: app/* reaction.go go.mod go.sum
|
||||||
CGO_ENABLED=0 go build -buildvcs=false .
|
CGO_ENABLED=0 go build -buildvcs=false .
|
||||||
|
|
||||||
|
reaction.deb: reaction ip46tables
|
||||||
|
chmod +x reaction ip46tables
|
||||||
|
mkdir -p deb/reaction/usr/bin/ deb/reaction/usr/sbin/ deb/reaction/lib/systemd/system/
|
||||||
|
cp reaction deb/reaction/usr/bin/
|
||||||
|
cp ip46tables deb/reaction/usr/sbin/
|
||||||
|
cp reaction.service deb/reaction/lib/systemd/system/
|
||||||
|
cp -r DEBIAN/ deb/reaction/DEBIAN
|
||||||
|
sed -e "s/LAST_TAG/`git tag --sort=v:refname | tail -n1`/" -e "s/Version: v/Version: /" -i deb/reaction/DEBIAN/*
|
||||||
|
cd deb && dpkg-deb --root-owner-group --build reaction
|
||||||
|
mv deb/reaction.deb reaction.deb
|
||||||
|
rm -rf deb/
|
||||||
|
12
reaction.service
Normal file
12
reaction.service
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=A daemon that scans program outputs for repeated patterns, and takes action.
|
||||||
|
Documentation=https://framagit.org/ppom/reaction-wiki
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/reaction start -c /etc/reaction.yml
|
||||||
|
StateDirectory=reaction
|
||||||
|
RuntimeDirectory=reaction
|
||||||
|
WorkingDirectory=/var/lib/reaction
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user