feat(rust): remove git deps from subsystem attrs, use getSourceSpec instead

This commit is contained in:
Yusuf Bera Ertan 2022-01-08 13:44:56 +03:00
parent c9ea0f7c13
commit 3c6af2acbf
No known key found for this signature in database
GPG Key ID: 1D8F8FAF2294D6EA
3 changed files with 3 additions and 15 deletions

View File

@ -30,12 +30,6 @@ let
l.unique (l.flatten (
direct ++ (l.map (dep: getAllTransitiveDependencies dep.name dep.version) direct)
));
getGitDep = pname: version:
l.findFirst
(dep: dep.name == pname && dep.version == version)
null
subsystemAttrs.gitDeps;
# TODO: this is shared between the translator and this builder
# we should dedup this somehow (maybe put in a common library for Rust subsystem?)
@ -64,7 +58,7 @@ let
makeSource = dep:
let
srcPath = getSource dep.name dep.version;
isGit = (getGitDep dep.name dep.version) != null;
isGit = (getSourceSpec dep.name dep.version).type == "git";
path =
if isGit
then let
@ -99,7 +93,7 @@ let
'';
# Generates a shell script that writes git vendor entries to .cargo/config.
writeGitVendorEntries = pname: version:
writeGitVendorEntries =
let
makeEntry = source:
''
@ -119,7 +113,6 @@ let
let
src = getSource pname version;
vendorDir = vendorPackageDependencies pname version;
writeGitVendorEntriesScript = writeGitVendorEntries pname version;
in
produceDerivation pname (pkgs.rustPlatform.buildRustPackage {
inherit pname version src;
@ -131,7 +124,7 @@ let
cargoVendorDir = "../nix-vendor";
preBuild = ''
${writeGitVendorEntriesScript}
${writeGitVendorEntries}
'';
});
in

View File

@ -3,10 +3,6 @@
"packages": [
{ "name": "ripgrep", "version": "13.0.0" }
],
"gitDeps": [
{ "name": "rand", "version": "0.8.4" },
{ "name": "rand", "version": "0.7.3" }
],
"gitSources": [
{
"url": "https://github.com/rust-random/rand.git",

View File

@ -171,7 +171,6 @@
# ./src/specifications/{subsystem}
subsystemAttrs = rec {
packages = l.map (toml: { inherit (toml.value.package) name version; }) cargoPackages;
gitDeps = l.filter (dep: (getSourceTypeFrom dep) == "git") parsedDeps;
gitSources = l.unique (l.map (dep: parseGitSource dep.source) gitDeps);
};