-
-
Notifications
You must be signed in to change notification settings - Fork 18.6k
fetchFromGitHub is not reproducible when export-subst is used #84312
Copy link
Copy link
Open
Labels
0.kind: bugSomething is brokenSomething is broken2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: fetchFetchers (e.g. fetchgit, fetchsvn, ...)Fetchers (e.g. fetchgit, fetchsvn, ...)6.topic: reproducible buildsRun nix-build twice and get the same result.Run nix-build twice and get the same result.
Metadata
Metadata
Assignees
Labels
0.kind: bugSomething is brokenSomething is broken2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: fetchFetchers (e.g. fetchgit, fetchsvn, ...)Fetchers (e.g. fetchgit, fetchsvn, ...)6.topic: reproducible buildsRun nix-build twice and get the same result.Run nix-build twice and get the same result.
Fields
Give feedbackNo fields configured for issues without a type.
To investigate #71948 I made a following setup to try to catch the hash changes: A following script:
Was run daily using cron, the
"$BASEDIR"/nixpkgswas an immutable nixpkgs checkout. There were two observed changes:The first one looks like a version bump, but the second one looks more interesting:
This lead me to an upstream commit immerrr/lua-mode@b124dd0 which uses the "export-subst" feature of git https://git-scm.com/docs/gitattributes#_creating_an_archive
I guess, the value of "%d" depends on what branches are pointing to a certain commit, so the contents of such a tarball would not be uniquely determined by the revision alone. To make things more interesting, upstream forbids export of .gitignore, so we can't even reliably detect the use of "export-subst".