git » transmission.git » commit 21fe039

add systemd service files and a default user

author Tom Gundersen
2012-08-16 08:24:29 UTC
committer Tom Gundersen
2012-08-16 08:24:29 UTC
parent 6e94b69aa65f130fba303b8d4556cd5a640f7e73

add systemd service files and a default user

PKGBUILD +11 -5
transmission-cli.install +8 -1
transmission.systemd +11 -0
transmission.tmpfiles +1 -0
transmissiond +1 -1
transmissiond.conf +2 -3

diff --git a/PKGBUILD b/PKGBUILD
index aa5d585..fc5dbd4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,16 +3,14 @@
 pkgbase=transmission
 pkgname=('transmission-cli' 'transmission-gtk' 'transmission-qt')
 pkgver=2.61
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url="http://www.transmissionbt.com/"
 license=('MIT')
 makedepends=('gtk3' 'intltool' 'curl' 'qt' 'libevent')
 source=(http://mirrors.m0k.org/transmission/files/$pkgbase-$pkgver.tar.xz
-        transmissiond transmissiond.conf)
-md5sums=('2ed5b7815ebda65223bac6bdb09dec42'
-         '08875299e3fbb68fc546c1f350ac1f06'
-         'be39806c35b7544856fa4070b00fc960')
+        transmissiond transmissiond.conf transmission.systemd
+        transmission.tmpfiles)
 
 build() {
   cd "$pkgbase-$pkgver"
@@ -38,6 +36,9 @@ package_transmission-cli() {
 
   install -D -m755 "$srcdir/transmissiond" "$pkgdir/etc/rc.d/transmissiond"
   install -D -m644 "$srcdir/transmissiond.conf" "$pkgdir/etc/conf.d/transmissiond"
+  install -D -m644 "$srcdir/transmission.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/transmission.conf"
+  install -D -m644 "$srcdir/transmission.systemd" "$pkgdir/usr/lib/systemd/system/transmission.service"
+  ln -s transmission.service "$pkgdir/usr/lib/systemd/system/transmissiond.service"
   install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-cli/COPYING"
 }
 
@@ -69,3 +70,8 @@ package_transmission-qt() {
   install -D -m644 qt/icons/transmission.png "$pkgdir/usr/share/pixmaps/transmission-qt.png"
   install -D -m644 qt/transmission-qt.desktop "$pkgdir/usr/share/applications/transmission-qt.desktop"
 }
+md5sums=('2ed5b7815ebda65223bac6bdb09dec42'
+         '7d6186ee2a852ae3d44980f05063e194'
+         'db72b02fee139e8ab416324e6c044d76'
+         'ecccabbc301d1024c9ef6a7f4aaa530a'
+         '23f2320361ad54373c3a4551ef634fe8')
diff --git a/transmission-cli.install b/transmission-cli.install
index cb6bf60..d99dcf8 100644
--- a/transmission-cli.install
+++ b/transmission-cli.install
@@ -3,7 +3,14 @@ post_install() {
 
   If you want to run the Transmission daemon at boot,
   add transmissiond to the DAEMONS array in /etc/rc.conf.
-  You have to set the user in /etc/conf.d/transmissiond.
 
 _EOF
 }
+
+post_upgrade() {
+       # create user/group that the daemon will run as by default, do not delete this on uninstall, as it will own files
+       getent group transmission >/dev/null || groupadd -g 169 transmission
+       getent passwd transmission >/dev/null || useradd -c 'Transmission BitTorrent Client' -u 169 -g transmission -b '/var/lib' -s /bin/false transmission
+       passwd -l transmission &>/dev/null
+       systemd-tmpfiles --create transmission.conf
+}
diff --git a/transmission.systemd b/transmission.systemd
new file mode 100644
index 0000000..2ca0ded
--- /dev/null
+++ b/transmission.systemd
@@ -0,0 +1,11 @@
+[Unit]
+Description=Transmission Bit Torrent Daemon
+
+[Service]
+User=transmission
+Type=forking
+PIDFile=/run/transmission/transmission.pid
+ExecStart=/usr/bin/transmission-daemon --pid-file /run/transmission/transmission.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/transmission.tmpfiles b/transmission.tmpfiles
new file mode 100644
index 0000000..b603066
--- /dev/null
+++ b/transmission.tmpfiles
@@ -0,0 +1 @@
+d /run/transmission - transmission transmission -
diff --git a/transmissiond b/transmissiond
index 1b4b4dc..ea3d770 100644
--- a/transmissiond
+++ b/transmissiond
@@ -8,7 +8,7 @@ PID=`pidof -o %PPID /usr/bin/transmission-daemon`
 case "$1" in
   start)
     stat_busy "Starting Transmission Daemon"
-    [ -z "$PID" ] && su -l -s /bin/sh -c "/usr/bin/transmission-daemon $TRANS_ARGS" $TRANS_USER
+    [ -z "$PID" ] && su -l -s /bin/sh -c "/usr/bin/transmission-daemon $TRANS_ARGS" "${TRANS_USER:-transmission}"
     if [ $? -gt 0 ]; then
       stat_fail
     else
diff --git a/transmissiond.conf b/transmissiond.conf
index cf6c6f2..45a9fd5 100644
--- a/transmissiond.conf
+++ b/transmissiond.conf
@@ -1,5 +1,4 @@
 # example configuration file
 
-# TRANSMISSION_HOME=/home/foo
-# TRANS_USER="foo"
-# TRANS_ARGS="-g $TRANSMISSION_HOME/.config/transmission-daemon"
+# TRANS_USER="transmission"
+# TRANS_ARGS=""