Description of problem: Upgrading from exim-4.98 to exim-4.98.1 caused exim.service to revert to disabled and exim did not then start after a reboot. I did not see any indication of this in the console output when the dnf upgrade was run. Version-Release number of selected component (if applicable): exim-4.98.1 How reproducible: Happened once, which was enough. Did not attempt to reproduce. Actual results: exim daemon not running after upgrade and reboot Expected results: exim running normally with exim.service enabled as it was previously Additional info: Needed to run 'sudo systemctl enable exim' and 'sudo systemctl start exim' to return things to normal.
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