diff options
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/rust/default-crate-overrides.nix | 41 | ||||
-rw-r--r-- | pkgs/build-support/rust/import-cargo-lock.nix | 27 |
2 files changed, 58 insertions, 10 deletions
diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix index fa421406e679b..cc6abdb90d3b7 100644 --- a/pkgs/build-support/rust/default-crate-overrides.nix +++ b/pkgs/build-support/rust/default-crate-overrides.nix @@ -1,5 +1,6 @@ { lib , stdenv +, atk , pkg-config , curl , darwin @@ -19,9 +20,11 @@ , foundationdb , capnproto , nettle +, gtk4 , clang , llvmPackages , linux-pam +, pango , cmake , glib , freetype @@ -45,6 +48,11 @@ in buildInputs = [ cairo ]; }; + cairo-sys-rs = attrs: { + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ cairo ]; + }; + capnp-rpc = attrs: { nativeBuildInputs = [ capnproto ]; }; @@ -73,8 +81,6 @@ in }; evdev-sys = attrs: { - LIBGIT2_SYS_USE_PKG_CONFIG = true; - nativeBuildInputs = [ pkg-config ]; buildInputs = [ libevdev ]; }; @@ -122,6 +128,21 @@ in buildInputs = [ gdk-pixbuf ]; }; + gtk4-sys = attrs: { + buildInputs = [ gtk4 ]; + nativeBuildInputs = [ pkg-config ]; + }; + + gdk4-sys = attrs: { + buildInputs = [ gtk4 ]; + nativeBuildInputs = [ pkg-config ]; + }; + + gsk4-sys = attrs: { + buildInputs = [ gtk4 ]; + nativeBuildInputs = [ pkg-config ]; + }; + libgit2-sys = attrs: { LIBGIT2_SYS_USE_PKG_CONFIG = true; nativeBuildInputs = [ pkg-config ]; @@ -167,6 +188,11 @@ in buildInputs = [ linux-pam ]; }; + pango-sys = attr: { + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pango ]; + }; + pq-sys = attr: { nativeBuildInputs = [ pkg-config ]; buildInputs = [ postgresql ]; @@ -202,6 +228,11 @@ in buildInputs = [ gmp ]; }; + pangocairo-sys = attr: { + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pango ]; + }; + sequoia-store = attrs: { nativeBuildInputs = [ capnproto ]; buildInputs = [ sqlite gmp ]; @@ -233,4 +264,10 @@ in xcb = attrs: { buildInputs = [ python3 ]; }; + + atk-sys = attrs: { + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ atk ]; + }; + } diff --git a/pkgs/build-support/rust/import-cargo-lock.nix b/pkgs/build-support/rust/import-cargo-lock.nix index e571c01f95c5d..7a4ddec3ebd1d 100644 --- a/pkgs/build-support/rust/import-cargo-lock.nix +++ b/pkgs/build-support/rust/import-cargo-lock.nix @@ -7,6 +7,9 @@ # Cargo lock file contents as string , lockFileContents ? null + # Allow `builtins.fetchGit` to be used to not require hashes for git dependencies +, allowBuiltinFetchGit ? false + # Hashes for git dependencies. , outputHashes ? {} } @ args: @@ -38,14 +41,14 @@ let # There is no source attribute for the source package itself. But # since we do not want to vendor the source package anyway, we can # safely skip it. - depPackages = (builtins.filter (p: p ? "source") packages); + depPackages = builtins.filter (p: p ? "source") packages; # Create dependent crates from packages. # # Force evaluation of the git SHA -> hash mapping, so that an error is # thrown if there are stale hashes. We cannot rely on gitShaOutputHash # being evaluated otherwise, since there could be no git dependencies. - depCrates = builtins.deepSeq (gitShaOutputHash) (builtins.map mkCrate depPackages); + depCrates = builtins.deepSeq gitShaOutputHash (builtins.map mkCrate depPackages); # Map package name + version to git commit SHA for packages with a git source. namesGitShas = builtins.listToAttrs ( @@ -117,12 +120,20 @@ let If you use `buildRustPackage`, you can add this attribute to the `cargoLock` attribute set. ''; - sha256 = gitShaOutputHash.${gitParts.sha} or missingHash; - tree = fetchgit { - inherit sha256; - inherit (gitParts) url; - rev = gitParts.sha; # The commit SHA is always available. - }; + tree = + if gitShaOutputHash ? ${gitParts.sha} then + fetchgit { + inherit (gitParts) url; + rev = gitParts.sha; # The commit SHA is always available. + sha256 = gitShaOutputHash.${gitParts.sha}; + } + else if allowBuiltinFetchGit then + builtins.fetchGit { + inherit (gitParts) url; + rev = gitParts.sha; + } + else + missingHash; in runCommand "${pkg.name}-${pkg.version}" {} '' tree=${tree} |