Bug 2355049
| Summary: | Upgrading to exim-4.98.1 caused exim.service to revert to disabled and exim did not then start after a reboot | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Brian Morrison <bdm> |
| Component: | exim | Assignee: | David Woodhouse <dwmw2> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 42 | CC: | bennie.joubert, dwmw2, jskarvad, martin.fraenzl, zbyszek |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | --- | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2025-11-04 18:36:10 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Brian Morrison
2025-03-26 13:06:29 UTC
I have just built exim-4.98.2 rpms locally (new exim CVE fix) and exactly the same change occurs where the exim.service is reset to disabled after the rpms are upgraded. And, as expected, the same with the official Fedora rpms. This is what the package scripts are for this version, it seems all of the sections have || : after the exim.service lines.
Is that right?
$ rpm -q --scripts exim
preinstall scriptlet (using /bin/sh):
# Copy TLS certs from old location to new -- don't move them, because the
# config file may be modified and may be pointing to the old location.
if [ ! -f /etc/pki/tls/certs/exim.pem -a -f /usr/share/ssl/certs/exim.pem ] ; then
cp /usr/share/ssl/certs/exim.pem /etc/pki/tls/certs/exim.pem
cp /usr/share/ssl/private/exim.pem /etc/pki/tls/private/exim.pem
fi
exit 0
postinstall scriptlet (using /bin/sh):
if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
# Initial installation
/usr/lib/systemd/systemd-update-helper install-system-units exim.service || :
fi
alternatives --install /usr/bin/sendmail mta /usr/bin/sendmail.exim 10 \
--slave /usr/bin/mailq mta-mailq /usr/bin/mailq.exim \
--slave /usr/bin/runq mta-runq /usr/bin/runq.exim \
--slave /usr/bin/rsmtp mta-rsmtp /usr/bin/rsmtp.exim \
--slave /usr/bin/rmail mta-rmail /usr/bin/rmail.exim \
--slave /etc/pam.d/smtp mta-pam /etc/pam.d/exim \
--slave /usr/bin/newaliases mta-newaliases /usr/bin/newaliases.exim \
--slave /usr/lib/sendmail mta-sendmail /usr/lib/sendmail.exim \
--slave /usr/share/man/man1/mailq.1.gz mta-mailqman /usr/share/man/man8/exim.8.gz \
--initscript exim
preuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
# Package removal, not upgrade
/usr/lib/systemd/systemd-update-helper remove-system-units exim.service || :
fi
if [ $1 = 0 ]; then
alternatives --remove mta /usr/bin/sendmail.exim
fi
postuninstall scriptlet (using /bin/sh):
if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
# Package upgrade, not uninstall
/usr/lib/systemd/systemd-update-helper mark-restart-system-units exim.service || :
fi
if [ $1 -ge 1 ]; then
mta=`readlink /etc/alternatives/mta`
if [ "$mta" == "/usr/bin/sendmail.exim" ]; then
alternatives --set mta /usr/bin/sendmail.exim
fi
fi
> Upgrading from exim-4.98 to exim-4.98.1
PLEASE, always include the exact version. exim-4.98-1.fc40 is not the same as exim-4.98-4.fc42.
This is particularly relevant for enablement issues, since that is handled by package
scriptlets, so the release-dist part can be more important than the upstream version number.
Anyway, I don't see anything in the scriptlets which could cause the enablemement
state to be reset. As a test, I installed f40 in a chroot, ran systemctl enable exim,
and then upgraded (exim-4.97.1-5.fc40.x86_64 to exim-4.98.2-1.fc42.x86_64).
The service remains enabled…
Thanks for looking at this, and apologies for not providing all the package version information. FTAOD this has only happened since I upgraded to the F42 beta and then the release. As you say, the scriptlets don't seem to show any reason why this shouldn't work. I also found out what the || : means so it's not that. I'm now wondering if this might be related to the sbin->bin changes in some way, I also have another strange problem with clamav-freshclam where nothing is being written to a log file that has been just fine for every Fedora release until the F42 upgrade. I note that something similar is being reported for postfix updates here: https://bugzilla.redhat.com/show_bug.cgi?id=2363937 Could this be something similar to what I am seeing here? It is still happening, I had to reenable exim when I upgraded from F42 to F43 beta. This problem has now been resolved due to updates to chkconfig that can be linked from the bug shown in https://bugzilla.redhat.com/show_bug.cgi?id=2355049#c6 |