Bug 234292

Summary: mail/mimedefang fails after update to FBSD12
Product: Ports & Packages Reporter: mam <mam>
Component: Individual Port(s)Assignee: freebsd-ports-bugs mailing list <ports-bugs>
Status: Closed Not A Bug    
Severity: Affects Some People CC: m.tsatsenko, pi
Priority: --- Flags: bugzilla: maintainer-feedback? (m.tsatsenko)
Version: Latest   
Hardware: Any   
OS: Any   

Description mam 2018-12-23 10:33:16 UTC
if you update an old 11.x system running mimedefang/spamassassin to 12.x, the milter does start again, but every incoming mail is rejected with the error message:

Dec 21 17:31:45 ip6gate mimedefang-multiplexor[1192]: wBLGVeD8001304: Worker 0 stderr: body_0.c: loadable library and perl binaries are mismatched (got handshake key 0xd480080, needed 0xe180080)

after digging quite a long time, falsely looking for shared libs, I did find the solution:

* delete everything below /var/db/spamassassin/compiled
* re-run "sa-compile"

(note: sa-compile will refuse to run with the same errormessage if you do not delete the stuff before as I told you!)

Reason: the rules of spamassassin are converted to c programs and compiled with standard cc command. Of course, they link to the old and non-existing shared libs of the pre-updated os. Recompilation solves the issue, but due to the blocking of "sa-compile" as long, as the old files exist, this is a bit hard and confusing for a newbie to be overcome.

Wish to the Maintainer:
Either include a script that is run during update or installation of mimedefang that gets rid of old compiled stuff and runs sa-update automatically, or find a way to give a note to the user/admin how to fix the problem (maybe there is one already? I have not seen it but I dont read everything too that is scrolling by at such a mayor update. In this case blame it on me but consider to give a larger and louder info :-) )
Comment 1 m.tsatsenko 2019-02-10 22:39:46 UTC
Hello, I believe you are reporting this to the wrong person since sa-compile is not a part of mimedefang, but in case if you are interested in my own opinion the necessity of rebuilding all of the binaries after a major update is clearly stated in handbook. You did broke the procedure and faced consequences. That's it.
Comment 2 Kurt Jaeger freebsd_committer 2019-02-11 06:28:11 UTC
The problem described is a general problem -- how does any app notify its users after a system or dependency upgrade that it needs to be rebuild ?

So it's not a bug of mimedefang, but a general problem. Adding pkg-messages
to any port just because of that general problem does not seem sensible.
Comment 3 mam 2019-02-11 06:42:10 UTC
(In reply to m.tsatsenko from comment #1)
Sorry, I strongly disagree with you.
The point is: you cannot "rebuild the binaries" (actually in this case it is the collection of spam-fighting-rules) afterwards the easy way because the compile command refuses to run anymore!
First you have to remove the old binaries manually, then you can rebuild them.
And this procedure is not written in any book, at least in none that I have read (what, of course, is not real argument, I know :-) )
My main reason of reporting this here was that others can read it and take countermeasures when they run into it.
Last week I have updated another FBSD Box and it happened again, but I have remembered the problem and could fix it fast.

Of course, this remove/recreate feature would belong into the makefile of mimedefang/spamassassin (for me it looks like ONE port, you cant have one without the other)