[Buildroot] [PATCH 12/16] package/samba: add systemd support

Samuel Martin s.martin49 at gmail.com
Mon Feb 2 22:38:53 UTC 2015


Hi Maxim,

On Mon, Jan 19, 2015 at 5:14 PM, Maxim Mikityanskiy <maxtram95 at gmail.com> wrote:
> Add {smbd,nmbd,winbindd}.service files for systemd. Add tmpfiles.d
> config file to create samba directories.
>
> Signed-off-by: Maxim Mikityanskiy <maxtram95 at gmail.com>
> ---
>  package/samba/nmbd.service        | 12 ++++++++++++
>  package/samba/samba.mk            | 23 +++++++++++++++++++++++
>  package/samba/samba_tmpfiles.conf |  4 ++++
>  package/samba/smbd.service        | 12 ++++++++++++
>  package/samba/winbindd.service    | 12 ++++++++++++
>  5 files changed, 63 insertions(+)
>  create mode 100644 package/samba/nmbd.service
>  create mode 100644 package/samba/samba_tmpfiles.conf
>  create mode 100644 package/samba/smbd.service
>  create mode 100644 package/samba/winbindd.service
>
> diff --git a/package/samba/nmbd.service b/package/samba/nmbd.service
> new file mode 100644
> index 0000000..6e241ea
> --- /dev/null
> +++ b/package/samba/nmbd.service
> @@ -0,0 +1,12 @@
> +[Unit]
> +Description=Samba NetBIOS name server
> +After=network.target
> +
> +[Service]
> +Type=forking
> +PIDFile=/var/run/samba/nmbd.pid
> +ExecStart=/usr/sbin/nmbd -D
> +ExecReload=/bin/kill -HUP $MAINPID
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/package/samba/samba.mk b/package/samba/samba.mk
> index 31ad644..5a11ebe 100644
> --- a/package/samba/samba.mk
> +++ b/package/samba/samba.mk
> @@ -182,6 +182,29 @@ endef
>
>  SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_CONFIG
>
> +ifeq ($(BR2_INIT_SYSTEMD),y)
> +define SAMBA_INSTALL_TMPFILES_HOOK
> +       $(INSTALL) -D -m 644 package/samba/samba_tmpfiles.conf \
> +               $(TARGET_DIR)/usr/lib/tmpfiles.d/samba.conf
> +endef
> +
> +SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_TMPFILES_HOOK
> +endif
> +
> +define SAMBA_INSTALL_INIT_SYSTEMD
> +       $(INSTALL) -D -m 644 package/samba/smbd.service \
> +               $(TARGET_DIR)/lib/systemd/system/smbd.service

smbd can be disabled, so its *.service installation should be optional
WRT its option.

> +       $(INSTALL) -D -m 644 package/samba/nmbd.service \
> +               $(TARGET_DIR)/lib/systemd/system/nmbd.service

ditto for nmbd.

> +       $(if $(BR2_PACKAGE_SAMBA_WINBINDD),$(INSTALL) -D -m 644 package/samba/winbindd.service $(TARGET_DIR)/lib/systemd/system/winbindd.service)
> +       mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
> +       ln -fs /lib/systemd/system/smbd.service \
> +               $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/smbd.service

ditto

> +       ln -fs /lib/systemd/system/nmbd.service \
> +               $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/nmbd.service

ditto

> +       $(if $(BR2_PACKAGE_SAMBA_WINBINDD),ln -fs /lib/systemd/system/winbindd.service $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/winbindd.service)
> +endef
> +
>  define SAMBA_INSTALL_INIT_SYSV
>         $(INSTALL) -m 0755 -D package/samba/S91smb $(TARGET_DIR)/etc/init.d/S91smb
>  endef
> diff --git a/package/samba/samba_tmpfiles.conf b/package/samba/samba_tmpfiles.conf
> new file mode 100644
> index 0000000..e265f75
> --- /dev/null
> +++ b/package/samba/samba_tmpfiles.conf
> @@ -0,0 +1,4 @@
> +d /var/cache/samba 0755 root root -
> +d /var/log/samba 0755 root root -
> +d /var/lock/samba 0755 root root -
> +d /var/run/samba 0755 root root -
> diff --git a/package/samba/smbd.service b/package/samba/smbd.service
> new file mode 100644
> index 0000000..64abf56
> --- /dev/null
> +++ b/package/samba/smbd.service
> @@ -0,0 +1,12 @@
> +[Unit]
> +Description=Samba SMB/CIFS server
> +After=network.target nmbd.service winbindd.service
> +
> +[Service]
> +Type=forking
> +PIDFile=/var/run/samba/smbd.pid
> +ExecStart=/usr/sbin/smbd -D
> +ExecReload=/bin/kill -HUP $MAINPID
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/package/samba/winbindd.service b/package/samba/winbindd.service
> new file mode 100644
> index 0000000..214c17e
> --- /dev/null
> +++ b/package/samba/winbindd.service
> @@ -0,0 +1,12 @@
> +[Unit]
> +Description=Samba Winbind daemon
> +After=network.target nmbd.service
> +
> +[Service]
> +Type=forking
> +PIDFile=/var/run/samba/winbindd.pid
> +ExecStart=/usr/sbin/winbindd -D
> +ExecReload=/bin/kill -HUP $MAINPID
> +
> +[Install]
> +WantedBy=multi-user.target
> --
> 2.2.1

Regards,

-- 
Samuel


More information about the buildroot mailing list