On 13/02/16 18:58, Bill Cole wrote:
On 13 Feb 2016, at 3:49, Sebastian Arcus wrote:
Thank you. The donor machine has db42, db44 and db44 packages installed,
Based on the question below, I'll assume the second db44 above was a
typo for db48, i.e. a Berkeley DB v4.8.x package.
Tangentially: that's a risky mess. It's a common problem but you
should try to fix it to leave just one version, which probably means
rebuilding a number of pieces of software. Using db48 for everything
isn't a bad choice, despite the current version being 6.something,
because there are still perfectly good pieces of software that use
db4x but nothing later. In any case, you have a potentially fragile
system there which may have different programs using diverse Berkeley
DB versions which may be broken by otherwise routine updates. If you
choose to leave a working system alone rather than proactively clean
it up, be sure to
while the recipient machine only db42 and db44. Would it be enough to
install db48 on the recipient machine, or are there also any
glue/library Perl modules involved which SA uses for db access and
would need to be updated as well?
Any answer to that has so many conditional branches that I'm unwilling
to attempt a definitive one. You definitely need to install db48 on
the recipient machine if you want it to be able to read hash files
created elsewhere by db48. Depending on what other software is using
db42 dn db44 there, installing db48 and doing nothing else MIGHT break
something. Depending on how Perl was built and/or installed on that
machine and how the various db* packages are installed it MIGHT be
necessary to rebuild your core Perl package and/or non-core packages
which may include BerkeleyDB or (probably not) DB_File and maybe (but
most likely not) SpamAssassin itself. Figuring out what exactly
depends on which package on a specific system (which you've not
described in any detail) is an opportunity to exercise your core
system administration skills :).
Thank you everybody who pitched in with suggestions. Just to confirm
that in the end I decided not to mess too much with a working system and
didn't upgrade to db48 on the older system. I went down the route of
backing up and restoring the bayes database using sa-learn - which
worked perfectly fine.
There is still the question of the initial sa-learn error message which
started all this. In my opinion it looks like a bug - as it says
"missing file" - which is clearly not the case. Something more helpful
such as "can't decode file, possible wrong format" - or anything else
along those lines would be more relevant and helpful. Should I log this
as a bug somewhere?