Control: tag -1 moreinfo

On Thu, Jun 22, 2023 at 02:29:54PM +0200, Francesco P. Lovergine wrote:
> diff -Nru proftpd-dfsg-1.3.8+dfsg/debian/changelog 
> proftpd-dfsg-1.3.8+dfsg/debian/changelog
> --- proftpd-dfsg-1.3.8+dfsg/debian/changelog  2023-03-14 10:16:31.000000000 
> +0100
> +++ proftpd-dfsg-1.3.8+dfsg/debian/changelog  2023-06-22 11:15:57.000000000 
> +0200
> @@ -1,3 +1,15 @@
> +proftpd-dfsg (1.3.8+dfsg-4+deb12u1) bookworm-proposed-updates; urgency=medium

You should target `bookworm`, not the admin suites.

> diff -Nru proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.prerm 
> proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.prerm
> --- proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.prerm 1970-01-01 
> 01:00:00.000000000 +0100
> +++ proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.prerm 2023-06-22 
> 11:13:30.000000000 +0200
> @@ -0,0 +1,11 @@
> +#!/bin/sh
> +
> +set -e
> +
> +if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system 
> ] ;
> +then
> +    deb-systemd-invoke stop 'proftpd.service' >/dev/null || true
> +    deb-systemd-invoke stop 'proftpd.socket' >/dev/null || true
> +fi

This gives rise to a race condition where the socket starts the service
again before the socket is stopped.

> diff -Nru proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.proftpd-run.service 
> proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.proftpd-run.service
> --- proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.proftpd-run.service   
> 1970-01-01 01:00:00.000000000 +0100
> +++ proftpd-dfsg-1.3.8+dfsg/debian/proftpd-core.proftpd-run.service   
> 2023-06-22 11:12:42.000000000 +0200
> @@ -0,0 +1,14 @@
> +[Unit]
> +Description=ProFTPD FTP Server in standalone/socket mode
> +Documentation=man:proftpd(8)
> +OnFailure=proftpd.socket
> +OnSuccess=proftpd.service
> +
> +[Service]
> +Type=oneshot
> +Environment=CONFIG_FILE=/etc/proftpd/proftpd.conf
> +EnvironmentFile=-/etc/default/proftpd
> +ExecStart=/usr/bin/grep -iqE 
> '^[[:space:]]*ServerType[[:space:]]+standalone$' $CONFIG_FILE

Maybe I missed something important, but this seems a very odd way of doing
things. Do you really set up a dummy service unit which is expected to fail
in standalone mode, and therefore starts the socket instead?

Why not use an ExecStartPre= or ExecCondition= in your normal units to
prevent starting when in inetd mode?


-- 
Jonathan Wiltshire                                      j...@debian.org
Debian Developer                         http://people.debian.org/~jmw

4096R: 0xD3524C51 / 0A55 B7C5 1223 3942 86EC  74C3 5394 479D D352 4C51
ed25519/0x196418AAEB74C8A1: CA619D65A72A7BADFC96D280196418AAEB74C8A1

Reply via email to