# Upgrade MailScanner 4.x to 5



## DutchDaemon (Jun 13, 2017)

This is just a 'documentation dump' that I had to make to perform this upgrade. Note that MailScanner 5 in its current incarnation annihilates your existing MailScanner 4.x installation. E.g.: it has not been 'delinuxized', so all paths are wrong. I have managed to perform the upgrade on seven servers using the following steps. Please review them all, do not just type them in without knowing what you're doing.


```
# cp -Rp /usr/local/etc/MailScanner /somewhere/etc-MailScanner
# cp -Rp /usr/local/lib/MailScanner /somewhere/lib-MailScanner
# cp -Rp /usr/local/libexec/MailScanner /somewhere/libexec-MailScanner
# cp -Rp /usr/local/share/MailScanner /somewhere/share-MailScanner

# service mta stop
# service mailscanner stop

# pkg delete -y mailscanner
# pkg autoremove -y

# rm -rf /usr/local/etc/MailScanner
# rm -rf /usr/local/lib/MailScanner
# rm -rf /usr/local/libexec/MailScanner
# rm -rf /usr/local/share/MailScanner

# pkg install -y MailScanner

# cd /etc && ln -s /usr/local/etc/MailScanner
# cd /usr/lib && ln -s /usr/local/lib/MailScanner
# cd /usr/share && ln -s /usr/local/share/MailScanner
# cd /usr/sbin && ln -s /usr/local/sbin/MailScanner
# cd /usr/local/etc/MailScanner/
```
Now edit file defaults. *Fix all paths!*

```
# cd /usr/local/etc/MailScanner/conf.d/
# grep -v -e ^$ -e ^# /somewhere/etc-MailScanner/MailScanner.conf > my_config.conf
```
Be sure to comment out include /usr/local/etc/MailScanner/conf.d/* in my_config.conf (or you will have an endless start loop).
	
	



```
# cd /usr/sbin/
(if your shell complains during the next command, type 'sh' and enter)
# ls /usr/local/sbin/ms-* | while read file
  do ln -s "${file}"
  done
(if you typed 'sh' before doing this, you can press Ctl+d now)
# cd /usr/local/sbin
# ln -s MailScanner mailscanner

# mkdir -p /usr/local/lib/MailScanner/MailScanner
# cp -Rp /somewhere/lib-MailScanner/MailScanner/CustomFunctions /usr/local/lib/MailScanner/MailScanner/
# mkdir /usr/local/lib/MailScanner/wrapper
# cp -p /somewhere/libexec-MailScanner/* /usr/local/lib/MailScanner/wrapper/
```
Now review the /rules/ directory in /somewhere/etc-MailScanner and put wanted rules back.

Also review .conf files (not MailScanner.conf) in /somewhere/etc-MailScanner and (re)apply them to the ones in /usr/local/etc/MailScanner, if and when needed.
	
	



```
# service mailscanner start
```
Any remaining errors (also check /var/log/maillog!) are likely to be changed file/configuration names, which you can change by hand (either in your my_config.conf or by renaming files).

Test for output errors, and fix those:
	
	



```
# /usr/local/sbin/ms-cron HOURLY
# /usr/local/sbin/ms-cron DAILY
```
If MailScanner starts cleanly (again: also check /var/log/maillog!):
	
	



```
# service mta restart
```


----------



## Datapanic (Jun 22, 2017)

Thanks for sharing your notes.  MailScanner 5.03, IMHO, is not ready for FreeBSD.  It should be removed from the ports tree and version 4.85.2 brought back in.


----------



## crees@ (Jul 28, 2017)

Just run into this issue, so I fixed it.

I may have missed a few path issues, so email me crees@ if you notice any.  Thanks to DutchDaemon for the instructions, all should be unnecessary now!

Cheers,

Chris


----------



## Datapanic (Aug 2, 2017)

Just looked over at https://www.freshports.org/mail/mailscanner/ and it looks like mail/mailscanner 5.0.3.1 fixes Bug 219990 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219990) that borked upgrades and had linux paths as discussed above.  

Think I'll give it a try again...


----------



## Datapanic (Aug 3, 2017)

It worked out well with the new fixes!

The only problem I ran in to was the /usr/local/etc/MailScanner.conf line for `Custom Functions Dir = ...`.  In MailScanner 4.85.2, it's `/usr/local/lib/MailScanner/MailScanner/CustomFunctions`, but in the newer version, the directory has been moved to `/usr/local/share/MailScanner/perl/custom`.  No big deal, this was probably done upstream.  There are some perl scripts for MailWatch (http://mailwatch.org/) that go in the Custom Functions Dir and everything was good with MailWatch and the new directory.

Thanks to the Port Maintainers and all others for fixing MailScanner 5.0.3.1!  It's good now


----------

