Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fastly: implement "Lockable HTTP Tarball Protocol" (Flakes) for chann…
…els.nixos.org This is part of another PR over in NixOS/nixos-channel-scripts that implements the precomputed x-amz-meta-link header. For the motivation behind this change look there. Hydra executes mirror-nixos-branch.pl when a given channel advances. Thus, we need some sort of fallback to handle channels which have long been EOL. A fallback also allows this change to be deployed in any order and over the span of multiple days. Our default mode of operation is simply renaming the precomputed "x-amz-meta-link" header created by the script to "link", if it exists. Note that we cannot use "link" directly because AWS S3 does not allow it. As a fallback we take the "location" header (which always exists) and template it into "link". This lacks additional flake attributes like "rev" or whatever additional metadata the script may precompute, but is perfectly compliant with the "Lockable HTTP Tarball Protocol". When running into the fallback, the string returned by nixpkgs' lib.trivial.versionSuffix will contain "dirty" instead of "pre-git" or the proper 7-char substring of the rev. While we could have Fastly do a sub-request to fetch the git-revision txt right next to the tarball, I don't think it's worth the effort and complexity. Tested using <https://fiddle.fastly.dev/>. Ref: https://github.com/NixOS/nix/blob/61f49de7ae0b3899abdcc102832523153dd40d35/doc/manual/source/protocols/tarball-fetcher.md
- Loading branch information