--- Begin Message ---
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#
--- End Message ---