Mailman installation on Solaris 10 crashes
A couple of weeks ago there were two or three posts about Mailman crashing on install of the Japanese and Korean Codecs. I swapped some offlist E-mails with Barry Sapiro and told him that I would investigate this for him when I did a fresh install of Solaris 10 on a box to be used as a Mailman mail server.
Accordingly, this afternoon I did a default Jumpstart install of the Solaris 10 "entire package" on an Ultra 60 and added a gcc 3.3 development system from a Solaris Software Companion disk. One additional item was to set the install default path to pick up needed directories that are not included in the Solaris base install.
PATH=$PATH:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:/opt/sfw/bin
The last three directories in that order are significant.
I did a build and install of Python 2.5 in /usr/local, and configured Mailman with the needed mail and cgi gid statments, then ran a make.
Make install failed. The key section in the installation output is this:
(cd ./$p ; umask 02 ; PYTHONPATH=/usr/local/mailman/pythonlib
/usr/sfw/bin/p
ython setup.py --quiet install --install-lib
/usr/local/mailman/pythonlib --ins
tall-purelib /usr/local/mailman/pythonlib --install-data
/usr/local/mailman/pyt
honlib);
done
/usr/sfw/lib/python2.3/distutils/dist.py:213: UserWarning: 'licence'
distribution option is deprecated; use 'license'
warnings.warn(msg)
/usr/ucb/cc: language optional software package not installed
error: command '/usr/sfw/lib/python2.3/pycc' failed with exit status 1
*** Error code 1
make: Fatal error: Command failed for target `install-packages'
Current working directory /usr/local/src/mailman-2.1.9/misc
WHOOPS! What is with the very clear "/opt/sfw/lib/python2.3" when I just installed 2.5 and put it in /usr/local/bin?
Yes, Sun has included an older version of Python in the Solaris 10 distribution. To build and install with a locally-built Python, you have to put --with-python=/path/to/python as a flag to the configure script. Doing so produced a clean make and install.
Note that while the fact that the wrong version of Python is not clearly evident until the installation crashes, the make step is also done with the same version.
As of this writing, I don't know what issues this raises for Mailman at runtime. Nor do I know what issues are raised if the offending packages are removed. The actual version reported is 2.3.3, and pkginfo includes the notation GNOME, so the runtime, at least, has some involvement if you are using the gnome desktop.
An additional (and very well-known) Solaris "gotcha" is the error line
/usr/ucb/cc: language optional software package not installed
Evidently, the Solaris Python looks for a "cc" in the path. /usr/ucb/cc is simply a stub that most Solaris sysadmins rename or move after installation. The Sun Studio 11 native compiler is probably compatible with it, but there is still the objection to using an older Python.
Hank
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Feb 2, 2007, at 1:25 AM, vancleef@lostwells.net wrote:
crashing on install of the Japanese and Korean Codecs. I swapped some offlist E-mails with Barry Sapiro and told him that I would
I'm almost afraid to ask who "Barry Sapiro" is. Is that some kind of
mashup of me and Mark? :)
WHOOPS! What is with the very clear "/opt/sfw/lib/python2.3" when I just installed 2.5 and put it in /usr/local/bin?
I would additionally make sure /usr/local/bin is first on your $PATH.
An additional (and very well-known) Solaris "gotcha" is the error line
/usr/ucb/cc: language optional software package not installed
Evidently, the Solaris Python looks for a "cc" in the path. /usr/ucb/cc is simply a stub that most Solaris sysadmins rename or move after installation. The Sun Studio 11 native compiler is probably compatible with it, but there is still the objection to using an older Python.
It's actually probably the Makefile that's finding /usr/ucb/cc.
Pretty well-known failure mode on Solaris. Make sure a usable C
compiler (either named gcc or cc <wink>) is first on your $PATH.
- -Barry
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin)
iQCVAwUBRcNPeXEjvBPtnXfVAQIYiQP/WF2jmsyk8wPVK8bwF4tWeD88RyEAjK0C sPYZW2PhOqPNyppovUpf2idrxych+WUwnKimU2y0vcFEbLcwqCDQmdLQjNbClkEA E+EK6Q2loPQiRMcTRTU9x04RIjNlVb4rdPlHW/FjSktTICXXFyNrPpYaBQ1bugtY gu+81Nqj0OI= =no6x -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Feb 2, 2007, at 1:25 AM, vancleef@lostwells.net wrote:
crashing on install of the Japanese and Korean Codecs. I swapped some offlist E-mails with Barry Sapiro and told him that I would
I'm almost afraid to ask who "Barry Sapiro" is. Is that some kind of
mashup of me and Mark? :)
And another "WHOOPS!" Another over-the-hill geezer special. But since I saw the backside of the big 70 a while back, I suppose I'm entitled to one once in a while.
WHOOPS! What is with the very clear "/opt/sfw/lib/python2.3" when I just installed 2.5 and put it in /usr/local/bin?
I would additionally make sure /usr/local/bin is first on your $PATH.
There is a great deal of discussion (and some religious fervor) on the Solaris newsgroups about having (or refusing to have) a /usr/local directory on a Solaris system. The anti faction has some very strong points. Putting the /usr filesystem on its own filesystem mounted read-only is a good security measure. I bypass the arguments by putting /usr/local on its own filesystem.
A better PATH layout for Solaris 9 or 10 would probably end with
/usr/ccs/bin:/usr/local/bin:/opt/sfw/bin:/usr/sfw/bin
Those directories all have to be added locally to the Solaris
distribution defaults.
Sun has moved to including more and more of what was known to Unix developers as "the GNU suite" in Solaris in the /usr/sfw directory, with some GNU things (bash, gzip) in /usr/bin. Time was (Solaris 2.5.1) that the "GNU suite" was all add-on from packages on the bonus software companion disk.
What I'm working out is "a suitable layout for a Solaris 10 development system" that requires a minimum of jiggery-pokery for compiling various open source software packages. The system that actually runs Mailman in "production" is a different minimally-configured hardened-up Solaris box. A lot of this is OS-specific and site-specific, and probably discussion here should be limited to getting Python and Mailman installed.
An additional (and very well-known) Solaris "gotcha" is the error line
/usr/ucb/cc: language optional software package not installed
Evidently, the Solaris Python looks for a "cc" in the path. /usr/ucb/cc is simply a stub that most Solaris sysadmins rename or move after installation. The Sun Studio 11 native compiler is probably compatible with it, but there is still the objection to using an older Python.
It's actually probably the Makefile that's finding /usr/ucb/cc.
Pretty well-known failure mode on Solaris. Make sure a usable C
compiler (either named gcc or cc <wink>) is first on your $PATH.
No doubt. What I posted was the result of some offlist discussions I had with Mark about problems building Mailman on Solaris that were posted here a week or so ago. I offered to investigate a few of these on a fresh install of Solaris 10 11/06 before I had fully configured the box to my normal layout. Ultimately, that box will be configured to use the Sun development system (Studio 11, has cc and CC <wink>).
There are decisions that a Solaris administrator has to make, such as whether to download and compile sendmail, apache, and bind; or to use the Sun distribution versions. I think that the decision is clear about Python---download and build your own, and configure your system so that it is the Python of choice on your site. (I'll note in passing that I didn't like the looks of the additional compiling in the Python install, and am going to go back to revisit that).
Hank
participants (2)
-
Barry Warsaw
-
vancleef@lostwells.net