treewide: fix sourceRoot for fetchgit-based src

According to Nixpkgs manual[1] and NixOS 23.11 Release Note[2], the
`sourceRoot` attribute passed to `stdenv.mkDerivation` should be
specified as `"${src.name}"` or `"${src.name}/subdir"` when `src` is
produced using `fetchgit`-based fetchers.

`sourceRoot = "source"` or `sourceRoot = "source/subdir"` is based on
the assumption that the `name` attribute of these pre-unpacked fetchers
are always `"source"`, which is not the case. Expecting constant `name`
also makes the source FODs prone to irrelevent hashes during version
bumps.

[1]: https://nixos.org/manual/nixpkgs/unstable/#var-stdenv-sourceRoot
[2]: https://nixos.org/manual/nixos/stable/release-notes#sec-release-23.11
This commit is contained in:
Yueh-Shun Li
2024-03-09 07:53:25 +08:00
parent 89d56ddd5b
commit 91b3db1309
44 changed files with 64 additions and 61 deletions
@@ -4,11 +4,11 @@
, flit-core
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "${python.libPrefix}-bootstrap-${flit-core.pname}";
inherit (flit-core) version src patches meta;
sourceRoot = "source/flit_core";
sourceRoot = "${src.name}/flit_core";
buildPhase = ''
runHook preBuild