| 8 Jan 2026 |
Pol | I always forgot about the Nix Rust room! | 13:08:59 |
Pol | I posted this (https://gist.github.com/drupol/41bef4037d1d4c116f5ffa6df6493e28) in the main Nix room, but I guess I should have posted it here. | 13:09:20 |
Pol | I'm trying to understand why overriding oldAttr.cargoDeps does not work. Can you help ? | 13:09:45 |
| wilhelmines joined the room. | 16:55:35 |
| pltrz set a profile picture. | 23:50:14 |
| 9 Jan 2026 |
| pltrz changed their profile picture. | 00:00:45 |
Theo Paris | I am trying to test the compilation of the Redox OS libc package (https://gist.github.com/theoparis/bbee869f1647e5c14a614d73ba9e6fd0) and I ran into an infinite recursion error that seems to be coming from inside of buildRustPackage. I guess no one has tried packaging a libc with it before... Is this something that I'm doing wrong or would it need to be fixed inside of the nixpkgs rust handling code? | 07:07:48 |
Theo Paris | * I am trying to test the cross compilation of the Redox OS libc package (https://gist.github.com/theoparis/bbee869f1647e5c14a614d73ba9e6fd0) and I ran into an infinite recursion error that seems to be coming from inside of buildRustPackage. I guess no one has tried packaging a libc with it before... Is this something that I'm doing wrong or would it need to be fixed inside of the nixpkgs rust handling code? | 07:07:56 |
Theo Paris | * I am trying to test the cross compilation of the Redox OS libc package (https://gist.github.com/theoparis/bbee869f1647e5c14a614d73ba9e6fd0) and I ran into an infinite recursion error that seems to be coming from inside of buildRustPackage. I guess no one has tried packaging a libc with it before... Is this something that I'm doing wrong or would it need to be fixed inside of the nixpkgs rust handling code somehow? | 07:08:21 |
| eveeifyeve joined the room. | 08:16:38 |
magnetophon | I'm trying to package https://github.com/zbanks/radiance
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
# autoPatchelfHook,
libxkbcommon,
mpv-unwrapped,
vulkan-loader,
stdenv,
darwin,
alsa-lib,
wayland,
xorg,
yt-dlp,
}:
rustPlatform.buildRustPackage rec {
pname = "radiance";
version = "0.7.0";
src = fetchFromGitHub {
owner = "zbanks";
repo = "radiance";
rev = version;
hash = "sha256-itBBUKwJAWfLPXZaJ65UbabDoZUUZtZm8bGAU0joVsQ=";
};
cargoLock.lockFile = ./Cargo.lock;
postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [
pkg-config
# autoPatchelfHook
];
buildInputs =
[
mpv-unwrapped
vulkan-loader
libxkbcommon
]
++ lib.optionals stdenv.isLinux [
alsa-lib
wayland
# X11 / XCB stack (required by winit + xkbcommon-dl)
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
xorg.libXinerama
xorg.libXpresent
xorg.libXfixes
xorg.libXext
# xorg.libXss
xorg.libxcb
# xorg.libX11-xcb
]
++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.AppKit
darwin.apple_sdk.frameworks.CoreGraphics
darwin.apple_sdk.frameworks.CoreServices
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.Metal
darwin.apple_sdk.frameworks.QuartzCore
];
propagatedUserEnvPkgs = [
yt-dlp
];
# Floating-point exact-equality bugs upstream
doCheck = false;
meta = {
description = "Video art software for VJs";
homepage = "https://github.com/zbanks/radiance";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ magnetophon ];
mainProgram = "radiance";
};
}
When I run it, I get:
❯ radiance
thread 'main' (1930947) panicked at /build/cargo-vendor-dir/xkbcommon-dl-0.4.2/src/x11.rs:59:28:
Library libxkbcommon-x11.so could not be loaded.
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::option::expect_failed
3: xkbcommon_dl::x11::xkbcommon_x11_handle
4: std::sync::poison::once::Once::call_once_force::{{closure}}
5: std::sys::sync::once::futex::Once::call
6: std::sync::once_lock::OnceLock<T>::initialize
7: winit::platform_impl::linux::common::xkb::Context::from_x11_xkb
8: winit::platform_impl::linux::EventLoop<T>::new
9: radiance::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Any ideas on how to fix that?
| 15:36:38 |
Epic Eric | I think you need to put libxkbcommon as a nativeBuildInput so it's available as a runtime dep | 15:38:49 |
K900 | That's not what nativeBuildInputs do | 15:39:14 |
K900 | And you probably need to add it to rpath | 15:39:18 |
Epic Eric | Oops | 15:39:22 |
magnetophon | Thanks. Like this?
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf \
--set-rpath "${lib.makeLibraryPath buildInputs}:$out/lib" \
$out/bin/radiance
'';
| 15:43:40 |
K900 | buildInputs is suboptimal | 15:44:01 |
K900 | You probably want only the things it dlopens | 15:44:08 |
magnetophon | ok, thanks.
I'll see if it runs with this (already building), and then minimize it. | 15:44:54 |
magnetophon | I still get:
❯ radiance
thread 'main' (2015441) panicked at /build/cargo-vendor-dir/xkbcommon-dl-0.4.2/src/x11.rs:59:28:
Library libxkbcommon-x11.so could not be loaded.
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::option::expect_failed
3: xkbcommon_dl::x11::xkbcommon_x11_handle
4: std::sync::poison::once::Once::call_once_force::{{closure}}
5: std::sys::sync::once::futex::Once::call
6: std::sync::once_lock::OnceLock<T>::initialize
7: winit::platform_impl::linux::common::xkb::Context::from_x11_xkb
8: winit::platform_impl::linux::EventLoop<T>::new
9: radiance::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Any ideas?
| 15:49:40 |
K900 | And libxkbcommon is in your buildInputs? | 15:50:24 |
magnetophon | This is with this snippet, so AFAIK all my buildInputs are in the rpath now. | 15:52:16 |
K900 | But what is in your buildInputs? | 15:53:02 |
magnetophon | buildInputs =
[
mpv-unwrapped
vulkan-loader
libxkbcommon
]
++ lib.optionals stdenv.isLinux [
alsa-lib
wayland
# X11 / XCB stack (required by winit + xkbcommon-dl)
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
xorg.libXinerama
xorg.libXpresent
xorg.libXfixes
xorg.libXext
# xorg.libXss
xorg.libxcb
# xorg.libX11-xcb
]
++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.AppKit
darwin.apple_sdk.frameworks.CoreGraphics
darwin.apple_sdk.frameworks.CoreServices
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.Metal
darwin.apple_sdk.frameworks.QuartzCore
];
| 15:53:35 |
K900 | Hmm weird | 15:54:29 |
K900 | What does patchelf --print-rpath $out/bin/radiance say? | 15:54:38 |
magnetophon | patchelf --print-rpath /nix/store/yhg16w5915bbvpadk8ibxj9x8kria7pw-radiance-0.7.0/bin/radiance
/nix/store/5vwc8q3c7hn7s01qbpsicv4zjk3p2nci-mpv-0.41.0/lib:/nix/store/f0mf3rlv29ql40qx36kqd2jzabd1m0s0-alsa-lib-1.2.14/lib:/nix/store/ii3ybky5dqjikcrw7vdnh1j76ssy0ycm-libx11-1.8.12/lib | 15:55:40 |
magnetophon | hmm, so it's missing a lot, right?
| 15:56:02 |
K900 | OK so that's not in there | 15:56:03 |
K900 | That's interesting | 15:56:07 |