OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Solaris 10 - 2.4.0 postfix-install script

From: Nick Smith (nick.smith67googlemail.com)
Date: Mon Apr 02 2007 - 13:21:41 CDT


Attempting to upgrade to 2.4.0 on Solaris 10 gives:

...early part of dialog snipped
Please specify the destination directory for the Postfix HTML files.
Specify "no" if you do not want to install these files.
html_directory: [/usr/local/share/doc/postfix/html]

Please specify the destination directory for the Postfix on-line manual
pages. You can no longer specify "no" here.
manpage_directory: [/usr/local/man]

Please specify the destination directory for the Postfix README files.
Specify "no" if you do not want to install these files.
readme_directory: [/usr/local/share/doc/postfix]
Updating /usr/local/libexec/postfix/anvil...
Updating /usr/local/libexec/postfix/bounce...
...more files updated
Updating /usr/local/libexec/postfix/verify...
Updating /usr/local/libexec/postfix/virtual...
postfix-install: nqmgr: not found
postfix-install: usr: not found
Updating ...
ln: Insufficient arguments (0)
Usage: ln [-f] [-n] [-s] f1 [f2]
       ln [-f] [-n] [-s] f1 ... fn d1
       ln [-f] [-n] -s d1 d2
make: *** [install] Error 1

This seems to be introduced by (from HISTORY file):

20070325

        Bugfix: postfix-install didn't work for symlink or hardlink
        targets, when the parent directory had a value of "no".

It appears that /bin/sh on Solaris 10 handles the shell read builtin
in an unexpected manner:

bash-3.00# /bin/sh
# IFS=/
# export IFS
# echo "/usr/local/libexec/postfix/nqmgr"|while read a b
> do
> echo "a: $a"
> echo "b: $b"
> done
a: usr
b: local/libexec/postfix/nqmgr
#

...and for the bash shell:
bash-3.00# export IFS=/
bash-3.00# echo "/usr/local/libexec/postfix/nqmgr"|while read a b
> do
> echo "a: $a"
> echo "b: $b"
> done
a:
b: usr/local/libexec/postfix/nqmgr
bash-3.00#

I have been able to work around this by setting SHELL=/usr/bin/bash in
Makefile before running make install. Not sure what the real fix
should be though

Nick