| 20 Feb 2025 |
Charles | manual, relay instructions | 19:15:11 |
| * Charles checks for docs | 19:15:16 |
Niklas Korz | it also exposes packages | 19:15:57 |
Niklas Korz | * it also exposes packages on its flake | 19:16:01 |
Niklas Korz | packages.${system}.default is the latest stable rust, so 1.85.0 now | 19:16:21 |
Charles | i would like to not use flakes | 19:17:07 |
Charles | the default.nix is just the overlay | 19:17:15 |
Niklas Korz | in that case you could probably just copy mkRustBin from flake.nix: | 19:18:24 |
Niklas Korz | # Builder to construct `rust-bin` interface on an existing `pkgs`.
# This would be immutable, non-intrusive and (hopefully) can benefit from
# flake eval-cache.
#
# Note that this does not contain compatible attrs for mozilla-overlay.
mkRustBin =
{ distRoot ? defaultDistRoot }:
pkgs:
lib.fix (rust-bin: import ./lib/rust-bin.nix {
inherit lib pkgs;
inherit (rust-bin) nightly;
manifests = mkManifests distRoot;
});
| 19:18:27 |
Niklas Korz | well, of course you'll have to replace ./lib/rust-bin.nix with ${rust-overlay}/lib/rust-bin.nix here | 19:18:46 |
Charles | that would work i guess but is unfortunate | 19:19:43 |
Niklas Korz | then you can do something like
rust-stable = (mkRustBin { } pkgs).stable.latest.default
| 19:20:15 |
Niklas Korz | * then you can do something like
rust-stable = (mkRustBin { } pkgs).stable.latest.default;
| 19:20:19 |
Charles | actually it would probably be easiest to just import lib/rust-bin.nix directly | 19:20:35 |
Charles | since i would already have a nixpkgs at the point i would need to call this | 19:20:55 |
| 21 Feb 2025 |
| thou-vow joined the room. | 05:49:50 |
Niklas Korz | Concerning https://github.com/NixOS/nixpkgs/pull/383717#issuecomment-2673988082 :
Was the linker setting in .cargo/config.toml previously ignored and now it's somehow picked up by buildRustPackage? | 09:32:47 |
Niklas Korz | Or was clang previously accidentally exposed to buildRustPackage? 🤔 | 09:36:47 |
kraem | i'm using crane to build dependencies and the finaly binary in two different steps. after building the dependencies i'm exporting the closure using nix-store --export $(nix-store --query --requisites ./result). since that doesn't include the cargo-deps-.drv-files and their outputs, when i run nix-store --import and building the final binary (on a different host for example) the final-binary-step builds them, creating double work. when trying to export them as well, some of the drv-files aren't present:
export drvs=$(nix-store -q --requisites $(nix-store --query --deriver ./result/) | grep cargo-package)
export outputs$(nix-store -q --outputs $(nix-store -q --requisites $drvs)) # <- this errors since some of the drv-files aren't present in the nix store
how can i make sure to export all the drv-files and their outputs when exporting a nix store closure?
| 12:58:43 |
kraem | * i'm using crane to build dependencies and the finaly binary in two different steps. after building the dependencies i'm exporting the closure using nix-store --export $(nix-store --query --requisites ./result). since that doesn't include the cargo-deps-.drv-files and their outputs, when i run nix-store --import and building the final binary (on a different host for example) the final-binary-step builds them, creating double work. when trying to export them as well, some of the drv-files aren't present:
export drvs=$(nix-store -q --requisites $(nix-store --query --deriver ./result/) | grep cargo-package)
export outputs$(nix-store -q --outputs $(nix-store -q --requisites $drvs))
# the line above errors since some of the drv-files aren't present in the nix store,
# even though i'm running this after building the final closure successfully
how can i make sure to export all the drv-files and their outputs when exporting a nix store closure?
| 13:00:04 |
kraem | oh. actually i might not need the drvs, just their outputs:
deps=$(nix-store -r $(nix-store -q --requisites $(nix-store -q --deriver ./result/) | rg cargo-package))
final_closure=$(nix-store -q --requisites ./result/)
nix-store --export $deps $final_closure > /tmp/deps_and_final_closure
| 13:35:18 |
kraem | that sped things up :) | 13:36:00 |