Hello community,
here is the log from the commit of package cups for openSUSE:Factory
checked in at Mon Jul 19 13:32:55 CEST 2010.
--------
--- cups/cups.changes 2010-06-25 11:35:51.000000000 +0200
+++ /mounts/work_src_done/STABLE/cups/cups.changes 2010-07-15 15:09:13.000000000 +0200
@@ -1,0 +2,9 @@
+Thu Jul 15 15:03:20 CEST 2010 - jsmeix@suse.de
+
+- Fixed /etc/init.d/cups (cups.init source file) so that stopping
+ the cupsd waits up to 10 seconds until the cupsd had actually
+ finished (if not SIGKILL would be sent to it) to make sure
+ that "rccups restart" and "rccups stop ; rccups start" work
+ correctly (see Novell/Suse Bugzilla bnc#622058).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cups.spec ++++++
--- /var/tmp/diff_new_pack.4XFdHT/_old 2010-07-19 13:29:26.000000000 +0200
+++ /var/tmp/diff_new_pack.4XFdHT/_new 2010-07-19 13:29:26.000000000 +0200
@@ -30,7 +30,7 @@
Group: Hardware/Printing
Summary: The Common UNIX Printing System
Version: 1.4.4
-Release: 2
+Release: 3
# Require the exact matching version-release of the cups-libs sub-package because
# non-matching CUPS libraries may let CUPS software crash (e.g. segfault)
# because all CUPS software is built from the one same CUPS source tar ball
++++++ cups.init ++++++
--- /var/tmp/diff_new_pack.4XFdHT/_old 2010-07-19 13:29:26.000000000 +0200
+++ /var/tmp/diff_new_pack.4XFdHT/_new 2010-07-19 13:29:26.000000000 +0200
@@ -1,17 +1,17 @@
-#! /bin/sh
+#! /bin/bash
#
-# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany.
-# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
+# Copyright (C) 1995-2001 SuSE GmbH Nuernberg, Germany.
+# Copyright (C) 2002 SuSE Linux AG, Nuernberg, Germany.
# Copyright (C) 2002--2008 Klaus Singvogel, SUSE / Novell Inc.
+# Copyright (C) 2010 Johannes Meixner, SUSE LINUX Products GmbH
#
-# Author: Kurt Garloff , 2000
-# Klaus Singvogel , 2002--2008
-#
-# /etc/init.d/cupsd
-#
-# and symbolic its link
-#
-# /sbin/rccupsd
+# Author: Kurt Garloff, 2000
+# Klaus Singvogel, 2002--2008
+# Johannes Meixner, 2010
+#
+# /etc/init.d/cups
+# and its symbolic link
+# /usr/sbin/rccups
#
# System startup script for the CUPS printer daemon
#
@@ -25,37 +25,10 @@
# Default-Stop: 0 1 6
# Short-Description: CUPS printer daemon
# Description: Start CUPS to provide spooling and printing files
-# functionality for local and remote printers. Even required if
-# printers are broadcasted ("Browsing") into (sub)nets.
+# functionality for local and remote printers. Also required if
+# printers are broadcasted ("Browsing") by remote CUPS servers.
### END INIT INFO
-# Source SuSE config, only if exists with size greater zero
-test -s /etc/rc.config && \
- . /etc/rc.config
-
-# Shell functions sourced from /etc/rc.status:
-# rc_check check and set local and overall rc status
-# rc_status check and set local and overall rc status
-# rc_status -v ditto but be verbose in local rc status
-# rc_status -v -r ditto and clear the local rc status
-# rc_failed set local and overall rc status to failed
-# rc_failed <num> set local and overall rc status to <num><num>
-# rc_reset clear local rc status (overall remains)
-# rc_exit exit appropriate to overall rc status
-
-CUPSD_BIN=/usr/sbin/cupsd
-
-test -s /etc/rc.status && \
- . /etc/rc.status
-
-test -s /etc/sysconfig/cups && \
- . /etc/sysconfig/cups
-
-test -x $CUPSD_BIN || exit 5
-
-# First reset status of this service
-rc_reset
-
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
@@ -71,89 +44,113 @@
# with force-reload (in case signalling is not supported) are
# considered a success.
-# change umask to avoid problems in wrong file permission of /etc/printcap
-# (SuSE buzilla #16567)
+# Source SuSE config, only if exists with size greater zero
+test -s /etc/rc.config && . /etc/rc.config
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num><num>
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+if test -s /etc/rc.status
+then . /etc/rc.status
+else exit 1
+fi
+# Reset status of this service:
+rc_reset
+
+CUPSD_BIN=/usr/sbin/cupsd
+test -x $CUPSD_BIN || exit 5
+# Get CUPSD_OPTIONS
+test -s /etc/sysconfig/cups && . /etc/sysconfig/cups
+
+# Enforce default umask to avoid problems with wrong file permissions
+# for example of /etc/printcap (see Novell/Suse Bugzilla bnc#31567).
umask 022
case "$1" in
start)
echo -n "Starting cupsd"
- ## Start daemon with startproc(8). If this fails
- ## the echo return value is set appropriate.
-
+ ## Start daemon with startproc(8).
+ ## If this fails the echo return value is set appropriate.
# NOTE: startproc return 0, even if service is
# already running to match LSB spec.
startproc $CUPSD_BIN $CUPSD_OPTIONS
-
- # Remember status and be verbose
+ # Remember status and be verbose:
rc_status -v
;;
stop)
echo -n "Shutting down cupsd"
- ## Stop daemon with killproc(8) and if this fails
- ## set echo the echo return value.
-
- killproc -TERM $CUPSD_BIN
-
- # Remember status and be verbose
+ ## Stop daemon with killproc(8).
+ ## If this fails the echo return value is set appropriate.
+ # NOTE: killproc with explicite signal specified
+ # like "killproc -TERM" sends only SIGTERM and exits
+ # to match LSB spec. (see Novell/Suse Bugzilla bnc#595796).
+ # Without explicite signal the default signal SIGTERM is sent
+ # and afterwards killproc waits by default only up to 5 seconds
+ # before killproc sends SIGKILL if cupsd has not yet terminated.
+ # Wait at most 10 seconds until the cupsd does actually no longer run
+ # so that the cupsd should have sufficient time for its clean up:
+ killproc -t 10 $CUPSD_BIN
+ # Remember status and be verbose:
rc_status -v
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
- $0 status >/dev/null && $0 restart
-
- # Remember status and be quiet
+ $0 status >/dev/null && $0 restart
+ # Remember status and be quiet:
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
+ # The above waits at most 10 seconds until the cupsd does actually no longer run
+ # otherwise "startproc $CUPSD_BIN" would not start a new cupsd
+ # (see Novell/Suse Bugzilla bnc#622058).
+ # Start a new cupsd:
$0 start
-
- # Remember status and be quiet
+ # Remember status and be quiet:
rc_status
;;
force-reload)
- ## Signal the daemon to reload its config. Most daemons
- ## do this on signal 1 (SIGHUP).
+ ## Signal the daemon to reload its config.
+ ## Most daemons do this on signal 1 (SIGHUP).
## If it does not support it, restart.
-
- if ps -C cupsd -o user | grep -q '^root$'; then
- echo -n "Reload service cupsd"
- killproc -HUP $CUPSD_BIN
- rc_status -v
- else
- $0 restart
+ if ps -C cupsd -o user | grep -q '^root$'
+ then echo -n "Reload service cupsd"
+ killproc -HUP $CUPSD_BIN
+ rc_status -v
+ else $0 restart
fi
;;
reload)
## Like force-reload, but if daemon does not support
- ## signalling, do nothing (!)
-
+ ## signalling, do nothing.
# If it supports signalling:
- if ps -C cupsd -o user | grep -q '^root$'; then
- echo -n "Reload service cupsd"
- killproc -HUP $CUPSD_BIN
- rc_status -v
- else
- echo -n '"reload" not possible in RunAsUser mode - use "restart" instead'
- rc_status -s
+ if ps -C cupsd -o user | grep -q '^root$'
+ then echo -n "Reload service cupsd"
+ killproc -HUP $CUPSD_BIN
+ rc_status -v
+ else echo -n '"reload" not possible (cupsd does not run as user root) use "restart" instead'
+ rc_status -s
fi
;;
status)
echo -n "Checking for cupsd: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
-
# Status has a slightly different for the status command:
# 0 - service running
- # 1 - service dead, but /var/run/ pid file exists
+ # 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
-
# NOTE: checkproc returns LSB compliant status values.
checkproc $CUPSD_BIN
rc_status -v
@@ -161,7 +158,6 @@
probe)
## Optional: Probe for the necessity of a reload,
## give out the argument which is required for a reload.
-
rc_failed 3
;;
*)
@@ -170,3 +166,4 @@
;;
esac
rc_exit
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org