diff options
-rw-r--r-- | main/samba/APKBUILD | 4 | ||||
-rw-r--r-- | main/samba/samba.initd | 94 |
2 files changed, 46 insertions, 52 deletions
diff --git a/main/samba/APKBUILD b/main/samba/APKBUILD index 98c747f8b..2463f5bfb 100644 --- a/main/samba/APKBUILD +++ b/main/samba/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=samba pkgver=3.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="Tools to access a server's filespace and printers via SMB" url="http://www.samba.org" arch="all" @@ -154,6 +154,6 @@ client() { md5sums="5291717be0734e07dc07b6110e162e87 samba-3.6.1.tar.gz -c8a7f6ac5df2f73dbf023e25ea39927b samba.initd +f0b8d460ad4af28266ac8bc1d6fa0d31 samba.initd c150433426e18261e6e3eed3930e1a76 samba.confd b7cafabfb4fa5b3ab5f2e857d8d1c733 samba.logrotate" diff --git a/main/samba/samba.initd b/main/samba/samba.initd index f7290173f..6fd817da0 100644 --- a/main/samba/samba.initd +++ b/main/samba/samba.initd @@ -1,65 +1,59 @@ #!/sbin/runscript +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.6/samba.initd,v 1.3 2011/09/14 22:52:33 polynomial-c Exp $ -opts="reload" - -DAEMON=${SVCNAME#samba.} -if [ "$DAEMON" != "samba" ]; then - daemon_list=$DAEMON -fi +extra_started_commands="reload" depend() { + after slapd firewall need net - after firewall -} - -start_smbd() { - start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- \ - ${smbd_options:-"-D"} -} - -stop_smbd() { - start-stop-daemon --stop --quiet --pidfile /var/run/samba/smbd.pid -} - -start_nmbd() { - start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- \ - ${nmbd_options:-"-D"} -} - -stop_nmbd() { - start-stop-daemon --stop --quiet --pidfile /var/run/samba/nmbd.pid -} - -start_winbindd() { - start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- \ - $winbindd_options + use cupsd +} + +DAEMONNAME="${SVCNAME##samba.}" +[ "${DAEMONNAME}" != "samba" ] && daemon_list=${DAEMONNAME} + +signal_do() { + local signal="$1" + [ -z "${signal}" ] && return 0 + + local result=0 last_result=0 daemon= cmd_exec= + for daemon in ${daemon_list} ; do + eval cmd_exec=\$${daemon}_${signal} + if [ -n "${cmd_exec}" ]; then + ebegin "${my_service_name} -> ${signal}: ${daemon}" + #echo ${cmd} '->' ${!cmd} + ${cmd_exec} > /dev/null + last_result=$? + eend ${last_result} + fi + result=$(( ${result} + ${last_result} )) + done + return ${result} } -stop_winbindd() { - start-stop-daemon --stop --quiet --pidfile /var/run/samba/winbindd.pid +mkdir_sambadirs() { + [ -d /var/run/samba ] || mkdir -p /var/run/samba } start() { - for i in $daemon_list; do - ebegin "Starting $i" - start_$i - eend $? - done + ${my_service_PRE} + mkdir_sambadirs + signal_do start && return 0 + + eerror "Error: starting services (see system logs)" + signal_do stop + return 1 } - stop() { - for i in $daemon_list; do - ebegin "Stopping $i" - stop_$i - eend $? - done + ${my_service_PRE} + if signal_do stop ; then + ${my_service_POST} + return 0 + fi } - reload() { - for i in $daemon_list; do - ebegin "Reloading $i" - killall -HUP $i - eend $? - done + ${my_service_PRE} + signal_do reload } - |