!FBuJyWXTGcGtHTPphC:nixos.org

Nix Rust

676 Members
Rust155 Servers

Load older messages


SenderMessageTime
7 Nov 2021
@legendofmiracles:matrix.orglegendofmiraclesIs it off the table to bring it back if needed?04:48:02
@andi:kack.itandi- legendofmiracles: why is it needed and why does the rust project fail on newer compilers? (I've seen such issues myself but usually the rust community tries to avoid that situation) 14:48:16
@wackbyte:matrix.orgwackbyte joined the room.18:40:16
8 Nov 2021
@jonringer:matrix.orgjonringer joined the room.13:02:15
@legendofmiracles:matrix.orglegendofmiraclesHow does nix handle cargo patches, like here: https://github.com/a-b-street/abstreet/blob/4717c3c8f7072cd0efc6c49403f724b95f8738fe/Cargo.toml#L3916:44:56
@legendofmiracles:matrix.orglegendofmiracles * How does nix handle cargo patches, like here?: https://github.com/a-b-street/abstreet/blob/4717c3c8f7072cd0efc6c49403f724b95f8738fe/Cargo.toml#L3916:45:02
@yuka:yuka.devYureka (she/her)If you use buildRustPackage, It mostly doesn't interact with them16:45:35
@legendofmiracles:matrix.orglegendofmiraclesBecause it's in the lockfile?16:46:00
@yuka:yuka.devYureka (she/her) If you use cargoSha256, then Nix doesn't care about the lockfile or Cargo.toml at all. It just runs cargo vendor, and then later cargo build with the vendored sources. 16:47:21
@yuka:yuka.devYureka (she/her) If you use the importCargoLock / cargoLock.lockFile thing, the cargo vendor part is replaced by a Nix derivation that downloads all the things in the lockfile, which is just the same as what cargo vendor would do 16:48:41
@yuka:yuka.devYureka (she/her) * If you use the importCargoLock / cargoLock.lockFile thing, the cargo vendor part is replaced by a Nix derivation that depends on fetchurl/fetchgit downloads of all the things in the lockfile, which is just the same as what cargo vendor would do 16:49:04
@yuka:yuka.devYureka (she/her)Either way the patch entries in Cargo.toml should be honored16:49:19
@jonringer:matrix.orgjonringer if you do need to apply patches before vendoring, you can declare them with cargoPatches 16:49:21
@yuka:yuka.devYureka (she/her)I don't think the question was about patching Cargo.toml / Cargo.lock16:50:13
@legendofmiracles:matrix.orglegendofmiracles
building
    Updating git repository `https://github.com/georust/geo`
error: failed to sync

Caused by:
  failed to load pkg lockfile

Caused by:
  failed to resolve patches for `https://github.com/rust-lang/crates.io-index`

Caused by:
  failed to load source for dependency `geo`

Caused by:
  Unable to update https://github.com/georust/geo?branch=mkirk/concave-hull-fix-empty-crash#243ad260

Caused by:
  object not found - no match for id (243ad260ba9dec5fe6ab5d184ac625f6ed01b53b); class=Odb (9); code=NotFound (-3)
Traceback (most recent call last):
  File "/nix/store/c7cph7saraq1zq690ch368bjfdlmaypd-cargo-vendor-normalise/bin/.cargo-vendor-normalise-wrapped", line 42, in <module>
    main()
  File "/nix/store/c7cph7saraq1zq690ch368bjfdlmaypd-cargo-vendor-normalise/bin/.cargo-vendor-normalise-wrapped", line 17, in main
    assert list(data.keys()) == ["source"]
AssertionError
16:50:21
@legendofmiracles:matrix.orglegendofmiraclesThe reason I asked is because of these errors16:50:31
@legendofmiracles:matrix.orglegendofmiraclesbut now that I look at it again, it doesn't seem to have anything to do with nix16:51:15
@yuka:yuka.devYureka (she/her)maybe the lockfile is outdated?16:51:22
@yuka:yuka.devYureka (she/her)or some git branch/tag was yanked?16:51:30
@legendofmiracles:matrix.orglegendofmiraclesOr commit16:51:37
@legendofmiracles:matrix.orglegendofmiraclesI'll play around a bit, thanks for the hint16:51:52
@lourkeur:nixos.devlourkeur (nix btw)
In reply to @jonringer:matrix.org
if you do need to apply patches before vendoring, you can declare them with cargoPatches

Interesting. I didn't know that so I used this pattern instead recently. Would cargoPatches be preferable in this case?

cargoDeps = rustPlatform.fetchCargoTarball {
    inherit src patches;
    name = "${pname}-${version}";
```https://github.com/NixOS/nixpkgs/pull/144733/files#diff-a35bcf6b38716a31d2a5ea43b4ff2e6217c591817597572a22d560fa86ba0bb8R28
16:54:11
@lourkeur:nixos.devlourkeur (nix btw)
In reply to @jonringer:matrix.org
if you do need to apply patches before vendoring, you can declare them with cargoPatches
*

Interesting. I didn't know that so I used this pattern instead recently. Would cargoPatches be preferable in this case?

cargoDeps = rustPlatform.fetchCargoTarball {
    inherit src patches;
    name = "${pname}-${version}";
}

https://github.com/NixOS/nixpkgs/pull/144733/files#diff-a35bcf6b38716a31d2a5ea43b4ff2e6217c591817597572a22d560fa86ba0bb8R28

16:54:22
@lourkeur:nixos.devlourkeur (nix btw) *

Interesting. I didn't know that so I used this pattern instead recently. Would cargoPatches be preferable in this case?

cargoDeps = rustPlatform.fetchCargoTarball {
    inherit src patches;
    name = "${pname}-${version}";
}

https://github.com/NixOS/nixpkgs/pull/144733/files#diff-a35bcf6b38716a31d2a5ea43b4ff2e6217c591817597572a22d560fa86ba0bb8R28

16:54:39
@lourkeur:nixos.devlourkeur (nix btw) *

Interesting. I didn't know that so I used this pattern instead recently. Would cargoPatches be preferable in this case?

cargoDeps = rustPlatform.fetchCargoTarball {
    inherit src patches;
    name = "${pname}-${version}";
    sha256 = "...";
}

https://github.com/NixOS/nixpkgs/pull/144733/files#diff-a35bcf6b38716a31d2a5ea43b4ff2e6217c591817597572a22d560fa86ba0bb8R28

16:54:57
@yuka:yuka.devYureka (she/her)should be the same thing16:55:00
@legendofmiracles:matrix.orglegendofmiracles
In reply to @legendofmiracles:matrix.org
I'll play around a bit, thanks for the hint
I can't, my rust version is 1.55 but this program needs 1.56
17:03:26
@yuka:yuka.devYureka (she/her)staging-next has 1.5617:04:10
@yuka:yuka.devYureka (she/her)it's in the binary cache17:05:14
@yuka:yuka.devYureka (she/her)
nix build -f "<nixpkgs>" rustc -I nixpkgs=https://github.com/nixos/nixpkgs/archive/staging-next.tar.gz
17:05:21

Show newer messages


Back to Room ListRoom Version: 6