gn fetch: premirror compatibility
Created by: camaronut
Hi meta-flutter folks,
This PR reflects what we did to accomplish pre-mirroring a download of flutter-engine.
It's sort of a mixed bag. As we can't make the tar file reproducible without breaking the build, we are stuck with updating our mirror with a new tar file every time we make a release. I left in some of the not-so-impacting reproducibility functionality, but removed some of the more drastic items (the .cipd/tagcache and PNG file removals are two examples).
What follows below is the commit message.
An attempt was successfully made at creating a fully reproducible tar file for creating a premirror. Unfortunately, testing showed that the build eventually called git rev-parse, which then failed due to stripping the .git directories out of the tar file.
So a different tack was taken: to accept that similar to git mirrors, gn mirrors will always change and not be reproducible. Code was primarily borrowed from the git fetcher, but also the repo fetcher as it has some similar characteristics. The supports_checksum() function was added and returns False now.