13 Aug 2021 |
David Arnold (blaggacao) | Ah, I still need to refactor to use chroot to catapult into that mounted env were symlinks (/nix/store/... ) are valid, but that seems minor... 🙂 Tomorrow, then. | 06:14:00 |
@gytis-ivaskevicius:matrix.org | In reply to @timdeh:matrix.org Awesome. We can soon say goodbye to nixos-install and friends 🥳 what did i miss 👀 | 08:19:06 |
David Arnold (blaggacao) | In reply to @gytis-ivaskevicius:matrix.org what did i miss 👀 Me learnig rust 😀 | 14:03:21 |
d4hines | Does anyone happen to know if the config I define for home-manager (vanilla, not using digga) is merged with the default config? I.e, does:
some.attr = foo
always yield the same results as:
some = { attr = foo };
| 16:00:25 |
@timdeh:matrix.org | So in the Nix language itself yes some.attr = foo is equivalent to some = { attr = foo; } , but in the Nix module system used by NixOS and home-manager to define config options, merge rules are dependent on the type of the value. | 16:10:03 |
@timdeh:matrix.org | So for example if two separate modules declare a list for the same option, then those lists will be concatenated | 16:10:26 |
@timdeh:matrix.org | if two modules declare a bool for the same option there will arise a conflict if one is true and the other is false. | 16:10:53 |
@timdeh:matrix.org | Some modules expect a submodule, which is essentially an attribute set, and can accept as many submodules as you give it | 16:11:22 |
@timdeh:matrix.org | like the users.users.<some-user> options, some-user is considered a submodule. | 16:11:48 |
d4hines | Ok, so the value I give to home-manager is intelligently merged with the defaults (and any other modules I load as well), and if there are conflicts it fails to switch. | 16:13:45 |
@gytis-ivaskevicius:matrix.org | Dam thats a lot of PR's | 16:44:43 |
@timdeh:matrix.org | well it depends, sometimes defaults are overwritten | 16:44:51 |
@timdeh:matrix.org | like string defaults, for example | 16:44:57 |
@timdeh:matrix.org | In fact, is there any case where a default is not overwritten? | 16:45:06 |
@timdeh:matrix.org | If you mean the options you don't touch, then yes, they will remain their default value, but for anything you touch, I believe it's default is overwritten with whatever you supply. | 16:45:44 |
@timdeh:matrix.org | d4hines: ^^ | 16:58:53 |
d4hines | Cool. I’ve been writing out the full path for each attribute. I think I should be able to make my config more compact by using attribute sets. The glorious thing is that if I’m wrong I just git reset and reload! | 17:09:16 |
@timdeh:matrix.org | BTW, welcome back Gytis Ivaskevicius. I was worried you may have run into an unfortunate affair with a bus or something 😛 | 17:21:35 |
@gytis-ivaskevicius:matrix.org | no, it was worse - deadlines | 17:23:12 |
@gytis-ivaskevicius:matrix.org | 😂 | 17:23:14 |
@timdeh:matrix.org | At some point, we need to start reformulating rfc 96 for acceptance, and possibly begin patching the nix build chain to accept experimental flags at compile time (though maybe that's after it's officially accepted) | 17:27:05 |
David Arnold (blaggacao) | In reply to @d4hines:matrix.org Ok, so the value I give to home-manager is intelligently merged with the defaults (and any other modules I load as well), and if there are conflicts it fails to switch. In the context of the 'module system' you can thing of advanced merge semantics and any such semantic can be expressed. Unfortunately, it is implemented itself in nix and not yet a language feature. This is at the root of a bad as bad can be tracing experience, which often hangs somewhere in or through the module system. nickel to the rescue. | 18:16:20 |
David Arnold (blaggacao) | In reply to @d4hines:matrix.org Ok, so the value I give to home-manager is intelligently merged with the defaults (and any other modules I load as well), and if there are conflicts it fails to switch. * In the context of the 'module system' you can thing of advanced merge semantics and any such semantic can be expressed. Unfortunately, it is implemented itself in nix and not yet a language feature. This is at the root of a bad as bad can be tracing experience, which often hangs somewhere in or through the module system. nickel to the rescue. 🙏 | 18:16:49 |
David Arnold (blaggacao) | Is there a bind mount experw among us who can give me a sanity check on:
mkdir -p "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/tmp" "$mountPoint/etc"
chmod 0755 "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/tmp" "$mountPoint/etc"
mount --rbind /dev "$mountPoint/dev"
mount --rbind /sys "$mountPoint/sys"
touch "$mountPoint/etc/mtab"
mount --rbind $(readlink -f /proc/mounts) "$mountPoint/etc/mtab" # Grub needs an mtab.
exec chroot "$mountPoint" "CHROOTED=1 ${command[@]}"
| 18:18:30 |
David Arnold (blaggacao) | * Is there a bind mount expert among us who can give me a sanity check on:
mkdir -p "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/tmp" "$mountPoint/etc"
chmod 0755 "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/tmp" "$mountPoint/etc"
mount --rbind /dev "$mountPoint/dev"
mount --rbind /sys "$mountPoint/sys"
touch "$mountPoint/etc/mtab"
mount --rbind $(readlink -f /proc/mounts) "$mountPoint/etc/mtab" # Grub needs an mtab.
exec chroot "$mountPoint" "CHROOTED=1 ${command[@]}"
| 18:18:42 |
David Arnold (blaggacao) | * Is there a bind mount expert among us who can give me a sanity check on:
mkdir -p "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/tmp" "$mountPoint/etc"
chmod 0755 "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/tmp" "$mountPoint/etc"
mount --rbind /dev "$mountPoint/dev"
mount --rbind /sys "$mountPoint/sys"
touch "$mountPoint/etc/mtab"
mount --rbind $(readlink -f /proc/mounts) "$mountPoint/etc/mtab" # Grub needs an mtab.
exec chroot "$mountPoint" "CHROOTED=1 ${command[@]}"
| 18:18:55 |
David Arnold (blaggacao) | (worth doing read only bind mounts in some places?) | 18:19:31 |
@gtrunsec:matrix.org | In reply to @kraftnix:matrix.org yeah a default like host.wait_for("multi-user.target") or "default.target" might be better It works well for me https://github.com/GTrunSec/digga/commit/eb224906cad3e45bca621f76f7c45ae02830dc37 | 23:35:24 |
14 Aug 2021 |
@kraftnix:matrix.org | is nickel usable with nix/nixos at the moment? i would be really interested to try it out if it were | 02:58:49 |
@timdeh:matrix.org | it outputs json, so you could output static values. Though, since nix derivations already have substitution scripts, it would probably be easy enough to leave placeholders in the nickel such as @foo@ , and substitute dynamic values on the nix side | 03:03:49 |