Comment 0 for bug 2023971

Revision history for this message
Bryce Harrington (bryce) wrote :

Please promote libmail-dmarc-perl and its universe dependencies (recursively) to main. According to `check-mir` (+ recursive searching) this requires the following runtime binary dependencies:

 * libdbd-sqlite3-perl: universe
 * libdbix-simple-perl: universe
 * libemail-mime-perl: universe
   - libemail-messageid-perl: universe
   - libemail-mime-contenttype-perl: universe
   - libemail-mime-encodings-perl: universe
   - libemail-simple-perl: universe
 * libemail-sender-perl: universe
   - libemail-abstract-perl: universe
     + libemail-simple-perl: universe
     + libmodule-pluggable-perl: universe
     + libmro-compat-perl: universe
       • libclass-c3-perl: universe
         ◦ libalgorithm-c3-perl: universe
         ◦ libclass-c3-xs-perl: universe (Recommends)
       • libclass-c3-xs-perl: universe (Recommends)
   - libemail-simple-perl: universe
   - libmodule-pluggable-perl: universe
   - libmro-compat-perl: universe (Already listed above)
   - libmoox-types-mooselike-perl: universe
   - libscalar-list-utils-perl: universe
   - libthrowable-perl: universe
 * libfile-sharedir-perl: universe
   + libclass-inspector-perl: universe
 * libnet-idn-encode-perl: universe
 * libnet-imap-simple-perl: universe (Recommends)
   - libparse-recdescent-perl: universe (Recommends)
 * libnet-ip-perl: universe
 * libnet-smtps-perl: universe
 * libregexp-common-perl: universe
 * libtest-file-sharedir-perl: universe
   - libclass-tiny-perl: universe
   - libfile-copy-recursive-perl: universe
   - libfile-sharedir-perl: universe
     + libclass-inspector-perl: universe
   - libscope-guard-perl: universe
 * libtest-output-perl: universe

These are all relatively trivial Perl modules, many of which have been in main previously, and do not appear worth filing individual MIRs on, so will be covered as a set here in this bug.

[Availability]

The package libmail-dmarc-perl and all of its dependencies already exist in Ubuntu universe, and builds for its target architectures.

[Rationale]
tldr; DMARC support in SpamAssassin is important for stronger spam filtering.

Spam email is an ever-present and ever-evolving presence in our online lives, and SpamAssassin is a key tool for end users and service providers to identify likely spam for filtering. SpamAssassin 4.0, introduced in Ubuntu "lunar" 22.10, introduced a number of major new features including three new plugins, the most significant of which is the DMARC policy checker.

DMARC (or "Domain-based Message Authentication, Reporting & Conformance") is a new convention for email service providers to communicate to email recipient programs about how to handle authentication failures. It builds on prior protocols (namely, SPF and DKIM) to address their limitations. Essentially, DMARC protects against direct domain spoofing, such that when an email purports to be from a given domain (say, @gmail.com or @irs.gov) but fails proper authentication using the authentication methods published by that domain, it tells the email receiver whether to reject the email as spam, quarantine it for evaluation, or something else. DMARC also establishes a way for the email receiver to give feedback back to the sender about emails that failed to pass this check.

libmail-dmarc-perl contains the official Perl implementation of DMARC support. SpamAssassin is the primary user of this package, and requires it in order to perform this DMARC evaluation. libmail-dmarc-perl is a relatively new source package that was proposed for lunar but deleted on 2023-05-01 due to build/autopkgtest issues and later re-introduced to mantic once those issues were resolved, on 2023-06-13.

[Security]
TBD

[Quality assurance - function/usage]
TBD

[Quality assurance - maintenance]
TBD

[Quality assurance - testing]
TBD

[Quality assurance - packaging]
TBD

[Dependencies]
Unfortunately, since it's a new package, libmail-dmarc-perl resides in universe. Since spamassassin lives in main, this creates a component mismatch. Compounding the issue, libmail-dmarc-perl itself depends on other source packages that also are only available via universe.

