File macros.display-manager of Package display-manager-macros
# See https://en.opensuse.org/openSUSE:DisplayManagerRework:Packaging
%display_manager_preset_provides(p:) \
Provides: systemd-presets-desktop = %{version} \
Conflicts: systemd-presets-desktop \
Supplements: (%{1} unless display-manager-legacy) \
%{-p:Provides: systemd-presets-desktop-%{-p*} = %{version}} \
%{nil}
%display_manager_branding_requires() \
Requires: (systemd-presets-desktop or display-manager-legacy) \
Suggests: systemd-presets-desktop-%{1} \
%{nil}
%display_manager_package_requires(p) \
Requires: (systemd-presets-desktop or display-manager-legacy) \
Suggests: display-manager-legacy \
Requires: display-manager-setup \
Requires(pre): display-manager-setup \
%{!-p:Requires: (%{name}-xdm-integration if display-manager-legacy)} \
%{nil}
%display_manager_legacy_package_requires \
Requires: /usr/bin/awk \
Requires: display-manager-legacy \
Requires(pre): display-manager-legacy \
Requires(post): update-alternatives \
Requires(postun): update-alternatives \
%{nil}
%display_manager_migration_posttrans() \
if [ "$(systemctl is-enabled display-manager-legacy)" = "enabled" ]; then \
# display-manager is currently 'legacy mode' - if migration has already occured \
# the above command would return 'disabled' \
if [ -x /usr/sbin/update-alternatives ]; then \
if [ "$(update-alternatives --query default-displaymanager | awk '/Value:/ {print $2}')" = "/usr/lib/X11/displaymanagers/%{1}" ]; then \
systemctl enable --force %{1}.service \
fi \
fi \
fi \
%{nil}
%display_manager_legacy_post() \
%{_sbindir}/update-alternatives --install %{_prefix}/lib/X11/displaymanagers/default-displaymanager default-displaymanager %{_prefix}/lib/X11/displaymanagers/%{1} %{2} \
%{nil}
%display_manager_legacy_postun() \
[ -f %{_prefix}/lib/X11/displaymanagers/%{1} ] || %{_sbindir}/update-alternatives --remove default-displaymanager %{_prefix}/lib/X11/displaymanagers/%{1} \
%{nil}
#### Used by display-manager-setup ####
%display_manager_check_postun \
# postuntrans not yet supported for upgrade \
if [ "$(systemctl is-enabled display-manager 2>&1 | grep -E 'not-found|severed')" ]; then \
%{systemd_preset_force_post -e gdm} \
%{systemd_preset_force_post -e lightdm} \
%{systemd_preset_force_post -e sddm} \
%{systemd_preset_force_post -e xdm} \
%{systemd_preset_force_post -e display-manager-legacy} \
fi \
%{nil}
%display_manager_check_triggers \
grep -E 'gdm|sddm|lightdm|xdm|display-manager-legacy' && dm_changed=1 || dm_changed=0 \
if [ "$dm_changed" = "1" ]; then \
%{display_manager_check_postun} \
fi \
%{nil}
#### Used by display-manager-setup ####