[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#773527: unblock: transmission/2.84-0.2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear release team,

Please unblock package transmission.

The home directory of transmission-daemon's user debian-transmission
was set to the wrong directory. The error was exposed when systemd became the
default init system and transmission-daemon crashed since the required
configuration files were unavailable. The last NMU was incomplete
because removing Type=notify in transmission-daemon's service file only
suppressed the error but did not fix #718624.

The new revision fixes the issue by changing the home directory to
/var/lib/transmission-daemon, adjusting the permissions to debian-transmission
where necessary and creating symlinks to the old /var/lib/transmission-daemon/info
directory to ensure compatibility with the old sysV-init setup.

I am attaching the debdiff against the current version in testing.

unblock transmission/2.84-0.2

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-12-10 08:20:54.000000000 +0100
@@ -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 <apo@gambaru.de>  Wed, 10 Dec 2014 08:16:13 +0100
+
 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-12-10 08:20:54.000000000 +0100
@@ -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-debian@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-12-10 08:20:54.000000000 +0100
@@ -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-12-10 08:20:54.000000000 +0100
@@ -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-12-10 08:20:54.000000000 +0100
@@ -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-12-10 08:20:54.000000000 +0100
@@ -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-12-10 08:20:54.000000000 +0100
@@ -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#

Reply to: