From Fedora Project Wiki

Revision as of 18:33, 3 December 2024 by Amoloney (talk | contribs) (announcing the change)

Split opendmarc with tools subpackage

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.


Summary

opendmarc package includes some supporting optional binaries that are not required to configure the service.


Owner


Current status

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-12-03
  • Announced
  • Discussion thread
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

opendmarc package ships some extra tools that are not required to run the opendmarc service. These tools are:

  • opendmarc-check
  • opendmarc-expire
  • opendmarc-import
  • opendmarc-importstats
  • opendmarc-params
  • opendmarc-reports

Some of these tools are written in perl and add a lot of dependencies.

I created a testing package in copr that I used for testing:

  • Installing opendmarc only:
# dnf install opendmarc
Updating and loading repositories:
Repositories loaded.
Package                 Arch   Version                 Repository           Size
Installing:
 opendmarc              x86_64 1.4.2-23.fc42           copr:copr.fedor 179.6 KiB
Installing dependencies:
 libopendmarc           x86_64 1.4.2-23.fc42           copr:copr.fedor  54.6 KiB
 libspf2                x86_64 1.2.11-15.20210922git49 rawhide         153.4 KiB
 sendmail-milter        x86_64 8.18.1-4.fc41           rawhide          77.0 KiB

Transaction Summary:
 Installing:         4 packages

Total size of inbound packages is 220 KiB. Need to download 220 KiB.
After this operation, 465 KiB extra will be used (install 465 KiB, remove 0 B).
  • Installing opendmarc-tools:
# dnf install opendmarc-tools
Updating and loading repositories:
Repositories loaded.
Package                     Arch   Version                 Repository       Size
Installing:
 opendmarc-tools            x86_64 1.4.2-23.fc42           copr:copr.f  76.3 KiB