The MIR process (https://github.com/canonical/ubuntu-mir) indicates that Build dependencies can be in universe, so we'll focus just on the binary dependencies (the build dependencies get rather involved.)

A recursive listing of binary universe depends needing promoted is summarized above; below is some per-package analysis of each of the principle universe dependencies

### libdbd-sqlite3-perl: universe ###

This existed in main in 2013 (Trusty), but was subsequently demoted. Its original promotion was via LP: #196145.

This has no dependencies from universe.

### libdbix-simple-perl: universe ###

This has been in the archive since at least 2013. It's never had a bug filed against it in Launchpad, except one sync request to update it in 2017.

This has Recommends on three universe packages: libobject-accessor-perl, libsql-abstract-perl, libtext-table-perl

Since those recursively depend on additional perl modules in universe, it may be worth moving those to Suggests.

### libemail-mime-perl: universe ###

This has been in the archive since at least 2013. It's never had a bug filed against it in Launchpad.

This has some further universe dependencies:

* libemail-mime-perl
  - libemail-messageid-perl
  - libemail-mime-contenttype-perl
  - libemail-mime-encodings-perl
  - libemail-simple-perl

### libemail-sender-perl: universe ###

This has been in the archive since at least 2013. It's never had a bug filed against it in Launchpad.

* libemail-sender-perl
  - libemail-abstract-perl
    + libemail-simple-perl
    + libmodule-pluggable-perl
    + libmro-compat-perl
      • libclass-c3-perl
        ◦ libalgorithm-c3-perl
        ◦ libclass-c3-xs-perl (Recommends)
      • libclass-c3-xs-perl (Recommends)
  - libemail-simple-perl
  - libmodule-pluggable-perl
  - libmro-compat-perl (See above)
  - libmoox-types-mooselike-perl
  - libscalar-list-utils-perl
  - libthrowable-perl
    + libmoose-perl (Recommends)
      • <several>

Since libmoose-perl pulls in more universe packages, but is just a Recommends, we could drop it to Suggests instead.

### libfile-sharedir-perl: universe ###

This existed in main in 2013 (Trusty), but was demoted after that.
No depends from universe.

* libfile-sharedir-perl
  + libclass-inspector-perl

### libnet-idn-encode-perl: universe ###

This has been in the archive since at least 2013. It had a MIR accepted in 2015 for Xenial (see LP: #1494890) but appears to have demoted back to universe around Xenial's release.

### libnet-imap-simple-perl: universe ###

This has been in the archive since 2006, but has never been in main. It's only had one bug ever reported against it (back in 2010). This is just a Recommends so could be excluded.

* libnet-imap-simple-perl (Recommends)
  - libparse-recdescent-perl (Recommends)

### libnet-ip-perl: universe ###

This has been promoted and demoted from main more than once, with the most recent demotion in Lunar (2022). The original MIR appears to be LP: #243276. Other than that it's only had a single bug opened against it, which was an upgrade bug that expired over a decade ago.

### libnet-smtps-perl: universe ###

This has been in the archive since 2015, but never in main. It's never had bugs reported against it.
This is just a Recommends so could be excluded.

### libregexp-common-perl: universe ###

This was in main from Natty to Xenial EOL (2013-2018), and has never had bugs reported against it in Launchpad

### libtest-file-sharedir-perl: universe ###

This has been in the archive since 2015, but never in main. It's never had bugs reported against it in Launchpad.

* libtest-file-sharedir-perl
  - libclass-tiny-perl
  - libfile-copy-recursive-perl
  - libfile-sharedir-perl
    + libclass-inspector-perl
  - libscope-guard-perl

### libtest-output-perl: universe ###

This has been in the archive since 2009, and was in main from Precise to Wily EOL (2011-2018) and demoted in Xenial. See MIR bug LP: # 878004