diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix index d837d0012590..6b8827160262 100644 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix @@ -7,12 +7,17 @@ , completeBuildDeps , completeDeps , crateAuthors -, crateLinks , crateDescription -, crateHomepage , crateFeatures +, crateHomepage +, crateLicense +, crateLicenseFile +, crateLinks , crateName +, crateReadme , crateRenames +, crateRepository +, crateRustVersion , crateVersion , extraLinkFlags , extraRustcOptsForBuildRs @@ -120,6 +125,8 @@ in '' EXTRA_BUILD="" BUILD_OUT_DIR="" + + # Set up Cargo Environment variables: https://doc.rust-lang.org/cargo/reference/environment-variables.html export CARGO_PKG_NAME=${crateName} export CARGO_PKG_VERSION=${crateVersion} export CARGO_PKG_AUTHORS="${authors}" @@ -147,6 +154,11 @@ in '' export CARGO_PKG_VERSION_PATCH=${lib.elemAt version 2} export CARGO_PKG_VERSION_PRE="${versionPre}" export CARGO_PKG_HOMEPAGE="${crateHomepage}" + export CARGO_PKG_LICENSE="${crateLicense}" + export CARGO_PKG_LICENSE_FILE="${crateLicenseFile}" + export CARGO_PKG_README="${crateReadme}" + export CARGO_PKG_REPOSITORY="${crateRepository}" + export CARGO_PKG_RUST_VERSION="${crateRustVersion}" export NUM_JOBS=$NIX_BUILD_CORES export RUSTC="rustc" export RUSTDOC="rustdoc" diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix index 1760ab6e99a6..4a7fd114829a 100644 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/default.nix @@ -314,11 +314,16 @@ crate_: lib.makeOverridable # Either set to a concrete sub path to the crate root # or use `null` for auto-detect. workspace_member = crate.workspace_member or "."; - crateVersion = crate.version; - crateDescription = crate.description or ""; crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else [ ]; + crateDescription = crate.description or ""; crateHomepage = crate.homepage or ""; + crateLicense = crate.license or ""; + crateLicenseFile = crate.license-file or ""; crateLinks = crate.links or ""; + crateReadme = crate.readme or ""; + crateRepository = crate.repository or ""; + crateRustVersion = crate.rust-version or ""; + crateVersion = crate.version; crateType = if lib.attrByPath [ "procMacro" ] false crate then [ "proc-macro" ] else if lib.attrByPath [ "plugin" ] false crate then [ "dylib" ] else @@ -341,6 +346,7 @@ crate_: lib.makeOverridable inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription crateFeatures crateRenames libName build workspace_member release libPath crateVersion crateLinks extraLinkFlags extraRustcOptsForBuildRs + crateLicense crateLicenseFile crateReadme crateRepository crateRustVersion crateAuthors crateHomepage verbose colors codegenUnits; }; buildPhase = buildCrate {