| 20 Feb 2025 |
Charles ⚡️ | another rust release, another waiting an extra 12+ hours for fenix to update to be able to use it | 18:10:10 |
Niklas Korz | rust-overlay already has it | 18:26:33 |
Charles ⚡️ | overlays are too big a hammer for this imo | 19:13:00 |
Charles ⚡️ | maybe the solution is to use rust-overlay and import nixpkgs twice | 19:13:29 |
Charles ⚡️ | or make my own replacement for fenix | 19:13:48 |
emily | huh? | 19:13:50 |
emily | rust-ovelray has almost an identical interface to fenix | 19:13:55 |
emily | you can use it without actually overlaying | 19:14:01 |
Niklas Korz | you don't have to use rust-overlay as an overlay, yeah | 19:14:07 |
Charles ⚡️ | what, how | 19:14:12 |
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 |