| 5 Mar 2025 |
John Ericson | Also FYI https://github.com/facebook/buck2/issues/866 | 17:25:21 |
John Ericson | I sent to @edef1c too | 17:27:02 |
puck | In reply to @roberthensing:matrix.org John Ericson: I've suggested to treat the Nixpkgs "fix" for the CA placeholder issue (no storedir prefix) as a workaround as ca-derivations is experimental https://github.com/NixOS/nixpkgs/pull/386774#pullrequestreview-2660479310 builtins.placeholder has the same "issue", though i like them not being /nix/store-prefixed because it disambiguates that their format is unstable | 17:31:38 |
Robert Hensing (roberth) | That one isn't experimental, so we'd need a very very good reason to change that anyway | 17:33:35 |
emily | I don't suppose Nix strings support NUL bytes in them so that we could properly separate the namespace from actual filesystem paths? in the same way abstract Unix sockets do | 17:33:47 |
Robert Hensing (roberth) | Also isn't user-handled as much as outputs are | 17:34:04 |
Robert Hensing (roberth) | Evaluator strings are C strings. This could be changed to something with a length, but we're not in a hurry. I guess one of those separator control characters could serve the same role, but I feel that it'd be weird to do any of that (regardless of choice of byte value) | 17:35:50 |
emily | NUL is the only byte that is actually guaranteed to not be allowed on Linux anyway (though of course other platforms exist too) | 17:38:44 |
emily | so no advantage to anything else | 17:38:48 |
| Naxdy changed their profile picture. | 18:03:52 |
| 6 Mar 2025 |
| @maikelfrias:matrix.org joined the room. | 02:33:30 |
| @maikelfrias:matrix.org left the room. | 02:36:01 |
ElvishJerricco | I'm going to make this comment here because I think it is one of the most important things I've said in the world of NixOS. Please read this comment: https://discourse.nixos.org/t/determinate-nix-3-0/61202/57 | 21:33:50 |
| 7 Mar 2025 |
| Qyriad changed their display name from Qyriad to qyriad. | 16:03:20 |
| 8 Mar 2025 |
| Colgrave joined the room. | 03:22:45 |
fzakaria | Trying to figure out dynamic derivations;
I'd appreciate some tips | 06:07:58 |
fzakaria | Hitting some weird road blocks with what I think would work. | 06:08:14 |
fzakaria | Like:
warning: Ignoring dynamic derivation /nix/store/8apg4x2xbcx83xc0p1jk1qdiihkmhjyg-hello-2.12.1.drv.drv^out while querying missing paths; not yet implemented
error: Building dynamic derivations in one shot is not yet implemented.
| 06:08:22 |
tomberek | You might need a wrapping drv for now. | 06:20:45 |
fzakaria | Here is my strawman https://pastebin.com/wnHmj4pW | 06:46:30 |
fzakaria | i think it's a wrapping drv? | 06:46:36 |
| . joined the room. | 07:01:28 |
| ncfavier changed their profile picture. | 10:43:32 |
| deprecated, moved to @poz:poz.pet joined the room. | 12:27:30 |
deprecated, moved to @poz:poz.pet | hey, I added the modulo operator to nix: https://github.com/NixOS/nix/pull/12617
I'd be grateful for any reviews, likes under the PR or advice on how to get it merged quick (I've seen a lot of PRs be untouched for a long time and I'm not hopeful for mine) | 12:36:10 |
| TuXic joined the room. | 13:49:09 |
| Colgrave left the room. | 16:46:35 |
WeetHet | https://discourse.nixos.org/t/determinate-nix-3-0/61202/80
Pure eval doesn’t exist outside of flakes (unfortunately), that flag is more or less a broken promise.
I wonder what was meant by that? Does it mean that nix-build --pure-eval doesn't actually perform evaluation purely?
| 17:55:04 |
WeetHet | I don't think you can break evaluation purity with pure-eval | 17:55:47 |
WeetHet | And it's not like it's that difficult to use, I've ran nix darwin using this script for a couple of months just fine
{ pkgs ? import <nixpkgs> { }
, writeShellScriptBin ? pkgs.writeScriptBin
, directory
, ...
}:
writeShellScriptBin "darwin-rebuild-npins" ''
set -eo pipefail
pushd ${directory} > /dev/null
echo "building the system configuration..."
system=$(nix-instantiate --eval --expr builtins.currentSystem | tr -d \")
systemConfig=$(nix-build --pure-eval --no-out-link --argstr system $system --argstr name $(hostname) --expr "import (
builtins.path {
path = \"$(pwd)\";
sha256 = \"$(nix-hash --type sha256 --base32 .)\";
}
)" | tee /dev/tty)
profile=/nix/var/nix/profiles/system
if [ "$USER" != root ] && [ ! -w $(dirname "$profile") ]; then
sudo nix-env -p "$profile" --set "$systemConfig"
else
nix-env -p "$profile" --set "$systemConfig"
fi
"$systemConfig/activate-user"
if [ "$USER" != root ]; then
sudo "$systemConfig/activate"
else
"$systemConfig/activate"
fi
popd > /dev/null
''
| 17:57:44 |