Implement DNS-based mirror bootstrap protocol
commitae24c5c6e68e4cbb4d0b49b546eac88a64a0517f
authorHerbert Valerio Riedel <hvr@gnu.org>
Fri, 7 Oct 2016 20:53:39 +0000 (7 22:53 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sun, 9 Oct 2016 21:04:28 +0000 (9 23:04 +0200)
tree45f4daa5e04252d342f055af9bfa8a5959e7d2e2
parent3fb519a0926479d7e30b64bdbbb9ee23d8cac5ad
Implement DNS-based mirror bootstrap protocol

This way `cabal` can bootstrap secure repos even if the primary Hackage
instance is currently unreachable, as long as there's at least one
reachable and working secure mirror available.

NB: This new code-path is only used for the initial bootstrap. Once the
repository cache has been bootstrapped, its `mirrors.json` meta-data is
used instead.

See also https://github.com/well-typed/hackage-security/issues/171
cabal-install/Distribution/Client/GlobalFlags.hs
cabal-install/Distribution/Client/Security/DNS.hs [new file with mode: 0644]
cabal-install/cabal-install.cabal