!9IQChSjwSHXPPWTa:lix.systems

Lix

1105 Members
Lix user channel. Feel free to discuss on-topic issues here and give each other help. For matrix.to links to the rest of the Lix channels, see: https://wiki.lix.systems/books/lix-organisation/page/matrix-rooms295 Servers

Load older messages


SenderMessageTime
2 Dec 2025
@chair:summoner.websitechair changed their profile picture.17:59:52
@522_:catgirl.cloud522 it/its ⛯ΘΔ

(presumably not lix specific but im using lix so)
is there a way to always build (as opposed to just look up in the nix store) a derivation (dependencies can be substituted, that doesn't matter), without needing to just go "try --rebuild, if that fails it doesn't exist in the store, so try and build it, then use --rebuild again if that didn't actually build it)

basically, use case is for reproducible build checking, i'm considering writing a tool that just takes a .drv then builds it, then hashes the output directory and you can store the mapping from .drv to hash in a repo

19:51:18
@piegames:flausch.socialpiegames I fear not but it should exist really 19:55:09
@llakala:matrix.orgllakala i assume you already know about --check? 19:55:57
@522_:catgirl.cloud522 it/its ⛯ΘΔyeah afaik that's just the same as --rebuild you need it to be in your nix store before you can --check something19:56:29
@llakala:matrix.orgllakaladamn19:56:37
@aloisw:julia0815.dealoiswOnly simplification I'm aware of is that you can omit the first step, because building should be idempotent.20:07:16
@aloisw:julia0815.dealoisw Arguably it would be nice if --rebuild/--check could do both build and rebuild instead of fail on nonexistent paths. 20:08:57
@522_:catgirl.cloud522 it/its ⛯ΘΔwhat, so build (and ignore the hash) then --rebuild? yeah that works, but it's double the work if it didn't exist20:09:13
@aloisw:julia0815.dealoisw Ah, so you want more a targeted --option substitute false than more convenient --rebuild? 20:11:05
@522_:catgirl.cloud522 it/its ⛯ΘΔ i basically want "give me an output directory that was built on this device right now", yeah 20:12:03
@522_:catgirl.cloud522 it/its ⛯ΘΔso "don't give me what's in the nix store if it's in there already, don't fetch it from caches"20:12:20
@k900:0upti.meK900 I feel like --check should even build twice by default 20:12:27
@k900:0upti.meK900 And --rebuild should build or rebuild, yeah 20:12:34
@522_:catgirl.cloud522 it/its ⛯ΘΔthere's a cppnix flag to let you specify a number of times to build + rebuild iirc20:12:48
@522_:catgirl.cloud522 it/its ⛯ΘΔnot in lix tho20:12:51
@aloisw:julia0815.dealoisw
In reply to @k900:0upti.me
And --rebuild should build or rebuild, yeah
IIRC they are the same, just inconsistently named.
20:13:37
@522_:catgirl.cloud522 it/its ⛯ΘΔyeah20:13:43
@522_:catgirl.cloud522 it/its ⛯ΘΔ one's nix build and one's nix-build 20:13:50
@k900:0upti.meK900 Yes but they should be consistently named and also do different things 20:14:02
@522_:catgirl.cloud522 it/its ⛯ΘΔhttps://nix.dev/manual/nix/2.28/release-notes/rl-1.11.html?highlight=--option%20build-repeat20:15:02
@522_:catgirl.cloud522 it/its ⛯ΘΔ okay so build-repeat N is moreso for hydra 20:15:41
@aloisw:julia0815.dealoisw
In reply to @k900:0upti.me
Yes but they should be consistently named and also do different things
What different things? Basically I see 3 possibilities: rebuild or fail (current behaviour, probably garbage), always do a local build (522's suggestion, makes sense but both names are shit for that), and ensure a rebuild (potentially substituting or building before if it didn't exist).
20:20:41
@k900:0upti.meK900 --rebuild - ignore existing paths and substitutes, do a clean build, even if not currently in the store
--check - do two clean builds, diff them, keep both outpaths if different
20:23:30
@k900:0upti.meK900 * 20:24:27
@aloisw:julia0815.dealoisw Yeah I think --rebuild is a garbage name for that. 20:25:21
@k900:0upti.meK900 I think it's suboptimal but overall whatever it's fine 20:26:00
@aloisw:julia0815.dealoiswI guess there would also be a fourth option of ensuring it has been built locally at least once, but not sure how useful that is.20:29:14
@522_:catgirl.cloud522 it/its ⛯ΘΔanother way to look at it is have flags for "don't look in the nix store for the direct derivation being built" and "which substitutors should we use for the direct derivation?" (which would also let you easily ask if 2 caches agree on the output of a given .drv without needing to implement fetching code yourself, if that's useful)20:29:52
@raitobezarius:matrix.orgraitobezariusi didn't see it but22:09:56

Show newer messages


Back to Room ListRoom Version: 10