[Mailman-Users] HINTS: Compilation under Solaris 9 /Sparc

WC Jones sx at insecurity.org
Thu Feb 12 05:57:47 CET 2004


>>Yes - are you using the python from sunfreeware.com ???
>>
>
>Yes, I am...it seemed the right thing to do...


Dont use the one from the sunfreeware site -- I hate to say that because historically the site has great software (I use it a lot myself.)

But in this case it is a bad idea.  You can USE the GCC found there to build the following software.  Get python and compile and install it from source. 

First things first.  Is your /var/ld/ld.config files set straight?  Execute crle to find out (my current set-up is below)

bash-2.05$ crle

Configuration file [3]: /var/ld/ld.config  
  Default Library Path (ELF):   
/usr/lib:/usr/local/lib:/usr/local/ssl/lib:/usr/local/apache2/lib:/usr/sfw/lib:/usr/local/BerkeleyDB.3.3/lib:/usr/local/mysql/lib:/usr/local/qt/lib
  Trusted Directories (ELF):    /usr/lib/secure  (system default)

Command line:
  crle -c /var/ld/ld.config -l 
/usr/lib:/usr/local/lib:/usr/local/ssl/lib:/usr/local/apache2/lib:/usr/sfw/lib:/usr/local/BerkeleyDB.3.3/lib:/usr/local/mysql/lib:/usr/local/qt/lib

This will show you your current /var/ld/ld.config set-up; be VERY careful how you make adjustments or you will fry your system...


Also, you may want to set a few things in the /etc/profile (assuming you are using BASH) and log out and log back in to make them effective:

# Start of /etc/profile stuff

PATH=/usr/local/bin:/usr/bin:/usr/dt/bin:/opt/sdb/programs/bin:/usr/sfw/bin:/bin:/usr/ccs/bin:/etc:/usr/etc:/usr/local/X11/bin:/usr/sbin:/usr/openwin/bin:/us
r/local/etc:/usr/ucb
MANPATH=/usr/local/man:/usr/man:/usr/sfw/man:/usr/openwin/share/man:/usr/j2se/man/:/usr/local/jabber/man:/usr/local/pgsql/man

PAGER=less
EDITOR=nano
VISUAL=nano

export PAGER EDITOR VISUAL PATH MANPATH


# WARNING:  Do not use the -fast option when compiling software;
#           not unless ALL your software was created that way...

CC="gcc"
CFLAGS="-O3 -mcpu=ultrasparc"

CXX="g++"
CXXFLAGS="-O3 -mcpu=ultrasparc"

LDFLAGS="-L/usr/local/lib"
CPPFLAGS="-I/usr/local/include"

export CC CFLAGS CXX CXXFLAGS LDFLAGS CPPFLAGS

# End of /etc/profile stuff


Once your environment is set correctly - log out and log back in to enable it -- then go get Pythons tarball:

wget http://www.python.org/ftp/python/2.3.3/Python-2.3.3.tgz
gtar zxvf Python-2.3.3.tgz
cd Python-2.3.3
./configure && make ; pwd
su -
cd (to python source dir)
make install  (as root, and should go into /usr/local/bin by default)


Get this version of mailman:
http://prdownloads.sourceforge.net/mailman/mailman-2.1.4.tgz?download


As YOUR normal (non-root ID) do these commands:

gtar zxvf mailman-2.1.4.tgz
cd mailman-2.1.4
./configure --help  (make note of some possible options.)


(I use Postfix - so you may need to change some steps.)

You need to research what this option:
	--with-mail-gid
needs to be set as.  Under my postfix system is is set as the default 'mailman:mailman' - but see more on that later.

