Nix Channel 23.11: Issues with pipewire(?)

My config.nix file worked fine on 23.05. I recently switched my channel to 23.11, ran sudo nixos-rebuild switch, and I’m met with this error:

--- stderr
  thread 'main' panicked at /build/cargo-vendor-dir/proc-macro2-1.0.49/src/fallback.rs:756:9:
  "spa_audio_info_union_(unnamed_at_/nix/store/xipin598vrv1bj2nwnhaj03p8n4plaf5-pipewire-0_3_85-dev/include/spa-0_2/spa/param/audio/format_h_36_2)" is not a valid Ident
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: builder for '/nix/store/9v2vfa5a1kbkjcbqg995pll3qk4113mg-pw-viz-0.2.0.drv' failed with exit code 101
error: 1 dependencies of derivation '/nix/store/373k1qw8n2pllkzlnz7rcjlf8zjh86s9-system-path.drv' failed to build

I believe it’s related to pipewire.

This seems to be somewhat related to clang - Rust bindgen causes a "is not a valid Ident" error on build - Stack Overflow that points to this bug thread 'main' panicked at '"__mbstate_t_(anonymous_struct_at_foo_cc_2_3)" is not a valid Ident' · Issue #2312 · rust-lang/rust-bindgen · GitHub which is apparently due to this commit https://github.com/llvm/llvm-project/commit/19e984ef8f49bc3ccced15621989fa9703b2cd5b#diff-cde6fae42b53073a85e0901697f60ea80262705f86643b7b27524c7bd24c6f80.

The SO answer mentions:

Specifically, that commit was for Clang 16. Therefore, either downgrade Clang to a version before 16, or update your bindgen crate to v0.62.0 or above (which is when the fix was applied).

Since this is definitely not something that an end user should do, I recommend you to report it online. I can already see a bug report here for pw-viz. If you are actually trying to install pw-viz, then I guess you just need to wait or stay on an older channel, otherwise report an issue in NixOs/nixpkgs’s repo.

It is something I need… I guess I’ll stick to 23.05 for now.

But are you just installing pipewire, or pw-viz as well? (just trying if the issue solely comes from pw-viz, or if multiple packages have this same issue)

I’m not directly installing pw-viz. It’s probably coming from packages that depend on it though.

If I were to assume, it’s probably coming from qpwgraph, which is something I use to visualize pipe wire and do my audio routing.

Hum weird… are you sure you didn’t install it? It seems like pw-viz is used by no other software:

$ rg pw-viz
pkgs/top-level/all-packages.nix
11356:  pw-viz = callPackage ../applications/misc/pw-viz { };

pkgs/applications/misc/pw-viz/Cargo.lock
1660:name = "pw-viz"

pkgs/applications/misc/pw-viz/default.nix
16:  pname = "pw-viz";
51:    patchelf $out/bin/pw-viz \
61:    homepage = "https://github.com/ax9d/pw-viz";

while qpwgraph seems to compile fine and does not depend on pw-viz: Hydra - nixos:release-23.11:nixpkgs.qpwgraph.x86_64-linux Note sure how you managed to get pw-viz installed here, but appart from installing it manually I don’t see any other way to get it installed ^^

Holy crap, I just realized it’s installed in my pkgs, haha!

I don’t remember how it even got there, but I doubt I need it for anything…

Ok cool, at least it means that it is not an issue with pipewire itself, only with one small package. So the above issue is the one to follow if you want to check when it is back into 23.11.