Re: Magical mystery colon

2010-02-01 Thread Mark Martinec
On Saturday January 30 2010 21:16:01 Philip A. Prindeville wrote:
 Also, how come the eval block:
   unless (eval require $thing) {...}
 doesn't contain a terminating ';', i.e.:
 eval require $thing; instead?

It is not needed. It is an 'eval EXPR', not 'eval BLOCK'.
A semicolon in perl is a statement separator, not a statement terminator.

  Mark


Re: Magical mystery colon

2010-02-01 Thread Philip A. Prindeville
On 02/01/2010 05:35 AM, Mark Martinec wrote:
 On Saturday January 30 2010 21:16:01 Philip A. Prindeville wrote:
   
 Also, how come the eval block:
   unless (eval require $thing) {...}
 doesn't contain a terminating ';', i.e.:
 eval require $thing; instead?
 
 It is not needed. It is an 'eval EXPR', not 'eval BLOCK'.
 A semicolon in perl is a statement separator, not a statement terminator.

   Mark
   

Ok.  No one knows why I'm seeing the warnings from the cron job, however?




Re: Magical mystery colon

2010-01-31 Thread Philip A. Prindeville
On 01/30/2010 12:24 PM, Karsten Bräckelmann wrote:
 On Sat, 2010-01-30 at 12:16 -0800, Philip A. Prindeville wrote:
   
 I ran yum update on my FC11 machine a couple of days ago, and now I'm
 getting nightly cron errors:
 
 Would be nice and maybe even helpful to know, what command(s) that cron
 job executes, don't you think? :)
   

Well, this is unmodified Fedora, so the same as every other Fedora box:

10 4 * * * root /usr/share/spamassassin/sa-update.cron 21 | tee -a 
/var/log/sa-update.log


And that script contains:


#!/bin/bash
# *** DO NOT MODIFY THIS FILE ***
#
# /etc/mail/spamassassin/channel.d/*.conf
# Place files here to add custom channels.
#

