!FBuJyWXTGcGtHTPphC:nixos.org

Nix Rust

464 Members
Rust111 Servers

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


SenderMessageTime
10 Aug 2024
@emilazy:matrix.orgemilymaybe we could just construct Cargo cache directories šŸ™ƒ20:23:15
@emilazy:matrix.orgemilyimage.png
Download image.png
20:25:00
@emilazy:matrix.orgemily haha, the Discourse forum thread I clicked on also immediately references Nix. we're the only people in the world who want this 20:26:04
@emilazy:matrix.orgemilyanyway, I guess mixing incompatible feature sets does complicate this significantly šŸ« 20:29:34
@emilazy:matrix.orgemilyso the source-based approach is probably better. (but we're still going to need to be careful about constructing lock files for transitive dependency versions, I think.)20:29:53
11 Aug 2024
@emilazy:matrix.orgemilyhttps://github.com/NixOS/nixpkgs/pull/332809 could maybe use a little testing before it goes in if anyone wants to take a look09:49:46
@emilazy:matrix.orgemilyI'm guessing a fair number of people use rustup on NixOS and we're bumping through like 1.5 years of changes09:50:22
@glepage:matrix.orgGaƩtan Lepage If I have set sourceRoot to some subfolder of the main source tree, but there is a single Cargo.lock file at the root, how should I do ?
I tried mv ../Cargo.lock . in postPatch, but the build fails even before
12:12:01
@glepage:matrix.orgGaƩtan Lepage
Running phase: buildPhase

ERROR: The Cargo.lock file doesn't exist

Cargo.lock is needed to make sure that cargoHash/cargoSha256 doesn't change
when the registry is updated.
12:12:20
@glepage:matrix.orgGaƩtan Lepage Isn't postPatch suppose to happen... after the patchPhase ? 12:13:44
@glepage:matrix.orgGaƩtan Lepage
  src = fetchFromGitHub {
    owner = "SUPERCILEX";
    repo = "clipboard-history";
    rev = "refs/tags/${version}";
    hash = "sha256-rBU365pqGitMAOWhIJi3RUGJYxEh7wOmhC+Re0XUN2M=";
  };

  postPatch = ''
    OBVIOUSLY_FAILING
  '';
Running phase: unpackPhase
unpacking source archive /nix/store/wxpy3mavklvryl263ryrikh27ynxv2dq-source
calling 'unpackCmd' function hook '_defaultUnpack' /nix/store/wxpy3mavklvryl263ryrikh27ynxv2dq-source
source root is source/server
calling 'postUnpack' function hook '_updateSourceDateEpochFromSourceRoot'
Running phase: patchPhase
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
calling 'preConfigure' function hook '_multioutConfig'
no configure script, doing nothing
Running phase: buildPhase
12:16:22
@emilazy:matrix.orgemily do you override patchPhase? 13:21:59
@9hp71n:matrix.orgghpzin
In reply to @glepage:matrix.org
If I have set sourceRoot to some subfolder of the main source tree, but there is a single Cargo.lock file at the root, how should I do ?
I tried mv ../Cargo.lock . in postPatch, but the build fails even before
I think buildAndTestSubdir = "server"; with nothing else should work.
If it's a workspace lock and you just want to build one crate from it.
13:22:34
@9hp71n:matrix.orgghpzin
In reply to @glepage:matrix.org
If I have set sourceRoot to some subfolder of the main source tree, but there is a single Cargo.lock file at the root, how should I do ?
I tried mv ../Cargo.lock . in postPatch, but the build fails even before
* I think buildAndTestSubdir = "server"; with nothing else should work.
If it's a workspace lock and you just want to build one crate from it.
https://github.com/NixOS/nixpkgs/blob/04f4be3e4385d7962347505807a0e55720c414aa/doc/languages-frameworks/rust.section.md?plain=1#L510-L515
13:23:43
@glepage:matrix.orgGaƩtan LepageThanks ! I'll try this :)13:24:05
12 Aug 2024
@amiablechief:matrix.org@amiablechief:matrix.org left the room.11:34:32
@emilazy:matrix.orgemily2024 rust goals:18:36:15
@emilazy:matrix.orgemilyimage.png
Download image.png
18:36:19
@emilazy:matrix.orgemily(https://rust-lang.github.io/rust-project-goals/2024h2/accepted.html)18:36:20
@emilazy:matrix.orgemily maybe we can dylib it up by 2025 :) 18:36:30
@r522:matrix.org522yeah i have CARGO_TARGET_DIR set for this, but it definitely is a bit hacky18:37:20
@emilazy:matrix.orgemilywe were talking about actually building crates once in separate derivations without having to replace Cargo entirely the other day18:38:05
@r522:matrix.org522(2 binaries with the same name in different places will alias, so running one may actually run the other, depending on which was built first)18:38:11
@emilazy:matrix.orgemilyand it seemed like Cargo just really didn't want us to do it. but maybe with this we can make it happen18:38:20
13 Aug 2024
@reckenrode:matrix.orgRandy Eckenrode
In reply to @emilazy:matrix.org
anyway, I guess mixing incompatible feature sets does complicate this significantly šŸ« 
Can feature flags be included in the name? This seems like a problem the Nix approach is well-equipped to handle.
13:55:31
@emilazy:matrix.orgemilyAIUI, if you have dependencies on crate A that depends on C with feature X and crate B that depends on C with feature Y, Cargo will build crate C with features {X,Y}13:56:36
@emilazy:matrix.orgemilythat's full version resolver territory13:56:46
@emilazy:matrix.orgemilywe could potentially get away with just doing our own dumb Nix-like resolution and having more duplicates, but as of now there's no way to convince Cargo to let us do that13:57:03
@k900:0upti.meK900Correct, Cargo features are strictly additive13:57:18

Show newer messages


Back to Room ListRoom Version: 6