Sympa is a program written in Perl language. It also calls a short program written in C to perform some tasks for which it is not reasonable to entrust an interpreted language.
The Sympa distribution is available from http://listes.cru.fr/sympa/. All important resources are referenced there:
Sympa installation and configuration are relatively easy tasks for an administrator who already has a good deal of experience with Unix systems and installation of tools written in Perl.
The user will note that a large part of the installation time will be devoted to installation of the prerequisites if they are not already on the system. The number of ancillary tools required is not really of great importance, but on a current Unix system, it should be possible to do this without much of a problem. We strongly advise carrying out the system installations and checks in the order listed below; these steps will be explained in detail in later sections.
You should have a Unix system that is more or less recent in order to be able to use Sympa. In particular, it is necessary that your system have an ANSI C compiler (on the whole, in the case which is of interest to us, your compiler should support prototypes) as well as XPG4-standard NLS (Native Language Support, for languages other than English) extensions.
Sympa has been installed and tested on the following systems, therefore you should not have any special problems:
Anyone willing to port it on NT ? ;-)
If your Unix system has a gencat command as well as catgets(3) and catopen(3) functions, it is likely that it has NLS extensions and that these extensions comply with the XPG4 specifications.
Finally, most Unix systems are now supplied with an ANSI C compiler; if this is not the case, you can install the gcc compiler, which you will find on the nearest GNU site, for example in France.
To complete the operation, you should make sure that you have a recent enough release of the sendmail MTA, e.g. release 8.9.x or a more recent release. You may also use postfix or qmail.
Unix systems often have a highly simple system to manage indexed files. This consists of extensions known under the name dbm and ndbm. For many programs, these are not sufficient, and in particular for Sympa, which uses the DB package initially developed at the University of California in Berkeley, and which is now maintained by the company Sleepycat software. Many UNIX systems like Linux, FreeBSD or Digital Unix 4.x have the DB package in the standard version. If not you should install this tool if you have not already done so.
You can retrieve DB on the Sleepycat site and read its documentation to install it in your system.
To be able to use Sympa, you must have release 5.004_03 of the Perl language or a later release and several CPAN modules. Run perl check_perl_modules.pl in src will check all perl requierements.
You will find a current release of the Perl interpreter in the nearest CPAN archive. If you do not know where to find a nearby site, use the CPAN multiplexer; it will find one for you.
Sympa makes use of other modules, which are found on CPAN. These modules are:
If you plan to store and extract user data into or from a relational database (strongly recommended):
If you plan to interface some LDAP directory to extract subscribers:
You can retrieve these tools on any CPAN archive site. The suggested address is just one of these sites.
These modules are easy to install, as are most CPAN modules:
You have now completed installation of all the modules required to run Sympa correctly, and you can go on now to the installation and configuration of the actual Sympa program.
Last step before installing Sympa: create a Unix user, and preferably, a group specific to the program. Most of the installation will be carried out with this account. We suggest that you use the name sympa for both user and group. Note that UID.GID must be the same as your httpd. If you are running a dedicated httpd server, this can be sympa.sympa, else it is possible either to define a virtual httpd server setting UID GID, either to run Sympa as nobody.nobody. This last solution is not safe because the information managed by Sympa will be owned by nobody.
In the rest of this documentation, numerous files will be located in the user's login directory which you will have created in your system or in a sub-directory. We will mark this login directory with ~sympa/.
Before using Sympa, you have to customize the sources so that you can specify a few specific parameters in your installation.
To start, extract the sources from the archive file, for example from the ~sympa/ directory: the archive will create a directory named sympa-2.7/ where all the useful files and directories will be located. In particular, you will have a doc/ directory containing this documentation in various formats, a sample/ directory containing a few examples of a configuration file, nls/ directory where multi-linguage messages are stored and of course, the src/ directory for the mail robot and wwsympa for the web interface.
Example:
# su -
$ gzip -dc sympa-2.7.tar.gz | tar xf -
Before running make in the main directory, you have to edit and configure Makefile so that you can customize the first part in them. We advise against changing anything located after the STOP line.
The Makefile file contains explanations for the fields, which you may have to change. They are mainly :
Once this file has been configured, you need to run make;make install commands. This generates the binary for the queue program, and the nls and installs the Sympa and WWSympa programs in their final slot, while having propagated a few parameters in the Perl files, as for example the access path to the Perl program. The make command includes a checking of cpan modules. If everything goes smoothly, the ~sympa/bin/ directory will contain various Perl programs as well as the queue binary. You will note that this binary has the set-uid-on-exec bit (owner is the sympa user): this is normal and indispensable for Sympa to run correctly.
The previous step does not automatically copy all the files required because the location of all other components must be configured by the administrator in the /etc/sympa.conf file which used at run time.
It is possible to disperse files and directories everywhere in the Unix system, however we recommand storing all the directories and files in the sympa user's login directory.
You also have to create these directories now. You can use restrictive authorizations if you like, since only programs running with the sympa account will have to access them.
This directory contains one directory per active list.
Sympa requires 7 spools under a common directory. Two of them (msg and bounce) needs an explicit definition in sympa.conf ; if necessary, sympa create the spools at run time :
The preceding step does not install the configuration files (in some cases, this may require the use of privileges), in particular the /etc/sympa.conf file, which will supposedly have been installed in a system file, so as to prevent a user, even the sympa user from being able to change it, whether or not it is voluntary.
You will find an example of this file in the sample/ directory in the source distribution. Make a copy of it and work with the copy; that way, you will always have the master copy at hand's reach, only minor adaptation should be necessary.
An electronic list manager such as Sympa runs in two steps:
To differentiate processing of administrative requests (subscription, unsubscription, help request, etc.) from messages sent to a list, a special mail alias is reserved for administrative requests, so that Sympa can be accessible and users can join it. Thus, the lines below must be added to the sendmail alias file (often /etc/aliases):
sympa: "| /home/sympa/bin/queue sympa" bounce+*: "| /home/sympa/bin/bouncequeue sympa" sympa-request: postmaster sympa-owner: postmaster
sympa-request should be the address of the robot administrator, who is the person who takes care of Sympa management (here postmaster@cru.fr).
sympa-owner is the return address for Sympa error messages.
The alias bounce+* is dedicated to collect bounces. It is usefull only if at least one list use welcome_return_path unique or remind_return_path unique. Do not forget to run newaliases after any change to the /etc/aliases file!
Note: aliases based on listserv (in addition to those based on sympa) can be added in order to facilitate the task of users accustomed to the listserv and majordomo names. For example:
listserv: sympa listserv-request: sympa-request majordomo: sympa listserv-owner: sympa-owner
Note: it will also be necessary to add entries in this alias file
to create lists (see list creation section, 8.1,
page ).
Sympa keeps traces of each of its procedures in its log file.
Nevertheless, this requires configuration of the syslogd
daemon. Sympa's by default is to use local1 facility
(syslog parameter in sympa.conf)
,WWSympa uses (log_facility parameter
in wwsympa.conf), the default is Sympa's log facility.
Thus, a line must be added in the syslogd configuration file (/etc/syslog.conf). For example:
local1.* /var/log/sympa
Depending on your platform, your syslog daemon may use either
UDP or Unix socket. Sympa's default is to use Unix socket ;
you may change this behaviour by editing sympa.conf's
log_socket_type parameter (3.3.2,
page ).
Once all files are configured, all you have to do is start Sympa. To do this, add the following sequence or its equivalent in your /etc/rc.local:
su sympa -c \tildefile {sympa/bin/sympa.pl} su sympa -c \tildefile {sympa/bin/archived.pl} su sympa -c \tildefile {sympa/bin/bounced.pl}
sympa.pl recognises the following command line arguments:
Sets debug mode in maximum verbosity, tracing each subroutine calls. Usefull for contributor.
su sympa -c "/home/sympa/bin/sympa.pl -l fr"