rpm: restart services in %posttrans
This fixes a long-standing issue in packaging scriptlets: daemon-reload was moved to the end of the transaction, but restarting services was still straightaway after package installation. https://bugzilla.redhat.com/show_bug.cgi?id=1614751 Note that daemon-reload is called twice. This wouldn't be hardly noticable, except that now a bunch of units (at least in Fedora) generate very verbose warnings about deprecated features. So we get those warnings twice… reload-or-restart --needing-restart is also called twice, but the second call is usually a noop, because the first clears the flag for restarted units. The second call is necessary for the case where we only uninstall packages, and the %transfiletriggerpostun trigger fires, but not the %transfiletriggerin scriptlet. Also note that this assumes that units are marked only for restart if paths under @systemunitdir@ or /etc/systemd/system have been touched. I would prefer make the trigger that does 'restart --needing-restart' fire always, but it seems rpm doesn't have such functionality. (Except as a %transfiletrigger that would trigger on "/*" to catch all transactions, but that seems ineffiecient and ugly.)
Loading
Please register or sign in to comment