%prepare_alternative(t:) \
%define alternative_target %{-t:%{-t*}}%{!-t:%{_bindir}/%1} \
rm -f %{buildroot}%{alternative_target} \
alternative_target="%{alternative_target}" \
if [[ "$alternative_target" == %{_mandir}* ]]; then \
    rm -f %{buildroot}${alternative_target%%%%%{ext_man}} \
    rm -f %{buildroot}%{alternative_target}%{ext_man} \
fi \
mkdir -p %{buildroot}%{_sysconfdir}/alternatives \
touch %{buildroot}%{_sysconfdir}/alternatives/%1 \
ln -sf %{_sysconfdir}/alternatives/%1 %{buildroot}%{alternative_target} \
%{nil}

%install_alternative(s:t:p:n:) \
%define alternative_name %{-n:%{-n*}}%{!-n:%1} \
%define alternative_source %{-s:%{-s*}}%{!-s:%{_bindir}/%{alternative_name}} \
%define alternative_target %{-t:%{-t*}}%{!-t:%2} \
%define alternative_priority %{-p:%{-p*}}%{!-p:%3} \
update-alternatives --install \\\
    %{alternative_source} \\\
    %{alternative_name} \\\
    %{alternative_target} \\\
    %{alternative_priority}

%uninstall_alternative(n:t:) \
%define alternative_name %{-n:%{-n*}}%{!-n:%1} \
%define alternative_target %{-t:%{-t*}}%{!-t:%2} \
if [ ! -e "%{alternative_target}" ]; then \
    update-alternatives --quiet --remove "%{alternative_name}" "%{alternative_target}" \
fi \
%{nil}

%alternative_for() \
%1 \
%ghost %{_sysconfdir}/alternatives/%{basename:%1}
