F42 Change Proposal: Split opendmarc with tools subpackage (Self-Contained)

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.

Wiki
Announced

Summary

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

Owner

  • Name: Mikel Olasagasti
  • Email: mikel@olasagasti.info

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:

  • Release engineering: #Releng issue number

  • 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? 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

Last edited by @amoloney 2024-12-03T18:34:20Z

Last edited by @amoloney 2024-12-03T18:34:20Z

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

I would ask to include the opendmarc-check utility into the base package, hoping it alone does not include all the mentioned 90 packages. For system administration, you will often use it to check your configuration. All the other progs are only needed if you engage in the dmarc reporting system.

2 Likes

Thanks for the feedback @pboy

It’s doable and as opendmarc-check is a C app, so it doesn’t bring the extra dependencies.

I’ll check if I can change the proposal to include your feedback.

1 Like

This change proposal has now been submitted to FESCo with ticket #3300 for voting.

To find out more, please visit our Changes Policy documentation.

I greatly appreciate this.

This change has been accepted by FESCo for Fedora Linux 42. A full list of approved changes to date can be found on the Change Set Page.

To find out more about how our changes policy works, please visit our docs site.