From 080d590de1ff9f8ebc55aeffaea8d41991466549 Mon Sep 17 00:00:00 2001 From: Aurelien Aptel Date: Thu, 14 Dec 2017 16:47:49 +0100 Subject: packaging: add configure option to preprocess and install systemd files Turn the systemd service files under packaging into template (.in) files with @VAR@ substitutions and add configure options to install and tweak them. Signed-off-by: Aurelien Aptel Reviewed-by: Andrew Bartlett Reviewed-by: Garming Sam --- packaging/systemd/nmb.service | 16 ------------ packaging/systemd/nmb.service.in | 17 ++++++++++++ packaging/systemd/samba.service | 16 ------------ packaging/systemd/samba.service.in | 17 ++++++++++++ packaging/systemd/smb.service | 16 ------------ packaging/systemd/smb.service.in | 17 ++++++++++++ packaging/systemd/winbind.service | 15 ----------- packaging/systemd/winbind.service.in | 16 ++++++++++++ packaging/wscript | 50 ++++++++++++++++++++++++++++++++++++ packaging/wscript_build | 16 ++++++++++++ 10 files changed, 133 insertions(+), 63 deletions(-) delete mode 100644 packaging/systemd/nmb.service create mode 100644 packaging/systemd/nmb.service.in delete mode 100644 packaging/systemd/samba.service create mode 100644 packaging/systemd/samba.service.in delete mode 100644 packaging/systemd/smb.service create mode 100644 packaging/systemd/smb.service.in delete mode 100644 packaging/systemd/winbind.service create mode 100644 packaging/systemd/winbind.service.in create mode 100644 packaging/wscript create mode 100644 packaging/wscript_build (limited to 'packaging') diff --git a/packaging/systemd/nmb.service b/packaging/systemd/nmb.service deleted file mode 100644 index 6231118abe8..00000000000 --- a/packaging/systemd/nmb.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Samba NMB Daemon -Wants=network-online.target -After=syslog.target network.target network-online.target - -[Service] -Type=notify -NotifyAccess=all -PIDFile=/run/nmbd.pid -EnvironmentFile=-/etc/sysconfig/samba -ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS -ExecReload=/usr/bin/kill -HUP $MAINPID -LimitCORE=infinity - -[Install] -WantedBy=multi-user.target diff --git a/packaging/systemd/nmb.service.in b/packaging/systemd/nmb.service.in new file mode 100644 index 00000000000..b0ba92f2244 --- /dev/null +++ b/packaging/systemd/nmb.service.in @@ -0,0 +1,17 @@ +[Unit] +Description=Samba NMB Daemon +Wants=network-online.target +After=syslog.target network.target network-online.target + +[Service] +Type=notify +NotifyAccess=all +PIDFile=@PIDDIR@/nmbd.pid +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/nmbd --foreground --no-process-group $NMBDOPTIONS +ExecReload=/usr/bin/kill -HUP $MAINPID +LimitCORE=infinity +@systemd_nmb_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/samba.service b/packaging/systemd/samba.service deleted file mode 100644 index 79b22a0da7a..00000000000 --- a/packaging/systemd/samba.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Samba AD Daemon -Wants=network-online.target -After=syslog.target network.target network-online.target - -[Service] -Type=notify -NotifyAccess=all -PIDFile=/run/samba.pid -LimitNOFILE=16384 -EnvironmentFile=-/etc/sysconfig/samba -ExecStart=/usr/sbin/samba --foreground --no-process-group $SAMBAOPTIONS -ExecReload=/usr/bin/kill -HUP $MAINPID - -[Install] -WantedBy=multi-user.target diff --git a/packaging/systemd/samba.service.in b/packaging/systemd/samba.service.in new file mode 100644 index 00000000000..c4181509461 --- /dev/null +++ b/packaging/systemd/samba.service.in @@ -0,0 +1,17 @@ +[Unit] +Description=Samba AD Daemon +Wants=network-online.target +After=syslog.target network.target network-online.target + +[Service] +Type=notify +NotifyAccess=all +PIDFile=@PIDDIR@/samba.pid +LimitNOFILE=16384 +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/samba --foreground --no-process-group $SAMBAOPTIONS +ExecReload=/usr/bin/kill -HUP $MAINPID +@systemd_samba_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/smb.service b/packaging/systemd/smb.service deleted file mode 100644 index adf6684c7d9..00000000000 --- a/packaging/systemd/smb.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Samba SMB Daemon -After=syslog.target network.target nmb.service winbind.service - -[Service] -Type=notify -NotifyAccess=all -PIDFile=/run/smbd.pid -LimitNOFILE=16384 -EnvironmentFile=-/etc/sysconfig/samba -ExecStart=/usr/sbin/smbd --foreground --no-process-group $SMBDOPTIONS -ExecReload=/usr/bin/kill -HUP $MAINPID -LimitCORE=infinity - -[Install] -WantedBy=multi-user.target diff --git a/packaging/systemd/smb.service.in b/packaging/systemd/smb.service.in new file mode 100644 index 00000000000..f829bcbaee5 --- /dev/null +++ b/packaging/systemd/smb.service.in @@ -0,0 +1,17 @@ +[Unit] +Description=Samba SMB Daemon +After=syslog.target network.target nmb.service winbind.service + +[Service] +Type=notify +NotifyAccess=all +PIDFile=@PIDDIR@/smbd.pid +LimitNOFILE=16384 +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/smbd --foreground --no-process-group $SMBDOPTIONS +ExecReload=/usr/bin/kill -HUP $MAINPID +LimitCORE=infinity +@systemd_smb_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/winbind.service b/packaging/systemd/winbind.service deleted file mode 100644 index 46b3797251d..00000000000 --- a/packaging/systemd/winbind.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Samba Winbind Daemon -After=syslog.target network.target nmb.service - -[Service] -Type=notify -NotifyAccess=all -PIDFile=/run/winbindd.pid -EnvironmentFile=-/etc/sysconfig/samba -ExecStart=/usr/sbin/winbindd --foreground --no-process-group "$WINBINDOPTIONS" -ExecReload=/usr/bin/kill -HUP $MAINPID -LimitCORE=infinity - -[Install] -WantedBy=multi-user.target diff --git a/packaging/systemd/winbind.service.in b/packaging/systemd/winbind.service.in new file mode 100644 index 00000000000..5ac5adc846f --- /dev/null +++ b/packaging/systemd/winbind.service.in @@ -0,0 +1,16 @@ +[Unit] +Description=Samba Winbind Daemon +After=syslog.target network.target nmb.service + +[Service] +Type=notify +NotifyAccess=all +PIDFile=@PIDDIR@/winbindd.pid +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/winbindd --foreground --no-process-group "$WINBINDOPTIONS" +ExecReload=/usr/bin/kill -HUP $MAINPID +LimitCORE=infinity +@systemd_winbind_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/wscript b/packaging/wscript new file mode 100644 index 00000000000..76158e9da44 --- /dev/null +++ b/packaging/wscript @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +import Options + +def set_options(opt): + gr = opt.option_group('systemd installation options') + + gr.add_option('--systemd-install-services', + help=("install systemd service files to manage daemons (default=no)"), + action="store_true", dest="systemd_install_services", default=False) + + gr.add_option('--with-systemddir', + help=("systemd service directory [PREFIX/usr/lib/systemd/system]"), + action="store", dest="SYSTEMDDIR", + default="${PREFIX}/usr/lib/systemd/system") + # + # extra service directives + # + + gr.add_option('--systemd-smb-extra', + metavar="Option=Value", + help=("Extra directives added to the smb service file." + +" Can be given multiple times."), + action="append", dest="systemd_smb_extra", default=[]) + + gr.add_option('--systemd-nmb-extra', + metavar="Option=Value", + help=("Extra directives added to the nmb service file." + +" Can be used multiple times."), + action="append", dest="systemd_nmb_extra", default=[]) + + gr.add_option('--systemd-winbind-extra', + metavar="Option=Value", + help=("Extra directives added to the winbind service file." + +" Can be used multiple times."), + action="append", dest="systemd_winbind_extra", default=[]) + + gr.add_option('--systemd-samba-extra', + metavar="Option=Value", + help=("Extra directives added to the samba service file." + +" Can be used multiple times."), + action="append", dest="systemd_samba_extra", default=[]) + +def configure(conf): + conf.env.systemd_install_services = Options.options.systemd_install_services + conf.env.systemd_smb_extra = '\n'.join(Options.options.systemd_smb_extra) + conf.env.systemd_nmb_extra = '\n'.join(Options.options.systemd_nmb_extra) + conf.env.systemd_winbind_extra = '\n'.join(Options.options.systemd_winbind_extra) + conf.env.systemd_samba_extra = '\n'.join(Options.options.systemd_samba_extra) + conf.env.SYSTEMDDIR = Options.options.SYSTEMDDIR diff --git a/packaging/wscript_build b/packaging/wscript_build new file mode 100644 index 00000000000..fbcd4e55f8c --- /dev/null +++ b/packaging/wscript_build @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +systemd_services = [ + 'systemd/smb.service', + 'systemd/nmb.service', + 'systemd/winbind.service', + 'systemd/samba.service' +] + +for srv in systemd_services: + bld.CONFIGURE_FILE(srv) + if bld.env.systemd_install_services: + bld.INSTALL_FILES(bld.env.SYSTEMDDIR, srv, flat=True) + +if bld.env.systemd_install_services: + bld.INSTALL_FILES('${SYSCONFDIR}/sysconfig', 'systemd/samba.sysconfig', destname='samba') -- cgit v1.2.1