`curl()` is being used for things like fetching Fedora rawhide's GPG
key, opensuse's `/history/latest` or CentOS' `.composeinfo`. These are
all volatile and thus hard to pre-download/cache. But we've seen several
transient download failures like
> curl: (35) Recv failure: Connection reset by peer
Make these more robust with curl's retry (with exponential back-off)
mechanism.
*(["--remote-name"] if output_dir else []),
"--no-progress-meter",
"--fail",
+ # be resilient against transient network failures
+ "--retry", "5",
+ # include mid-transfer connection reset
+ "--retry-all-errors",
*(["--silent"] if not log else []),
*(["--proxy", config.proxy_url] if config.proxy_url else []),
*(["--noproxy", ",".join(config.proxy_exclude)] if config.proxy_exclude else []),