!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

920 Members
For people hacking on the Nix package manager itself194 Servers

Load older messages


SenderMessageTime
10 Mar 2026
@eveeifyeve:matrix.orgeveeifyeve* Speaking about patchelf, there has been discussion about using fixpath or some alternative instead, which I don't remember.07:26:18
@eveeifyeve:matrix.orgeveeifyeve* Speaking about patchelf, there has been discussion about using fixpath or some alternative instead, which I don't remember. But the reason is for windows and unix are very different binary formats eg. windows being Pe (portable exe), linux being elf, macos being mach-o.07:29:18
@dramforever:matrix.orgdramforeverif you mean https://github.com/nixcloud/fixPath i think that's PE-only, so "additionally", not "instead"07:33:45
@wamserma:nixos.dev@wamserma:nixos.dev left the room.08:45:47
@5ulu5:matrix.org@5ulu5:matrix.org left the room.12:07:25
@mtheil:scs.ems.host@mtheil:scs.ems.host left the room.14:24:52
@mkalv:matrix.orgMax Kalvesmaki joined the room.14:38:36
11 Mar 2026
@matthewahiles:matrix.orgMatthew Hiles joined the room.03:48:02
@pveierland:matrix.orgpveierland Did something change in the behavior of indirect flakeref resolution? nix registry resolve nixpkgs/a3a3dda3bacf61e8a39258a0ed9c924eeca8e293 works but nix registry resolve nixpkgs/nixos-unstable/a3a3dda3bacf61e8a39258a0ed9c924eeca8e293 fails with error: cannot apply both a commit hash (a3a3dda3bacf61e8a39258a0ed9c924eeca8e293) and a branch/tag name ('nixos-unstable') to input 'github:NixOS/nixpkgs/nixpkgs-unstable' 09:30:45
@ctheune:matrix.flyingcircus.ioTheuni changed their display name from Theuni to Christian Theune.14:11:47
@tyler_pb:matrix.orgTyler_PB joined the room.19:49:40
@lisanna-dettwyler:matrix.orgLisannaI'm trying to think of a way to asynchronously drain a file descriptor into a sink, is it safe to write to a sink from a different thread, assuming that's the only writer?21:51:32
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)I think source.drainInto(sink) is good for this, there are different overloads. A buffered sink only cares about having one writer22:10:32
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)(Same for the source too)22:10:55
@lisanna-dettwyler:matrix.orgLisannaalright, I'll give it a shot <322:13:57
@lisanna-dettwyler:matrix.orgLisanna man I don't even have nix registry resolve, is it new? 22:17:41
@lisanna-dettwyler:matrix.orgLisanna

Gonna try something like this:

AsyncPostBuildHookInfo info;
info.act = std::make_unique<Activity>(
    *logger,
    lvlTalkative,
    actPostBuildHook,
    fmt("running async-post-build-hook '%s'", worker.settings.asyncPostBuildHook),
    Logger::Fields{worker.store.printStorePath(drvPath)});
info.sink = std::make_unique<LogSink>(*info.act);
info.out = std::make_unique<Pipe>();
info.out->create();
info.out->writeSide.close();
info.handleOutput = std::thread([&](Descriptor readSide, Sink & sink) {
    drainFD(readSide, sink);
}, info.out->readSide.get(), *info.sink);

// PushActivity pact(info.act->id);

auto pid = runAsyncPostBuildHook(worker.settings, worker.store, *info.out, drvPath, outputPaths);

worker.asyncPostBuildHooks[pid] = std::move(info);
23:03:32
@lisanna-dettwyler:matrix.orgLisanna *

Gonna try something like this:

AsyncPostBuildHookInfo info;
info.act = std::make_unique<Activity>(
    *logger,
    lvlTalkative,
    actPostBuildHook,
    fmt("running async-post-build-hook '%s'", worker.settings.asyncPostBuildHook),
    Logger::Fields{worker.store.printStorePath(drvPath)});
info.sink = std::make_unique<LogSink>(*info.act);
info.out = std::make_unique<Pipe>();
info.out->create();
info.out->writeSide.close();
info.handleOutput = std::thread([](Descriptor readSide, Sink & sink) {
    drainFD(readSide, sink);
}, info.out->readSide.get(), *info.sink);

// PushActivity pact(info.act->id);

auto pid = runAsyncPostBuildHook(worker.settings, worker.store, *info.out, drvPath, outputPaths);

worker.asyncPostBuildHooks[pid] = std::move(info);
23:04:31
12 Mar 2026
@pveierland:matrix.orgpveierlandYeah, November 2025: https://github.com/NixOS/nix/commit/063cdb5508bb4a6917eff25e8f8da55ecfedae2e00:28:38
@lisanna-dettwyler:matrix.orgLisannayep, it works!01:16:43
@ctheune:matrix.flyingcircus.ioTheuni changed their display name from Christian Theune to Theuni.07:17:57
@dramforever:matrix.orgdramforever

i have made an abomination: binfmt-misc support in nix https://github.com/dramforever/nix/tree/binfmt-misc
see also tracking stuff in https://github.com/dramforever/nix/pull/25
tl;dr nix --extra-platforms x86_64-linux --binfmt-misc 'x86_64-linux=:x86_64-linux:M:...' build ...
"just" requires 6.7+ kernel and user namespaces, and it works with diverted store and uid-range

featuring: double namespacing!

not yet even draft pr quality, docs are "i may be here to answer questions", but it's working well enough that i think it's worth having y'all take a look

12:51:27
@dramforever:matrix.orgdramforever *

i have made an abomination: binfmt-misc support in nix https://github.com/dramforever/nix/tree/binfmt-misc
see also tracking stuff in https://github.com/dramforever/nix/pull/25
tl;dr nix --extra-platforms x86_64-linux --binfmt-misc 'x86_64-linux=:x86_64-linux:M:...' build ...
"just" requires linux 6.7+ kernel and user namespaces, and it works with diverted store and uid-range

featuring: double namespacing!

not yet even draft pr quality, docs are "i may be here to answer questions", but it's working well enough that i think it's worth having y'all take a look

12:52:20
@dramforever:matrix.orgdramforever basically, this lets you run emulated-native builds with something like pkgsStatic.qemu-user (e.g. non-cross aarch64-linux builds on x86_64-linux) without configuring the emulators globally. you don't even need root for that.
and also if you do have emulators configured globally this lets you get rid of them in the build sandbox, giving you more purity in cross builds.
13:10:32
@dramforever:matrix.orgdramforeverboot.emulatedSystems but (hopefully) better13:11:06
@dramforever:matrix.orgdramforever * basically, this lets you run emulated-native builds with something like pkgsStatic.qemu-user (e.g. non-cross aarch64-linux builds on x86_64-linux) without configuring the emulators globally. you don't even need root for that if you're fine with a diverted store.
and also if you do have emulators configured globally this lets you get rid of them in the build sandbox, giving you more purity in cross builds.
13:14:39
@artemist:nixos.devArtemis Tosini (NixOS)We were considering something somewhat related on FreeBSD at some point: configure the linuxulator in the nix sandbox runner so that we can run native linux derivations. It would be useful for bootstrapping some programming languages that only provide linux binaries (e.g. dotnet, rust on aarch64)15:10:28
@magic_rb:matrix.redalder.orgmagic_rb(Linuxulator lol, thought its something you just made up, nope its the term used by freebsd docs, lol)15:12:06
@popcorn:xaos.space@popcorn:xaos.space left the room.16:42:59
@sebastian:srx.digitalcrstl changed their profile picture.18:02:38

Show newer messages


Back to Room ListRoom Version: 6