Message ID | 1421684056-5266-11-git-send-email-maxtram95@gmail.com |
---|---|
State | Superseded |
Headers | show |
Hi Maxim, On Mon, Jan 19, 2015 at 5:14 PM, Maxim Mikityanskiy <maxtram95@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@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,
On 02/02/15 23:09, Samuel Martin wrote: > 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 ;) To be more accurate: we normally don't indent the bodies of make conditions. But the transmission.mk file already violates that principle. Regards, Arnout
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 -
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@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