From 43241991c0edc55179c61a0c422fc028e53bd227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Rasmussen?= Date: Fri, 11 Mar 2022 20:47:08 +0100 Subject: [PATCH] Debian packaging --- Makefile | 4 ++++ debian/changelog | 5 +++++ debian/compat | 1 + debian/control | 15 +++++++++++++++ debian/fermentord.dirs | 1 + debian/fermentord.postinst | 17 +++++++++++++++++ debian/fermentord.rules | 1 + fermentord.service => debian/fermentord.service | 8 +++++++- debian/rules | 10 ++++++++++ 9 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 Makefile create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/fermentord.dirs create mode 100644 debian/fermentord.postinst create mode 100644 debian/fermentord.rules rename fermentord.service => debian/fermentord.service (64%) create mode 100755 debian/rules diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9aab017 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +build: + cd cmd/fermentord && GOARCH=arm GOARM=6 GOOS=linux go build + +.PHONY: build diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..52fbfe3 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +fermentord (1.0.0) bullseye; urgency=medium + + * Initial packaging + + -- Søren Rasmussen Tue, 08 Mar 2022 06:29:00 +0100 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..5ea8dad --- /dev/null +++ b/debian/control @@ -0,0 +1,15 @@ +Source: fermentord +Section: main +Priority: optional +Maintainer: Søren Rasmussen +Standards-Version: 3.6.1 + +Package: fermentord +Architecture: armhf +Depends: bash +Description: Beer fermentation controller software + fermentord is a beer fermentation controller software that allows a converted + fridge to function as a beer fermentation chamber. + Configuring the system in /etc/fermentord.toml is mandatory. + The system controls mains voltage. Ensure correct configuration before + starting the daemon, as wrong configuration may damage the hardware. diff --git a/debian/fermentord.dirs b/debian/fermentord.dirs new file mode 100644 index 0000000..9bfdbec --- /dev/null +++ b/debian/fermentord.dirs @@ -0,0 +1 @@ +var/lib/fermentord diff --git a/debian/fermentord.postinst b/debian/fermentord.postinst new file mode 100644 index 0000000..e49d931 --- /dev/null +++ b/debian/fermentord.postinst @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +case "$1" in + install) + groupadd --system --force w1 + adduser --system --group --no-create-home --add_extra_groups gpio,w1,spi --home /var/lib/fermentord --shell /sbin/nologin fermentor + ;; + + configure) + systemctl try-reload-or-restart fermentord +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/fermentord.rules b/debian/fermentord.rules new file mode 100644 index 0000000..1f58083 --- /dev/null +++ b/debian/fermentord.rules @@ -0,0 +1 @@ +KERNEL=="w1_bus_master1", SUBSYSTEM=="w1", DRIVER=="w1_master_driver", GROUP="w1", MODE="0660" diff --git a/fermentord.service b/debian/fermentord.service similarity index 64% rename from fermentord.service rename to debian/fermentord.service index 3d0877a..48ff46d 100644 --- a/fermentord.service +++ b/debian/fermentord.service @@ -1,11 +1,16 @@ [Unit] Description=Fermentor daemon -After=network.target +Wants=network-online.target local-fs.target +After=network-online.target local-fs.target ConditionPathExists=!/etc/fermentord_not_to_be_run +ConditionKernelCommandLine=dtoverlay=w1-gpio,gpiopin=4,pullup=0 +ConditionPathExists=/etc/fermentord.toml [Service] ExecStart=/usr/local/bin/fermentord ExecReload=/bin/kill -HUP $MAINPID +User=fermentor +Group=fermentor KillMode=process TimeoutStopSec=15 Restart=always @@ -17,5 +22,6 @@ CPUSchedulingPriority=49 IOSchedulingClass=realtime IOSchedulingPriority=3 + [Install] WantedBy=multi-user.target diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..4c746f8 --- /dev/null +++ b/debian/rules @@ -0,0 +1,10 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +%: + dh $@ --with systemd + +override_dh_strip: +override_dh_makeshlibs: