From 496db34e457ce0b748c5473ef5362ee00c65f460 Mon Sep 17 00:00:00 2001 From: silverpill Date: Thu, 5 May 2022 18:03:04 +0000 Subject: [PATCH] Fix systemd integration in debian package --- contrib/debian/changelog | 5 +++++ contrib/debian/compat | 1 + contrib/debian/control | 8 +++++++- contrib/debian/install | 2 ++ contrib/debian/postinst.ex | 24 ++++++++++++++++++++++++ contrib/debian/rules | 9 +++++++++ scripts/build_deb.sh | 25 +++++++++++++------------ 7 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 contrib/debian/changelog create mode 100644 contrib/debian/compat create mode 100644 contrib/debian/install create mode 100644 contrib/debian/postinst.ex create mode 100755 contrib/debian/rules diff --git a/contrib/debian/changelog b/contrib/debian/changelog new file mode 100644 index 0000000..39c7bb9 --- /dev/null +++ b/contrib/debian/changelog @@ -0,0 +1,5 @@ +mitra (0.0.0) UNRELEASED; urgency=medium + + * Release. + + -- silverpill Thu, 05 May 2022 17:30:49 +0000 diff --git a/contrib/debian/compat b/contrib/debian/compat new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/contrib/debian/compat @@ -0,0 +1 @@ +11 diff --git a/contrib/debian/control b/contrib/debian/control index 3ca356e..aa54366 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -1,3 +1,9 @@ -Package: mitra +Source: mitra +Section: admin +Priority: optional Maintainer: silverpill +Build-Depends: debhelper (>= 11) + +Package: mitra Description: ActivityPub server written in Rust +Depends: ${shlibs:Depends}, ${misc:Depends} diff --git a/contrib/debian/install b/contrib/debian/install new file mode 100644 index 0000000..e2d1d38 --- /dev/null +++ b/contrib/debian/install @@ -0,0 +1,2 @@ +etc . +usr . diff --git a/contrib/debian/postinst.ex b/contrib/debian/postinst.ex new file mode 100644 index 0000000..56f7cd4 --- /dev/null +++ b/contrib/debian/postinst.ex @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +case "$1" in + configure) + adduser --system --group --home /var/lib/mitra mitra + ;; + + 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/contrib/debian/rules b/contrib/debian/rules new file mode 100755 index 0000000..4691bc5 --- /dev/null +++ b/contrib/debian/rules @@ -0,0 +1,9 @@ +#!/usr/bin/make -f + +export DEB_BUILD_OPTIONS=noautodbgsym + +%: + dh $@ + +override_dh_installsystemd: + dh_installsystemd --no-start --no-enable diff --git a/scripts/build_deb.sh b/scripts/build_deb.sh index 6a54db8..1817506 100755 --- a/scripts/build_deb.sh +++ b/scripts/build_deb.sh @@ -11,15 +11,13 @@ WEB_DIR="$1" # Package info rm -rf $PACKAGE_DIR -mkdir -p $PACKAGE_DIR/DEBIAN -cp contrib/debian/* $PACKAGE_DIR/DEBIAN/ -echo "Version: $VERSION" >> $PACKAGE_DIR/DEBIAN/control -echo "Architecture: $ARCH" >> $PACKAGE_DIR/DEBIAN/control +mkdir -p $PACKAGE_DIR/debian +cp contrib/debian/* $PACKAGE_DIR/debian/ +sed -i "s/0.0.0/${VERSION}/" $PACKAGE_DIR/debian/changelog +echo "Architecture: $ARCH" >> $PACKAGE_DIR/debian/control -# Binaries -mkdir -p $PACKAGE_DIR/usr/bin -cp target/release/mitra $PACKAGE_DIR/usr/bin/mitra -cp target/release/mitractl $PACKAGE_DIR/usr/bin/mitractl +# Service +cp contrib/mitra.service $PACKAGE_DIR/debian/mitra.service # Config directory mkdir -p $PACKAGE_DIR/etc/mitra @@ -28,13 +26,16 @@ mkdir -p $PACKAGE_DIR/etc/mitra mkdir -p $PACKAGE_DIR/usr/share/mitra/examples cp config.yaml.example $PACKAGE_DIR/usr/share/mitra/examples/config.yaml -# Service -mkdir -p $PACKAGE_DIR/lib/systemd/system -cp contrib/mitra.service $PACKAGE_DIR/lib/systemd/system/mitra.service +# Binaries +mkdir -p $PACKAGE_DIR/usr/bin +cp target/release/mitra $PACKAGE_DIR/usr/bin/mitra +cp target/release/mitractl $PACKAGE_DIR/usr/bin/mitractl # Webapp mkdir -p $PACKAGE_DIR/usr/share/mitra # https://people.debian.org/~neilm/webapps-policy/ch-issues.html#s-issues-fhs cp -r $WEB_DIR $PACKAGE_DIR/usr/share/mitra/www -dpkg-deb --build target/debian/tmp target/debian/mitra_${VERSION}_${ARCH}.deb +# Build +cd $PACKAGE_DIR +dpkg-buildpackage --build=binary --unsigned-changes