[Buildroot] [PATCH 10/16] package/transmission: improve systemd support

Samuel Martin s.martin49 at gmail.com
Mon Feb 2 22:09:08 UTC 2015


Hi Maxim,

On Mon, Jan 19, 2015 at 5:14 PM, Maxim Mikityanskiy <maxtram95 at gmail.com> wrote:
> 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

We usually like when option are symetrical, so here, just add:
<snip>
else
TRANSMISSION_CONF_OPTS += --without-systemd-daemon
</snip>

 Note that, we usually don't indent variable assignation ;)

> +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

The 3 above hooks are for systemd only, no?
If yes, put them all together in a single hook only added to the
TRANSMISSION_POST_INSTALL_TARGET_HOOKS when init is systemd.

> +
>  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
>

Regards,

-- 
Samuel


More information about the buildroot mailing list