On 11.10.2014 22:44, Andrei POPESCU wrote:
[...]
> 
> Markus Koschany was kind enough to work on a patch, would you mind 
> looking at it and possibly apply it?

Hi,

I have rebased the patch against the latest version of Transmission in unstable.
I agree with Andrei that this bug is not entirely fixed yet.

Regards,

Markus

diff -Nru transmission-2.84/debian/changelog transmission-2.84/debian/changelog
--- transmission-2.84/debian/changelog  2014-08-30 08:31:07.000000000 +0200
+++ transmission-2.84/debian/changelog  2014-10-16 14:58:20.000000000 +0200
@@ -1,3 +1,34 @@
+transmission (2.84-0.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>  Thu, 16 Oct 2014 14:54:23 +0200
+
 transmission (2.84-0.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru transmission-2.84/debian/patches/systemd_service_fixes.patch 
transmission-2.84/debian/patches/systemd_service_fixes.patch
--- transmission-2.84/debian/patches/systemd_service_fixes.patch        
2014-08-30 08:30:08.000000000 +0200
+++ transmission-2.84/debian/patches/systemd_service_fixes.patch        
2014-10-16 14:58:20.000000000 +0200
@@ -1,27 +1,29 @@
 Description: fix segfaults due to wrong systemd service file
  The service file has the following line:
-  User=transmission
+ User=transmission
  .
  It should be replaced with:
-  User=debian-transmission
+ User=debian-transmission
  .
- Moreover, the type is set to "notify", but it never sends a signal, so systemd
- kills it. Until this has been explained, this line should be removed.
-Author: Adrien CLERC <bugs-deb...@antipoul.fr>
-Bug-Debian: https://bugs.debian.org/718624
-Origin: other, https://bugs.debian.org/718624
-Forwarded: no
-Last-Update: 2014-07-18
+ Bug-Debian: https://bugs.debian.org/718624
+ Origin: other, https://bugs.debian.org/718624
+ Forwarded: no
+ Last-Update: 2014-10-16
 
---- transmission-2.84.orig/daemon/transmission-daemon.service
-+++ transmission-2.84/daemon/transmission-daemon.service
-@@ -3,8 +3,7 @@ Description=Transmission BitTorrent Daem
+---
+ daemon/transmission-daemon.service | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/daemon/transmission-daemon.service 
b/daemon/transmission-daemon.service
+index 8a1d429..3687cf3 100644
+--- a/daemon/transmission-daemon.service
++++ b/daemon/transmission-daemon.service
+@@ -3,7 +3,7 @@ Description=Transmission BitTorrent Daemon
  After=network.target
  
  [Service]
 -User=transmission
--Type=notify
 +User=debian-transmission
+ Type=notify
  ExecStart=/usr/bin/transmission-daemon -f --log-error
  ExecReload=/bin/kill -s HUP $MAINPID
- 
diff -Nru transmission-2.84/debian/transmission-daemon.dirs 
transmission-2.84/debian/transmission-daemon.dirs
--- transmission-2.84/debian/transmission-daemon.dirs   2014-08-30 
08:29:16.000000000 +0200
+++ transmission-2.84/debian/transmission-daemon.dirs   2014-10-16 
14:58:20.000000000 +0200
@@ -1,2 +1 @@
-/var/lib/transmission-daemon/info
 /var/lib/transmission-daemon/downloads
diff -Nru transmission-2.84/debian/transmission-daemon.links 
transmission-2.84/debian/transmission-daemon.links
--- transmission-2.84/debian/transmission-daemon.links  2014-08-30 
08:29:16.000000000 +0200
+++ transmission-2.84/debian/transmission-daemon.links  2014-10-16 
14:58:20.000000000 +0200
@@ -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 -Nru transmission-2.84/debian/transmission-daemon.postinst 
transmission-2.84/debian/transmission-daemon.postinst
--- transmission-2.84/debian/transmission-daemon.postinst       2014-08-30 
08:29:16.000000000 +0200
+++ transmission-2.84/debian/transmission-daemon.postinst       2014-10-16 
14:58:20.000000000 +0200
@@ -15,22 +15,25 @@
 }
 
 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 -Nru transmission-2.84/debian/transmission-daemon.postrm 
transmission-2.84/debian/transmission-daemon.postrm
--- transmission-2.84/debian/transmission-daemon.postrm 2014-08-30 
08:29:16.000000000 +0200
+++ transmission-2.84/debian/transmission-daemon.postrm 2014-10-16 
14:58:20.000000000 +0200
@@ -4,8 +4,8 @@
 
 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 -Nru transmission-2.84/debian/transmission-daemon.preinst 
transmission-2.84/debian/transmission-daemon.preinst
--- transmission-2.84/debian/transmission-daemon.preinst        1970-01-01 
01:00:00.000000000 +0100
+++ transmission-2.84/debian/transmission-daemon.preinst        2014-10-16 
14:58:20.000000000 +0200
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  upgrade)
+    if dpkg --compare-versions "$2" lt "2.84-0.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#

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to