From Fedora Project Wiki

Split opendmarc with tools subpackage

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-02
  • [Announced]
  • [<will be assigned by the Wrangler> 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