Mercurial > notdcc
diff debian/dcc-server.cron.daily.diff @ 1:9b8d79ac0dc3
blindly adding debian patch for old version
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Tue, 10 Mar 2009 14:25:08 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/dcc-server.cron.daily.diff Tue Mar 10 14:25:08 2009 +0100 @@ -0,0 +1,159 @@ +--- dcc-1.2.74.orig/debian/dcc-server.cron.daily ++++ dcc-1.2.74/debian/dcc-server.cron.daily +@@ -0,0 +1,156 @@ ++#! /bin/sh ++ ++# daily DCC cron job ++ ++# This script should be run daily or more often when there is a shortage ++# of disk space to run dbclean to discard and compress old checksums. ++# It also discards old DCC client log files. ++ ++#. By default it is installed in /usr/lib/dcc. Instead of being copied ++# to a directory such as /etc/cron/daily on some systems, a symbolic link ++# should be used. ++ ++# Copyright (c) 2004 by Rhyolite Software ++# ++# Permission to use, copy, modify, and distribute this software for any ++# purpose with or without fee is hereby granted, provided that the above ++# copyright notice and this permission notice appear in all copies. ++# ++# THE SOFTWARE IS PROVIDED "AS IS" AND RHYOLITE SOFTWARE DISCLAIMS ALL ++# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL RHYOLITE SOFTWARE ++# BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES ++# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, ++# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ++# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++# SOFTWARE. ++# Rhyolite Software DCC 1.2.50-1.45 $Revision: 1.1 $ ++# Generated automatically from cron-dccd.in by configure. ++ ++exec 1>&2 </dev/null ++ ++DCC_LOGGER="logger -s -p ${DCC_ERROR_LOG_FACILITY-mail.err} -t DCC" ++DCC_HOMEDIR=/var/lib/dcc ++DEBUG= ++QUIET=-q ++# check the args once to get the home directory ++while getopts "xh:a:" c; do ++ case $c in ++ x) set -x; DEBUG=-x; QUIET=;; ++ h) DCC_HOMEDIR="$OPTARG";; ++ *) ;; ++ esac ++done ++. $DCC_HOMEDIR/dcc_conf ++# deal with bash reserved $UID and old versions of dcc_conf ++if test 0"$DCC_CONF_VERSION" -lt 2 -a -z "$DCCUID" -a ! -z "$UID"; then ++ DCCUID="$UID" ++fi ++ ++USAGE="`basename $0`: [-x] [-h homedir] [-a args]" ++OPTIND=1 ++while getopts "xh:a:" c; do ++ case $c in ++ x) ;; ++ h) ;; ++ a) DBCLEAN_ARGS="$DBCLEAN_ARGS $OPTARG";; ++ *) eval $DCC_LOGGER "$USAGE"; exit 1;; ++ esac ++done ++shift `expr $OPTIND - 1 || true` ++if test "$#" -ne 0; then ++ eval $DCC_LOGGER "$USAGE" ++ exit 1 ++fi ++ ++# make the paths absolute and trim the per day/hour/minute business ++LOGDIR=`echo $DCCM_LOGDIR \ ++ | sed -e "s@^[DHM]?@@" -e "s@^[^/]@$DCC_HOMEDIR/&@"` ++USERDIRS=`echo $DCCM_USERDIRS \ ++ | sed -e "s@^[^/]@$DCC_HOMEDIR/&@"` ++ ++OARGS=64dDGNRPSVqi ++DBCLEAN_ARGS="$QUIET -h $DCC_HOMEDIR $DCC_LOG_ARGS $DBCLEAN_ARGS" ++GREY_DBCLEAN_ARGS=`echo "$DBCLEAN_ARGS" \ ++ | sed -e "s/-[eEt][ ]*[^ ]\{1,\}//g" \ ++ -e "s/\(-[$OARGS]\{1,\}\)[eEt][ ]*[^ ]\{1,\}/\1/g"` ++ ++# Removed old dccm log files. ++if test ! -z "$DBCLEAN_LOGDAYS"; then ++ if test -d "$LOGDIR"; then ++ find "$LOGDIR" -follow \( -name 'msg.*' -o -name 'tmp.*' \) \ ++ -mtime +$DBCLEAN_LOGDAYS \ ++ | xargs /bin/rm -f ++ # remove empty subdirectories ++ find "$LOGDIR" -follow -depth -name '[0-9]*' -type d \ ++ | xargs /bin/rmdir 2>/dev/null ++ fi ++ # clean per-user logs ++ if test "$USERDIRS" != "" -a -d "$USERDIRS"; then ++ find "$USERDIRS" -follow \( -name 'msg.*' -o -name 'tmp.*' \) \ ++ -mtime +$DBCLEAN_LOGDAYS \ ++ | xargs /bin/rm -f ++ fi ++fi ++ ++# Notify users about new log files. ++# The file $DCC_LIBEXEC/webuser-notify must be a script that will send ++# a suitable message. See the example in the cgi-bin directory. ++if test "$USERDIRS" != "" -a -d "$USERDIRS" \ ++ -a -x $DCC_LIBEXEC/webuser-notify; then ++ MARKER=$USERDIRS/notify.marker ++ touch $MARKER.new ++ if test -r $MARKER; then ++ NEWER="-newer $MARKER" ++ else ++ NEWER= ++ fi ++ # Find usernames with a pending message or with a new but not newer ++ # than new log files ++ # Avoid newer than new files to ensure we generate at most ++ # one notification per log file. ++ find "$USERDIRS" -follow \( -name notify.pending \ ++ -o \( -name 'msg.*' $NEWER \) \) ! -newer $MARKER.new \ ++ | sed -n -e 's@.*/\([^/]*/[^/]*\)/log/msg\.[^/]*$@\1@p' \ ++ -e 's@.*/\([^/]*/[^/]*\)/notify.pending$@\1@p' \ ++ | sort -u \ ++ | $DCC_LIBEXEC/webuser-notify $DEBUG -d "$USERDIRS" ++ ++ mv -f $MARKER.new $MARKER ++fi ++ ++ ++# trim the greylist database ++case X"$GREY_ENABLE" in ++ [oO][nN]) ++ GREY_ENABLE=on ++ ;; ++ X) ++ if test ! -z "$GREY_CLIENT_ARGS"; then ++ GREY_ENABLE=on ++ fi ++ ;; ++esac ++if test ! -z "$GREY_SRVR_ID" -a "$GREY_ENABLE" = on; then ++ SADDR=`expr "X$GREY_DCCD_ARGS" : ".*-[$OARGS]*a[ ]*\([^ ]*\).*"` ++ if test ! -z "$SADDR"; then ++ SADDR="-a $SADDR" ++ fi ++ $DCC_LIBEXEC/dbclean -Gon -i $GREY_SRVR_ID $SADDR $GREY_DBCLEAN_ARGS ++fi ++ ++ ++# Delete old checksums from the dccd database if it seems dccd can run. ++# For historical reasons, SRVR_ID set and DCCD_ENABLE nul ++# turns on dccd ++case "$DCCD_ENABLE" in ++ [oO][fF][fF]) DCCD_ENABLE=off;; ++ *) DCCD_ENABLE=on;; ++esac ++if test ! -z "$SRVR_ID" -a "$DCCD_ENABLE" = on; then ++ SADDR=`expr "X$DCCD_ARGS" : ".*-[$OARGS]*a[ ]*\([^ ]*\).*"` ++ if test ! -z "$SADDR"; then ++ SADDR="-a $SADDR" ++ fi ++ $DCC_LIBEXEC/dbclean -i $SRVR_ID $SADDR $DBCLEAN_ARGS ++fi