mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-07-31 18:19:40 +00:00
fix(packaging): preserve unregistered legacy state
This commit is contained in:
@@ -150,6 +150,35 @@ legacy_state()
|
||||
echo unregistered
|
||||
}
|
||||
|
||||
has_legacy_provenance()
|
||||
{
|
||||
[ -e "$legacy_init" ] || [ -L "$legacy_init" ] ||
|
||||
[ -f "$managed_marker" ]
|
||||
}
|
||||
|
||||
legacy_transition_state()
|
||||
{
|
||||
transition_state=$(legacy_state)
|
||||
if [ "$transition_state" != unregistered ]; then
|
||||
echo "$transition_state"
|
||||
return
|
||||
fi
|
||||
|
||||
transition_state=$(systemd_state)
|
||||
case "$transition_state" in
|
||||
enabled|masked)
|
||||
echo "$transition_state"
|
||||
;;
|
||||
disabled)
|
||||
if has_legacy_provenance; then
|
||||
echo unregistered
|
||||
else
|
||||
echo disabled
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
systemd_state()
|
||||
{
|
||||
for systemd_mask in \
|
||||
@@ -365,6 +394,9 @@ case "${1:-}" in
|
||||
legacy-state)
|
||||
legacy_state
|
||||
;;
|
||||
legacy-transition-state)
|
||||
legacy_transition_state
|
||||
;;
|
||||
systemd-state)
|
||||
systemd_state
|
||||
;;
|
||||
@@ -398,7 +430,7 @@ case "${1:-}" in
|
||||
remove_managed_legacy_init
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {uses-systemd [--explicit-target]|legacy-state|systemd-state|register-legacy {enabled|disabled}|unregister-legacy|disable-systemd|unregister-all|configure [--replace] [--explicit-target] [--track-managed]|remove|remove-managed}" >&2
|
||||
echo "Usage: $0 {uses-systemd [--explicit-target]|legacy-state|legacy-transition-state|systemd-state|register-legacy {enabled|disabled}|unregister-legacy|disable-systemd|unregister-all|configure [--replace] [--explicit-target] [--track-managed]|remove|remove-managed}" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -552,12 +552,18 @@ if [ "$1" -gt "1" ]; then #only on upgrade...
|
||||
systemctl enable xcatd.service
|
||||
fi
|
||||
else
|
||||
legacy_xcatd_state=$("$xcatd_init_compat" legacy-state)
|
||||
if [ "$legacy_xcatd_state" = unregistered ]; then
|
||||
legacy_xcatd_state=$("$xcatd_init_compat" systemd-state)
|
||||
fi
|
||||
legacy_xcatd_state=$("$xcatd_init_compat" legacy-transition-state)
|
||||
"$xcatd_init_compat" disable-systemd
|
||||
|
||||
# systemctl may delegate to systemd-sysv-install and recreate K links for
|
||||
# a pre-existing SysV script. Restore the captured unregistered or masked
|
||||
# state before materializing the package's replacement script.
|
||||
case "$legacy_xcatd_state" in
|
||||
masked|unregistered)
|
||||
"$xcatd_init_compat" unregister-legacy
|
||||
;;
|
||||
esac
|
||||
|
||||
# This path was previously a regular RPM payload file, so upgrades replaced
|
||||
# it with the current package version rather than retaining an older copy.
|
||||
"$xcatd_init_compat" configure --replace --explicit-target --track-managed || exit 1
|
||||
@@ -566,7 +572,7 @@ if [ "$1" -gt "1" ]; then #only on upgrade...
|
||||
enabled|disabled)
|
||||
"$xcatd_init_compat" register-legacy "$legacy_xcatd_state"
|
||||
;;
|
||||
masked)
|
||||
masked|unregistered)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user