Re: Magical mystery colon
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
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
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
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
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
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