'dnf install spamassassin' requires a whole build-environment with gcc, *-srpm-macros etc. on run-time, which seems strange: --- 8< --- Package Arch Version Repository Size Installing: spamassassin x86_64 4.0.1-2.fc41 rawhide 4.5 MiB Installing dependencies: add-determinism x86_64 0.2.0-8.fc41 rawhide 2.6 MiB add-determinism-nopython x86_64 0.2.0-8.fc41 rawhide 2.5 MiB annobin-docs noarch 12.54-2.fc41 rawhide 96.2 KiB annobin-plugin-gcc x86_64 12.54-2.fc41 rawhide 974.4 KiB ansible-srpm-macros noarch 1-15.fc41 rawhide 35.7 KiB binutils x86_64 2.42.50-11.fc41 rawhide 27.5 MiB binutils-gold x86_64 2.42.50-11.fc41 rawhide 2.0 MiB build-reproducibility-srpm-macros noarch 0.2.0-8.fc41 rawhide 769.0 B cpp x86_64 14.1.1-1.fc41 rawhide 35.0 MiB dbus x86_64 1:1.14.10-3.fc40 rawhide 0.0 B dbus-broker x86_64 36-2.fc41 rawhide 378.8 KiB dbus-common noarch 1:1.14.10-3.fc40 rawhide 11.2 KiB device-mapper x86_64 1.02.198-2.fc41 rawhide 348.2 KiB device-mapper-libs x86_64 1.02.198-2.fc41 rawhide 410.7 KiB diffutils x86_64 3.10-5.fc40 rawhide 1.6 MiB dwz x86_64 0.15-6.fc40 rawhide 290.9 KiB efi-srpm-macros noarch 5-11.fc40 rawhide 40.1 KiB elfutils-debuginfod-client x86_64 0.191-7.fc41 rawhide 64.9 KiB file x86_64 5.45-5.fc41 rawhide 103.5 KiB fonts-srpm-macros noarch 1:2.0.5-14.fc40 rawhide 55.3 KiB forge-srpm-macros noarch 0.3.1-1.fc41 rawhide 39.0 KiB fpc-srpm-macros noarch 1.3-12.fc40 rawhide 144.0 B gc x86_64 8.2.2-6.fc40 rawhide 258.7 KiB gcc-plugin-annobin x86_64 14.1.1-1.fc41 rawhide 57.1 KiB ghc-srpm-macros noarch 1.9.1-1.fc41 rawhide 747.0 B glibc-devel x86_64 2.39.9000-18.fc41 rawhide 37.7 KiB glibc-gconv-extra x86_64 2.39.9000-18.fc41 rawhide 7.8 MiB glibc-headers-x86 noarch 2.39.9000-18.fc41 rawhide 2.2 MiB gnat-srpm-macros noarch 6-5.fc40 rawhide 1.0 KiB go-srpm-macros noarch 3.6.0-1.fc41 rawhide 60.8 KiB groff-base x86_64 1.23.0-6.fc40 rawhide 3.8 MiB guile30 x86_64 3.0.9-1.fc41 rawhide 52.7 MiB jansson x86_64 2.13.1-9.fc40 rawhide 88.3 KiB kbd x86_64 2.6.4-3.fc40 rawhide 1.5 MiB kbd-legacy noarch 2.6.4-3.fc40 rawhide 567.1 KiB kbd-misc noarch 2.6.4-3.fc40 rawhide 2.5 MiB kernel-headers x86_64 6.9.0-64.fc41 rawhide 6.3 MiB kernel-srpm-macros noarch 1.0-23.fc41 rawhide 1.9 KiB kmod x86_64 31-5.fc40 rawhide 230.9 KiB libcbor x86_64 0.11.0-1.fc40 rawhide 73.9 KiB libdb x86_64 5.3.28-61.fc40 rawhide 1.8 MiB libfdisk x86_64 2.40.1-1.fc41 rawhide 362.9 KiB libmpc x86_64 1.3.1-5.fc40 rawhide 164.7 KiB libpkgconf x86_64 2.1.1-1.fc41 rawhide 74.2 KiB libpq x86_64 16.1-4.fc41 rawhide 943.8 KiB libseccomp x86_64 2.5.3-8.fc40 rawhide 171.2 KiB libxcrypt-devel x86_64 4.4.36-5.fc40 rawhide 30.3 KiB lua-srpm-macros noarch 1-13.fc40 rawhide 1.3 KiB mailcap noarch 2.1.54-5.fc40 rawhide 86.0 KiB make x86_64 1:4.4.1-6.fc40 rawhide 1.8 MiB ncurses x86_64 6.4-12.20240127.fc40 rawhide 621.0 KiB ocaml-srpm-macros noarch 9-3.fc40 rawhide 1.9 KiB openblas-srpm-macros noarch 2-17.fc41 rawhide 112.0 B package-notes-srpm-macros noarch 0.5-11.fc40 rawhide 1.6 KiB perl-Algorithm-Diff noarch 1.2010-11.fc40 rawhide 107.4 KiB perl-Archive-Tar noarch 3.02-6.fc40 rawhide 153.7 KiB perl-AutoLoader noarch 5.74-507.fc41 rawhide 20.5 KiB perl-AutoSplit noarch 5.74-507.fc41 rawhide 23.1 KiB perl-B x86_64 1.88-507.fc41 rawhide 492.4 KiB perl-BSD-Resource x86_64 1.291.100-25.fc40 rawhide 73.6 KiB perl-Benchmark noarch 1.24-507.fc41 rawhide 36.3 KiB perl-CPAN-Meta-Requirements noarch 2.143-6.fc40 rawhide 81.1 KiB perl-CPAN-Meta-YAML noarch 0.018-503.fc40 rawhide 50.2 KiB perl-Carp noarch 1.54-502.fc40 rawhide 46.5 KiB perl-Class-Struct noarch 0.68-507.fc41 rawhide 25.4 KiB perl-Clone x86_64 0.46-6.fc40 rawhide 32.4 KiB perl-Compress-Raw-Bzip2 x86_64 2.212-1.fc41 rawhide 69.5 KiB perl-Compress-Raw-Lzma x86_64 2.212-1.fc41 rawhide 124.9 KiB perl-Compress-Raw-Zlib x86_64 2.212-1.fc41 rawhide 162.4 KiB perl-Crypt-OpenSSL-Bignum x86_64 0.09-26.fc41 rawhide 87.3 KiB perl-Crypt-OpenSSL-RSA x86_64 0.33-5.fc40 rawhide 91.0 KiB perl-Crypt-OpenSSL-Random x86_64 0.16-1.fc41 rawhide 45.1 KiB perl-CryptX x86_64 0.080-3.fc40 rawhide 1.7 MiB perl-DBD-Pg x86_64 3.18.0-3.fc40 rawhide 632.8 KiB perl-DBI x86_64 1.643-22.fc40 rawhide 1.8 MiB perl-DB_File x86_64 1.859-3.fc40 rawhide 192.9 KiB perl-Data-Dump noarch 1.25-10.fc40 rawhide 50.1 KiB perl-Data-Dumper x86_64 2.188-503.fc40 rawhide 111.7 KiB perl-Devel-PPPort x86_64 3.71-503.fc40 rawhide 889.3 KiB perl-Digest noarch 1.20-502.fc40 rawhide 35.2 KiB perl-Digest-HMAC noarch 1.04-10.fc40 rawhide 28.0 KiB perl-Digest-MD5 x86_64 2.59-3.fc40 rawhide 59.7 KiB perl-Digest-SHA x86_64 1:6.04-503.fc40 rawhide 116.5 KiB perl-DynaLoader x86_64 1.54-507.fc41 rawhide 32.1 KiB perl-Encode x86_64 4:3.21-505.fc41 rawhide 4.7 MiB perl-Encode-Detect x86_64 1.01-46.fc40 rawhide 181.1 KiB perl-Encode-Locale noarch 1.05-29.fc40 rawhide 19.0 KiB perl-Errno x86_64 1.37-507.fc41 rawhide 8.4 KiB perl-Error noarch 1:0.17029-15.fc40 rawhide 77.2 KiB perl-Exporter noarch 5.78-3.fc40 rawhide 54.2 KiB perl-ExtUtils-Command noarch 2:7.70-503.fc40 rawhide 9.6 KiB perl-ExtUtils-Constant noarch 0.25-507.fc41 rawhide 85.8 KiB perl-ExtUtils-Install noarch 2.22-502.fc40 rawhide 85.4 KiB perl-ExtUtils-MakeMaker noarch 2:7.70-503.fc40 rawhide 732.9 KiB perl-ExtUtils-Manifest noarch 1:1.75-5.fc40 rawhide 84.8 KiB perl-ExtUtils-ParseXS noarch 1:3.51-503.fc40 rawhide 399.1 KiB perl-Fcntl x86_64 1.15-507.fc41 rawhide 24.6 KiB perl-File-Basename noarch 2.86-507.fc41 rawhide 14.0 KiB perl-File-Compare noarch 1.100.700-507.fc41 rawhide 5.5 KiB perl-File-Copy noarch 2.41-507.fc41 rawhide 19.6 KiB perl-File-Find noarch 1.43-507.fc41 rawhide 41.9 KiB perl-File-Listing noarch 6.16-3.fc40 rawhide 41.1 KiB perl-File-Path noarch 2.18-503.fc40 rawhide 63.5 KiB perl-File-Slurper noarch 0.014-5.fc40 rawhide 28.7 KiB perl-File-Temp noarch 1:0.231.100-503.fc40 rawhide 162.3 KiB perl-File-stat noarch 1.13-507.fc41 rawhide 12.7 KiB perl-FileHandle noarch 2.05-507.fc41 rawhide 9.3 KiB perl-Getopt-Long noarch 1:2.57-4.fc41 rawhide 144.1 KiB perl-Getopt-Std noarch 1.13-507.fc41 rawhide 11.1 KiB perl-HTML-Parser x86_64 3.82-1.fc41 rawhide 280.7 KiB perl-HTML-Tagset noarch 3.24-1.fc41 rawhide 18.6 KiB perl-HTTP-Cookies noarch 6.11-3.fc40 rawhide 73.3 KiB perl-HTTP-Date noarch 6.06-4.fc40 rawhide 41.1 KiB perl-HTTP-Message noarch 6.45-3.fc40 rawhide 214.6 KiB perl-HTTP-Negotiate noarch 6.01-38.fc40 rawhide 27.6 KiB perl-HTTP-Tiny noarch 0.088-5.fc40 rawhide 152.1 KiB perl-I18N-Langinfo x86_64 0.22-507.fc41 rawhide 25.6 KiB perl-IO x86_64 1.52-507.fc41 rawhide 151.0 KiB perl-IO-Compress noarch 2.212-1.fc41 rawhide 1.0 MiB perl-IO-Compress-Lzma noarch 2.212-1.fc41 rawhide 214.9 KiB perl-IO-HTML noarch 1.004-12.fc40 rawhide 45.1 KiB perl-IO-Socket-IP noarch 0.42-2.fc40 rawhide 98.6 KiB perl-IO-Socket-SSL noarch 2.085-1.fc40 rawhide 685.0 KiB perl-IO-Zlib noarch 1:1.15-1.fc41 rawhide 25.7 KiB perl-IPC-Open3 noarch 1.22-507.fc41 rawhide 22.5 KiB perl-JSON noarch 4.10-5.fc40 rawhide 270.3 KiB perl-JSON-PP noarch 1:4.16-503.fc40 rawhide 141.7 KiB perl-LWP-MediaTypes noarch 6.04-18.fc41 rawhide 78.9 KiB perl-MIME-Base64 x86_64 3.16-503.fc40 rawhide 46.1 KiB perl-Mail-AuthenticationResults noarch 2.20231031-3.fc40 rawhide 114.8 KiB perl-Mail-DKIM noarch 1.20240124-1.fc40 rawhide 485.3 KiB perl-Mail-SPF noarch 3.20240206-1.fc40 rawhide 343.4 KiB perl-MailTools noarch 2.21-16.fc40 rawhide 203.1 KiB perl-Math-BigInt noarch 1:2.0030.02-3.fc40 rawhide 957.5 KiB perl-Math-Complex noarch 1.62-507.fc41 rawhide 85.0 KiB perl-Module-Load noarch 1:0.36-503.fc40 rawhide 14.8 KiB perl-Mozilla-CA noarch 20240313-1.fc41 rawhide 9.5 KiB perl-NTLM noarch 1.09-38.fc40 rawhide 31.2 KiB perl-Net-CIDR-Lite noarch 0.22-10.fc40 rawhide 26.6 KiB perl-Net-DNS noarch 1.43-1.fc40 rawhide 864.2 KiB perl-Net-HTTP noarch 6.23-4.fc40 rawhide 74.5 KiB perl-Net-Patricia x86_64 1.22-38.fc40 rawhide 85.9 KiB perl-Net-SMTP-SSL noarch 1.04-24.fc40 rawhide 4.1 KiB perl-Net-SSLeay x86_64 1.94-3.fc40 rawhide 1.3 MiB perl-NetAddr-IP x86_64 4.079-28.fc40 rawhide 323.9 KiB perl-POSIX x86_64 2.13-507.fc41 rawhide 229.0 KiB perl-PathTools x86_64 3.89-502.fc40 rawhide 179.6 KiB perl-Pod-Escapes noarch 1:1.07-503.fc40 rawhide 24.9 KiB perl-Pod-Perldoc noarch 3.28.01-503.fc40 rawhide 163.1 KiB perl-Pod-Simple noarch 1:3.45-6.fc40 rawhide 559.8 KiB perl-Pod-Usage noarch 4:2.03-504.fc41 rawhide 84.7 KiB perl-Razor-Agent x86_64 2.86-9.fc40 rawhide 277.4 KiB perl-Scalar-List-Utils x86_64 5:1.63-503.fc40 rawhide 145.5 KiB perl-SelectSaver noarch 1.02-507.fc41 rawhide 2.2 KiB perl-Socket x86_64 4:2.038-1.fc41 rawhide 124.0 KiB perl-Socket6 x86_64 0.29-21.fc40 rawhide 54.6 KiB perl-Storable x86_64 1:3.32-502.fc40 rawhide 232.3 KiB perl-Symbol noarch 1.09-507.fc41 rawhide 6.8 KiB perl-Sys-Hostname x86_64 1.25-507.fc41 rawhide 19.9 KiB perl-Sys-Syslog x86_64 0.36-504.fc40 rawhide 94.7 KiB perl-Term-ANSIColor noarch 5.01-504.fc40 rawhide 97.5 KiB perl-Term-Cap noarch 1.18-503.fc40 rawhide 29.3 KiB perl-Test-Harness noarch 1:3.48-3.fc40 rawhide 556.9 KiB perl-Text-Diff noarch 1.45-21.fc40 rawhide 82.9 KiB perl-Text-ParseWords noarch 3.31-502.fc40 rawhide 13.5 KiB perl-Text-Tabs+Wrap noarch 2024.001-1.fc41 rawhide 22.5 KiB perl-Tie noarch 4.6-507.fc41 rawhide 32.0 KiB perl-Time-HiRes x86_64 4:1.9775-502.fc40 rawhide 119.7 KiB perl-Time-Local noarch 2:1.350-5.fc40 rawhide 68.9 KiB perl-TimeDate noarch 1:2.33-14.fc40 rawhide 95.0 KiB perl-Try-Tiny noarch 0.31-9.fc40 rawhide 66.8 KiB perl-URI noarch 5.28-1.fc41 rawhide 240.2 KiB perl-WWW-RobotRules noarch 6.02-39.fc40 rawhide 24.3 KiB perl-base noarch 2.27-507.fc41 rawhide 12.5 KiB perl-constant noarch 1.33-503.fc40 rawhide 26.2 KiB perl-if noarch 0.61.000-507.fc41 rawhide 5.8 KiB perl-interpreter x86_64 4:5.38.2-507.fc41 rawhide 119.8 KiB perl-lib x86_64 0.65-507.fc41 rawhide 8.5 KiB perl-libnet noarch 3.15-503.fc40 rawhide 289.0 KiB perl-libs x86_64 4:5.38.2-507.fc41 rawhide 9.8 MiB perl-libwww-perl noarch 6.77-1.fc41 rawhide 520.4 KiB perl-locale noarch 1.10-507.fc41 rawhide 6.2 KiB perl-mro x86_64 1.28-507.fc41 rawhide 41.6 KiB perl-overload noarch 1.37-507.fc41 rawhide 71.5 KiB perl-overloading noarch 0.02-507.fc41 rawhide 4.8 KiB perl-parent noarch 1:0.241-502.fc40 rawhide 9.7 KiB perl-podlators noarch 1:5.01-502.fc40 rawhide 308.1 KiB perl-srpm-macros noarch 1-53.fc40 rawhide 861.0 B perl-subs noarch 1.04-507.fc41 rawhide 2.1 KiB perl-vars noarch 1.05-507.fc41 rawhide 3.9 KiB perl-version x86_64 8:0.99.32-1.fc41 rawhide 132.7 KiB pkgconf x86_64 2.1.1-1.fc41 rawhide 82.9 KiB pkgconf-m4 noarch 2.1.1-1.fc41 rawhide 13.9 KiB pkgconf-pkg-config x86_64 2.1.1-1.fc41 rawhide 989.0 B procmail x86_64 3.24-6.fc40 rawhide 365.6 KiB pyproject-srpm-macros noarch 1.12.0-1.fc40 rawhide 1.5 KiB python-srpm-macros noarch 3.12-9.fc41 rawhide 50.5 KiB python3-pyparsing noarch 3.1.2-2.fc41 rawhide 1.0 MiB qt5-srpm-macros noarch 5.15.13-1.fc41 rawhide 492.0 B qt6-srpm-macros noarch 6.7.0-1.fc41 rawhide 456.0 B redhat-rpm-config noarch 290-1.fc41 rawhide 183.6 KiB rust-srpm-macros noarch 26.3-1.fc41 rawhide 4.8 KiB systemd x86_64 256~rc2-1.fc41 rawhide 15.7 MiB systemd-pam x86_64 256~rc2-1.fc41 rawhide 1.1 MiB systemtap-sdt-devel x86_64 5.1-1.fc41 rawhide 200.8 KiB unzip x86_64 6.0-63.fc40 rawhide 382.8 KiB util-linux-core x86_64 2.40.1-1.fc41 rawhide 1.5 MiB xkeyboard-config noarch 2.41-1.fc40 rawhide 6.6 MiB zig-srpm-macros noarch 1-2.fc40 rawhide 1.1 KiB zip x86_64 3.0-40.fc40 rawhide 703.2 KiB Installing weak dependencies: cryptsetup-libs x86_64 2.7.2-1.fc41 rawhide 2.2 MiB gcc x86_64 14.1.1-1.fc41 rawhide 104.0 MiB kmod-libs x86_64 31-5.fc40 rawhide 143.2 KiB libbpf x86_64 2:1.4.1-1.fc41 rawhide 398.6 KiB libfido2 x86_64 1.14.0-4.fc40 rawhide 237.8 KiB libxkbcommon x86_64 1.7.0-1.fc41 rawhide 332.4 KiB marshalparser noarch 0.3.4-8.fc40 rawhide 62.4 KiB perl-CPAN-Meta noarch 2.150010-502.fc40 rawhide 591.6 KiB perl-IO-Compress-Brotli x86_64 0.004001-12.fc40 rawhide 36.0 KiB perl-NDBM_File x86_64 1.16-507.fc41 rawhide 28.5 KiB perl-PerlIO-utf8_strict x86_64 0.010-6.fc40 rawhide 41.9 KiB perl-devel x86_64 4:5.38.2-507.fc41 rawhide 8.1 MiB perl-doc noarch 5.38.2-507.fc41 rawhide 10.7 MiB qrencode-libs x86_64 4.1.1-7.fc40 rawhide 160.9 KiB systemd-networkd x86_64 256~rc2-1.fc41 rawhide 2.1 MiB systemd-resolved x86_64 256~rc2-1.fc41 rawhide 667.1 KiB systemd-udev x86_64 256~rc2-1.fc41 rawhide 11.7 MiB --- 8< -- Reproducible: Always Steps to Reproduce: 1. dnf install spamassassin Actual Results: SpamAssassin requires a whole build-environment with gcc, *-srpm-macros etc. on run-time Expected Results: SpamAssassin does not require a whole build-environment with gcc, *-srpm-macros etc. on run-time
In bug #2283020 comment #2, I already figured out that this is caused by 'perl(ExtUtils::MakeMaker)'. And Kevin let me know on the IRC that this is (somehow on purpose) due to sa-compile(1).
It can be fixed trivially by splitting sa-compile off (it's not its only problem — the dependency on re2c is commented out since 2018 citing some package troubles which I doubt exist today; you have to install re2c yourself to make it functional), but it can make life complicated for those who actually use sa-compile and rely on it by installing just the spamassassin package. Imagine performing an innocent update, and now you are missing tools that have always been there. I believe Fedora has a protocol to follow in this case, I'm only fuzzy on the exact details. The gist is that the "spamassassin" package continues to provide the whole kitchen sink, and you can have something like spamassassin-core and spamassassin-sa-compile. Something similar was done to perl back in the day, the "perl" vs "perl-interpreter" packages, where one is barebone, and the other installs what you usually expect when doing a source install. (I don't remember which is which). I have a private fork where I don't do this package renaming dance, and can confirm that just splitting sa-compile off makes dependencies much, much saner.
I don't have much of a sense of how many people use sa-compile these days. Upstream actually talked about just removing it in 4.0, but decided it was working enough they could just keep it for now. It is however fragile and subject to breakage. I don't think we want to do a complex dance here. I think just moving it in rawhide and adding a f41 release note that it's moved would be sufficient. Especially given that it hasn't worked 'out of the box' since 2018. Filed https://src.fedoraproject.org/rpms/spamassassin/pull-request/17 to get feedback.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 42 development cycle. Changing version to 42.