!FBuJyWXTGcGtHTPphC:nixos.org

Nix Rust

693 Members
Rust156 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
20 Feb 2025
@charles:computer.surgeryCharlesmanual, relay instructions19:15:11
* @charles:computer.surgeryCharles checks for docs19:15:16
@niklaskorz:korz.devNiklas Korz it also exposes packages 19:15:57
@niklaskorz:korz.devNiklas Korz * it also exposes packages on its flake 19:16:01
@niklaskorz:korz.devNiklas Korz packages.${system}.default is the latest stable rust, so 1.85.0 now 19:16:21
@charles:computer.surgeryCharlesi would like to not use flakes19:17:07
@charles:computer.surgeryCharles the default.nix is just the overlay 19:17:15
@niklaskorz:korz.devNiklas Korzin that case you could probably just copy mkRustBin from flake.nix:19:18:24
@niklaskorz:korz.devNiklas 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
@niklaskorz:korz.devNiklas 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:computer.surgeryCharlesthat would work i guess but is unfortunate19:19:43
@niklaskorz:korz.devNiklas Korz

then you can do something like

rust-stable = (mkRustBin { } pkgs).stable.latest.default
19:20:15
@niklaskorz:korz.devNiklas Korz *

then you can do something like

rust-stable = (mkRustBin { } pkgs).stable.latest.default;
19:20:19
@charles:computer.surgeryCharles actually it would probably be easiest to just import lib/rust-bin.nix directly 19:20:35
@charles:computer.surgeryCharlessince i would already have a nixpkgs at the point i would need to call this19:20:55
21 Feb 2025
@amihsekai:matrix.orgthou-vow joined the room.05:49:50
@niklaskorz:korz.devNiklas KorzConcerning 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
@niklaskorz:korz.devNiklas Korz Or was clang previously accidentally exposed to buildRustPackage? 🤔 09:36:47
@kraem:ne.bul.aekraem

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:ne.bul.aekraem *

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:ne.bul.aekraem

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:ne.bul.aekraemthat sped things up :) 13:36:00

Show newer messages


Back to Room ListRoom Version: 6