Control: reopen -1 Control: merge -1 754927 Hi Thomas,
Thanks a lot for looking into fixing bugs in transmission-daemon.
Unfortunately I have to reopen this bug (again) because the fix is...
incomplete:
1. Type in the .service file should be 'notify' (upstream .service file
is correct)
2. Because the .service file doesn't use
--config-dir /var/lib/transmission-daemon/info
as defined in /etc/default/transmission-daemon transmission-daemon tries
to use the default /home/<user>/.config/transmission, which doesn't
exist and is also ignoring /etc/transmission-daemon/settings.json
provided by the package.
Markus Koschany was kind enough to work on a patch, would you mind
looking at it and possibly apply it?
You might also want to read the entire bug log for #718624 to have the
complete picture.
Thanks for considering,
Andrei
On Ma, 08 apr 14, 13:09:24, Markus Koschany wrote:
> From c83161d86636b98af8681017873d13d9d9918b86 Mon Sep 17 00:00:00 2001
> From: Markus Koschany <[email protected]>
> Date: Mon, 7 Apr 2014 16:34:04 +0200
> Subject: [PATCH] fix 718624 and 734467
>
> ---
> debian/changelog | 31 +++++++++++++++++++++++++++++++
> debian/transmission-daemon.dirs | 1 -
> debian/transmission-daemon.links | 3 ++-
> debian/transmission-daemon.postinst | 9 ++++++---
> debian/transmission-daemon.postrm | 4 ++--
> debian/transmission-daemon.preinst | 23 +++++++++++++++++++++++
> 6 files changed, 64 insertions(+), 7 deletions(-)
> create mode 100644 debian/transmission-daemon.preinst
>
> diff --git a/debian/changelog b/debian/changelog
> index 780b145..4fa93ad 100644
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -1,3 +1,34 @@
> +transmission (2.82-1.2) unstable; urgency=medium
> +
> + * Non-maintainer upload.
> + * transmission-daemon.postinst:
> + - Change home directory of transmission-daemon to
> + /var/lib/transmission-daemon from /home/debian-transmission.
> + Thanks to Alex Peters for the report. (Closes: #734467)
> + - Disable password authentication for debian-transmission user for
> improved
> + security. Logins with e.g. SSH RSA keys are still possible.
> + - Check existence of debian-transmission user with getent passwd
> + debian-transmission instead of id.
> + * Add transmission-daemon.preinst:
> + - Fix permissions in /var/lib/transmission-daemon and use
> + /var/lib/transmission-daemon as the new home directory.
> + - Move old configuration files to appropriate config directory
> + /var/lib/transmission-daemon/.config/transmission-daemon.
> + All together this ensures that transmission-daemon will not segfault
> when
> + systemd is the default init system.
> + Thanks to Andrei Popescu and Antoine Legonidec for the report and
> + additional tests. (Closes: #718624)
> + * transmission-daemon.links:
> + - Link settings.json from /etc/transmission-daemon/settings.json to
> + /var/lib/transmission-daemon/.config/transmission-daemon.
> + - Link /var/lib/transmission-daemon/.config/transmission-daemon to
> + /var/lib/transmission-daemon/info due to compatibility reasons with the
> + old sysv-rc init script settings.
> + * transmission-daemon.dirs:
> + - Do not create /var/lib/transmission-daemon/info anymore.
> +
> + -- Markus Koschany <[email protected]> Tue, 08 Apr 2014 13:05:39 +0200
> +
> transmission (2.82-1.1) unstable; urgency=medium
>
> * Non-maintainer upload.
> diff --git a/debian/transmission-daemon.dirs b/debian/transmission-daemon.dirs
> index 7d6fc68..0fe0558 100644
> --- a/debian/transmission-daemon.dirs
> +++ b/debian/transmission-daemon.dirs
> @@ -1,2 +1 @@
> -/var/lib/transmission-daemon/info
> /var/lib/transmission-daemon/downloads
> diff --git a/debian/transmission-daemon.links
> b/debian/transmission-daemon.links
> index 1a4d956..327ae46 100644
> --- a/debian/transmission-daemon.links
> +++ b/debian/transmission-daemon.links
> @@ -1,2 +1,3 @@
> usr/share/doc/transmission-common usr/share/doc/transmission-daemon
> -etc/transmission-daemon/settings.json
> var/lib/transmission-daemon/info/settings.json
> +etc/transmission-daemon/settings.json
> var/lib/transmission-daemon/.config/transmission-daemon/settings.json
> +var/lib/transmission-daemon/.config/transmission-daemon
> /var/lib/transmission-daemon/info
> diff --git a/debian/transmission-daemon.postinst
> b/debian/transmission-daemon.postinst
> index a27960c..cfc23f6 100644
> --- a/debian/transmission-daemon.postinst
> +++ b/debian/transmission-daemon.postinst
> @@ -15,22 +15,25 @@ chperms() {
> }
>
> case "$1" in
> - configure|upgrade)
> - if ! id -u debian-transmission > /dev/null; then
> + configure)
> + if ! getent passwd debian-transmission > /dev/null; then
> adduser --quiet \
> --system \
> --group \
> --no-create-home \
> + --disabled-password \
> + --home /var/lib/transmission-daemon \
> debian-transmission
> fi
>
> - chperms debian-transmission debian-transmission 4750
> /var/lib/transmission-daemon/info
> + chperms debian-transmission debian-transmission 4750
> /var/lib/transmission-daemon/.config/transmission-daemon
>
> chperms debian-transmission debian-transmission 4775
> /var/lib/transmission-daemon/downloads
>
> chperms debian-transmission debian-transmission 0660
> /etc/transmission-daemon/settings.json
>
> chperms root debian-transmission 2775 /etc/transmission-daemon
> +
> ;;
> esac
>
> diff --git a/debian/transmission-daemon.postrm
> b/debian/transmission-daemon.postrm
> index b3ecb55..637be21 100644
> --- a/debian/transmission-daemon.postrm
> +++ b/debian/transmission-daemon.postrm
> @@ -4,8 +4,8 @@ set -e
>
> case "$1" in
> purge)
> - if [ -d /var/lib/transmission-daemon/info ]; then
> - rm -rf /var/lib/transmission-daemon/info/*
> + if [ -d /var/lib/transmission-daemon/.config ]; then
> + rm -rf /var/lib/transmission-daemon/.config/*
> fi
> ;;
> esac
> diff --git a/debian/transmission-daemon.preinst
> b/debian/transmission-daemon.preinst
> new file mode 100644
> index 0000000..27ee9ae
> --- /dev/null
> +++ b/debian/transmission-daemon.preinst
> @@ -0,0 +1,23 @@
> +#!/bin/sh
> +
> +set -e
> +
> +case "$1" in
> + upgrade)
> + if dpkg --compare-versions "$2" lt "2.82-1.2~"; then
> + mkdir -p /var/lib/transmission-daemon/.config/transmission-daemon
> + chown -R debian-transmission:debian-transmission
> /var/lib/transmission-daemon/*
> + usermod debian-transmission -d /var/lib/transmission-daemon
> + mv /var/lib/transmission-daemon/info/*
> /var/lib/transmission-daemon/.config/transmission-daemon
> + rmdir /var/lib/transmission-daemon/info
> + fi
> + ;;
> + install|abort-upgrade)
> + ;;
> + *)
> + echo "preinst called with unknown argument '$1'" >&2
> + exit 1
> + ;;
> +esac
> +
> +#DEBHELPER#
> --
> 1.9.1
>
signature.asc
Description: Digital signature

