From 8daa83a594a2e98f39d764422bfbdbc62c9efd44 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 19:20:00 +0200 Subject: Adding upstream version 2:4.20.0+dfsg. Signed-off-by: Daniel Baumann --- packaging/Debian/README | 16 ++++++ packaging/Example/Instructions | 41 ++++++++++++++ packaging/Example/PackageDate | 1 + packaging/Example/Packager | 1 + packaging/Example/Packaging-instructions | 16 ++++++ packaging/Example/package-prep | 53 ++++++++++++++++++ packaging/Example/samba.init | 34 +++++++++++ packaging/Example/skeleton.tar | Bin 0 -> 30720 bytes packaging/NetworkManager/30-winbind-systemd | 20 +++++++ packaging/NetworkManager/README | 6 ++ packaging/README | 32 +++++++++++ packaging/SuSE/README | 9 +++ packaging/bin/fill-templates | 47 ++++++++++++++++ packaging/bin/update-pkginfo | 31 ++++++++++ packaging/printing/README | 3 + packaging/printing/smbprint | 84 ++++++++++++++++++++++++++++ packaging/systemd/README | 14 +++++ packaging/systemd/ctdb.service.in | 19 +++++++ packaging/systemd/nmb.service.in | 17 ++++++ packaging/systemd/samba.conf.tmp | 1 + packaging/systemd/samba.service.in | 17 ++++++ packaging/systemd/samba.sysconfig | 18 ++++++ packaging/systemd/smb.service.in | 18 ++++++ packaging/systemd/winbind.service.in | 16 ++++++ packaging/sysv/samba.init | 37 ++++++++++++ packaging/wscript | 57 +++++++++++++++++++ packaging/wscript_build | 22 ++++++++ 27 files changed, 630 insertions(+) create mode 100644 packaging/Debian/README create mode 100644 packaging/Example/Instructions create mode 100644 packaging/Example/PackageDate create mode 100644 packaging/Example/Packager create mode 100644 packaging/Example/Packaging-instructions create mode 100755 packaging/Example/package-prep create mode 100755 packaging/Example/samba.init create mode 100644 packaging/Example/skeleton.tar create mode 100755 packaging/NetworkManager/30-winbind-systemd create mode 100644 packaging/NetworkManager/README create mode 100644 packaging/README create mode 100644 packaging/SuSE/README create mode 100755 packaging/bin/fill-templates create mode 100755 packaging/bin/update-pkginfo create mode 100644 packaging/printing/README create mode 100644 packaging/printing/smbprint create mode 100644 packaging/systemd/README create mode 100644 packaging/systemd/ctdb.service.in create mode 100644 packaging/systemd/nmb.service.in create mode 100644 packaging/systemd/samba.conf.tmp create mode 100644 packaging/systemd/samba.service.in create mode 100644 packaging/systemd/samba.sysconfig create mode 100644 packaging/systemd/smb.service.in create mode 100644 packaging/systemd/winbind.service.in create mode 100755 packaging/sysv/samba.init create mode 100644 packaging/wscript create mode 100644 packaging/wscript_build (limited to 'packaging') diff --git a/packaging/Debian/README b/packaging/Debian/README new file mode 100644 index 0000000..48069f9 --- /dev/null +++ b/packaging/Debian/README @@ -0,0 +1,16 @@ +Debian.org packages +------------------- + +Samba is packaged for Debian and Debian-derived distributions by the Debian +Samba packaging team. + +The current sources for the packages in unstable can be found in Subversion +at: + + svn://svn.debian.org/pkg-samba/trunk/samba + +The current sources for particular Debian releases as well as the +"experimental" branch can be found at: + + svn://svn.debian.org/pkg-samba/branches//samba + diff --git a/packaging/Example/Instructions b/packaging/Example/Instructions new file mode 100644 index 0000000..02ffa7b --- /dev/null +++ b/packaging/Example/Instructions @@ -0,0 +1,41 @@ +Copyright (C) 1997-1998 Samba-Team +E-mail: samba-binaries@samba.org + +Subject: Installation Instructions for SuperNewOS X.X +-------------------------------------------------------- + +1) cd / +2) tar xvf [path-to-samba-package]/install.tar +3) cd /usr/local/samba/lib +4) vi smb.conf + +Now modify smb.conf to reflect your site needs. + +5) samba start + +To stop samba: + + samba stop + +You could install samba to run from the system start-up scripts +(recommended) by running ./setup.sh + +Start / Stop Samba as follows:- + + samba [start | stop] + + +Subject: New Users Must Read This +----------------------------------- +Above ALL else, read the smb.conf man pages _AND_ all text documentation. + +To enable SMB encrypted password support do the following: + +1) Put /usr/local/samba/bin in your PATH +2) Edit /usr/local/samba/lib/smb.conf and uncomment the + line "encrypt passwd = yes" +3) Execute: smbpasswd -a "username" "password" + +The above will create your /usr/local/samba/private/smbpasswd file +in which will be the NT and LanMAN hashed passwords. + diff --git a/packaging/Example/PackageDate b/packaging/Example/PackageDate new file mode 100644 index 0000000..95cbb09 --- /dev/null +++ b/packaging/Example/PackageDate @@ -0,0 +1 @@ +# Month, WeekDay, Date, Year, PreparerCity, Country diff --git a/packaging/Example/Packager b/packaging/Example/Packager new file mode 100644 index 0000000..f5db3f8 --- /dev/null +++ b/packaging/Example/Packager @@ -0,0 +1 @@ +Packager: John Doe diff --git a/packaging/Example/Packaging-instructions b/packaging/Example/Packaging-instructions new file mode 100644 index 0000000..b598fd6 --- /dev/null +++ b/packaging/Example/Packaging-instructions @@ -0,0 +1,16 @@ +The package building files should be located in a +directory called: samba-X.X.X + +Where X.X.X is the version ID. + +Step Directions +==== ============================================ +1. Copy the samba distribution tarball into the packaging directory +2. Make sure you have a installed on your system the GNU gzip/gunzip files +3. Edit "package-prep" script as required +4. Run "package-prep" + +If all goes well, you should now have a usable distribution package. + +Note: Update the Instructions file as required. + diff --git a/packaging/Example/package-prep b/packaging/Example/package-prep new file mode 100755 index 0000000..ae09638 --- /dev/null +++ b/packaging/Example/package-prep @@ -0,0 +1,53 @@ +#!/bin/sh + +# Extract the skeleton directory structure into which samba will be installed. +tar xvf skeleton.tar + +# Now link the skeleton directory structure into the final install tree. +( + cd /usr/local + mv man man.orig + mv samba samba.orig + NOWDIR=$(pwd) + ln -sf $NOWDIR/usr/local/man man + ln -sf $NOWDIR/usr/local/samba samba +) + +# Unpack the master source tarball +gunzip samba-X.X.X.tar.gz +tar xvf samba-X.X.X.tar + +# Now build the binary files +cd samba-X.X.X/source +./configure +make +make install + +# Install into the packaging tree that full reflects the final install tree +cd $NOWDIR/usr/local/samba +cp -pr man ../ +rm -rf man +cd $NOWDIR + +# Create the package tarball +tar cvf install.tar usr var + +# Clean up original sources preserving all configured files +# Note: This will allow installers to check build options +cd samba-X.X.X/source +rm -f ../source/bin/* +make clean +cd ../.. +tar cvf samba-X.X.X.tar samba-X.X.X +rm -rf samba-X.X.X +rm -rf usr var +cd .. +tar cvf samba-X.X.X-OS-Version-CPU.tar samba-X.X.X +gzip samba-X.X.X-OS-Version-CPU.tar + +# We now have the distribution package, now restore our runtime system +cd samba-X.X.X +tar xcf install.tar + +# Please test operation before shipping the binary distribution package +# to the samba-team. diff --git a/packaging/Example/samba.init b/packaging/Example/samba.init new file mode 100755 index 0000000..c1d605c --- /dev/null +++ b/packaging/Example/samba.init @@ -0,0 +1,34 @@ +#!/bin/sh +# +if [ ! -d /usr/bin ]; then + echo "The /usr file system is not mounted." + exit 1 +fi + +killproc() { + pid=`/bin/ps ax | grep -w $1 | sed -e 's/^ *//' -e 's/ .*//'` + echo "Stopping $1 now." + [ "$pid" != "" ] && kill -15 $pid + echo $pid +} + + +# Start/stop processes required for samba server + +case "$1" in + + 'start') + echo "Starting Samba" + /usr/local/samba/sbin/smbd + /usr/local/samba/sbin/nmbd + echo "Done." + ;; + 'stop') + killproc smbd + killproc nmbd + ;; + *) + echo "Usage: /sbin/init.d/samba.init [ start | stop ]" + ;; +esac +exit 0 diff --git a/packaging/Example/skeleton.tar b/packaging/Example/skeleton.tar new file mode 100644 index 0000000..92598d0 Binary files /dev/null and b/packaging/Example/skeleton.tar differ diff --git a/packaging/NetworkManager/30-winbind-systemd b/packaging/NetworkManager/30-winbind-systemd new file mode 100755 index 0000000..f740bb8 --- /dev/null +++ b/packaging/NetworkManager/30-winbind-systemd @@ -0,0 +1,20 @@ +#!/bin/sh +SYSTEMCTL=/bin/systemctl +winbind_is_active=$($SYSTEMCTL is-active winbind.service) +test "${winbind_is_active}" = "active" || exit 0 + +winbind_offline_logon=$(testparm -s --parameter-name "winbind offline logon" 2>/dev/null) +test "${winbind_offline_logon}" = "Yes" || exit 0 + +case "$2" in +up | vpn-up) + nmb_is_active=$($SYSTEMCTL is-active nmb.service) + if test "${nmb_is_active}" = "active"; then + $SYSTEMCTL try-restart nmb.service || : + fi + /usr/bin/smbcontrol winbind online || : + ;; +down) + /usr/bin/smbcontrol winbind offline + ;; +esac diff --git a/packaging/NetworkManager/README b/packaging/NetworkManager/README new file mode 100644 index 0000000..0db8be6 --- /dev/null +++ b/packaging/NetworkManager/README @@ -0,0 +1,6 @@ +This directory includes files for the dispatcher of NetworkManager. The files +need to be copied to /etc/NetworkManager/dispatcher.d/ and will be automatically +called if a network interface goes up or down. + +30-winbind-systemd: This will set winbind into offline mode if you have winbind + offline logon turned on. diff --git a/packaging/README b/packaging/README new file mode 100644 index 0000000..7444550 --- /dev/null +++ b/packaging/README @@ -0,0 +1,32 @@ +Copyright (C) 1997-2003 Samba-Team +Date: November 16, 1998 +Updates: First Release - 19970819 + 19981116 + 20030329 + 20030905 +=============================================================================== + +Note: +===== +This directory is a public repository for platform specific files including +build files for binary package distributions for specific operating systems +as well as for source file distribution packages for those systems. + +The Example directory should be used as a guide for preparation of binary +packages for distribution via the official samba ftp sites. + +The files contained here are intended for use only by those wishing to build +distribution packages and are NOT considered suitable material for anyone who +wants to just install Samba from the pristine source files contained under +the ../source directory. + +All contributions / modifications / additions / etc. to the packaging files +should be logged in https://bugzilla.samba.org/. + +In the event that anyone wishes to contribute package build information please +indicate in your response how we may access a suitable system to ensure our +ability to keep the binary distribution itself current with the released source. + +The future of cooperatively developed software such as Samba depends on the +willingness of all partners to share the fruit of their labours. + diff --git a/packaging/SuSE/README b/packaging/SuSE/README new file mode 100644 index 0000000..4b56270 --- /dev/null +++ b/packaging/SuSE/README @@ -0,0 +1,9 @@ +Dear SuSE user, + +prebuilt Samba RPMs for all SuSE Linux versions are available at: +ftp://ftp.SuSE.com/pub/projects/samba/ + +The same package are also available at: +http://download.Samba.org/samba/ftp/Binary_Packages/SuSE/ + +Have a lot of fun... diff --git a/packaging/bin/fill-templates b/packaging/bin/fill-templates new file mode 100755 index 0000000..cd711bd --- /dev/null +++ b/packaging/bin/fill-templates @@ -0,0 +1,47 @@ +#!/bin/sh + +# Script to fill the packaging templates with the version +# information that is created by mkversion in advance. +# +# This is a standalone wrapper for update-pkginfo, which +# is usually called from release-scripts/create-tarball. +# This allows for testing some aspects of packaging without +# the need to go through all of create-tarball. +# +# Copyright (C) Michael Adam 2009 +# +# License: GPL + +DIRNAME=$(dirname $0) +TOPDIR=${DIRNAME}/../.. +SRCDIR=${TOPDIR}/source3 +VERSION_H=${SRCDIR}/include/version.h + +pushd ${SRCDIR} >/dev/null 2>&1 +./script/mkversion.sh +popd >/dev/null 2>&1 + +if [ ! -f ${VERSION_H} ]; then + echo "Error creating version.h" + exit 1 +fi + +VERSION=$(grep "define SAMBA_VERSION_OFFICIAL_STRING" ${VERSION_H} | awk '{print $3}') + +vendor_version=$(grep "define SAMBA_VERSION_VENDOR_SUFFIX" ${VERSION_H} | awk '{print $3}') +if test "x${vendor_version}" != "x"; then + VERSION="${VERSION}-${vendor_version}" +fi + +vendor_patch=$(grep "define SAMBA_VERSION_VENDOR_PATCH" ${VERSION_H} | awk '{print $3}') +if test "x${vendor_patch}" != "x"; then + VERSION="${VERSION}-${vendor_patch}" +fi + +VERSION=$(echo ${VERSION} | sed 's/\"//g') + +echo "VERSION: ${VERSION}" + +pushd ${TOPDIR}/packaging >/dev/null 2>&1 +./bin/update-pkginfo "${VERSION}" 1 "" +popd >/dev/null 2>&1 diff --git a/packaging/bin/update-pkginfo b/packaging/bin/update-pkginfo new file mode 100755 index 0000000..486c8c7 --- /dev/null +++ b/packaging/bin/update-pkginfo @@ -0,0 +1,31 @@ +#!/bin/bash + +VERSION=$1 +RELEASE=$2 +REVISION=$3 + +if [ "x${REVISION}" = "x" ]; then + RPMREVISION="" +else + RPMREVISION=".${REVISION}" +fi + +if [ $# -ne 3 ]; then + echo Usage: update-pkginfo VERSION RELEASE REVISION + exit 1 +fi + +DIRNAME=$(dirname $0) +TOPDIR=${DIRNAME}/../../ +PACKAGINGDIR=${TOPDIR}/packaging + +pushd ${PACKAGINGDIR} >/dev/null 2>&1 +for f in $(find . -type f -name "*.tmpl"); do + f2=$(echo $f | sed s/.tmpl//g) + echo $f2 + sed -e s/PVERSION/$VERSION/g \ + -e s/PRELEASE/$RELEASE/g \ + -e s/PREVISION/${REVISION}/g \ + -e s/PRPMREV/${RPMREVISION}/g <$f >$f2 +done +popd >/dev/null 2>&1 diff --git a/packaging/printing/README b/packaging/printing/README new file mode 100644 index 0000000..0dfcc3c --- /dev/null +++ b/packaging/printing/README @@ -0,0 +1,3 @@ +The smbprint script is an input filter for printcap printing on a unix machine. +It uses the smbclient program to print the file to the specified smb-based +server and service. diff --git a/packaging/printing/smbprint b/packaging/printing/smbprint new file mode 100644 index 0000000..a21385a --- /dev/null +++ b/packaging/printing/smbprint @@ -0,0 +1,84 @@ +#!/bin/sh +# This script is an input filter for printcap printing on a unix machine. It +# uses the smbclient program to print the file to the specified smb-based +# server and service. +# For example you could have a printcap entry like this +# +# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint +# +# which would create a unix printer called "smb" that will print via this +# script. You will need to create the spool directory /usr/spool/smb with +# appropriate permissions and ownerships for your system. + +# Set these to the server and service you wish to print to +# In this example I have a WfWg PC called "lapland" that has a printer +# exported called "printer" with no password. + +# +# Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton) +# so that the server, service, and password can be read from +# a /usr/var/spool/lpd/PRINTNAME/.config file. +# +# In order for this to work the /etc/printcap entry must include an +# accounting file (af=...): +# +# cdcolour:\ +# :cm=CD IBM Colorjet on 6th:\ +# :sd=/var/spool/lpd/cdcolour:\ +# :af=/var/spool/lpd/cdcolour/acct:\ +# :if=/usr/local/etc/smbprint:\ +# :mx=0:\ +# :lp=/dev/null: +# +# The /usr/var/spool/lpd/PRINTNAME/.config file should contain: +# share=PC_SERVER +# user="user" +# password="password" +# +# Please, do not modify the order in the file. +# Example: +# share=\\server\deskjet +# user="fred" +# password="" + +# +# The last parameter to the filter is the accounting file name. +# Extract the directory name from the file name. +# Concat this with /.config to get the config file. +# +eval acct_file=\${$#} +spool_dir=$(dirname $acct_file) +config_file=$spool_dir/.config + +# Should read the following variables set in the config file: +# share +# hostip +# user +# password + +eval $(cat $config_file) + +share=$(echo $share | sed "s/[\]/\//g") + +if [ "$user" != "" ]; then + usercmd="-U" +else + usercmd="" +fi + +if [ "$workgroup" != "" ]; then + workgroupcmd="-W" +else + workgroupcmd="" +fi + +if [ "$translate" = "yes" ]; then + command="translate ; print -" +else + command="print -" +fi +#echo $share $password $translate $x_command > /tmp/smbprint.log + +cat | /usr/bin/smbclient "$share" "$password" -E ${hostip:+-I} \ + $hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup" \ + -c "$command" 2>/dev/null diff --git a/packaging/systemd/README b/packaging/systemd/README new file mode 100644 index 0000000..5d1d746 --- /dev/null +++ b/packaging/systemd/README @@ -0,0 +1,14 @@ +With systemd the /run or /var/run are tmpfs filesystems. This means +the directories required by samba need to be created during startup. +This can be done with a config file for tmpfiles, see samba.conf.tmp. +You need to copy this file to the directory systemd-tmpfiles is looking +for its config files e.g.: + +install -d -m 0755 /etc/tmpfiles.d/ +install -m644 samba.conf.tmp /etc/tmpfiles.d/samba.conf + +If you're a packager don't forget to run the systemd-tmpfiles binary +in the script after samba has been installed. This makes sure the +directory exists and you can start samba directly after the installation. + +/usr/bin/systemd-tmpfiles --create /etc/tmpfiles.d/samba.conf diff --git a/packaging/systemd/ctdb.service.in b/packaging/systemd/ctdb.service.in new file mode 100644 index 0000000..7905a93 --- /dev/null +++ b/packaging/systemd/ctdb.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=CTDB +Documentation=man:ctdbd(1) man:ctdb(7) +After=network-online.target time-sync.target +ConditionFileNotEmpty=@CTDB_ETCDIR@/nodes + +[Service] +Type=forking +LimitCORE=infinity +LimitNOFILE=1048576 +TasksMax=4096 +PIDFile=@CTDB_RUNDIR@/ctdbd.pid +ExecStart=@SBINDIR@/ctdbd +ExecStop=@BINDIR@/ctdb shutdown +KillMode=control-group +Restart=no + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/nmb.service.in b/packaging/systemd/nmb.service.in new file mode 100644 index 0000000..ceeeea4 --- /dev/null +++ b/packaging/systemd/nmb.service.in @@ -0,0 +1,17 @@ +[Unit] +Description=Samba NMB Daemon +Documentation=man:nmbd(8) man:samba(7) man:smb.conf(5) +Wants=network-online.target +After=network.target network-online.target + +[Service] +Type=notify +PIDFile=@PIDDIR@/nmbd.pid +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/nmbd --foreground --no-process-group $NMBDOPTIONS +ExecReload=/bin/kill -HUP $MAINPID +LimitCORE=infinity +@systemd_nmb_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/samba.conf.tmp b/packaging/systemd/samba.conf.tmp new file mode 100644 index 0000000..8a29577 --- /dev/null +++ b/packaging/systemd/samba.conf.tmp @@ -0,0 +1 @@ +d /var/run/samba 755 root root diff --git a/packaging/systemd/samba.service.in b/packaging/systemd/samba.service.in new file mode 100644 index 0000000..e4baee1 --- /dev/null +++ b/packaging/systemd/samba.service.in @@ -0,0 +1,17 @@ +[Unit] +Description=Samba AD Daemon +Documentation=man:samba(8) man:samba(7) man:smb.conf(5) +Wants=network-online.target +After=network.target network-online.target + +[Service] +Type=notify +PIDFile=@PIDDIR@/samba.pid +LimitNOFILE=16384 +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/samba --foreground --no-process-group $SAMBAOPTIONS +ExecReload=/bin/kill -HUP $MAINPID +@systemd_samba_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/samba.sysconfig b/packaging/systemd/samba.sysconfig new file mode 100644 index 0000000..7607426 --- /dev/null +++ b/packaging/systemd/samba.sysconfig @@ -0,0 +1,18 @@ +## Path: Network/Samba +## Description: Samba process options +## Type: string +## Default: "" +## ServiceRestart: samba +SAMBAOPTIONS="" +## Type: string +## Default: "" +## ServiceRestart: smb +SMBDOPTIONS="" +## Type: string +## Default: "" +## ServiceRestart: nmb +NMBDOPTIONS="" +## Type: string +## Default: "" +## ServiceRestart: winbind +WINBINDOPTIONS="" diff --git a/packaging/systemd/smb.service.in b/packaging/systemd/smb.service.in new file mode 100644 index 0000000..64c77c0 --- /dev/null +++ b/packaging/systemd/smb.service.in @@ -0,0 +1,18 @@ +[Unit] +Description=Samba SMB Daemon +Documentation=man:smbd(8) man:samba(7) man:smb.conf(5) +Wants=network-online.target +After=network.target network-online.target nmb.service winbind.service + +[Service] +Type=notify +PIDFile=@PIDDIR@/smbd.pid +LimitNOFILE=16384 +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/smbd --foreground --no-process-group $SMBDOPTIONS +ExecReload=/bin/kill -HUP $MAINPID +LimitCORE=infinity +@systemd_smb_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/systemd/winbind.service.in b/packaging/systemd/winbind.service.in new file mode 100644 index 0000000..d28a0e9 --- /dev/null +++ b/packaging/systemd/winbind.service.in @@ -0,0 +1,16 @@ +[Unit] +Description=Samba Winbind Daemon +Documentation=man:winbindd(8) man:samba(7) man:smb.conf(5) +After=network.target nmb.service + +[Service] +Type=notify +PIDFile=@PIDDIR@/winbindd.pid +EnvironmentFile=-@SYSCONFDIR@/sysconfig/samba +ExecStart=@SBINDIR@/winbindd --foreground --no-process-group $WINBINDOPTIONS +ExecReload=/bin/kill -HUP $MAINPID +LimitCORE=infinity +@systemd_winbind_extra@ + +[Install] +WantedBy=multi-user.target diff --git a/packaging/sysv/samba.init b/packaging/sysv/samba.init new file mode 100755 index 0000000..e021e91 --- /dev/null +++ b/packaging/sysv/samba.init @@ -0,0 +1,37 @@ +#!/bin/sh +# +# Copyright (c) Timo Knuutila 1996. +# +# This file should have uid root, gid sys and chmod 744 +# +if [ ! -d /usr/bin ] +then # /usr not mounted + exit +fi + +killproc() { # kill the named process(es) + pid=`/usr/bin/ps -e | + /usr/bin/grep -w $1 | + /usr/bin/sed -e 's/^ *//' -e 's/ .*//'` + [ "$pid" != "" ] && kill $pid +} + +# Start/stop processes required for samba server + +case "$1" in + +'start') +# +# Edit these lines to suit your installation (paths, workgroup, host) +# + /opt/samba/bin/smbd -D -s/opt/samba/smb.conf + /opt/samba/bin/nmbd -D -l/opt/samba/log -s/opt/samba/smb.conf + ;; +'stop') + killproc nmbd + killproc smbd + ;; +*) + echo "Usage: /etc/init.d/samba.server { start | stop }" + ;; +esac diff --git a/packaging/wscript b/packaging/wscript new file mode 100644 index 0000000..ab8e16f --- /dev/null +++ b/packaging/wscript @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +from waflib import Options + +def 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/lib/systemd/system]"), + action="store", dest="SYSTEMDDIR", + default="${PREFIX}/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=[]) + + gr.add_option('--systemd-ctdb-extra', + metavar="Option=Value", + help=("Extra directives added to the ctdb service file." + +" Can be given multiple times."), + action="append", dest="systemd_ctdb_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.systemd_ctdb_extra = '\n'.join(Options.options.systemd_ctdb_extra) + conf.env.SYSTEMDDIR = Options.options.SYSTEMDDIR diff --git a/packaging/wscript_build b/packaging/wscript_build new file mode 100644 index 0000000..217bd99 --- /dev/null +++ b/packaging/wscript_build @@ -0,0 +1,22 @@ +#!/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.with_ctdb: + srv = 'systemd/ctdb.service' + 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.3