>From the INSTALL notes (mailman itself:
...
      --with-mail-gid=<group-or-groups>
            Specify an alternative group for running scripts via the
            mail wrapper.  <group-or-groups> can be a list of one or
            more integer group ids or symbolic group names.  The first
            value in the list that resolves to an existing group is
            used.  By default, the value is the list
            `mailman other mail daemon'.

            This is highly system dependent and you must get this
            right, because the group id is compiled into the mail
            wrapper program for added security.  On systems using
            sendmail, the sendmail.cf configuration file designates
            the group id of sendmail processes using the "DefaultUser"
            option.  (If commented out, it still may be indicating the
            default...)

            Check your MTA's documentation and configuration files to
            find the right value for this switch.
...

		If you are using Postfix - Do not set this - the deault is OK.


./configure --with-python=/usr/local/bin/python \
--with-cgi-gid=nobody --with-cgi-ext=.cgi

( I left off the following intentionally and will adrress them later:
	--with-username
	--with-groupname
On my system the default is acceptable. )

After the ./config step is done, run 'make' (as you the regular userid and NOT root.)

When that step is done DO NOT do anything else until you complete the next steps as ROOT.

Do these commands - more or less in order as ROOT:

    - Add a new user called `mailman'.
    - Add a new group called `mailman'.
    - Create an installation directory - I made /usr/local/mailman

      The default installation directory for Mailman 2.1 is
      /usr/local/mailman.

      Watch out if your site does something like mount /usr/local with
      the nosuid option.  This will break Mailman, which relies on
      set-gid programs for its security.

cd /usr/local/mailman
chgrp mailman .
chmod a+rx,g+ws .

IMPORTANT:  Add your "normal userid" - the one you just built mailman with - to the mailman group!
( You may need to log out and back in to enable this additional group membership. )

exit ( give up root priv. )


Do this as the normal UserID (not as root)

cd back to where ever you built mailman and run 

make install

su - (become root again)


cd /usr/local/mailman
bin/check_perms -f
cp scripts/mailman /etc/init.d/mailman

Execute these commands:

cd /etc/rc0.d
ln -s /etc/init.d/mailman K12mailman
cd /etc/rc1.d
ln -s /etc/init.d/mailman K12mailman
cd /etc/rc2.d
ln -s /etc/init.d/mailman S98mailman
cd /etc/rc3.d
ln -s /etc/init.d/mailman S98mailman
cd /etc/rc4.d
ln -s /etc/init.d/mailman S98mailman
cd /etc/rc5.d
ln -s /etc/init.d/mailman S98mailman
cd /etc/rc6.d
ln -s /etc/init.d/mailman K12mailman
cd /etc/rcS.d
ln -s /etc/init.d/mailman K12mailman

( Ignore any spurious errors ... )

You can verify correct installation by executing:

cd /etc ; find . -name "*mailman*" -print

You should see something like this -
	./init.d/mailman
	./rc0.d/K12mailman
	./rc1.d/K12mailman
	./rc2.d/S98mailman
	./rc3.d/S98mailman
	./rc3.d/K12mailman
	./rcS.d/K12mailman



Fix your mailman's crontab
crontab -e mailman
( in nano/pico just hit Crtl-R and read in file:
          /usr/local/mailman/cron/crontab.in

Ctrl-X and save it...


While still root - make the correct changes to your Apache 2 httpd.conf

ScriptAlias   /mailman/       $prefix/cgi-bin/
Alias /pipermail/ /usr/local/mailman/archives/public/
( also set appropriate access to the /pipermail/ path ... 
  mine looks like this:

<DirectoryMatch "/usr/local/apache2/htdocs|/usr/local/apache2/Sol3/www|/usr/local/apache2/BZ|/usr/local/mailman/archives/public/">

 I know I know - one day I will some housekeeping  ... )



Copy some files

cp /usr/local/mailman/icons/* /path/to/apache/icons


Now restart your web server.

/etc/init.d/apache2 restart
 and start the mailman system:
 
bin/mailmanctl start



The only step(s) left now are setting up your Mail Server;
see the relevant README.mailserver file for info...


HTH/-Sx-  =)
http://sneex.is.dreaming.org/

PS - I have been getting a lot of TIMEOUT after DATA error from the pythin mail server -- is their do not fragment flag set???

Maybe there is a bad router between me and that system - at any rate I dont get mails here all that well; so i can also be reached at

elohayelohim at yahoo.com  
(Hebrew for GOD of Gods.)





More information about the Mailman-Users mailing list