# =========================================================
# Header details
#
# Copyright ........: Frank Schulte (fschulte\@hightek.com)
# Module/method ....: ./sourceforge.net/doc/pkg/mailman/index.html
# Version ..........: 00001
# CVS ..............: $Id: index.html,v 1.1.1.1 2001/07/18 01:50:32 fschulte Exp $
# Analyst ..........: FS
# Developers .......: FS  - Frank Schulte (fschulte\@hightek.com)
# Description ......: MAILMAN installation documentation
#
#  LastAmended Name
#  ----------- -------------------------------------------------------------
#
# History ..........:
#
# Vers.     Date    SSR   By  Reason
# ----- ----------- ---- ---- ------------------------------
# 00001 01.03.2001  n/a  FS   Begin Documentation of installation process
# =========================================================
0. Changelog: here

# the mailman owner
MAILMAN_USER=sf-mailman
MAILMAN_GROUP=sf-mailman

# GNU Mailman
http://sourceforge.net/projects/mailman
ftp://ftp.gnu.org/gnu/mailman/mailman-2.0.tar.gz
http://download.sourceforge.net/mailman/mailman-2.0.1.tgz

8.4. Install Mailman

su -
<root-password>

# create mailman user/group
groupadd ${MAILMAN_GROUP}

useradd -m -g ${MAILMAN_GROUP} -d ${PKG}/mailman ${MAILMAN_USER}

8.4.1. setup directorys and permissions

This is absolutly needed. And it is absolutly needed that you do this very carefull.

mkdir -p ${PKG}/mailman/2.0.1
cd ${PKG}/mailman/2.0.1
chgrp ${MAILMAN_GROUP} .
chmod a+rx,g+ws .

mkdir -p ${VAR}/mailman
cd ${VAR}/mailman
chgrp ${MAILMAN_GROUP} .
chmod a+rx,g+ws .

8.4.2. Find out the DefaultUser the sendmail MTA runs wrapper programs

find /etc -type f -print | grep sendmail.cf

> /etc/sendmail.cf     # for my system

grep -i defaultuser /etc/sendmail.cf

> O DefaultUser=daemon:daemon

# Because of this finding we set --with-mail-gid=daemon

8.4.3. Making

su - normaluser

cd ${BASE_SOURCES}/sourceforge.net-binaries-needed-software
cd mailman-2.0.1

./configure --prefix=${PKG}/mailman/2.0.1 --localstatedir=${VAR}/mailman --with-username=${MAILMAN_USER} --with-groupname=${MAILMAN_GROUP} --with-python=${PKG}/python/2.0/bin/python --with-var-prefix=${VAR}/mailman --with-mail-gid=daemon --with-cgi-gid=${APACHE_GROUP}

make depend
make
make test

su -
<root-password>

make install

>> We get an error from the template folder that it can not move the *.html and *.txt files to *.html.prev and *.txt .prev

8.4.4. Test Installation

cd ${PKG}/mailman/2.0.1

./bin/check_perms

> no problems found => OK !

8.4.5. Setup Apache config:

Add or change the ScriptAlias for the lists virtual server:

