On Thu, 2008-10-16 at 18:24 -0400, Kris Deugau wrote: > Karsten Bräckelmann wrote: > > Unlike regular score lines for non-existent rules (which are kind of > > ignored), the relative score adjustment depends on the rule to be > > defined before. > > > > Given your demo rule above, [...] > > you are distributing a custom channel. It > > will work, if you rename the channel name to come after the stock > > updates channel when sorting lexically. > > *shrug* It does; it's called zzsarules.vianet.ca. When I first > created it, I *did* run into problems simply redefining scores at fixed > values for rules in other rulesets which were, indeed, sorted *after* my > local channel originally (don't recall the details ATM; pretty sure I > posted here asking about it). Thus the "zz" prefix - but it still > doesn't accept a score *adjustment*.
Ah, so it was actually your previous post and the discussion that I remembered. Already wondered about that. :) I'm fairly positive this topic came up exactly once. > I've isolated an example into a testable "ruleset"; try: > > # sa-update --channel zzsarules.deepnet.cx --nogpg > > (Single scoreadj.cf file, with the single rule > "score FORGED_MUA_OUTLOOK (-1)") Yup, that fails indeed. :/ And I'm fairly sure I see why. In a previous post I included the relevant lines, why *spamassassin* lint would not fail. sa-update does, however. In another post to this thread you pointed out the issue eloquently: > fwiw, if I manually munge a score adjustment into already-downloaded > .cf files for a channel, spamassassin --lint is clean... it's just on > *distribution* of a channel update containing an adjustment that --lint > fails. And indeed sa-update appears to lint -- though ONLY the updated channel, and the updated channel only. It loads site rules .pre files. It does NOT do a full configure as spamassassin --lint does. You can see this easily by running 'sa-update -D'. I guess that's a bug-let, or at least a not-documented(?) limitation... Update channels can not *modify* score rules outside its own scope. guenther -- char *t="[EMAIL PROTECTED]"; main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1: (c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}