git: 834bc0484b52 - 2026Q3 - mail/sympa: Update to 6.2.78

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Tue, 15 Sep 2026 14:38:54 UTC
The branch 2026Q3 has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=834bc0484b5218e7785ed771a9a63862a7360e7b

commit 834bc0484b5218e7785ed771a9a63862a7360e7b
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2026-07-23 12:22:37 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-09-15 14:38:33 +0000

    mail/sympa: Update to 6.2.78
    
    PR:             296993
    Approved by:    Geoffroy Desvernay (maintainer)
    
    (cherry picked from commit 6d37b11fb72c94d0eedfeb734cb84092e9cc17f6)
---
 mail/sympa/Makefile                 |   4 +-
 mail/sympa/distinfo                 |   6 +-
 mail/sympa/files/patch-configure.ac |  10 --
 mail/sympa/files/patch-issue1966    |  48 ----------
 mail/sympa/files/patch-issue1984    | 177 ++++++++++++++++++++++++++++++++++++
 mail/sympa/pkg-plist                |   2 +
 6 files changed, 184 insertions(+), 63 deletions(-)

diff --git a/mail/sympa/Makefile b/mail/sympa/Makefile
index 7be012ce0e75..4894008d8235 100644
--- a/mail/sympa/Makefile
+++ b/mail/sympa/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	sympa
-DISTVERSION=	6.2.76
-PORTREVISION=	1
+DISTVERSION=	6.2.78
 CATEGORIES=	mail
 
 MAINTAINER=	dgeo@centrale-med.fr
@@ -52,6 +51,7 @@ RUN_DEPENDS=	mhonarc>=0:www/mhonarc \
 		p5-Unicode-LineBreak>=2019.001:textproc/p5-Unicode-LineBreak \
 		p5-Unicode-UTF8>=0.62:converters/p5-Unicode-UTF8 \
 		p5-URI>=1.35:net/p5-URI \
+		p5-URI-Find>0:textproc/p5-URI-Find \
 		p5-XML-LibXML>=1.70:textproc/p5-XML-LibXML
 
 # Shebang is corrected by configure script
