Add support for mirror:// sources in Ports downloads. Resolve mirror
types centrally and try their configured URLs in order.
Add a GNU mirror type using ftpmirror.gnu.org and ftp.gnu.org, migrate
existing GNU ftpmirror sources to use mirror://gnu, and verify pro
downloads against the expected SHA256 so failed responses can fall
back to the next mirror. Switched to dynamic variables like in
\#26427 and replaced readarray with a loop that works on macOS.
Some ports may have more than one `config.sub` that is in use (vendored
dependencies, etc.). Instead of fiddling about with space-delimited
strings, let's just make that setting into an array right away.
All of these patches did the same thing, which is already in upstream
config.sub.
With this change, we need only add `use_fresh_config_sub=true` to
the package.sh file.
Note that this is not done automatically in case the port has a modified
config.sub file.
We may need entries with spaces in makeopts, installopts, and
configopts, and at that point we should also convert depends and
auth_opts to avoid confusion.