@ -488,9 +488,41 @@ main() {
set +x
; ;
dnf)
# DNF 5 has a different argument format; determine which one we have.
DNF_VERSION = "3"
if dnf --version | grep -q '^dnf5 version' ; then
DNF_VERSION = "5"
fi
# The 'config-manager' plugin wasn't implemented when
# DNF5 was released; detect that and use the old
# version if necessary.
if [ " $DNF_VERSION " = "5" ] ; then
set -x
$SUDO dnf install -y 'dnf-command(config-manager)' && DNF_HAVE_CONFIG_MANAGER = 1 || DNF_HAVE_CONFIG_MANAGER = 0
set +x
if [ " $DNF_HAVE_CONFIG_MANAGER " != "1" ] ; then
if type dnf-3 >/dev/null; then
DNF_VERSION = "3"
else
echo "dnf 5 detected, but 'dnf-command(config-manager)' not available and dnf-3 not found"
exit 1
fi
fi
fi
set -x
if [ " $DNF_VERSION " = "3" ] ; then
$SUDO dnf install -y 'dnf-command(config-manager)'
$SUDO dnf config-manager --add-repo " https://pkgs.tailscale.com/ $TRACK / $OS / $VERSION /tailscale.repo "
elif [ " $DNF_VERSION " = "5" ] ; then
# Already installed config-manager, above.
$SUDO dnf config-manager addrepo --from-repofile= " https://pkgs.tailscale.com/ $TRACK / $OS / $VERSION /tailscale.repo "
else
echo " unexpected: unknown dnf version $DNF_VERSION "
exit 1
fi
$SUDO dnf install -y tailscale
$SUDO systemctl enable --now tailscaled
set +x