[Buildroot] [PATCH 10/16] package/transmission: improve systemd support
Maxim Mikityanskiy
maxtram95 at gmail.com
Mon Jan 19 16:14:10 UTC 2015
Support running transmission-daemon in system-wide mode using systemd:
1. Pass --with-systemd-daemon to configure script if systemd is enabled.
2. Install sysctl.d config file to increase send and receive buffer
sizes.
3. Install tmpfiles.d config file to create transmission config
directory.
4. Install sysusers.d config file to create transmission user when using
systemd. Create transmission user when not using systemd.
5. Install transmission-daemon.service for systemd.
Signed-off-by: Maxim Mikityanskiy <maxtram95 at gmail.com>
---
package/transmission/transmission-daemon.service | 12 +++++++
package/transmission/transmission.mk | 45 ++++++++++++++++++++++++
package/transmission/transmission_sysctl.conf | 2 ++
package/transmission/transmission_sysusers.conf | 1 +
package/transmission/transmission_tmpfiles.conf | 1 +
5 files changed, 61 insertions(+)
create mode 100644 package/transmission/transmission-daemon.service
create mode 100644 package/transmission/transmission_sysctl.conf
create mode 100644 package/transmission/transmission_sysusers.conf
create mode 100644 package/transmission/transmission_tmpfiles.conf
diff --git a/package/transmission/transmission-daemon.service b/package/transmission/transmission-daemon.service
new file mode 100644
index 0000000..4e7c98b
--- /dev/null
+++ b/package/transmission/transmission-daemon.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Transmission BitTorrent Daemon
+After=network.target
+
+[Service]
+User=transmission
+Type=notify
+ExecStart=/usr/bin/transmission-daemon -f --log-error -g /var/lib/transmission/config
+ExecReload=/bin/kill -s HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/package/transmission/transmission.mk b/package/transmission/transmission.mk
index b8a5c42..b5b9c8b 100644
--- a/package/transmission/transmission.mk
+++ b/package/transmission/transmission.mk
@@ -36,11 +36,56 @@ endif
ifeq ($(BR2_PACKAGE_TRANSMISSION_DAEMON),y)
TRANSMISSION_CONF_OPTS += --enable-daemon
+ifeq ($(BR2_PACKAGE_SYSTEMD),y)
+ TRANSMISSION_DEPENDENCIES += systemd
+ TRANSMISSION_CONF_OPTS += --with-systemd-daemon
+endif
+
+ifeq ($(BR2_INIT_SYSTEMD),)
+define TRANSMISSION_USERS
+ transmission -1 transmission -1 * /var/lib/transmission - transmission Transmission Daemon
+endef
+endif
+
define TRANSMISSION_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D package/transmission/S92transmission \
$(TARGET_DIR)/etc/init.d/S92transmission
endef
+define TRANSMISSION_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 package/transmission/transmission-daemon.service \
+ $(TARGET_DIR)/lib/systemd/system/transmission-daemon.service
+ mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+ ln -fs /lib/systemd/system/transmission-daemon.service \
+ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/transmission-daemon.service
+
+ mkdir -p $(TARGET_DIR)/var/lib/transmission/config
+endef
+
+define TRANSMISSION_INSTALL_SYSCTL_HOOK
+ $(INSTALL) -D -m 644 package/transmission/transmission_sysctl.conf \
+ $(TARGET_DIR)/usr/lib/sysctl.d/20-transmission.conf
+endef
+
+TRANSMISSION_POST_INSTALL_TARGET_HOOKS += \
+ TRANSMISSION_INSTALL_SYSCTL_HOOK
+
+define TRANSMISSION_INSTALL_TMPFILES_HOOK
+ $(INSTALL) -D -m 644 package/transmission/transmission_tmpfiles.conf \
+ $(TARGET_DIR)/usr/lib/tmpfiles.d/transmission.conf
+endef
+
+TRANSMISSION_POST_INSTALL_TARGET_HOOKS += \
+ TRANSMISSION_INSTALL_TMPFILES_HOOK
+
+define TRANSMISSION_INSTALL_SYSUSERS_HOOK
+ $(INSTALL) -D -m 644 package/transmission/transmission_sysusers.conf \
+ $(TARGET_DIR)/usr/lib/sysusers.d/transmission.conf
+endef
+
+TRANSMISSION_POST_INSTALL_TARGET_HOOKS += \
+ TRANSMISSION_INSTALL_SYSUSERS_HOOK
+
else
TRANSMISSION_CONF_OPTS += --disable-daemon
endif
diff --git a/package/transmission/transmission_sysctl.conf b/package/transmission/transmission_sysctl.conf
new file mode 100644
index 0000000..7862332
--- /dev/null
+++ b/package/transmission/transmission_sysctl.conf
@@ -0,0 +1,2 @@
+net.core.wmem_max = 1048576
+net.core.rmem_max = 4194304
diff --git a/package/transmission/transmission_sysusers.conf b/package/transmission/transmission_sysusers.conf
new file mode 100644
index 0000000..09396d4
--- /dev/null
+++ b/package/transmission/transmission_sysusers.conf
@@ -0,0 +1 @@
+u transmission - "Transmission daemon" /var/lib/transmission
diff --git a/package/transmission/transmission_tmpfiles.conf b/package/transmission/transmission_tmpfiles.conf
new file mode 100644
index 0000000..e40b94a
--- /dev/null
+++ b/package/transmission/transmission_tmpfiles.conf
@@ -0,0 +1 @@
+d /var/lib/transmission/config 0700 transmission users -
--
2.2.1
More information about the buildroot
mailing list