Im thinking of all the bazel build rules that are about to break from my last company. Someone will have a fun day updating hundreds of hashes.
Do they let Github generate the archives as one of the build rules instead of performing the archival and compression locally and uploading the result?
Git archive checksums may change
31–40 of 255 posts
Re: Git archive checksums may change
#32Hey folks. I'm the product manager for Git at GitHub. We're sorry for the breakage, we're reverting the change, and we'll communicate better about such changes in the future (including timelines). Also posted here: https://github.com/bazel-contrib/SIG-rules-authors/issues/11...
We updated our Git version which made this change for the reasons explained. At the time we didn't foresee the impact. We're quickly rolling back the change now, as it's clear we need to look at this more closely to see if we can make the changes in a less disruptive way. Thanks for letting us know.
Re: Git archive checksums may change
#33Earlier quoted context omitted.
If they're using multiple URLs like a good Bazel user then they shouldn't be impacted.
They did where applicable but i know that not all of them had multiple
Re: Git archive checksums may change
#34Earlier quoted context omitted.
I prefer that tool be adapted to be more resilient and not depend on github particular implementation.
Using SHA hashes when building guarantees that the code that you are building is what you think it is. How else would you verify dependencies like this, GPG signatures would have the same issue if you change the underlying bits.
Firstly SHA is not a secure hash.
Secondly if your build step involves uploading data to a third party then allowing them to transform it as they see fit and then checksumming the result then it's not really a reproducible build. For all you know, Github inserts a virus during the compression of the archive.
What am I missing?
Re: Git archive checksums may change
#35Ah, this will presumably break some Arch Linux AUR packages. Preparing for bug reports.
[1] https://github.com/elesiuta/picosnitch/blob/master/.github/w...
Re: Git archive checksums may change
#36Re: Git archive checksums may change
#37Earlier quoted context omitted.
a git checkout of the code at that particular tag hasn't changed. Just the tarball that git archive generates has.
The two main problems are: A) How do you catch tarballs that have extra files injected that aren't part of your manifest B) What does the performance of this look like? Certainly for traditional HDDs this is going to kill performance, but even for SSDs I think verifying a bunch of small files is going to be less efficient than verifying the tarball.
B would just be a normal git checkout, which already validates that all the objects are reachable and git tags (and commits for that matter) can be signed, and since the sha1 hash is signed as well it validates that the entire tree of commits has not been tampered with. So as long you trust git to not lie about what it is writing to disk, you have a valid checkout of that tag.
And if you do expect it to lie, why do you expect tar to not lie about what it is unpacking?
Re: Git archive checksums may change
#38Earlier quoted context omitted.
We updated our Git version which made this change for the reasons explained. At the time we didn't foresee the impact. We're quickly rolling back the change now, as it's clear we need to look at this more closely to see if we can make the changes in a less disruptive way. Thanks for letting us know.
Consumers often mistake hasn’t changed for a commitment to never change: any sufficiently large product will be littered with these kind of implicit commitments made by the product to consumers that nobody has visibility into. You’re unfortunate that we were all relying on this commitment you’ve never made, but the quick reversion is the best we can hope for. People will theorise how this could have been avoided but…
Re: Git archive checksums may change
#39Re: Git archive checksums may change
#40Hey folks. I'm the product manager for Git at GitHub. We're sorry for the breakage, we're reverting the change, and we'll communicate better about such changes in the future (including timelines). Also posted here: https://github.com/bazel-contrib/SIG-rules-authors/issues/11...
The build looks up the github tar.gz release for each tag and commits the sha256sum of that file to the formula
What's odd is that all the _historical_ tags have broken release shasums. Does this mean the entire set of zip/tar.gz archives has been rebuilt? That could be a problem, as perhaps you cannot easily back out of this change...