-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
Nixpkgs version
- Unstable (26.05)
Describe the bug
When rust-bindgen (either our package, or one built within a Rust project) is run to generate bindings with a target triplet that normally requires a different -target flag (and maybe more) to work in Clang/LLVM, Clang is seemingly invoked without these fixes (which are in bash code within our CC-wrapper). This causes the binding generation to fail.
Example in release-cross tests: https://hydra.nixos.org/build/316902609
Also happens when building natively on such a target (ppc64-elfv1 in my case).
Steps to reproduce
nix-build pkgs/top-level/release-cross.nix --arg supportedSystems '[builtins.currentSystem]' -A ppc64-elfv1.mesa
Expected behaviour
The triplet is adjusted to be Clang-understandable before it reaches Clang
Screenshots
n/a
Relevant log output
[425/5415] Generating bindings for Rust src/compiler/rust/rustmod-bindgen-bindings.h
FAILED: [code=1] src/compiler/rust/bindings.rs
/nix/store/m1ikz2829lxds4bg5krcs4rdi9wzgy37-rust-bindgen-0.72.1/bin/bindgen ../src/compiler/rust/bindings.h --output /build/source/build/src/compiler/rust/bindings.rs --wrap-unsafe-ops --raw-line '#![allow(clippy::all)]' --raw-line '#![allow(improper_ctypes)]' --raw-line '#![allow(unused_unsafe)]' --raw-line '#![allow(non_camel_case_types)]' --raw-line '#![allow(non_snake_case)]' --raw-line '#![allow(non_upper_case_globals)]' --raw-line '#![allow(unsafe_op_in_unsafe_fn)]' --raw-line '#![allow(unnecessary_transmutes)]' --allowlist-var 'NIR_.*' --allowlist-var 'nir_.*_infos' --allowlist-var 'rust_.*' --allowlist-function 'glsl_.*' --allowlist-function _mesa_shader_stage_to_string --allowlist-function 'nir_.*' --allowlist-function 'compiler_rs.*' --allowlist-function 'u_memstream.*' --allowlist-type u_memstream --no-prepend-enum-name --with-derive-default --allowlist-type exec_list --allowlist-type exec_node --allowlist-type float_controls --allowlist-type gc_ctx --allowlist-type gl_access_qualifier --allowlist-type gl_frag_result --allowlist-type gl_interp_mode --allowlist-type mesa_shader_stage --allowlist-type gl_subgroup_size --allowlist-type gl_system_value --allowlist-type gl_tess_spacing --allowlist-type gl_varying_slot --allowlist-type gl_vert_attrib --allowlist-type glsl_type --allowlist-type glsl_matrix_layout --allowlist-type 'nir_.*' --allowlist-type mesa_scope --allowlist-type mesa_prim --allowlist-type mesa_shader_stage --allowlist-type shader_info --allowlist-type tess_primitive_mode --allowlist-type u_printf_info --rust-target 1.91.1 --rust-edition 2021 -- -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS '-DPACKAGE_VERSION="25.3.2"' '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"' -DHAVE_OPENGL=1 -DHAVE_OPENGL_ES_1=1 -DHAVE_OPENGL_ES_2=1 -DHAVE_ASAHI -DHAVE_CROCUS -DHAVE_D3D12 -DHAVE_ETNAVIV -DHAVE_FREEDRENO -DHAVE_I915 -DHAVE_IRIS -DHAVE_LIMA -DHAVE_LLVMPIPE -DHAVE_NOUVEAU -DHAVE_PANFROST -DHAVE_R300 -DHAVE_R600 -DHAVE_RADEONSI -DHAVE_SOFTPIPE -DHAVE_SVGA -DHAVE_TEGRA -DHAVE_V3D -DHAVE_VC4 -DHAVE_VIRGL -DHAVE_ZINK -DHAVE_ETHOSU -DHAVE_ROCKET -DHAVE_SWRAST -DMESA_SYSTEM_HAS_KMS_DRM=1 -DHAVE_NVK -DVIDEO_CODEC_VC1DEC=1 -DVIDEO_CODEC_H264DEC=1 -DVIDEO_CODEC_H264ENC=1 -DVIDEO_CODEC_H265DEC=1 -DVIDEO_CODEC_H265ENC=1 -DVIDEO_CODEC_AV1DEC=1 -DVIDEO_CODEC_AV1ENC=1 -DVIDEO_CODEC_VP9DEC=1 -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_XCB_PLATFORM -DUSE_LIBGLVND=1 -DUSE_D3D12_PREVIEW_HEADERS=0 -DHAVE_GALLIUM_D3D12_VIDEO -DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_DRM -DGLAPI_EXPORT_PROTO_ENTRY_POINTS=0 -DALLOW_KCMP -DMESA_DEBUG=0 -DENABLE_SHADER_CACHE -DHAVE___BUILTIN_BSWAP32 -DHAVE___BUILTIN_BSWAP64 -DHAVE___BUILTIN_CLZ -DHAVE___BUILTIN_CLZLL -DHAVE___BUILTIN_CTZ -DHAVE___BUILTIN_EXPECT -DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_FFSLL -DHAVE___BUILTIN_POPCOUNT -DHAVE___BUILTIN_POPCOUNTLL -DHAVE___BUILTIN_UNREACHABLE -DHAVE___BUILTIN_TYPES_COMPATIBLE_P -DHAVE___BUILTIN_ADD_OVERFLOW -DHAVE___BUILTIN_ADD_OVERFLOW_P -DHAVE___BUILTIN_SUB_OVERFLOW_P -DHAVE_FUNC_ATTRIBUTE_CONST -DHAVE_FUNC_ATTRIBUTE_FLATTEN -DHAVE_FUNC_ATTRIBUTE_MALLOC -DHAVE_FUNC_ATTRIBUTE_PURE -DHAVE_FUNC_ATTRIBUTE_UNUSED -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT -DHAVE_FUNC_ATTRIBUTE_WEAK -DHAVE_FUNC_ATTRIBUTE_FORMAT -DHAVE_FUNC_ATTRIBUTE_PACKED -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL -DHAVE_FUNC_ATTRIBUTE_ALIAS -DHAVE_FUNC_ATTRIBUTE_NORETURN -DHAVE_FUNC_ATTRIBUTE_OPTIMIZE -DHAVE_FUNC_ATTRIBUTE_COLD -DHAVE_FUNC_ATTRIBUTE_VISIBILITY -DHAVE_UINT128 -DHAVE_REALLOCARRAY -DHAVE_FMEMOPEN -D_GNU_SOURCE -DUSE_GCC_ATOMIC_BUILTINS -DMAJOR_IN_SYSMACROS -DHAS_SCHED_H -DHAS_SCHED_GETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_ENDIAN_H -DHAVE_DLFCN_H -DHAVE_SYS_SHM_H -DHAVE_SYS_INOTIFY_H -DHAVE_LINUX_UDMABUF_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_MEMFD_CREATE -DHAVE_RANDOM_R -DHAVE_FLOCK -DHAVE_STRTOK_R -DHAVE_GETRANDOM -DHAVE_POSIX_FALLOCATE -DHAVE_SECURE_GETENV -DHAVE_SYSCONF -DHAVE_GNU_QSORT_R -DHAVE_STRUCT_TIMESPEC -DHAVE_PROGRAM_INVOCATION_NAME -DHAVE_ISSIGNALING -DHAVE_POSIX_MEMALIGN -DHAVE_DIRENT_D_TYPE -DHAVE_STRTOD_L -DHAVE_DLADDR -DHAVE_DL_ITERATE_PHDR -DHAVE_ZLIB -DHAVE_LIBDISPLAY_INFO -DHAVE_ZSTD -DHAVE_COMPRESSION -DHAVE_PTHREAD -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LIBDRM -DHAVE_LIBUDEV '-DMESA_LLVM_VERSION_STRING="21.1.2"' -DLLVM_IS_SHARED=1 -DDRAW_LLVM_AVAILABLE=1 -DAMD_LLVM_AVAILABLE=1 -DGALLIVM_USE_ORCJIT=0 -DHAVE_SPIRV_TOOLS -DUSE_LIBELF -DHAVE_VALGRIND -DTHREAD_SANITIZER=0 -DHAVE_LIBUNWIND -DWL_HIDE_DEPRECATED -DHAVE_WL_DISPATCH_QUEUE_TIMEOUT -DHAVE_WL_CREATE_QUEUE_WITH_NAME -DXCB_KEYSYMS_AVAILABLE -DHAVE_X11_DRM -DHAVE_DRI -DHAVE_DRI2 -DHAVE_DRI3_EXPLICIT_SYNC -DHAVE_DRISW_KMS -DHAVE_GALLIUM_EXTRA_HUD=1 -DHAVE_LIBSENSORS=1 -DANDROID_LIBPERFETTO -target powerpc64-unknown-linux-gnuabielfv1 -DNDEBUG -I/build/source/src/compiler/nir/. -I/build/source/build/src/compiler/nir/. -I/build/source/src/compiler/. -I/build/source/build/src/compiler/. -I/build/source/src/. -I/build/source/build/src/. -I/build/source/include/. -I/build/source/build/include/. -I/build/source/include/. -I/build/source/build/include/. -I/build/source/src/util/.. -I/build/source/build/src/util/.. -I/nix/store/3mxyj2yfaz6aml43d5r2x9sc3zx4m7dw-zlib-powerpc64-unknown-linux-gnuabielfv1-1.3.1-dev/include -pthread -I/nix/store/zkhag867rjznad9jbxsl55ixf9jzgnfi-valgrind-powerpc64-unknown-linux-gnuabielfv1-3.26.0-dev/include/valgrind -I/nix/store/hjy9jiffr08h1ila954hxzrwd7j8fq4l-zstd-powerpc64-unknown-linux-gnuabielfv1-1.5.7-dev/include -I/nix/store/133xg07aczk6pag4bxa8cyw0sgkg3231-libunwind-powerpc64-unknown-linux-gnuabielfv1-1.8.3-dev/include -pthread -I/nix/store/zkhag867rjznad9jbxsl55ixf9jzgnfi-valgrind-powerpc64-unknown-linux-gnuabielfv1-3.26.0-dev/include/valgrind -I/nix/store/nhqamw4g23hyz8f59hgvgdz3h5f3847m-libdrm-powerpc64-unknown-linux-gnuabielfv1-2.4.128-dev/include -I/nix/store/nhqamw4g23hyz8f59hgvgdz3h5f3847m-libdrm-powerpc64-unknown-linux-gnuabielfv1-2.4.128-dev/include/libdrm -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS '-DPACKAGE_VERSION="25.3.2"' '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"' -DHAVE_OPENGL=1 -DHAVE_OPENGL_ES_1=1 -DHAVE_OPENGL_ES_2=1 -DHAVE_ASAHI -DHAVE_CROCUS -DHAVE_D3D12 -DHAVE_ETNAVIV -DHAVE_FREEDRENO -DHAVE_I915 -DHAVE_IRIS -DHAVE_LIMA -DHAVE_LLVMPIPE -DHAVE_NOUVEAU -DHAVE_PANFROST -DHAVE_R300 -DHAVE_R600 -DHAVE_RADEONSI -DHAVE_SOFTPIPE -DHAVE_SVGA -DHAVE_TEGRA -DHAVE_V3D -DHAVE_VC4 -DHAVE_VIRGL -DHAVE_ZINK -DHAVE_ETHOSU -DHAVE_ROCKET -DHAVE_SWRAST -DMESA_SYSTEM_HAS_KMS_DRM=1 -DHAVE_NVK -DVIDEO_CODEC_VC1DEC=1 -DVIDEO_CODEC_H264DEC=1 -DVIDEO_CODEC_H264ENC=1 -DVIDEO_CODEC_H265DEC=1 -DVIDEO_CODEC_H265ENC=1 -DVIDEO_CODEC_AV1DEC=1 -DVIDEO_CODEC_AV1ENC=1 -DVIDEO_CODEC_VP9DEC=1 -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_XCB_PLATFORM -DUSE_LIBGLVND=1 -DUSE_D3D12_PREVIEW_HEADERS=0 -DHAVE_GALLIUM_D3D12_VIDEO -DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_DRM -DGLAPI_EXPORT_PROTO_ENTRY_POINTS=0 -DALLOW_KCMP -DMESA_DEBUG=0 -DENABLE_SHADER_CACHE -DHAVE___BUILTIN_BSWAP32 -DHAVE___BUILTIN_BSWAP64 -DHAVE___BUILTIN_CLZ -DHAVE___BUILTIN_CLZLL -DHAVE___BUILTIN_CTZ -DHAVE___BUILTIN_EXPECT -DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_FFSLL -DHAVE___BUILTIN_POPCOUNT -DHAVE___BUILTIN_POPCOUNTLL -DHAVE___BUILTIN_UNREACHABLE -DHAVE___BUILTIN_TYPES_COMPATIBLE_P -DHAVE___BUILTIN_ADD_OVERFLOW -DHAVE___BUILTIN_ADD_OVERFLOW_P -DHAVE___BUILTIN_SUB_OVERFLOW_P -DHAVE_FUNC_ATTRIBUTE_CONST -DHAVE_FUNC_ATTRIBUTE_FLATTEN -DHAVE_FUNC_ATTRIBUTE_MALLOC -DHAVE_FUNC_ATTRIBUTE_PURE -DHAVE_FUNC_ATTRIBUTE_UNUSED -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT -DHAVE_FUNC_ATTRIBUTE_WEAK -DHAVE_FUNC_ATTRIBUTE_FORMAT -DHAVE_FUNC_ATTRIBUTE_PACKED -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL -DHAVE_FUNC_ATTRIBUTE_ALIAS -DHAVE_FUNC_ATTRIBUTE_NORETURN -DHAVE_FUNC_ATTRIBUTE_OPTIMIZE -DHAVE_FUNC_ATTRIBUTE_COLD -DHAVE_FUNC_ATTRIBUTE_VISIBILITY -DHAVE_UINT128 -DHAVE_REALLOCARRAY -DHAVE_FMEMOPEN -D_GNU_SOURCE -DUSE_GCC_ATOMIC_BUILTINS -DMAJOR_IN_SYSMACROS -DHAS_SCHED_H -DHAS_SCHED_GETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_ENDIAN_H -DHAVE_DLFCN_H -DHAVE_SYS_SHM_H -DHAVE_SYS_INOTIFY_H -DHAVE_LINUX_UDMABUF_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_MEMFD_CREATE -DHAVE_RANDOM_R -DHAVE_FLOCK -DHAVE_STRTOK_R -DHAVE_GETRANDOM -DHAVE_POSIX_FALLOCATE -DHAVE_SECURE_GETENV -DHAVE_SYSCONF -DHAVE_GNU_QSORT_R -DHAVE_STRUCT_TIMESPEC -DHAVE_PROGRAM_INVOCATION_NAME -DHAVE_ISSIGNALING -DHAVE_POSIX_MEMALIGN -DHAVE_DIRENT_D_TYPE -DHAVE_STRTOD_L -DHAVE_DLADDR -DHAVE_DL_ITERATE_PHDR -DHAVE_ZLIB -DHAVE_LIBDISPLAY_INFO -DHAVE_ZSTD -DHAVE_COMPRESSION -DHAVE_PTHREAD -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LIBDRM -DHAVE_LIBUDEV '-DMESA_LLVM_VERSION_STRING="21.1.2"' -DLLVM_IS_SHARED=1 -DDRAW_LLVM_AVAILABLE=1 -DAMD_LLVM_AVAILABLE=1 -DGALLIVM_USE_ORCJIT=0 -DHAVE_SPIRV_TOOLS -DUSE_LIBELF -DHAVE_VALGRIND -DTHREAD_SANITIZER=0 -DHAVE_LIBUNWIND -DWL_HIDE_DEPRECATED -DHAVE_WL_DISPATCH_QUEUE_TIMEOUT -DHAVE_WL_CREATE_QUEUE_WITH_NAME -DXCB_KEYSYMS_AVAILABLE -DHAVE_X11_DRM -DHAVE_DRI -DHAVE_DRI2 -DHAVE_DRI3_EXPLICIT_SYNC -DHAVE_DRISW_KMS -DHAVE_GALLIUM_EXTRA_HUD=1 -DHAVE_LIBSENSORS=1 -DANDROID_LIBPERFETTO -std=c11 -MD -MQ ../src/compiler/rust/bindings.h -MF src/compiler/rust/bindings.h.d
Unable to generate bindings: clang diagnosed error: error: version 'abielfv1' in target triple 'powerpc64-unknown-linux-gnuabielfv1' is invalidAdditional context
On glibc ppc64, we use powerpc64-unknown-linux-gnuabielfv1 or powerpc64-unknown-linux-gnuabielfv2 triplets. We go out of our way to reject powerpc64-unknown-linux-gnu because on this platform, it's too vague about which ELF ABI should be used.
Lines 699 to 704 in 45b438f
| { | |
| assertion = platform: !(platform.isPower64 && platform.isBigEndian); | |
| message = '' | |
| The "gnu" ABI is ambiguous on big-endian 64-bit PowerPC. Use "gnuabielfv2" or "gnuabielfv1" instead. | |
| ''; | |
| } |
GCC understands these triplets, but Clang doesn't. For Clang, we provide a translation of the triplet into -target ...-gnu -mabi=elfv[1/2] in the CC wrapper.
nixpkgs/pkgs/build-support/cc-wrapper/default.nix
Lines 936 to 957 in 45b438f
| ## | |
| ## General Clang support | |
| ## Needs to go after ^ because the for loop eats \n and makes this file an invalid script | |
| ## | |
| + optionalString isClang ( | |
| let | |
| hasUnsupportedGnuSuffix = hasPrefix "gnuabielfv" targetPlatform.parsed.abi.name; | |
| clangCompatibleConfig = | |
| if hasUnsupportedGnuSuffix then | |
| removeSuffix (removePrefix "gnu" targetPlatform.parsed.abi.name) targetPlatform.config | |
| else | |
| targetPlatform.config; | |
| explicitAbiValue = if hasUnsupportedGnuSuffix then targetPlatform.parsed.abi.abi else ""; | |
| in | |
| '' | |
| # Escape twice: once for this script, once for the one it gets substituted into. | |
| export machineFlags=${escapeShellArg (escapeShellArgs machineFlags)} | |
| export defaultTarget=${clangCompatibleConfig} | |
| export explicitAbiValue=${explicitAbiValue} | |
| substituteAll ${./add-clang-cc-cflags-before.sh} $out/nix-support/add-local-cc-cflags-before.sh | |
| '' | |
| ) |
nixpkgs/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh
Lines 29 to 37 in 45b438f
| if $targetPassed && [[ "$targetValue" != "@defaultTarget@" ]] && (( "${NIX_CC_WRAPPER_SUPPRESS_TARGET_WARNING:-0}" < 1 )); then | |
| echo "Warning: supplying the --target $targetValue != @defaultTarget@ argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead." >&2 | |
| elif [[ $0 != *cpp ]]; then | |
| extraBefore+=(-target @defaultTarget@ @machineFlags@) | |
| if [[ "@explicitAbiValue@" != "" ]]; then | |
| extraBefore+=(-mabi=@explicitAbiValue@) | |
| fi | |
| fi |
Similarly for Rust.
nixpkgs/lib/systems/default.nix
Lines 478 to 512 in 45b438f
| # The name of the rust target, even if it is custom. Adjustments are | |
| # because rust has slightly different naming conventions than we do. | |
| rustcTarget = | |
| let | |
| inherit (final.parsed) cpu kernel abi; | |
| cpu_ = | |
| rust.platform.arch or { | |
| "armv7a" = "armv7"; | |
| "armv7l" = "armv7"; | |
| "armv6l" = "arm"; | |
| "armv5tel" = "armv5te"; | |
| "riscv32" = "riscv32gc"; | |
| "riscv64" = "riscv64gc"; | |
| } | |
| .${cpu.name} or cpu.name; | |
| vendor_ = final.rust.platform.vendor; | |
| abi_ = | |
| # We're very explicit about the POWER ELF ABI w/ glibc in our parsing, while Rust is not. | |
| # TODO: Somehow ensure that Rust actually *uses* the correct ABI, and not just a libc-based default. | |
| if (lib.strings.hasPrefix "powerpc" cpu.name) && (lib.strings.hasPrefix "gnuabielfv" abi.name) then | |
| "gnu" | |
| else | |
| abi.name; | |
| in | |
| # TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL. | |
| args.rust.rustcTarget or args.rustc.config or ( | |
| # Rust uses `wasm32-wasip?` rather than `wasm32-unknown-wasi`. | |
| # We cannot know which subversion does the user want, and | |
| # currently use WASI 0.1 as default for compatibility. Custom | |
| # users can set `rust.rustcTarget` to override it. | |
| if final.isWasi then | |
| "${cpu_}-wasip1" | |
| else | |
| "${cpu_}-${vendor_}-${kernel.name}${optionalString (abi.name != "unknown") "-${abi_}"}" | |
| ); |
But for calls from rust-bindgen to Clang, this fixup seems to be missing & results in our normal triplet being used, hence the error?
System metadata
- system:
"x86_64-linux" - host os:
Linux 6.18.1, NixOS, 25.11 (Xantusia), 25.11.1948.c6f52ebd45e5 - multi-user?:
yes - sandbox:
yes - version:
nix-env (Lix, like Nix) 2.94.0 System type: x86_64-linux Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux Features: gc, signed-caches System configuration file: /etc/nix/nix.conf User configuration files: /home/puna/.config/nix/nix.conf:/etc/xdg/nix/nix.conf:/home/puna/.nix-profile/etc/xdg/nix/nix.conf:/nix/profile/etc/xdg/nix/nix.conf:/home/puna/.local/state/nix/profile/etc/xdg/nix/nix.conf:/etc/profiles/per-user/puna/etc/xdg/nix/nix.conf:/nix/var/nix/profiles/default/etc/xdg/nix/nix.conf:/run/current-system/sw/etc/xdg/nix/nix.conf:/nix/store/2v5idvgi7496akyxzk6030853sl8bw6b-gnome-settings-daemon-49.1/etc/xdg/nix/nix.conf:/nix/store/2v5idvgi7496akyxzk6030853sl8bw6b-gnome-settings-daemon-49.1/etc/xdg/nix/nix.conf Store directory: /nix/store State directory: /nix/var/nix Data directory: /nix/store/aijhgvgyw36h9vr6l6grclz3q35283yq-lix-2.94.0/share - channels(bt1cn):
"unstable" - channels(root):
"nixos-25.11, unstable" - nixpkgs:
/nix/var/nix/profiles/per-user/root/channels/nixos
Notify maintainers
Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)
I assert that this issue is relevant for Nixpkgs
- I assert that this is a bug and not a support request.
- I assert that this is not a duplicate of an existing issue.
- I assert that I have read the NixOS Code of Conduct and agree to abide by it.
Is this issue important to you?
Add a 👍 reaction to issues you find important.