diff options
| author | Mikael Voss <mvs@nyantec.com> | 2025-03-03 17:19:00 +0100 |
|---|---|---|
| committer | Mikael Voss <mvs@nyantec.com> | 2025-03-05 10:30:08 +0100 |
| commit | 6e2e984af0a2f3197ff9ca6897a11fabdeb67ea7 (patch) | |
| tree | 18702656ca52b2e0c80050f22b40b444a814f758 /lib/path | |
| parent | trojan-go: init at 0.10.6 (#373125) (diff) | |
| download | nixpkgs-6e2e984af0a2f3197ff9ca6897a11fabdeb67ea7.tar.gz | |
lib/path: allow CA paths in hasStorePathPrefix
Diffstat (limited to 'lib/path')
| -rw-r--r-- | lib/path/default.nix | 8 | ||||
| -rw-r--r-- | lib/path/tests/unit.nix | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/path/default.nix b/lib/path/default.nix index 4ffee65e1cf5..be559eadf182 100644 --- a/lib/path/default.nix +++ b/lib/path/default.nix @@ -159,7 +159,13 @@ let # but this is not fully specified, so let's tie this too much to the currently implemented concept of store paths. # Similar reasoning applies to the validity of the name part. # We care more about discerning store path-ness on realistic values. Making it airtight would be fragile and slow. - && match ".{32}-.+" (elemAt components storeDirLength) != null; + && match ".{32}-.+" (elemAt components storeDirLength) != null + # alternatively match contentâaddressed derivations, which _currently_ do + # not have a store directory prefix. + # This is a workaround for https://github.com/NixOS/nix/issues/12361 which + # was needed during the experimental phase of ca-derivations and should be + # removed once the issue has been resolved. + || match "[0-9a-z]{52}" (head components) != null; in # No rec! Add dependencies on this file at the top. diff --git a/lib/path/tests/unit.nix b/lib/path/tests/unit.nix index 903e8ff0acff..a52b4f44e51d 100644 --- a/lib/path/tests/unit.nix +++ b/lib/path/tests/unit.nix @@ -137,6 +137,16 @@ let expected = true; }; + # Test paths for contentâaddressed derivations + testHasStorePathPrefixExample7 = { + expr = hasStorePathPrefix (/. + "/1121rp0gvr1qya7hvy925g5kjwg66acz6sn1ra1hca09f1z5dsab"); + expected = true; + }; + testHasStorePathPrefixExample8 = { + expr = hasStorePathPrefix (/. + "/1121rp0gvr1qya7hvy925g5kjwg66acz6sn1ra1hca09f1z5dsab/foo/bar"); + expected = true; + }; + # Test examples from the lib.path.subpath.isValid documentation testSubpathIsValidExample1 = { expr = subpath.isValid null; |
