| 5 Mar 2025 |
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 |
emily | a lot of things that user posts are wrong. you do have to copy your sources with pure eval though, which sort of reduces to being flakes in many ways people care about | 17:57:56 |