!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

423 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.143 Servers

Load older messages


SenderMessageTime
26 Jul 2025
@aloisw:julia0815.dealoiswWait it does things other than adding an overlay?16:42:57
@emilazy:matrix.orgemilymostly enumerating exceptions to a general overlay16:42:57
@qyriad:katesiria.orgQyriadSo most of the logic is in the overlay16:43:11
@emilazy:matrix.orgemily as opposed to explicitly having nix-direnv, nix-eval-jobs, etc. like lixPackageSets does (which is more upstreamable) 16:43:17
@qyriad:katesiria.orgQyriad It also adds two configuration options for optionally disabling Lix 16:43:27
@emilazy:matrix.orgemily OTOH, boehmgc, editline, etc. would certainly have to go 16:43:33
@aloisw:julia0815.dealoisw
In reply to @emilazy:matrix.org
as opposed to explicitly having nix-direnv, nix-eval-jobs, etc. like lixPackageSets does (which is more upstreamable)
Ah, I see what you want to do. Your suggestion might actually be enough for that.
16:44:13
@qyriad:katesiria.orgQyriad I stand corrected: just one https://git.lix.systems/lix-project/nixos-module/src/commit/4d4c2b8f0a801c91ce5b717c77fe3a17efa1402f/module.nix#L7-L13 16:44:16
@emilazy:matrix.orgemily"I" here is just "my understanding of the plan to upstream the module as seen in https://wiki.lix.systems/books/lix-contributors/page/2025-06-26-lix-nixos-module"16:44:44
@emilazy:matrix.orgemily admittedly, if nix = lix; was added, you'd start needing all the exceptions again 16:44:54
@emilazy:matrix.orgemily anyway I guess you'd either need to move the internal deps like editline into another scope, or you'd need to move the "stuff overridden to use Lix" into a sub-scope that can be used as an overlay. 16:45:55
@emilazy:matrix.orgemily and then you have the question of whether to nix = lix; (I think nixForLinking was meant to make this possible without needing exception hacks) or just enumerate stuff to override 16:46:21
@aloisw:julia0815.dealoisw Lol nixForLinking was made to not be overridden by Lix? 16:47:32
@emilazy:matrix.orgemilythat's my understanding16:47:56
@emilazy:matrix.orgemily (I think it was originally cppnix? with predictable results.) 16:48:18
@emilazy:matrix.orgemilyblanket overriding stuff that links against the API doesn't make sense since there's no promise of compatibility there, I think. though in some cases I imagine the issue is just the number of rebuilds16:48:58
@aloisw:julia0815.dealoisw

I must have been lucky then my configuration did not break given its overlay has:

nix = stableLix;
nixForLinking = stableLix;
nixVersions = builtins.throw "nixVersions is disabled";
16:49:03
@emilazy:matrix.orgemily I guess now that nix-prefetch-git doesn't pull Nix into a billion closures it's probably not that many rebuilds 16:49:33
@aloisw:julia0815.dealoisw How many packages depend on nix-prefetch-git outside of fixed-output derivations?! 16:50:37
@aloisw:julia0815.dealoisw I do remember a couple of infinite recursions involving that, but I think it did not even use nixForLinking? 16:51:06
@piegames:flausch.socialpiegamesnpins etc.16:52:46
@emilazy:matrix.orgemilyI remember it was a lot but I don't remember why.16:53:24
@emilazy:matrix.orgemilywell, it doesn't link. it shells out. but it no longer pulls in Nix by default I think16:53:42
@aloisw:julia0815.dealoiswAnyway regarding exposing the overlay from nixpkgs, it seems that trying to add the overlay to the same pkgs instance used to get it will cause infinite recursion.16:54:24
@emilazy:matrix.orgemily
    "prefetch-yarn-deps" # force these onto upstream so we are not regularly rebuilding electron

has some clue

16:54:25
@emilazy:matrix.orgemily with prev, not final? 16:54:44
@aloisw:julia0815.dealoisw I have tested something like let pkgs = import ./. { overlays = [ pkgs.dummyOverlay ]; }; in pkgs. 16:55:19
@piegames:flausch.socialpiegames nixpkgs = import <nixpkgs> { overlays = [ (self: super: { myOverlay = self: super: {}; }) (self: super: super.myOverlay self super) ]; } works though 16:56:50
@piegames:flausch.socialpiegames So import <nixpkgs> { overlays = [ (self: super: super.ourLixOverlay self super) ]; } should work 16:57:50
@piegames:flausch.socialpiegameswhich is basically like that one except the overlay gets access to its inputs, in a way16:58:29

Show newer messages


Back to Room ListRoom Version: 10