# list files in a directory consisting only of alphanumerics, hyphens and
# underscores
# $1 - directory to list
# $2 - optional suffix to limit which files are selected
run_parts_list() {
if [ $# -lt 1 ]; then
echo ERROR: Usage: run_parts_list dir  /dev/stderr
exit 1
fi
if [ ! -d $1 ]; then
echo ERROR: Not a directory: $1  /dev/stderr
exit 1
fi

if [ -d $1 ]; then
if [ -n $2 ]; then
find_opts='-name *'$2
fi
find -L $1 -mindepth 1 -maxdepth 1 -type f $find_opts | sort -n
fi
}

# Proceed with sa-update if spam daemon is running or forced in 
/etc/sysconfig/sa-update
unset SAUPDATE
[ -f /etc/sysconfig/sa-update ]  . /etc/sysconfig/sa-update
for daemon in spamd amavisd; do
/sbin/pidof $daemon  /dev/null
[ $? -eq 0 ]  SAUPDATE=yes
done
[ -f /var/run/mimedefang.pid ]  SAUPDATE=yes

# Skip sa-update if daemon not detected
[ -z $SAUPDATE ]  exit 0

# sa-update must create keyring
if [ ! -d /etc/mail/spamassassin/sa-update-keys ]; then
sa-update
fi

# Initialize Channels and Keys
CHANNELLIST=
KEYLIST=
# Process each channel defined in /etc/mail/spamassassin/channel.d/
for file in $(run_parts_list /etc/mail/spamassassin/channel.d/ .conf); do 
# Validate config file
PREFIXES=CHANNELURL KEYID BEGIN
for prefix in $PREFIXES; do
if ! grep -q $prefix $file; then
echo ERROR: $file missing $prefix
exit 255
fi
done
. $file
#echo CHANNELURL=$CHANNELURL
#echo KEYID=$KEYID
CHANNELLIST=$CHANNELLIST $CHANNELURL
KEYLIST=$KEYLIST $KEYID
sa-update --import $file
done

# Sleep random amount of time before proceeding to avoid overwhelming the 
servers
sleep $(expr $RANDOM % 7200)

unset arglist
# Run sa-update on each channel, restart spam daemon if success
for channel in $CHANNELLIST; do
arglist=$arglist --channel $channel
done
for keyid in $KEYLIST; do
arglist=$arglist --gpgkey $keyid
done
/usr/bin/sa-update $arglist
if [ $? -eq 0 ]; then
/etc/init.d/spamassassin condrestart  /dev/null
[ -f /etc/init.d/amavisd ]  /etc/init.d/amavisd condrestart  /dev/null
[ -f /var/run/mimedefang.pid ]  /etc/init.d/mimedefang reload  /dev/null
fi



   
 plugin: failed to parse plugin (from @INC): syntax error at (eval 84) line 
 1, near require Mail::SpamAssassin:

 plugin: failed to parse plugin (from @INC): syntax error at (eval 148) line 
 1, near require Mail::SpamAssassin:

 I've seen this message periodically, but never figured out what
 generated it.

 Can someone set me straight?  It of course doesn't mention a file, so
 it's hard to know where it's coming from.
 
   




Magical mystery colon

2010-01-30 Thread Philip A. Prindeville
I ran yum update on my FC11 machine a couple of days ago, and now I'm
getting nightly cron errors:

plugin: failed to parse plugin (from @INC): syntax error at (eval 84) line 1, 
near require Mail::SpamAssassin:

plugin: failed to parse plugin (from @INC): syntax error at (eval 148) line 1, 
near require Mail::SpamAssassin:

I've seen this message periodically, but never figured out what generated it.

Can someone set me straight?  It of course doesn't mention a file, so it's hard 
to know where it's coming from.

Also, how come the eval block:


foreach $thing (qw(Anomy::HTMLCleaner Archive::Zip Digest::SHA1 
HTML::Parser HTML::TokeParser IO::Socket IO::Stringy MIME::Base64 MIME::Tools 
MIME::Words Mail::Mailer Mail::SpamAssassin Net::DNS Unix::Syslog )) {
unless (eval require $thing) {
printf(%-30s: missing\n, $thing);
next;
}

doesn't contain a terminating ';', i.e.:

eval require $thing; instead?

Thanks,

-Philip




Re: Magical mystery colon

2010-01-30 Thread Karsten Bräckelmann
On Sat, 2010-01-30 at 12:16 -0800, Philip A. Prindeville wrote:
 I ran yum update on my FC11 machine a couple of days ago, and now I'm
 getting nightly cron errors:

Would be nice and maybe even helpful to know, what command(s) that cron
job executes, don't you think? :)

 plugin: failed to parse plugin (from @INC): syntax error at (eval 84) line 1, 
 near require Mail::SpamAssassin:
 
 plugin: failed to parse plugin (from @INC): syntax error at (eval 148) line 
 1, near require Mail::SpamAssassin:
 
 I've seen this message periodically, but never figured out what
 generated it.
 
 Can someone set me straight?  It of course doesn't mention a file, so
 it's hard to know where it's coming from.

-- 
char *t=\10pse\0r\0dtu...@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4;
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;il;i++){ i%8? c=1:
(c=*++x); c128  (s+=h); if (!(h=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}



Re: Magical mystery colon

2010-01-30 Thread Aaron Wolfe
wow, based on the subject alone, I thought my SA had missed a very strange
spam :)


On Sat, Jan 30, 2010 at 3:16 PM, Philip A. Prindeville 
philipp_s...@redfish-solutions.com wrote:

 I ran yum update on my FC11 machine a couple of days ago, and now I'm
 getting nightly cron errors:

 plugin: failed to parse plugin (from @INC): syntax error at (eval 84) line
 1, near require Mail::SpamAssassin:

 plugin: failed to parse plugin (from @INC): syntax error at (eval 148) line
 1, near require Mail::SpamAssassin:

 I've seen this message periodically, but never figured out what generated
 it.

 Can someone set me straight?  It of course doesn't mention a file, so it's
 hard to know where it's coming from.

 Also, how come the eval block:


foreach $thing (qw(Anomy::HTMLCleaner Archive::Zip Digest::SHA1
 HTML::Parser HTML::TokeParser IO::Socket IO::Stringy MIME::Base64
 MIME::Tools MIME::Words Mail::Mailer Mail::SpamAssassin Net::DNS
 Unix::Syslog )) {
unless (eval require $thing) {
printf(%-30s: missing\n, $thing);
next;
}

 doesn't contain a terminating ';', i.e.:

 eval require $thing; instead?

 Thanks,

 -Philip