Commit 4088157e authored by IKEDA Soji's avatar IKEDA Soji
Browse files

Merge branch 'sympa-community/sympa-6.2' at tag '6.2.60' into branch 'ikedas/issue-1110'

parents 80d4d291 e1555fc1
name: Bug report
about: Create a report to help us improve
<!--- ↑↑ Provide a general summary of the issue in the Title above ↑↑ -->
<!-- Versions of Sympa and related software -->
Installation method
<!-- How you installed Sympa: deb, rpm, ports, ... or source package -->
Expected behavior
<!--- Tell us what should happen -->
Actual behavior
<!--- Tell us what happens instead of the expected behavior -->
Additional information
<!--- You may also attach files using "selecting them" link below. -->
<!--- NOTE that you should not include sensitive information! -->
name: Feature request
about: Suggest an idea for this project
<!--- ↑↑ Provide a general summary of the issue in the Title above ↑↑ -->
Expected Behavior
<!--- Tell us how it should work -->
Current Behavior
<!--- Explain the difference from current behavior -->
Possible Solution
<!--- Not obligatory, but suggest ideas how to implement the addition or change -->
<!--- How has this issue affected you? What are you trying to accomplish? -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
name: Question
about: Ask community for help
<!--- ↑↑ Provide a general summary of the issue in the Title above ↑↑ -->
# autoreconf
# ./configure
# make
# make install
# make dist
# make distcheck
# perltidy
# GitHub
# Vim tmp file
# ctags
# TidyAll
# patch
.job-template: &job
image: "hatsoftwares/sympa-perl-${CI_JOB_NAME}:latest"
retry: 2
- export p=$(pwd)
- . ~/.bash_profile
- . ~/bashrc
- coverage-install
- coverage-setup
- cpanm --quiet --notest --installdeps --with-develop --with-feature=Data::Password --with-feature=ldap --with-feature=safe-unicode --with-feature=smime --with-feature=soap --with-feature=sqlite .
- cpanm --notest --quiet Unicode::CaseFold
- autoreconf -i
- ./configure
- cd src; make; cd ..
- make check-local TEST_FILES='xt/perltidy.t' || true
- make check-local
- coverage-report
- make clean
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
<<: *job
sudo: false
language: perl
- "5.30"
- "5.28"
- "5.26"
- "5.24"
- "5.22"
- "5.20"
- "5.18"
- "5.16"
- "5.14"
- "5.12"
- "5.10"
- perl: "5.16"
- git clone git:// ~/travis-perl-helpers
- source ~/travis-perl-helpers/init
- build-perl
- perl -V
- cpan-install --coverage
- cpanm --installdeps --notest --with-develop --with-feature=Data::Password --with-feature=ldap --with-feature=safe-unicode --with-feature=smime --with-feature=soap --with-feature=sqlite .
- cpanm --notest --quiet Unicode::CaseFold
- coverage-setup
- autoreconf -i
- ./configure
- cd src; make; cd ..
- make check-local TEST_FILES='xt/perltidy.t' || true
- make check-local
- coverage-report
SYMPA - Systeme de multipostage automatique
Copyright © 1997, 1998, 1999 Institut Pasteur & Christophe Wolfhugel
Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
Copyright © 2011, 2012, 2013, 2014, 2015, 2016 GIP RENATER
You may distribute under the terms of the GNU General
Public License Version 2 (
# Authors
The development of Sympa is a collaborative effort from the users community. However, the following institutions and persons have been providing a development effort.
## Legacy...
Serge Aumont and Christophe Wolfhugel are, along with Olivier Salaün, the original authors of Sympa. Even though they no longer work on Sympa, they are the people who made Sympa real and are still giving us precious advices about the development orientations.
The [RENATER]( team was in charge of maintaining the Sympa project, contribute to the code and merge contributions from developers all over the world.
Authors of Sympa from RENATER are Étienne Méléard, Olivier Salaün and David Verdin.
[INRIA]( is the main French public organization for research in the fields of Computer sciences. INRIA contributed on a regular basis on the evolution of Sympa code.
The Sympa author from INRIA is Guillaume Rousse.
## The Sympa Community
Recently, Sympa was forked and handed to the community on GitHub to revitalize development. In 2017, the first version by [The Sympa Community]( was released.
# Credits
Our thanks to all contributors:
## Translations
* Mahmoud Jisri for his Arabic translations
* Prof. P.E.M. Almeida for his work on Brazilian translations
* Jordi Deu-Pons and Ana Ribas for their Catalan translations
* Tung Siu Fai, Wang Jian and Autrijus Tang, Mark Smith, Hun Yan, Li Xuejiang, Zhao Yongming for their Chinese translations.
* Petr Prazak, Ludek Mokry for his Czech translations.
* Harry Westerman for his Dutch translations.
* Jill Gemmill who has revised the English translations
* Lauri Jesmin, Tanel Kindsigo for their Estonian translations
* Mikko Bemmu Sepponen, Vesa Alhofor their Finnish translations
* Carsten Clasohm and Jens-Uwe Gaspar, Harald Wilhelmi, Georg Bauer, Stefan Hornburg, Michael Redinger for their German translations.
* Vizi Szilard, for his Hungarian translations.
* Marco Ferrante, Alberto Pasquale, Renato Bonomini, G. Donnini for their Italian translations.
* Kazuo Moriwaka and Soji Ikeda for their Japanese translations
* Mark Smith (HP) for his Korean translations
* Anders Lund and J.Gunnar for their Norwegian Bokmål translations
* Mòni Allaya who translated Sympa in Occitan
* Lukasz Zalubski and Łukasz Zygmański, for their Polish translations.
* Rodrigo Filgueira Prates, for his Portuguese translations.
* Valics Lehel, for his Romanian translations.
* Chernysh for his Russian translations
* Alex Nappa, Josep Roman, Philippe Mingo, Antonio Casado and José Manuel Caínzos for their Spanish translations.
* Daniel Nylander for his Swedish translations
* Clytie Siddall for his Vietnamese translations
## Documentation
* Pierre David, who in addition to his help and suggestions in developing the code, participated more than actively in producing this manual (it was so pretty when managed using latex ;-)
* Virginie Paitrault, Université de Rennes 2, who wrote the excellent online user documentation.
* David Lewis, who corrected this reference manual.
* Laurent Merot who designed the first Sympa logo
* Doriane Dussart who wrote the Java SOAP client documentation
## Packaging
* Raphaël Hertzog , Jerome Marant, Jean-Charles Delepine, Stefan Hornburg for the Debian packaging
* Stéphane Poirey for his work on RedHat packaging
* Loic Dachary, for guiding us through the GNU Coding Standards.
* Guy Paressant, Anne Nicolas, Guillaume Rousse for the Mandriva packaging
## Integration with third-party software
* John-Paul Robinson, University of Alabama at Birmingham, who added email verification procedure to the Shibboleth support.
* Thierry Charles and Albert Bruc who introduced the Sybase support
* Philippe Rivière, for his perseverance in tuning Sympa for Postfix.
* Vincent Mathieu, Lynda Amadouche, John Dalbec, for their integration of LDAP features in Sympa.
* Nadia Euzen who introduced antivirus support in Sympa
* Christian Mock who has extended S/MIME support in Sympa
* Frederic Connes who introduced postfix-stylealias management
* Francis Lachapelle, P.Baumgart (British Telecom), Roland Hopferwieser who wrote and extended the LDAP-enabled alias manager
## New features and scripts
* Gwenaelle Bouteille, who joined the development team for a few months and produced a great job for various feature introduced in V5 (family, RSS, shared document moderation, ...).
* Hubert Ulliac, for the search functions in the message archive, based on
* Florent Guilleux, who wrote the Task Manager (and now join CRU team for many other activities)
* Nadia Euzen, for developing the antivirus scanner plugin.
* Fabien Marquois, who introduced many new features such as the digest.
* Soji Ikeda who has made Sympa UTF-8 enabled
* Patrice Levesque has made the web interface XHTML compliant
* Adam Bernstein who provided many enhancements for the web interface.
* Mathieu Peltier who wrote the log rotation script
* Harald Wilhelmi provided a generic startup script
* Adrien Brard who added the DB logs and the member pictures features
* Sylvain Amrani for his great new features : scenario custom conditions and automatic lists based on list families
* Alice de Bignicourt who introduced the custom user attributes in Sympa
* Charles Paul who introduces great optimizations of the web interface
## and also
* Christophe Wolfhugel, the initial developper of Sympa software
* Bernard Barbier, without whom Sympa would not have a name : SYMPA = SYsteme de Multi-Postage Automatique
* all contributors and beta-testers cited in the ChangeLog file, who, by serving as guinea pigs and being the first to use it, made it possible to quickly and efficiently debug the Sympa software.
We ask all those we have forgotten to thank to accept our apologies and to let us know, so that we can correct this error in future releases of this documentation.
Contributing to Sympa
Please report bugs, suggest new features, translate user interface to your language, or enhance documentation, if you want to help the sympa community to deliver a more reliable version of Sympa.
How to report bugs / send patches
We expect feedback by users and developers. You can submit issues and pull requests to the project on GitHub:
- [sympa project on GitHub](
If you have difficulty accessing GitHub site, you may send bug reports to the developers:
- [sympa-developpers mailing list](
Note that your message will be open to the public.
How to translate user interface
You may help us translating user interface of Sympa to your languages:
* [Translate Sympa](
To add or correct translations, you have to sign up.
More about translation, please see the [Translation Guide](
Incubating new documentation
The site for development of Sympa documentation launced:
* [Incubating the new Sympa documentation site](
This site aims to renovate Sympa documentation. We expect inputs including addition, correction and suggestion from the community. For further details, please see the page "[Contributing for Sympa documentation](".
[The Sympa Community](
Reference manual
This document is only a quick start.
For detailed installation / setup information, refer to the reference manual :
Installing Sympa from sources
(If you get sources from cvs tree first run: autoreconf -i)
Create a dedicated user sympa:sympa (and it's home directory) and run
./configure; make; make install. (you may have to use Gnu make).
Then check dependent modules --check
This wizard will propose that you upgrade some CPAN module.
In this case you'll need to be root.
Sympa requires other applications to run :
* perl and gcc
* suidperl or sudo (needed to run the web interface with sufficient privileges)
* sendmail or another MTA (postfix, exim and qmail supported)
* mysql or another relational database (postgresql, oracle and sybase supported)
* apache (or another web server)
* mod_fastcgi or mod_fcgid
* libxml 2 <> is required by the LibXML Perl module;
* many perl modules : they are automatically installed at 'make' time
* some Perl modules require additionnal libraries :
- XML::LibXML requires libxml2 and libxml2 sources
- Net::SSLeay requires openssl sources
1/ Sympa setup
You can edit sympa.conf (and wwsympa.conf) manually or run that will help
you create your configuration files.
2/ Syslog setup
Default for Sympa is to log in 'local1' (you can configure this in sympa.conf)
You should add the following line to your /etc/syslog.conf file :
local1.* /var/log/sympa
On Solaris (7 & 8) and True64, the '.*' level is not recognized in syslog.conf
You need to enumerate levels :,local1.notice,local1.debug /var/log/sympa
3/ MySQL setup
Your MySQL version MUST be at least 4.1 in order to run correctly with Sympa.
db_xxx parameters in sympa.conf refer to your local database. should be able to create this database at runtime ; if it does not you'll
have to create it yourself with the provided scripts and provide
read access to Sympa.
4/ Mail aliases setup
Sympa will use a dedicated alias file for its own mail aliases, default is /etc/mail/sympa_aliases.
You have to configure your MTA (sendmail/postfix,...) to use this file.
You should also create the main Sympa aliases ; they will look like this :
sympa: "| /home/sympa/bin/queue"
listmaster: "| /home/sympa/bin/queue"
bounce+*: "| /home/sympa/bin/bouncequeue"
sympa-request: postmaster
sympa-owner: postmaster
(Later mailing lists aliases will be installed automatically by Sympa)
5/ Web setup
You should add these lines to your httpd.conf file :
Alias /static-sympa /home/sympa/static_content
ScriptAlias /sympa /home/sympa/bin/wwsympa-wrapper.fcgi
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
To login with listmaster privileges, you should login on the web
interface with the email address you declared in sympa.conf. To get an
initial password just hit the "First login" button.
To install Sympa, see Sympa Administration Manual:
# -*- indent-tabs-mode: nil; -*-
# vim:ft=perl:et:sw=4
# $Id$
use lib qw(src/lib);
use strict;
use warnings;
use CPAN::Meta '2.00';
use Sympa::Constants;
use Sympa::ModDef;
my $struct = {
# Required fields
abstract => 'Sympa is a powerful multilingual List Manager',
author => ['Sympa authors <>'],
dynamic_config => 0,
license => [qw(gpl_2 gpl_3)],
name => 'sympa',
release_status => '', # See below
version => Sympa::Constants::VERSION(),
# Optional fields
no_index => {directory => [qw(po t www xt)],},
optional_features => {}, # See below
prereqs => {}, # See below
resources => {
homepage => '',
bugtracker =>
{web => '',},
repository => {
url => '',
type => 'svn',
$struct->{release_status} =
(Sympa::Constants::VERSION() =~ /\da/) ? 'unstable'
: (Sympa::Constants::VERSION() =~ /\db/) ? 'testing'
: 'stable';
$struct->{optional_features} = {optional_features()};
$struct->{prereqs} = {prereqs()};
my $meta = CPAN::Meta->create($struct);
print $meta->as_string;
exit 0;
sub optional_features {
my %features;
foreach my $mod (sort keys %Sympa::ModDef::cpan_modules) {
my $def = $Sympa::ModDef::cpan_modules{$mod};
next if $mod eq 'perl' or $def->{mandatory};
$features{$def->{package_name}}{description} = $def->{gettext_id}
if $def->{gettext_id};
$features{$def->{package_name}}{prereqs}{runtime}{requires}{$mod} =
$def->{required_version} || '0';
return %features;
sub prereqs {
my %requires;
foreach my $mod (sort keys %Sympa::ModDef::cpan_modules) {
my $def = $Sympa::ModDef::cpan_modules{$mod};
next unless $mod eq 'perl' or $def->{mandatory};
$requires{$mod} = $def->{required_version} || '0';
my %requires_perl =
('perl' => $Sympa::ModDef::cpan_modules{'perl'}->{required_version});
return (
configure => {requires => \%requires_perl},
build => {requires => \%requires_perl},
test => {
requires =>
{%requires, 'Test::Harness' => '0', 'Test::More' => '0'}
runtime => {requires => \%requires},
develop => {requires => {'CPAN::Meta' => '2.00'}},
......@@ -5,7 +5,10 @@
# Copyright (c) 1997, 1998, 1999 Institut Pasteur & Christophe Wolfhugel
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016 GIP RENATER
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
# Copyright 2017, 2018, 2019 The Sympa Community. See the file at
# the top-level directory of this distribution and at
# <>.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -21,26 +24,37 @@
# along with this program. If not, see <>.
SUBDIRS = src default doc po www
SUBDIRS += src/smtpc
check_SCRIPTS = \
t/01_Conf.t \
t/Config_XML.t \
t/DataSource_LDAP2.t \
t/DatabaseManager.t \
t/Database_LDAP.t \
t/Language.t \
t/LockedFile.t \
t/Message_smime.t \
t/Message_urlize.t \
t/Regexps.t \
t/compile_modules.t \
t/compile_executables.t \
t/Database_LDAP.t \
t/parse_templates.t \
t/pod-syntax.t \
t/tools_data.t \
t/tools_file.t \
t/Scenario.t \
t/Tools_Data.t \
t/Tools_File.t \
t/Tools_Password.t \
t/Tools_SMIME.t \
t/Tools_Text.t \
t/Tools_Time.t \
t/WWW_Tools.t \
t/compile_executables.t \
t/compile_modules.t \
t/compile_scenarios.t \
t/parse_templates.t \