Unverified Commit 648216c1 authored by IKEDA Soji's avatar IKEDA Soji Committed by GitHub
Browse files

Merge branch 'sympa-6.2' into invalid_default_scenarios-addition

parents 4bbc20bd a17c57ac
......@@ -38,6 +38,7 @@ Makefile
/po/web_help/remove-potcdate.sed
/po/web_help/stamp-po
/src/etc/script/sympa
/src/lib/stamp-man3
/src/lib/Sympa/Constants.pm
/src/lib/Sympa/Internals.pod
/src/libexec/bouncequeue
......@@ -55,6 +56,12 @@ Makefile
/sympa-*.tar.gz
# make distcheck
/sympa-*/
/sympa-*.tar.gz.md5
/sympa-*.tar.gz.sha256
# perltidy
*.bak
......
......@@ -6,8 +6,8 @@
# 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, 2017 GIP RENATER
# Copyright 2017, 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -65,11 +65,12 @@ noinst_SCRIPTS = \
xt/pod-coverage.t \
xt/pod-spelling.t \
xt/perltidy.t
nobase_modules_DATA = \
cpanfile
EXTRA_DIST = \
AUTHORS.md \
CONTRIBUTING.md \
cpanfile \
INSTALL.md \
NEWS.md \
OChangeLog \
......@@ -77,7 +78,8 @@ EXTRA_DIST = \
README.md \
etc_README \
$(check_SCRIPTS) $(check_DATA) \
$(noinst_SCRIPTS)
$(noinst_SCRIPTS) \
$(nobase_modules_DATA)
CLEANFILES = sympa_wizard.pl.inst
......@@ -85,10 +87,13 @@ MSGFMT=@MSGFMT@
.po.mo:
$(MSGFMT) -o $@ $<
# Skip this with "make distcheck"
check-local: $(check_DATA)
[ -z "$(TEST_FILES)" ] && TEST_FILES="$(check_SCRIPTS)"; \
PERL5LIB=src/lib; export PERL5LIB; \
$(PERL) -MTest::Harness -e 'runtests @ARGV' $$TEST_FILES
if test -d t; then \
[ -z "$(TEST_FILES)" ] && TEST_FILES="$(check_SCRIPTS)"; \
PERL5LIB=src/lib; export PERL5LIB; \
$(PERL) -MTest::Harness -e 'runtests @ARGV' $$TEST_FILES; \
fi
authorcheck:
[ -z "$(TEST_FILES)" ] && TEST_FILES="$(noinst_SCRIPTS)"; \
......@@ -169,10 +174,9 @@ installconfig: installdir sympa_wizard.pl.inst
$(SED) \
-e 's|--sysconfdir--|$(sysconfdir)|' \
-e 's|--defaultdir--|$(defaultdir)|' \
etc_README > $(DESTDIR)$(sysconfdir)/README; \
$(srcdir)/etc_README > $(DESTDIR)$(sysconfdir)/README; \
chmod 644 $(DESTDIR)$(sysconfdir)/README; \
fi
@$(INSTALL_DATA) cpanfile $(DESTDIR)$(modulesdir)/;
nextstep:
@echo ""
......@@ -195,11 +199,19 @@ nextstep:
@echo "#######################################################"
uninstall-hook:
rm -f $(DESTDIR)$(confdir)/sympa.conf
rm -f $(DESTDIR)$(confdir)/wwsympa.conf
cd $(DESTDIR)$(confdir) && rm -f sympa.conf
cd $(DESTDIR)$(confdir) && rm -f wwsympa.conf
cd $(DESTDIR)$(sysconfdir) && rm -f data_structure.version
cd $(DESTDIR)$(sysconfdir) && rm -f README
DISTCHECK_CONFIGURE_FLAGS = --enable-fhs --with-perl=$(PERL)
dist-hook:
$(MAKE) check
distcheck-hook:
-md5sum $(DIST_ARCHIVES) > $(DIST_ARCHIVES).md5
-sha256sum $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sha256
tidyall:
tidyall --conf-file doc/dot.tidyallrc --root-dir . -r src t xt
# Change Log
## [6.2.40](https://github.com/sympa-community/sympa/tree/6.2.40) (2019-01-19)
[Full Changelog](https://github.com/sympa-community/sympa/compare/6.2.38...6.2.40)
**Fixed bugs:**
- Public archives not available with sympa-6.2.38 [\#527](https://github.com/sympa-community/sympa/issues/527)
## [6.2.38](https://github.com/sympa-community/sympa/tree/6.2.38) (2018-12-21)
[Full Changelog](https://github.com/sympa-community/sympa/compare/6.2.37b.3...6.2.38)
......
......@@ -7,8 +7,8 @@
# 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, 2017 GIP RENATER
# Copyright 2017, 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -25,7 +25,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.60)
AC_INIT(sympa, 6.2.38, sympa-developpers@listes.renater.fr)
AC_INIT(sympa, 6.2.40, sympa-developpers@listes.renater.fr)
AM_INIT_AUTOMAKE([foreign -Wall -Werror 1.9 tar-pax])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AM_PO_SUBDIRS
......
......@@ -597,6 +597,9 @@ Warning: this message may already have been sent by one of the list's moderators
[%~ ELSIF report_entry == 'incorrect_email' ~%]
[%|loc(report_param.email || report_param.value)%]Address "%1" is incorrect[%END%]
[%~ ELSIF report_entry == 'blacklisted_domain' ~%]
[%|loc(report_param.email || report_param.value)%]Address "%1" belongs to a blacklisted domain[%END%]
[%~ ELSIF report_entry == 'incorrect_passwd' ~%]
[%|loc%]Provided password is incorrect[%END%]
......
......@@ -231,11 +231,13 @@
[% FOREACH e = email ~%]
<input type="hidden" name="email" value="[% e %]" />
[%~ END %]
<div>
<input type="checkbox" id="quiet" type="checkbox" name="quiet" value="1"
[% IF quiet %]checked="checked"[%END%] />
<label for="quiet">[%|loc%]Quiet (don't send welcome email)[%END%]</label>
</div>
[% IF conf.quiet_subscription == 'optional' %]
<div>
<input type="checkbox" id="quiet" type="checkbox" name="quiet" value="1"
[% IF quiet %]checked="checked"[%END%] />
<label for="quiet">[%|loc%]Quiet (don't send welcome email)[%END%]</label>
</div>
[%~ END %]
[%~ ELSIF confirm_action == 'add_frommod' ~%]
[% FOREACH i = id ~%]
<input type="hidden" name="id" value="[% i %]" />
......
......@@ -10,9 +10,11 @@
</textarea>
</div>
<div>
<input id="quiet" type="checkbox" name="quiet" value="quiet"
[% IF quiet %] checked="checked"[%END%] />
<label for="quiet">[%|loc%]quiet[%END%]</label>
[% IF conf.quiet_subscription == 'optional' %]
<input id="quiet" type="checkbox" name="quiet" value="quiet"
[% IF quiet %] checked="checked"[%END%] />
<label for="quiet">[%|loc%]quiet[%END%]</label>
[% END ~%]
<input class="MainMenuLinks" type="submit" name="action_import"
value="[%|loc%]Add subscribers[%END%]" />
</div>
......
......@@ -68,12 +68,14 @@
<label for="email_search">[%|loc%]Email address:[%END%]</label>
<input id="email_search" type="text" name="email" size="35" />
</div>
<div>
<input id="quietly" type="checkbox" name="quiet" />
<label for="quietly">
[%|loc%]Quiet (don't send welcome email)[%END%]
</label>
</div>
[% IF conf.quiet_subscription == 'optional' %]
<div>
<input id="quietly" type="checkbox" name="quiet" />
<label for="quietly">
[%|loc%]Quiet (don't send welcome email)[%END%]
</label>
</div>
[% END ~%]
<div>
<input class="MainMenuLinks" type="submit" name="action_add"
value="[%|loc%]Add[%END%]" />
......
......@@ -6,8 +6,8 @@
# 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, 2017 GIP RENATER
# Copyright 2017 The Sympa Community. See the AUTHORS.md file at the top-level
# directory of this distribution and at
# Copyright 2017, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -77,11 +77,12 @@ CLEANFILES = $(man1_MANS) $(man5_MANS)
.pod.1:
$(AM_V_GEN)$(POD2MAN) --section=1 --center="sympa $(VERSION)" \
--lax --release="$(VERSION)" $*.pod $@
--lax --release="$(VERSION)" $< $@
.pod.5:
$(AM_V_GEN)$(POD2MAN) --section=5 --center="sympa $(VERSION)" \
--lax --release="$(VERSION)" $*.pod $@
--lax --release="$(VERSION)" $< $@
.podpl.pod:
$(AM_V_GEN)PERL5LIB=$(top_srcdir)/src/lib; export PERL5LIB; \
$(PERL) $(srcdir)/$< > $*.pod
$(AM_V_GEN)PERL5LIB=$(top_builddir)/src/lib:$(top_srcdir)/src/lib; \
export PERL5LIB; \
$(PERL) $< --top_srcdir=$(top_srcdir) > $*.pod
......@@ -175,15 +175,12 @@ example, the canonic email is C<mail>.
=item C<alternative_email_attribute>
The name of the attribute for the alternate email in your directory: for
instance C<alternate_email>, C<mailalternateaddress>, ... You make a list of
these attributes separated by commas (C<,>).
With this list, Sympa creates a cookie which contains various information:
Whether the user is authenticated via LDAP or not, their alternate email.
Storing the alternate email is interesting when you want to canonify your
preferences and subscriptions, that is to say you want to use a unique
address in C<user_table> and C<subscriber_table>, which is the canonic email.
I<Obsoleted>.
On Sympa 6.2.38 or earlier, web interface provided a cookie named
C<sympa_altemails> which contained attribute values specified by this
parameter along with authenticated email address.
This feature was deprecated.
=item C<scope>
......
......@@ -4,11 +4,16 @@ use strict;
use warnings;
use Cwd qw();
use English qw(-no_match_vars);
use Getopt::Long;
use Sympa::ConfDef;
use Sympa::ListDef;
use Sympa::ListOpt;
my $top_srcdir;
GetOptions('top_srcdir=s' => \$top_srcdir);
$top_srcdir ||= '..';
my @groups = (
[description => 'List definition'],
[sending => 'Sending/receiving setup'],
......@@ -184,7 +189,7 @@ sub _format {
} elsif (exists $pinfo->{scenario}) {
my $function = $pinfo->{scenario};
my $cwd = Cwd::getcwd();
chdir '../default/scenari/' or die $ERRNO;
chdir $top_srcdir . '/default/scenari/' or die $ERRNO;
$parameters .= sprintf "Name of C<%s> scenario:\n\n",
$pinfo->{scenario};
......
......@@ -9,8 +9,8 @@
# 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, 2017 GIP RENATER
# Copyright 2017, 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -730,7 +730,6 @@ our %required_privileges = (
 
our %require_csrftoken = (
'add' => 1,
'confirm_action' => 1,
'del' => 1,
'move_user' => 1,
'savefile' => 1,
......@@ -1167,6 +1166,7 @@ while ($query = CGI::Fast->new) {
'spam_protection',
'pictures_max_size',
'show_report_abuse',
'quiet_subscription',
) {
 
$param->{'conf'}{$p} = Conf::get_robot_conf($robot, $p);
......@@ -1682,8 +1682,6 @@ while ($query = CGI::Fast->new) {
 
$session->set_cookie($cookie_domain, $param->{'user'}{'cookie_delay'},
$param->{'use_ssl'});
# Set/delete cookie for alt_emails.
$session->set_cookie_extern($cookie_domain, $param->{'use_ssl'});
 
if ($param->{'user'}{'email'}) {
$session->{'auth'} ||= 'classic';
......@@ -3251,14 +3249,6 @@ sub do_login {
}
);
 
# Save alt_emails in session store.
my $alt_emails = $data->{'alt_emails'};
$session->{'alt_emails'} = join ',',
map { sprintf '%s:%s', $_, $alt_emails->{$_} }
sort keys %{$alt_emails || {}};
wwslog('info', 'alternative emails = %s', $session->{'alt_emails'})
if $session->{'alt_emails'};
if ($session->{'lang'}) {
# user did choose a specific language before being logged. Apply it
# as a user pref.
......@@ -3907,8 +3897,6 @@ sub is_ldap_user {
next;
}
 
my @alternative_conf =
split(/,/, $ldap->{'alternative_email_attribute'});
my $attrs = $ldap->{'email_attribute'};
 
if (Sympa::Tools::Text::valid_email($auth)) {
......@@ -3993,7 +3981,6 @@ sub do_logout {
 
delete $param->{'user'};
$session->{'email'} = 'nobody';
delete $session->{'alt_emails'};
 
if ( $session->{'cas_server'}
and $Conf::Conf{'auth_services'}{$robot}[$session->{'cas_server'}]) {
......
[Unit]
Description=Sympa mailing list manager (archiving)
After=syslog.target
BindTo=sympa.service
BindsTo=sympa.service
[Service]
Type=forking
......
[Unit]
Description=Sympa mailing list manager (bounce processing)
After=syslog.target
BindTo=sympa.service
BindsTo=sympa.service
[Service]
Type=forking
......
[Unit]
Description=Sympa mailing list manager (message distribution)
After=syslog.target
BindTo=sympa.service
BindsTo=sympa.service
[Service]
Type=forking
......
[Unit]
Description=Sympa mailing list manager (task management)
After=syslog.target
BindTo=sympa.service
BindsTo=sympa.service
[Service]
Type=forking
......
[Unit]
Description=SympaSOAP - SOAP interface for Sympa mailing list manager
After=syslog.target
BindTo=sympa.service
After=syslog.target sympa.service
[Service]
Type=forking
......
[Unit]
Description=WWSympa - Web interface for Sympa mailing list manager
After=syslog.target
BindTo=sympa.service
After=syslog.target sympa.service
[Service]
Type=forking
......
......@@ -8,8 +8,8 @@
# 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, 2017 GIP RENATER
# Copyright 2017, 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -909,15 +909,14 @@ sub get_sso_by_id {
##########################################
sub _load_auth {
$log->syslog('debug3', '(%s, %s)', @_);
my $that = shift || '*';
my $robot = shift;
my $is_main_robot = shift;
# find appropriate auth.conf file
my $config_file =
_get_config_file_name({'robot' => $robot, 'file' => "auth.conf"});
$log->syslog('debug', '(%s)', $config_file);
my $config_file = Sympa::search_fullpath($that, 'auth.conf');
die sprintf 'No auth.conf for %s', $that
unless $config_file and -r $config_file;
$robot ||= $Conf{'domain'};
my $robot = ($that and $that ne '*') ? $that : $Conf{'domain'};
my $line_num = 0;
my $config_err = 0;
my @paragraphs;
......@@ -933,17 +932,15 @@ sub _load_auth {
'suffix' => '.+',
'bind_dn' => '.+',
'bind_password' => '.+',
'get_dn_by_uid_filter' => '.+',
'get_dn_by_email_filter' => '.+',
'email_attribute' => Sympa::Regexps::ldap_attrdesc(),
'alternative_email_attribute' => Sympa::Regexps::ldap_attrdesc()
. '(\s*,\s*'
. Sympa::Regexps::ldap_attrdesc() . ')*',
'scope' => 'base|one|sub',
'authentication_info_url' => 'http(s)?:/.*',
'use_tls' => 'starttls|ldaps|none',
'use_ssl' => '1', # Obsoleted
'use_start_tls' => '1', # Obsoleted
'get_dn_by_uid_filter' => '.+',
'get_dn_by_email_filter' => '.+',
'email_attribute' => Sympa::Regexps::ldap_attrdesc(),
'alternative_email_attribute' => '.*', # Obsoleted
'scope' => 'base|one|sub',
'authentication_info_url' => 'http(s)?:/.*',
'use_tls' => 'starttls|ldaps|none',
'use_ssl' => '1', # Obsoleted
'use_start_tls' => '1', # Obsoleted
'ssl_version' => 'sslv2/3|sslv2|sslv3|tlsv1|tlsv1_[123]',
'ssl_ciphers' => '[\w:]+',
'ssl_cert' => '.+',
......@@ -1412,25 +1409,19 @@ sub load_automatic_lists_description {
## load trusted_application.conf configuration file
sub load_trusted_application {
my $robot = shift;
my $that = shift || '*';
# find appropriate trusted-application.conf file
my $config_file = _get_config_file_name(
{'robot' => $robot, 'file' => "trusted_applications.conf"});
return undef unless (-r $config_file);
return undef unless (-r $config_file);
# open TMP, ">/tmp/dump1";
# Sympa::Tools::Data::dump_var(load_generic_conf_file($config_file,
# \%trusted_applications);, 0,\*TMP);
# close TMP;
return (load_generic_conf_file($config_file, \%trusted_applications));
my $config_file =
Sympa::search_fullpath($that, 'trusted_applications.conf');
return undef unless $config_file and -r $config_file;
return load_generic_conf_file($config_file, \%trusted_applications);
}
## load trusted_application.conf configuration file
sub load_crawlers_detection {
my $robot = shift;
my $that = shift || '*';
my %crawlers_detection_conf = (
'user_agent_string' => {
......@@ -1439,9 +1430,9 @@ sub load_crawlers_detection {
}
);
my $config_file = _get_config_file_name(
{'robot' => $robot, 'file' => "crawlers_detection.conf"});
return undef unless (-r $config_file);
my $config_file =
Sympa::search_fullpath($that, 'crawlers_detection.conf');
return undef unless $config_file and -r $config_file;
my $hashtab =
load_generic_conf_file($config_file, \%crawlers_detection_conf);
my $hashhash;
......@@ -2038,10 +2029,8 @@ sub _load_robot_secondary_config_files {
}
my $robot_name_for_auth_storing = $param->{'config_hash'}{'robot_name'}
|| $Conf{'domain'};
my $is_main_robot = 0;
$is_main_robot = 1 unless ($param->{'config_hash'}{'robot_name'});
$Conf{'auth_services'}{$robot_name_for_auth_storing} =
_load_auth($param->{'config_hash'}{'robot_name'}, $is_main_robot);
_load_auth($param->{'config_hash'}{'robot_name'});
if (defined $param->{'config_hash'}{'automatic_list_families'}) {
foreach my $family (
keys %{$param->{'config_hash'}{'automatic_list_families'}}) {
......@@ -2291,20 +2280,8 @@ sub _store_source_file_name {
$param->{'config_hash'}{'source_file'} = $param->{'config_file'};
}
# FXIME:Use Sympa::search_fullpath().
sub _get_config_file_name {
my $param = shift;
my $config_file;
if ($param->{'robot'}) {
$config_file =
$Conf{'etc'} . '/' . $param->{'robot'} . '/' . $param->{'file'};
} else {
$config_file = $Conf{'etc'} . '/' . $param->{'file'};
}
$config_file = Sympa::Constants::DEFAULTDIR . '/' . $param->{'file'}
unless (-f $config_file);
return $config_file;
}
# No longer used. Use Sympa::search_fullpath().
#sub _get_config_file_name;
sub _create_robot_like_config_for_main_robot {
return if (defined $Conf::Conf{'robots'}{$Conf::Conf{'domain'}});
......
......@@ -6,8 +6,8 @@
# 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, 2017 GIP RENATER
# Copyright 2017, 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -169,6 +169,7 @@ nobase_modules_DATA = \
Sympa/Ticket.pm \
Sympa/Tools/Data.pm \
Sympa/Tools/DKIM.pm \
Sympa/Tools/Domains.pm \
Sympa/Tools/File.pm \
Sympa/Tools/Password.pm \
Sympa/Tools/SMIME.pm \
......@@ -188,19 +189,23 @@ nobase_modules_DATA = \
Sympa/WWW/SOAP/Transport.pm \
Sympa/WWW/Tools.pm
man3dir = $(mandir)/man3
man3ext = 3Sympa
MAN3POD = \
$(nobase_nodist_modules_DATA) \
$(nobase_dist_modules_DATA) \
$(nobase_modules_DATA)
man3_MANS =
noinst_DATA = stamp-man3
EXTRA_DIST = \
Sympa/Constants.pm.in \
Sympa/Internals.podpl \
$(nobase_modules_DATA)
CLEANFILES = Sympa/Constants.pm Sympa/Internals.pod *.$(man3ext)
CLEANFILES = \
Sympa/Constants.pm \
Sympa/Internals.pod \
stamp-man3T stamp-man3 *.$(man3ext)
Sympa/Constants.pm: Sympa/Constants.pm.in Makefile
@[ -d Sympa ] || mkdir Sympa
......@@ -235,36 +240,36 @@ Sympa/Internals.pod: Sympa/Internals.podpl Sympa/Constants.pm.in $(nobase_module
@rm -f $@
$(AM_V_GEN)$(PERL) $< Sympa/Constants.pm.in $(nobase_modules_DATA) > $@
man3pm: $(MAN3POD) Makefile
stamp-man3: $(MAN3POD) Makefile
@test -n "$(man3ext)" || exit 0; \
rm -f *.$(man3ext); \
for pm in $(MAN3POD); do \
echo "$$pm" \
| $(SED) -e 's/\.pm$$//' -e 's/\.pod$$//' -e 's/\//::/g' \
| while read pod; do \
rm -f $$pod.$(man3ext); \
if grep '^=head1 NAME$$' $$pm > /dev/null; then \
if test -f $(top_builddir)/src/lib/$$pm; then \
pmfile=$(top_builddir)/src/lib/$$pm; \
else \
pmfile=$(top_srcdir)/src/lib/$$pm; \
fi; \
if grep '^=head1 NAME$$' $$pmfile > /dev/null; then \
echo " GEN " $$pod.$(man3ext); \
$(POD2MAN) --section=$(man3ext) \
--name $$pod \
--center="sympa $(VERSION)" \
--lax --release="$(VERSION)" \
$$pm $$pod.$(man3ext); \
$$pmfile $$pod.$(man3ext); \
fi; \
done; \
done
done; \
echo timestamp > stamp-man3T && mv stamp-man3T stamp-man3
install-data-hook: man3pm
@test -n "$(man3ext)" || exit 0; \
test -n "$(man3dir)" || exit 0; \
$(INSTALL) -d "$(DESTDIR)$(man3dir)" || exit 1; \
for pm in $(MAN3POD); do \
echo "$$pm" \
| $(SED) -e 's/\.pm$$//' -e 's/\.pod$$//' -e 's/\//::/g' \
| while read pod; do \
if grep '^=head1 NAME$$' $$pm > /dev/null; then \
echo "installing $$pod.$(man3ext)"; \
$(INSTALL_DATA) "$$pod.$(man3ext)" "$(DESTDIR)$(man3dir)" \
|| exit $$?; \
fi; \
done; \
install-data-hook: stamp-man3
for file in *.$(man3ext); do \