diff --git a/mail/sympa/distinfo b/mail/sympa/distinfo
index 891394053f74..13574f69b319 100644
--- a/mail/sympa/distinfo
+++ b/mail/sympa/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1738668264
-SHA256 (sympa-community-sympa-6.2.76_GH0.tar.gz) = fa0cefbfd44423e1012aa9744f4cf30c2c42a19ec6debd0c7a46990968829e04
-SIZE (sympa-community-sympa-6.2.76_GH0.tar.gz) = 10537497
+TIMESTAMP = 1784703882
+SHA256 (sympa-community-sympa-6.2.78_GH0.tar.gz) = 7bd20fbbbcc206413c5247febb39724df4c7d21e907388f37cee79df5a0e8713
+SIZE (sympa-community-sympa-6.2.78_GH0.tar.gz) = 10549542
diff --git a/mail/sympa/files/patch-configure.ac b/mail/sympa/files/patch-configure.ac
deleted file mode 100644
index 3af3b3d1cf26..000000000000
--- a/mail/sympa/files/patch-configure.ac
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure.ac.orig	2025-02-03 22:52:23 UTC
-+++ configure.ac
-@@ -28,7 +28,6 @@ AM_PO_SUBDIRS
- AM_INIT_AUTOMAKE([foreign -Wall -Werror 1.9 tar-pax])
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
- AM_PO_SUBDIRS
--GETTEXT_MACRO_VERSION=0.19
- 
- AC_PREFIX_DEFAULT(/home/sympa)
- 
diff --git a/mail/sympa/files/patch-issue1966 b/mail/sympa/files/patch-issue1966
deleted file mode 100644
index 0abaa86d91e7..000000000000
--- a/mail/sympa/files/patch-issue1966
+++ /dev/null
@@ -1,48 +0,0 @@
-https://github.com/sympa-community/sympa/issues/1966
-
-https://github.com/sympa-community/sympa/commit/088fff6ba62e229939c0213c7f44b4086d38709c
-
---- src/sbin/archived.pl.in.orig	2025-02-03 22:52:23 UTC
-+++ src/sbin/archived.pl.in
-@@ -29,7 +29,7 @@ use English qw(-no_match_vars);
- use strict;
- use warnings;
- use English qw(-no_match_vars);
--use Getopt::Long;
-+use Getopt::Long qw( :config no_ignore_case );
- use Pod::Usage;
- use POSIX qw();
- 
---- src/sbin/bounced.pl.in.orig	2025-02-03 22:52:23 UTC
-+++ src/sbin/bounced.pl.in
-@@ -35,7 +35,7 @@ use English qw(-no_match_vars);
- use strict;
- use warnings;
- use English qw(-no_match_vars);
--use Getopt::Long;
-+use Getopt::Long qw( :config no_ignore_case );
- use Pod::Usage;
- use POSIX qw();
- 
---- src/sbin/bulk.pl.in.orig	2025-02-03 22:52:23 UTC
-+++ src/sbin/bulk.pl.in
-@@ -30,7 +30,7 @@ use English qw(-no_match_vars);
- use strict;
- use warnings;
- use English qw(-no_match_vars);
--use Getopt::Long;
-+use Getopt::Long qw( :config no_ignore_case );
- use Pod::Usage;
- use POSIX qw();
- 
---- src/sbin/task_manager.pl.in.orig	2025-02-03 22:52:23 UTC
-+++ src/sbin/task_manager.pl.in
-@@ -30,7 +30,7 @@ use English qw(-no_match_vars);
- use strict;
- use warnings;
- use English qw(-no_match_vars);
--use Getopt::Long;
-+use Getopt::Long qw( :config no_ignore_case );
- use Pod::Usage;
- use POSIX qw();
- 
diff --git a/mail/sympa/files/patch-issue1984 b/mail/sympa/files/patch-issue1984
new file mode 100644
index 000000000000..6aee7dd71cc1
--- /dev/null
+++ b/mail/sympa/files/patch-issue1984
@@ -0,0 +1,177 @@
+https://github.com/sympa-community/sympa/issues/2049
+
+https://github.com/sympa-community/sympa/pull/1984
+
+
+From 2fb03a9d3220f55208aea7ad5149f5d3b2a13da3 Mon Sep 17 00:00:00 2001
+From: IKEDA Soji <mail@ikedas.net>
+Date: Thu, 23 Apr 2026 20:49:45 +0900
+Subject: [PATCH] correct broken refactoring occurred on #1984
+
+---
+ src/lib/Sympa/CLI.pm        | 58 +++++++++++++++++++------------------
+ src/lib/Sympa/CLI/create.pm |  2 +-
+ t/CLI_getoptions.t          |  7 ++---
+ 3 files changed, 34 insertions(+), 33 deletions(-)
+
+diff --git a/src/lib/Sympa/CLI.pm b/src/lib/Sympa/CLI.pm
+index 5b72cb9c5..e408bc4f5 100644
+--- src/lib/Sympa/CLI.pm
++++ src/lib/Sympa/CLI.pm
+@@ -75,14 +75,10 @@ sub run {
+         map {s/[.].*\z//r} grep {defined} @ENV{qw(LANGUAGE LC_ALL LANG)};
+     $language->set_lang(@langs, 'en-US', 'en');
+ 
+-    # Parse options if necessary.
++    # Parse command and options.
+     my %options;
+-    if ($options) {
+-        %options = %$options;
+-    } else {
+-        $class = $class->getoptions(\%options, \@argv);
+-        return undef unless $class;
+-    }
++    ($class, %options) = $class->getoptions($options, \@argv);
++    return undef unless $class;
+ 
+     # Suppress console output if specified.
+     # Setup language if specified.
+@@ -92,26 +88,24 @@ sub run {
+     $class->arrange(%options) if $class->_need_priv;
+ 
+     # Parse arguments.
+-    if (@argv) {
+-        @argv = $class->parseargs(@argv);
+-        return unless @argv;
+-    }
++    return undef unless $class->parseargs(\@argv);
+ 
+     $class->_run(\%options, @argv);
+ }
+ 
+ sub getoptions {
+-    my $class     = shift;
+-    my $options_r = shift;
+-    my $argv_r    = shift;
++    my $class   = shift;
++    my $options = shift;
++    my $argv_r  = shift;
++    my @argv    = @$argv_r;
+ 
+-    while (@$argv_r and ($argv_r->[0] // '') =~ /\A\w+\z/) {
++    while (@argv and ($argv[0] // '') =~ /\A\w+\z/) {
+         # Check if (sub-)command is implemented.
+         my $dir = $INC{($class =~ s|::|/|gr) . '.pm'} =~ s/[.]pm\z//r;
+-        last unless -e "$dir/$argv_r->[0].pm";
++        last unless -e "$dir/$argv[0].pm";
+ 
+         # Load module for the command.
+-        my $command = shift @$argv_r;
++        my $command = shift @argv;
+         my $subclass = sprintf '%s::%s', $class, $command;
+         unless (eval(sprintf 'require %s', $subclass)
+             and $subclass->isa($class)) {
+@@ -126,17 +120,21 @@ sub getoptions {
+         # No valid main command.
+         warn $language->gettext_sprintf(
+             'Invalid argument \'%s\' (command is expected)',
+-            ($argv_r->[0] // ''))
++            ($argv[0] // ''))
+             . "\n";
+         return undef;
+     }
+ 
+-    if (grep /^-/, $class->_options) {
++    # Parse options if necessary.
++    my %options;
++    if ($options) {
++        %options = %$options;
++    } elsif (grep /^-/, $class->_options) {
+         ;
+     } elsif (
+         not Getopt::Long::GetOptionsFromArray(
+-            $argv_r,
+-            $options_r,
++            \@argv,
++            \%options,
+             map {
+                 # If option name contains hyphen-minus, underscore is also
+                 # allowed and the latter will be used for keys in the hash.
+@@ -154,13 +152,16 @@ sub getoptions {
+         return undef;
+     }
+ 
+-    return $class;
++    @$argv_r = @argv;
++    return ($class, %options);
+ }
+ 
+-# Parse arguments.
+ sub parseargs {
+-    my $class = shift;
+-    my @argv  = @_;
++    my $class  = shift;
++    my $argv_r = shift;
++    my @argv   = @$argv_r;
++
++    return $argv_r unless @argv;
+ 
+     my @parsed_argv = ();
+     foreach my $argdefs ($class->_args) {
+@@ -176,7 +177,7 @@ sub parseargs {
+             warn $language->gettext_sprintf('Missing argument (%s)',
+                 _arg_expected($defs))
+                 . "\n";
+-            return;
++            return undef;
+         }
+         foreach my $arg (@a) {
+             my $val;
+@@ -233,12 +234,13 @@ sub parseargs {
+                     'Invalid argument \'%s\' (%s)',
+                     $arg, _arg_expected($defs))
+                     . "\n";
+-                return;
++                return undef;
+             }
+         }
+     }
+ 
+-    return (@parsed_argv, @argv);
++    @$argv_r = (@parsed_argv, @argv);
++    return $argv_r;
+ }
+ 
+ sub _options       {qw(config|f=s debug|d lang|l=s log_level=s mail|m noout)}
+diff --git a/src/lib/Sympa/CLI/create.pm b/src/lib/Sympa/CLI/create.pm
+index c9a73d406..4a060688e 100644
+--- src/lib/Sympa/CLI/create.pm
++++ src/lib/Sympa/CLI/create.pm
+@@ -31,7 +31,7 @@ use Sympa::Spindle::ProcessRequest;
+ 
+ use parent qw(Sympa::CLI);
+ 
+-use constant _options => qw(input-file=s);
++use constant _options => qw(input_file=s);
+ use constant _args    => qw(family|domain?);
+ 
+ sub _run {
+diff --git a/t/CLI_getoptions.t b/t/CLI_getoptions.t
+index afbaa772e..475128793 100644
+--- t/CLI_getoptions.t
++++ t/CLI_getoptions.t
+@@ -59,11 +59,10 @@ sub dotest {
+     my $wishedArgv    = shift;
+     my @argv          = @_;
+ 
+-    diag join(' ', @argv) =~ s/(.{73}).*/$1.../r;
+-    my %options;
+-    my $class = Sympa::CLI->getoptions(\%options, \@argv);
++    my ($class, %options) = Sympa::CLI->getoptions(undef, \@argv);
+ 
+-    is $class, $wishedClass, "Class $wishedClass";
++    ok $class, join(' ', @_) =~ s/(.{73}).*/$1.../r;
++    is $class, $wishedClass, $wishedClass;
+     is_deeply \%options, $wishedOptions, sprintf '{%s}',
+         join(', ', sort keys %$wishedOptions) =~ s/(.{65}).*/$1.../r;
+     is_deeply \@argv, $wishedArgv, sprintf '[%s]',
diff --git a/mail/sympa/pkg-plist b/mail/sympa/pkg-plist
index 694f51c1bdd5..f0cd84166247 100644
--- a/mail/sympa/pkg-plist
+++ b/mail/sympa/pkg-plist
@@ -92,6 +92,7 @@ libexec/sympa/Sympa/Family.pm
 libexec/sympa/Sympa/HTML/FormatText.pm
 libexec/sympa/Sympa/HTMLDecorator.pm
 libexec/sympa/Sympa/HTMLSanitizer.pm
+libexec/sympa/Sympa/HTML/URIFind.pm
 libexec/sympa/Sympa/Internals.pod
 libexec/sympa/Sympa/Internals/Workflow.pod
 libexec/sympa/Sympa/Language.pm
@@ -331,6 +332,7 @@ share/man/man3/Sympa::DataSource::SQL.3Sympa.gz
 share/man/man3/Sympa::Family.3Sympa.gz
 share/man/man3/Sympa::HTMLDecorator.3Sympa.gz
 share/man/man3/Sympa::HTMLSanitizer.3Sympa.gz
+share/man/man3/Sympa::HTML::URIFind.3Sympa.gz
 share/man/man3/Sympa::Internals.3Sympa.gz
 share/man/man3/Sympa::Internals::Workflow.3Sympa.gz
 share/man/man3/Sympa::Language.3Sympa.gz