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 <a...@gambaru.de>
> 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 <a...@gambaru.de>  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
> 

Attachment: signature.asc
Description: Digital signature

Reply via email to