From 24d4c5322f11d3efde15d873b14cf920b83126a6 Mon Sep 17 00:00:00 2001 From: Jeremy Fleischman Date: Sun, 6 Apr 2025 10:59:33 -0700 Subject: [PATCH] kikit: implement a workaround for non-deterministic `fetchFromGitHub` See https://github.com/NixOS/nixpkgs/issues/84312 for details. --- pkgs/by-name/ki/kikit/default.nix | 13 ++++++++++++- pkgs/by-name/ki/kikit/drop-versioneer.patch | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/ki/kikit/drop-versioneer.patch diff --git a/pkgs/by-name/ki/kikit/default.nix b/pkgs/by-name/ki/kikit/default.nix index 66b2b4d13675..8f24acfff73e 100644 --- a/pkgs/by-name/ki/kikit/default.nix +++ b/pkgs/by-name/ki/kikit/default.nix @@ -35,7 +35,13 @@ buildPythonApplication rec { owner = "yaqwsx"; repo = "KiKit"; tag = "v${version}"; - hash = "sha256-mwe/CajmQD5nDNYtQXRQm4vIJJiY7P5uFrvn8Ngjqc4="; + hash = "sha256-HSAQJJqJMVh44wgOQm+0gteShLogklBFuIzWtoVTf9I="; + # Upstream uses versioneer, which relies on gitattributes substitution. + # This leads to non-reproducible archives on GitHub. + # See https://github.com/NixOS/nixpkgs/issues/84312 + postFetch = '' + rm "$out/kikit/_version.py" + ''; }; build-system = [ @@ -75,6 +81,11 @@ buildPythonApplication rec { "kikit" ]; + postPatch = '' + # Recreate _version.py, deleted at fetch time due to non-reproducibility. + echo 'def get_versions(): return {"version": "${version}"}' > kikit/_version.py + ''; + preCheck = '' export PATH=$PATH:$out/bin diff --git a/pkgs/by-name/ki/kikit/drop-versioneer.patch b/pkgs/by-name/ki/kikit/drop-versioneer.patch new file mode 100644 index 000000000000..efddd64c7f23 --- /dev/null +++ b/pkgs/by-name/ki/kikit/drop-versioneer.patch @@ -0,0 +1,14 @@ +diff --git a/setup.py b/setup.py +index 9351fc9..75dfb2c 100644 +--- a/setup.py ++++ b/setup.py +@@ -66,9 +66,6 @@ + "solidpython>=1.1.2", + "commentjson>=0.9" + ], +- setup_requires=[ +- "versioneer" +- ], + extras_require={ + "dev": ["pytest"], + },