SPEC: run the %preun commands in worker package only on removal

PR#553 [1] introduced a change to the worker subpackage and replaced
the systemd %preun RPM macro with a literal calls to `systemctl` due
to missing functionality in systemd. However, the change omitted the
fact, that the RPM macro executes commands only on package removal,
not upgrade.

As a result a local or remote worker which is running on the system
while the osbuild-composer-worker package is updated, gets stopped.

Fix the scriptlet and run the commands only on package removal.

[1] https://github.com/osbuild/osbuild-composer/pull/553

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This commit is contained in:
Tomáš Hozza 2022-11-16 17:34:51 +01:00 committed by Tomáš Hozza
parent dc3c0d9725
commit f24c6ad952

View file

@ -326,8 +326,9 @@ The worker for osbuild-composer
%preun worker
# systemd_preun uses systemctl disable --now which doesn't work well with template services.
# See https://github.com/systemd/systemd/issues/15620
# The following lines mimicks its behaviour by running two commands:
if [ -d /run/systemd/system ]; then
# The following lines mimicks its behaviour by running two commands.
# The scriptlet is supposed to run only when the package is being removed.
if [ $1 -eq 0 ] && [ -d /run/systemd/system ]; then
# disable and stop all the worker services
systemctl --no-reload disable osbuild-worker@.service osbuild-remote-worker@.service
systemctl stop "osbuild-worker@*.service" "osbuild-remote-worker@*.service"