ScriptAlias /mailman/ ${PKG}/mailman/2.0.1/cgi-bin/
Copy the mailman images to the Apache global images folder:
cp  ${PKG}/mailman/2.0.1/icons/* ${PKG}/apache/share/icons/.
Add Alias and Directory entrys in apache httpd.conf
Alias /pipermail/ ${VAR}/mailman/archives/public/

<Directory ${VAR}/mailman/archives/public>

AllowOverride None
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory
<Directory ${PKG}/mailman/2.0.1/cgi-bin>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Restart Apache Server:
${PKG}/apache/1.3.14/sbin/apachectl startssl
<certificate-passphrase>
8.4.6. Setup mailman crontab

su - ${MAILMAN_USER}
<password>

cd ${PKG}/mailman/2.0.1/cron
crontab crontab.in

8.4.7. Setup system aliases in sendmail

su -
<root-password>

echo "#" >> /etc/aliases
echo "# === START === Mailman 2.0.1 System aliases" >> /etc/aliases
echo "#" >> /etc/aliases
echo "mailman: ${ADMIN_EMAIL}" >> /etc/aliases
echo "mailman-owner: mailman" >> /etc/aliases
echo "#" >> /etc/aliases
echo "sf-mailman: mailman" >> /etc/aliases
echo "#" >> /etc/aliases
echo "# === END === Mailman 2.0.1 System aliases" >> /etc/aliases

newaliases

ps -ax | grep sendmail

kill -HUP sendmail-pid

8.4.8. Set Default Mailman values

echo "DEFAULT_HOST_NAME=lists.sofa.arxes.de" >> ${PKG}/mailman/2.0.1/Mailman/mm_cfg.py
echo "DEFAULT_URL="http://lists.sofa.arxes.de/mailman" >> ${PKG}/mailman/2.0.1/Mailman/mm_cfg.py

8.4.9. Set site password

${PKG}/mailman/2.0.1/bin/mmsitepass <mailman-password>

For testing we choose: TEST
 

8.5. Backend changes:

# Create user that holds the dummy dump files we work with
groupadd sf-dummy
useradd -m -g sf-dummy -d ${VAR}/dummy sf-dummy

8.6. How to setup Mailman Archives in Pipermail for SF:

Betrifft:
       [alexandria - SF Offsite Talk] RE: geocrawler
 Datum:
       Mon, 19 Feb 2001 22:20:49 -0800
   Von:
       nobody <nobody@sourceforge.net>
    An:
       noreply@sourceforge.net
 
 
 

Read and respond to this message at:
http://sourceforge.net/forum/message.php?msg_id=112459
By: psmith

I just fixed this up yesterday.  It's not hard (except, as

always with SourceForge, to find it in the first place :).

Mailman comes with its own archive capability, called

pipermail.  This is a limited capability in that it has _no_

search engine at all.  Other than that it's pretty nice; it

archives by month and lets you view by thread, subject,

author, or date, or download the raw mail text file.
 

If you want to get fancier, Mailman is supposed to integrate

nicely with mhonarc but I've not tried that.
 

Anyway, to get rid of the geocrawler stuff you need to do

two things:
 

First, in the utils/mailing_list_create.pl script (anyway, this

is the script I use in cron to set up my mailing lists) near

the bottom, comment out the last two system() commands

that deal with geocrawler (this keeps you from adding a

geocrawler archiver to your mailing list, and from trying

to set up a new list on geocrawler itself).
 

Second, in www/mail/index.php, change the URL constructor

for the archive to use pipermail instead of geocrawler; I

changed this line:
 

  echo '<A HREF="http://www.geocrawler.com/redir-sf.php3?list='.
 

to this:
 

  echo '<A HREF="http://'.$sys_lists_host.'/pipermail/'.
 

(where $sys_lists_host is defined in your /etc/local.inc to be

your email server).
 
 

______________________________________________________________________
You are receiving this email because you elected to monitor this forum.
To stop monitoring this forum, login to SourceForge and visit:
http://sourceforge.net/forum/monitor.php?forum_id=21304
 

9. Sendmail:

9.1. Basic alias file

Some alias are predefined on Sourceforge, you can find them in SF_ROOT/backend/zones/aliases.zone. This file is a good start to make your own alias file.
 

TODO:

- Add relocatable patches to the SF website code like kevin_koch does:

Betrifft:
       [alexandria - SF Offsite Talk] How we solved navbar issues
 Datum:
       Wed, 07 Feb 2001 12:52:12 -0800
   Von:
       nobody <nobody@sourceforge.net>
    An:
       noreply@sourceforge.net
 
 
 

Read and respond to this message at:
http://sourceforge.net/forum/message.php?msg_id=106727
By: kevin_koch

What we did in /etc/sourceforge.inc was define
 

$sys_sf_path_root="/home/httpd/html/sourceforge";

$sys_sf_html_root="/sourceforge/";
 

and use these variables wherever a hardcoded path used to be.

- Add LDAP COnfiguration HowTo

Betrifft:
       [alexandria - SF Offsite Talk] RE: SF 2.5 - LDAP schema elements
 Datum:
       Thu, 08 Feb 2001 01:40:29 -0800
   Von:
       nobody <nobody@sourceforge.net>
    An:
       noreply@sourceforge.net
 
 
 

Read and respond to this message at:
http://sourceforge.net/forum/message.php?msg_id=106961
By: osvaldsson

I made the following in /usr/local/etc/openldap/schema/sourceforge.schema

Wich I then included in the slapd.conf
 

# Sourceforge Project's directory schema items

# by Olafur Osvaldsson (osvaldsson@users.sourceforge.net)

#

# depends upon:

#       core.schema

#       cosine.schema

#       inetorgperson.schema

#       nis.schema

#

attributetype ( 1.1.2.2.2 NAME 'x-cvsShell'

        DESC 'The path to the CVS login shell'

        EQUALITY caseExactIA5Match

        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
 

objectclass ( 1.1.2.2.1 NAME 'x-sourceforgeAccount' SUP posixAccount

        DESC 'Abstraction of a Sourceforge account'

        MAY ( x-cvsShell ) )
 

# ===

Betrifft:
       [alexandria - SF Offsite Talk] RE: projects not being associated with troves
 Datum:
       Thu, 15 Feb 2001 17:23:33 -0800
   Von:
       nobody <nobody@sourceforge.net>
    An:
       noreply@sourceforge.net
 
 
 

Read and respond to this message at:
http://sourceforge.net/forum/message.php?msg_id=110722
By: mogul

Awesome timing... I was just about to start debugging this.  I'm noticing that
there are similar problems where scripts assume there is already a LOT of live
data... For example rotate_activity.php assumes that you already have
activity_log_old and activity_log_old_old; if you don't the rotation transaction
is cancelled.  Watch out for that!  I'll be submitting a couple other minor
patches soon.

______________________________________________________________________
You are receiving this email because you elected to monitor this forum.
To stop monitoring this forum, login to SourceForge and visit:
http://sourceforge.net/forum/monitor.php?forum_id=21304
 

# ===
 
 

- Setup DNS-Server to work with autogenerated zonefiles. Setup DNS-Server for sofa.arxes.de

- Setup the backend cronjobs to do their jobs

- Setup sendmail backend

- Paul Legatos PATCH tp get SF running

Betrifft:
       [alexandria - SF Offsite Talk] RE: SF 2.5 cron
 Datum:
       Mon, 19 Feb 2001 15:53:33 -0800
   Von:
       nobody <nobody@sourceforge.net>
    An:
       noreply@sourceforge.net
 
 
 

Read and respond to this message at:
http://sourceforge.net/forum/message.php?msg_id=112369
By: pjlegato

Hi,

I've spent the last few weeks trying to get everything up and running with
SourceForge. I must say the documentation is abysmal and the 2.5 release is
definately not an out-of-the-box piece of software. The dump files are made
by a Perl script called backend/DatabaseDump.pl, but this doesn't work without
extensive modifications. I made a patch of everything I've done to it. CVS works
and project creation works, and not much else. Feel free to give it a try, however.
It's at
http://www.arrayservices.com/~pjlegato/SF-update.patch .. Made with "diff -Nur
SF2.5-original/ SourceForge2.5/ >SF-update.patch". It will require some editing
still since everything there is set up for our site, but maybe it'll help..

Good luck,

-Paul

pjlegato@arrayservices.com

______________________________________________________________________
You are receiving this email because you elected to monitor this forum.
To stop monitoring this forum, login to SourceForge and visit:
http://sourceforge.net/forum/monitor.php?forum_id=21304
 

# === END ===

# GOOD Documentation of an SF 2.0 Installation

http://www.zoy.org/~guillaum/SF/
 

# Example Documentation of an SF 2.0 Installation
 

                 BY: garyshi
                 DATE: 2000-Aug-06 23:30
                 SUBJECT: my notes of sourceforge installation

                 * /etc/local.inc -> SFHOME/www/include/local.inc
                 <?PHP
                 $sys_dbhost = "localhost";
                 $sys_dbname = "sourceforge";
                 $sys_dbuser = "sourceforge";
                 $sys_dbpasswd = "sfpasswd";
                 $sys_server = "mysql";

                 $sys_name = "forge";
                 $sys_urlroot = "/home/sourceforge/www/";
                 $sf_cache_dir = '/home/sourceforge/cache/';
                 $sys_default_domain = "forge.itrans.com.cn";
                 $sys_lists_host = 'forge.itrans.com.cn';
                 $sys_download_host = 'forgedl.itrans.com.cn';

                 $FTPINCOMING_DIR = '/home/ftp/incoming/';
                 ?>

                 * mkdir SFHOME/cache
                 chown nobody.nobody SFHOME/cache
                 mkdir SFHOME/download
                 make a download virtual host entry to SFHOME/download

                 * https -> http changes
                 - account/change_email-confirm.php, line 22
                 - account/login.php, line 80
                 - account/lostpw-confirm.php, line 24
                 - account/register.php, line 66, 112

                 * docman fix
                 - docman/display_doc.php:
                 require('doc_utils.php') -> require('./doc_utils.php');
                 - docman/index.php:
                 require('doc_utils.php') -> require('./doc_utils.php');
                 - docman/new.php:
                 require('doc_utils.php') -> require('./doc_utils.php');

                 * download "clear.gif" from www2.valinux.com to www/images, and fix link:
                 include/pre.php, "http://www2.valinux.com/clear.gif"; -> "/images/clear.gif"

                 * include/menu.php
                 - add function menu_siteadmin():
                 function menu_siteadmin() {
                 menuhtml_top('Site Administrator');
                 print '
                 <A class=menus href="/admin/">Main entry</A><BR>
                 <A class=menus href="/admin/grouplist.php">Group Admin</A><BR>
                 <A class=menus href="/admin/approve-pending.php">Approve Pending Projects</A><BR>
                 <A class=menus href="/admin/trove/trove_cat_list.php">Trove Cat List</A><BR>
                 <A class=menus href="/admin/trove/trove_cat_add.php">Trove Cat Add</A>
                 ';
                 menuhtml_bottom();
                 }

                 * include/pre.php
                 - "require('/etc/local.inc')" -> "require('local.inc')"
                 - site admin menu, line 244:
                 if (user_is_super_user())
                 echo menu_siteadmin();

                 * other fixes
                 diff -r sourceforge/www/mail/admin/index.php SF1.5/www/mail/admin/index.php
                 97,99c97
                 < <BR><B>projectname-listname@';
                 < echo $GLOBALS['sys_lists_host'];
                 < echo '</B>
                 ---
                 > <BR><B>projectname-listname@<?php echo $GLOBALS['sys_lists_host']; ?></B>
                 112,114c110
                 < <B>'.group_getunixname($group_id).'-<INPUT TYPE="TEXT" NAME="list_name" VALUE="" SIZE="10" MAXLENGTH="12">@';
                 < echo $GLOBALS['sys_lists_host'];
                 < echo 'lists.sourceforge.net</B><BR>
                 ---
                 > <B>'.group_getunixname($group_id).'-<INPUT TYPE="TEXT" NAME="list_name" VALUE="" SIZE="10" MAXLENGTH="12">@lists.sourceforge.net</B><BR>185,187c181
                 < <TD><A href="http://';
                 < echo $GLOBALS['sys_lists_host'];
                 < echo '/mailman/admin/'
                 ---
                 > <TD><A href="http://".<?php echo $GLOBALS['sys_lists_host']; ?>."/mailman/admin/'

                 diff -r sourceforge/www/softwaremap/trove_list.php SF1.5/www/softwaremap/trove_list.php
                 16c16
                 < if (!$form_cat) $form_cat = 1;
                 ---
                 > if (!$form_cat) $form_cat = 18;

                 * my SFHOME/scripts: include.pl and db_filerelease.pl
                 - include.pl is copied from ../backend with several lines added at top:
                 $sys_dbhost = "localhost";
                 $sys_dbname = "sourceforge";
                 $sys_dbuser = "sourceforge";
                 $sys_dbpasswd = "sfpasswd";
                 $sys_server = "mysql";

                 $sys_urlroot = "/home/sourceforge/www/";
                 $sys_name = "forge";

                 $sf_cache_dir = "/home/sourceforge/cache/";
                 $sys_default_domain = "192.168.0.253";
                 $FTPINCOMING_DIR = '/home/ftp/incoming/';
                 and changed $config{'hostname'} to 'forge'.
                 and a new sub: db_connect
                 sub db_connect {
                 $dbh = DBI->connect("DBI:mysql:$sys_dbname:$sys_dbhost", "$sys_dbuser", "$sys_dbpasswd");
                 }
                 - a new file "db_filerelease.pl" to support sourceforge file releases:
                 (should be in cron, run every 2 minutes)

                 #!/usr/bin/perl
                 use DBI;

                 require "include.pl";
                 $sys_download_dir = '/home/sourceforge/download';

                 &db_connect;

                 $fr = $dbh->prepare("SELECT filerelease_id,group_id,filename FROM filerelease WHERE status='N'");
                 $group = $dbh->prepare("SELECT unix_group_name FROM groups WHERE group_id=?");
                 $update = $dbh->prepare("UPDATE filerelease SET status='A' WHERE filerelease_id=?");

                 $fr->execute();
                 while (($fr_id,$fr_group,$fr_file) = $fr->fetchrow()) {
                 $group->execute($fr_group);
                 $group->rows || next;
                 ($unix_group_name) = $group->fetchrow();
                 if (-e "$sys_download_dir/$unix_group_name") {
                 -d "$sys_download_dir/$unix_group_name" || next;
                 } else {
                 mkdir("$sys_download_dir/$unix_group_name",0755) || next;
                 }
                 system("mv $FTPINCOMING_DIR/$fr_file $sys_download_dir/$unix_group_name");
                 $update->execute($fr_id);
                 }