Installing dependencies:
 groff-base                 x86_64 1.23.0-7.fc41           rawhide       3.8 MiB
 libopendmarc               x86_64 1.4.2-23.fc42           copr:copr.f  54.6 KiB
 libspf2                    x86_64 1.2.11-15.20210922git49 rawhide     153.4 KiB
 mailcap                    noarch 2.1.54-7.fc41           rawhide      86.0 KiB
 mariadb-connector-c-config noarch 3.4.3-1.fc42            rawhide     497.0   B
 mysql-common               noarch 8.0.40-1.fc42           rawhide     442.2 KiB
 mysql-libs                 x86_64 8.0.40-1.fc42           rawhide       6.4 MiB
 ncurses                    x86_64 6.5-2.20240629.fc41     rawhide     627.3 KiB
 perl-AutoLoader            noarch 5.74-512.fc42           rawhide      20.5 KiB
 perl-B                     x86_64 1.89-512.fc42           rawhide     498.0 KiB
 perl-Carp                  noarch 1.54-511.fc41           rawhide      46.6 KiB
 perl-Class-Struct          noarch 0.68-512.fc42           rawhide      25.4 KiB
 perl-Clone                 x86_64 0.47-1.fc42             rawhide      36.5 KiB
 perl-Compress-Raw-Bzip2    x86_64 2.213-1.fc42            rawhide      71.4 KiB
 perl-Compress-Raw-Zlib     x86_64 2.213-1.fc42            rawhide     163.3 KiB
 perl-DBD-MySQL             x86_64 5.010-1.fc42            rawhide     353.9 KiB
 perl-DBI                   x86_64 1.645-1.fc42            rawhide       2.2 MiB
 perl-Data-Dumper           x86_64 2.189-512.fc41          rawhide     111.7 KiB
 perl-Digest                noarch 1.20-511.fc41           rawhide      35.3 KiB
 perl-Digest-MD5            x86_64 2.59-5.fc41             rawhide      59.8 KiB
 perl-DynaLoader            x86_64 1.56-512.fc42           rawhide      32.1 KiB
 perl-Encode                x86_64 4:3.21-511.fc41         rawhide       4.7 MiB
 perl-Encode-Locale         noarch 1.05-30.fc41            rawhide      19.0 KiB
 perl-Errno                 x86_64 1.38-512.fc42           rawhide       8.4 KiB
 perl-Exporter              noarch 5.78-511.fc41           rawhide      54.3 KiB
 perl-Fcntl                 x86_64 1.18-512.fc42           rawhide      49.0 KiB
 perl-File-Basename         noarch 2.86-512.fc42           rawhide      14.0 KiB
 perl-File-Path             noarch 2.18-511.fc41           rawhide      63.5 KiB
 perl-File-Slurper          noarch 0.014-6.fc41            rawhide      28.7 KiB
 perl-File-Temp             noarch 1:0.231.100-511.fc41    rawhide     162.3 KiB
 perl-File-stat             noarch 1.14-512.fc42           rawhide      12.5 KiB
 perl-FileHandle            noarch 2.05-512.fc42           rawhide       9.3 KiB
 perl-Filter                x86_64 2:1.64-512.fc41         rawhide     165.2 KiB
 perl-Getopt-Long           noarch 1:2.58-2.fc41           rawhide     144.5 KiB
 perl-Getopt-Std            noarch 1.14-512.fc42           rawhide      11.2 KiB
 perl-HTTP-Date             noarch 6.06-5.fc41             rawhide      41.2 KiB
 perl-HTTP-Message          noarch 7.00-1.fc42             rawhide     215.3 KiB
 perl-HTTP-Tiny             noarch 0.090-1.fc42            rawhide     154.4 KiB
 perl-I18N-Langinfo         x86_64 0.24-512.fc42           rawhide      38.8 KiB
 perl-IO                    x86_64 1.55-512.fc42           rawhide     151.1 KiB
 perl-IO-Compress           noarch 2.213-2.fc42            rawhide       1.0 MiB
 perl-IO-HTML               noarch 1.004-13.fc41           rawhide      45.2 KiB
 perl-IO-Socket-IP          noarch 0.43-1.fc42             rawhide     100.3 KiB
 perl-IO-Socket-SSL         noarch 2.089-1.fc42            rawhide     703.3 KiB
 perl-IPC-Open3             noarch 1.22-512.fc42           rawhide      22.5 KiB
 perl-JSON                  noarch 4.10-6.fc41             rawhide     270.5 KiB
 perl-LWP-MediaTypes        noarch 6.04-19.fc41            rawhide      79.0 KiB
 perl-MIME-Base32           noarch 1.303-21.fc41           rawhide      30.7 KiB
 perl-MIME-Base64           x86_64 3.16-511.fc41           rawhide      46.1 KiB
 perl-Math-BigInt           noarch 1:2.0030.03-3.fc41      rawhide     957.7 KiB
 perl-Math-Complex          noarch 1.62-512.fc42           rawhide      85.0 KiB
 perl-Net-SSLeay            x86_64 1.94-7.fc41             rawhide       1.3 MiB
 perl-POSIX                 x86_64 2.20-512.fc42           rawhide     235.1 KiB
 perl-PathTools             x86_64 3.91-511.fc41           rawhide     180.0 KiB
 perl-Pod-Escapes           noarch 1:1.07-511.fc41         rawhide      24.9 KiB
 perl-Pod-Perldoc           noarch 3.28.01-512.fc41        rawhide     163.7 KiB
 perl-Pod-Simple            noarch 1:3.45-511.fc41         rawhide     560.9 KiB
 perl-Pod-Usage             noarch 4:2.03-511.fc41         rawhide      84.8 KiB
 perl-Scalar-List-Utils     x86_64 5:1.68-1.fc42           rawhide     148.9 KiB
 perl-SelectSaver           noarch 1.02-512.fc42           rawhide       2.2 KiB
 perl-Socket                x86_64 4:2.038-511.fc41        rawhide     124.0 KiB
 perl-Storable              x86_64 1:3.32-511.fc41         rawhide     232.4 KiB
 perl-Switch                noarch 2.17-31.fc41            rawhide      38.5 KiB
 perl-Symbol                noarch 1.09-512.fc42           rawhide       6.8 KiB
 perl-Term-ANSIColor        noarch 5.01-512.fc41           rawhide      97.5 KiB
 perl-Term-Cap              noarch 1.18-511.fc41           rawhide      29.3 KiB
 perl-Text-Balanced         noarch 2.06-511.fc41           rawhide     111.4 KiB
 perl-Text-ParseWords       noarch 3.31-511.fc41           rawhide      13.6 KiB
 perl-Text-Tabs+Wrap        noarch 2024.001-511.fc41       rawhide      22.6 KiB
 perl-Time-HiRes            x86_64 4:1.9777-511.fc41       rawhide     119.9 KiB
 perl-Time-Local            noarch 2:1.350-511.fc41        rawhide      69.0 KiB
 perl-TimeDate              noarch 1:2.33-15.fc41          rawhide      95.2 KiB
 perl-URI                   noarch 5.31-1.fc42             rawhide     257.0 KiB
 perl-base                  noarch 2.27-512.fc42           rawhide      12.5 KiB
 perl-constant              noarch 1.33-512.fc41           rawhide      26.2 KiB
 perl-deprecate             noarch 0.04-512.fc42           rawhide       6.5 KiB
 perl-if                    noarch 0.61.000-512.fc42       rawhide       5.8 KiB
 perl-interpreter           x86_64 4:5.40.0-512.fc42       rawhide     122.3 KiB
 perl-libnet                noarch 3.15-512.fc41           rawhide     289.4 KiB
 perl-libs                  x86_64 4:5.40.0-512.fc42       rawhide       9.9 MiB
 perl-locale                noarch 1.12-512.fc42           rawhide       6.5 KiB
 perl-mro                   x86_64 1.29-512.fc42           rawhide      45.6 KiB
 perl-overload              noarch 1.37-512.fc42           rawhide      71.5 KiB
 perl-overloading           noarch 0.02-512.fc42           rawhide       4.8 KiB
 perl-parent                noarch 1:0.243-1.fc42          rawhide      10.2 KiB
 perl-podlators             noarch 1:6.0.2-2.fc41          rawhide     317.5 KiB
 perl-vars                  noarch 1.05-512.fc42           rawhide       3.9 KiB
Installing weak dependencies:
 perl-IO-Compress-Brotli    x86_64 0.004001-14.fc41        rawhide      36.1 KiB
 perl-NDBM_File             x86_64 1.17-512.fc42           rawhide      32.5 KiB
 perl-PerlIO-utf8_strict    x86_64 0.010-8.fc41            rawhide      42.0 KiB

Transaction Summary:
 Installing:        91 packages

Total size of inbound packages is 12 MiB. Need to download 12 MiB.
After this operation, 39 MiB extra will be used (install 39 MiB, remove 0 B).

As some sysadmin could be depending on the extra tools, I would like to limit the change to only new Fedora versions and later update to EPEL.

opendmarc package would have a Suggest on %{name}-tools%{?_isa} = %{version}-%{release}

Feedback

Benefit to Fedora

Reducing in ~90 packages the installation of opendmarc for those users that don't want to use the extra tools that are mainly for reporting.

Scope

  • Proposal owners:
  • Other developers:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy:

Upgrade/compatibility impact

Early Testing (Optional)

Do you require 'QA Blueprint' support? Y/N

How To Test

User Experience

opendmarc users that don't require reporting tools can remove up to 89 dependencies.

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

N/A (not a System Wide Change)

Release Notes