Source: libmail-dmarc-perl
Version: 1.20230215-1
Severity: wishlist
Tags: patch
X-Debbugs-Cc: miriam.esp...@canonical.com

Dear Maintainer, Noah,

I'm working on making the libmail-dmarc-perl package a package that
belongs to the Ubuntu main repository (5-10 years of support by the Ubuntu 
team), through a MIR (Main Inclusion request) process [1].

The main reason behind that is that this package is used by spamassassin
(already in main). Curious thing is that, by now, spamassassin is the
only package that uses libmail-dmarc-perl as dependency, which supposes an 
advantage
in our case.

spamassassin only uses the validation feature of Mail::DMARC and, as we 
can read in the INSTALL.md file of src:libmail-dmarc-perl, line 21:

'''
NOTE: Most of the dependencies are optionally required for the DMARC reporting 
features. Mail::DMARC will perform validation with only these modules:

    Regexp::Common
    Config::Tiny
    File::ShareDir
    Net::DNS::Resolver
    Net::IP
    Socket6
'''

I checked also in the spamassassin's code that the validation feature is only 
used: Spamassasin dmarc plugin [2] only uses the MAIL::DMARC::PurePerl module 
[3] and, inside it, the validate function in particular [4]. However, is true 
that it also could use the save_aggregate function if the dmarc_save_reports 
variable is set throught mail-dmarc.ini to 1 (defaults is 0 [5], and also in 
the ini file [6]). That function will need the Mail::DMARC::Report::Store 
module and the Mail::DMARC::Report::URI module.

Therefore, I separated dependencies in the binary package depending on their 
use. Modules used in validation remain as binary dependencies and the rest, 
used in reporting, are moved to suggested dependencies, still availables. I 
attached it here as a patch.

Both test suites, spamassassin and libmail-dmarc-perl t/*.t folders,
passes. Also, I made a DEP-8 test (that I can fordward to you if this
split seems reasonable/interesting) to you.


As a collateral effect, the split reduces the number of packages that need to 
be installed when used by spamassassin, saving space.

I don't know if you find this approach interesting, but anyway.... I thought it 
was worth sharing it with you. What do you think?

Thanks in advance,

Miriam España Acebal
Software Engineer II - Ubuntu PublicCloud/Server
Canonical Ltd.

[1] https://bugs.launchpad.net/ubuntu/+source/libmail-dmarc-perl/+bug/2023971
[2] 
https://git.launchpad.net/ubuntu/+source/spamassassin/tree/lib/Mail/SpamAssassin/Plugin/DMARC.pm
[3] 
https://git.launchpad.net/ubuntu/+source/spamassassin/tree/lib/Mail/SpamAssassin/Plugin/DMARC.pm#n242
[4] 
https://git.launchpad.net/ubuntu/+source/spamassassin/tree/lib/Mail/SpamAssassin/Plugin/DMARC.pm#n322
[5] 
https://git.launchpad.net/ubuntu/+source/spamassassin/tree/lib/Mail/SpamAssassin/Plugin/DMARC.pm#n111
[6] 
https://git.launchpad.net/ubuntu/+source/libmail-dmarc-perl/tree/share/mail-dmarc.ini#n21
>From 219bf178ed88f2323d9386066a2cfcdd81263133 Mon Sep 17 00:00:00 2001
From: Miriam Espana Acebal <miriam.esp...@canonical.com>
Date: Tue, 14 Nov 2023 12:28:59 +0100
Subject: [PATCH] - d/control: Splitting Dependencies between needed in
 validation or reporting. The reporting ones now goes to Suggests (even the
 former Recommends).

---
 debian/control | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/debian/control b/debian/control
index a3b621c..b67f19f 100644
--- a/debian/control
+++ b/debian/control
@@ -42,23 +42,23 @@ Depends: ${misc:Depends},
         libnet-ip-perl,
         libnet-ssleay-perl,
         libemail-mime-perl,
-        libtest-file-sharedir-perl,
-        libemail-sender-perl,
-        libdbix-simple-perl,
-        libdbd-sqlite3-perl,
-        libtest-output-perl,
         libregexp-common-perl,
         libsocket6-perl,
         liburi-perl,
         libxml-libxml-perl,
-        publicsuffix,
-Recommends:
+     publicsuffix,
+Suggests:
            libjson-perl,
            libmail-dkim-perl,
            libnet-http-perl,
            libnet-imap-simple-perl,
            libnet-server-perl,
            libnet-smtps-perl,
+           libdbd-sqlite3-perl,
+           libdbix-simple-perl,
+           libemail-sender-perl,
+           libtest-file-sharedir-perl,
+           libtest-output-perl,
 Description: Perl implementation of DMARC
  Mail::DMARC is a suite of tools for implementing DMARC. It adheres to the
  2013 DMARC draft, intending to implement every MUST and every SHOULD.
-- 
2.40.1

>From 219bf178ed88f2323d9386066a2cfcdd81263133 Mon Sep 17 00:00:00 2001
From: Miriam Espana Acebal <miriam.esp...@canonical.com>
Date: Tue, 14 Nov 2023 12:28:59 +0100
Subject: [PATCH] - d/control: Splitting Dependencies between needed in
 validation or reporting. The reporting ones now goes to Suggests (even the
 former Recommends).

---
 debian/control | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/debian/control b/debian/control
index a3b621c..b67f19f 100644
--- a/debian/control
+++ b/debian/control
@@ -42,23 +42,23 @@ Depends: ${misc:Depends},
         libnet-ip-perl,
         libnet-ssleay-perl,
         libemail-mime-perl,
-        libtest-file-sharedir-perl,
-        libemail-sender-perl,
-        libdbix-simple-perl,
-        libdbd-sqlite3-perl,
-        libtest-output-perl,
         libregexp-common-perl,
         libsocket6-perl,
         liburi-perl,
         libxml-libxml-perl,
-        publicsuffix,
-Recommends:
+     publicsuffix,
+Suggests:
            libjson-perl,
            libmail-dkim-perl,
            libnet-http-perl,
            libnet-imap-simple-perl,
            libnet-server-perl,
            libnet-smtps-perl,
+           libdbd-sqlite3-perl,
+           libdbix-simple-perl,
+           libemail-sender-perl,
+           libtest-file-sharedir-perl,
+           libtest-output-perl,
 Description: Perl implementation of DMARC
  Mail::DMARC is a suite of tools for implementing DMARC. It adheres to the
  2013 DMARC draft, intending to implement every MUST and every SHOULD.
-- 
2.40.1

Reply via email to