From af0a5fd4566d4570ba5c92e880a9b09202623bb4 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 20 Feb 2024 17:32:36 -0700 Subject: [PATCH] Properly integrate sysusers and tmpfiles into debian packaging --- debian/cosmic-greeter.postinst | 25 ------------------- ...-sysusers.conf => cosmic-greeter.sysusers} | 3 ++- ...-tmpfiles.conf => cosmic-greeter.tmpfiles} | 0 debian/rules | 6 ++++- justfile | 12 ++++++--- 5 files changed, 15 insertions(+), 31 deletions(-) rename debian/{cosmic-greeter-sysusers.conf => cosmic-greeter.sysusers} (78%) rename debian/{cosmic-greeter-tmpfiles.conf => cosmic-greeter.tmpfiles} (100%) diff --git a/debian/cosmic-greeter.postinst b/debian/cosmic-greeter.postinst index 8490871..3c9774d 100644 --- a/debian/cosmic-greeter.postinst +++ b/debian/cosmic-greeter.postinst @@ -7,31 +7,6 @@ set -e THIS_PACKAGE=cosmic-greeter DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager -# creating cosmic-greeter group if it isn't already there -if ! getent group cosmic-greeter >/dev/null; then - addgroup --system --force-badname --quiet cosmic-greeter -fi - -# creating cosmic-greeter user if it isn't already there -if ! getent passwd cosmic-greeter >/dev/null; then - adduser --system --force-badname --quiet \ - --ingroup cosmic-greeter \ - --home /var/lib/cosmic-greeter --no-create-home \ - --shell /bin/false \ - cosmic-greeter - usermod -c "COSMIC Greeter" cosmic-greeter -fi - -# ensure cosmic-greeter user is part of the video group -adduser cosmic-greeter video - -# create home directory if it does not exist and set permissions -if [ ! -d /var/lib/cosmic-greeter ] -then - mkdir /var/lib/cosmic-greeter - chown -R cosmic-greeter:cosmic-greeter /var/lib/cosmic-greeter -fi - # debconf is not a registry, so we only fiddle with the default file if # the configure script requested an update if [ -e $DEFAULT_DISPLAY_MANAGER_FILE.debconf-update ]; then diff --git a/debian/cosmic-greeter-sysusers.conf b/debian/cosmic-greeter.sysusers similarity index 78% rename from debian/cosmic-greeter-sysusers.conf rename to debian/cosmic-greeter.sysusers index f5b10b9..7dc4f86 100644 --- a/debian/cosmic-greeter-sysusers.conf +++ b/debian/cosmic-greeter.sysusers @@ -1,2 +1,3 @@ #Type Name ID GECOS Home directory Shell -u cosmic-greeter - "Cosmic Greeter Account" /var/lib/cosmic-greeter - \ No newline at end of file +u cosmic-greeter - "Cosmic Greeter Account" /var/lib/cosmic-greeter - +m cosmic-greeter video diff --git a/debian/cosmic-greeter-tmpfiles.conf b/debian/cosmic-greeter.tmpfiles similarity index 100% rename from debian/cosmic-greeter-tmpfiles.conf rename to debian/cosmic-greeter.tmpfiles diff --git a/debian/rules b/debian/rules index f7de117..b57a60f 100755 --- a/debian/rules +++ b/debian/rules @@ -19,8 +19,12 @@ override_dh_auto_build: just build-vendored override_dh_auto_install: - just rootdir=$(DESTDIR) install + just rootdir=$(DESTDIR) install-debian + +execute_after_dh_install: + dh_installsysusers override_dh_installsystemd: dh_installsystemd -pcosmic-greeter --no-start -r cosmic-greeter.service dh_installsystemd -pcosmic-greeter-daemon cosmic-greeter-daemon.service + diff --git a/justfile b/justfile index a555f6a..ea8ac63 100644 --- a/justfile +++ b/justfile @@ -15,10 +15,10 @@ bin-dst := base-dir / 'bin' / name lib-dir := base-dir / 'lib' # sysusers.d -sysusers-src := 'debian' / 'cosmic-greeter-sysusers.conf' +sysusers-src := 'debian' / name + '.sysusers' sysusers-dst := lib-dir / 'sysusers.d' / name + '.conf' # tmpfiles.d -tmpfiles-src := 'debian' / 'cosmic-greeter-tmpfiles.conf' +tmpfiles-src := 'debian' / name + '.tmpfiles' tmpfiles-dst := lib-dir / 'tmpfiles.d' / name + '.conf' daemon-src := 'target' / 'release' / name + '-daemon' @@ -59,11 +59,15 @@ check-json: (check '--message-format=json') run *args: env RUST_LOG=debug RUST_BACKTRACE=full cargo run --release {{args}} -# Installs files -install: +# Install only debian package required files +# The sysusers and tmpfiles files are automatically added +install-debian: install -Dm0755 {{bin-src}} {{bin-dst}} install -Dm0755 {{daemon-src}} {{daemon-dst}} install -Dm0755 {{dbus-src}} {{dbus-dst}} + +# Installs files +install: install-debian install -Dm0644 {{sysusers-src}} {{sysusers-dst}} install -Dm0644 {{tmpfiles-src}} {{tmpfiles-dst}}