!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

893 Members
For people hacking on the Nix package manager itself188 Servers

Load older messages


SenderMessageTime
1 Jul 2025
@emilazy:matrix.orgemily just checking I understand correctly that if all the assets are needed in the same derivation as part of a src = ./.; type thing it would still amount to copying the entire thing every time 12:00:24
@magic_rb:matrix.redalder.orgmagic_rb Yeah this is what im saying. Say youre building a godot game, you end up with src = ./., you cant do much with uh, whats was it filterTree 12:03:33
@roberthensing:matrix.orgroberthThe store references choice does make that easier to achieve. Otherwise, we're looking representations of store objects that don't reside in a real filesystem but in a FUSE store, and an underlying ca-store like tvix/snix. That would be great to have, but it's a lot of work12:03:44
@emilazy:matrix.orgemilyI think the practical solution is just to poke holes in the sandbox to access the underlying content-addressed annex store12:05:47
@emilazy:matrix.orgemilyand rewrite symlinks to point to it before you run your build12:05:56
@roberthensing:matrix.orgroberth Right, so to clarify, if your main goal is to distribute a built game, you should not use builtin fetchers for anything but Nix expressions, because those will be intermediate results, and only in case of FODs it's possible to optimize those away by virtue of the dependent being available and having no reference to the source 12:05:59
@roberthensing:matrix.orgroberthSo what we're left with is the "developer" use case12:06:15
@emilazy:matrix.orgemilyit is "reasonably" pure since things are still addressed by hash but it seems to me the only way to get builds involving >40 GiB of assets without years of experimental work on the Nix end12:06:25
@roberthensing:matrix.orgroberthFor development, presumably you want a quick build, so making asset processing fine grained with a derivation per asset would be the thing to do12:06:59
@magic_rb:matrix.redalder.orgmagic_rbTo clarify, i dont have an immediate use case for this. It would be nice, but so far i dont have a game id be developing lol12:07:17
@sinan:sinanmohd.comsinan changed their profile picture.12:07:52
@magic_rb:matrix.redalder.orgmagic_rb So this was more something i wanted to look at personally, but it seems i severely underestimated the complexity 12:09:11
@roberthensing:matrix.orgroberthIf you're ok with some eagerness for now, the complexity isn't so bad12:09:57
@roberthensing:matrix.orgroberthThis one's the easiest to implement, and it can follow the LFS pattern12:10:20
@magic_rb:matrix.redalder.orgmagic_rbHonestly even the eager version would be nice, currently it just leaves a bunch of dangling symlinks12:10:45
@magic_rb:matrix.redalder.orgmagic_rbSo option one, "deference it completely and return the file contents"12:11:07
@roberthensing:matrix.orgroberthyep12:11:16
@roberthensing:matrix.orgroberthThat one can follow the structure of the LFS implementation12:11:40
@magic_rb:matrix.redalder.orgmagic_rbCan it be done as a plugin or does it have to be done in tree?12:11:59
@magic_rb:matrix.redalder.orgmagic_rbWhile experimenting a plugin would be much easier12:12:10
@roberthensing:matrix.orgroberth(oh, it quoted the whole message lol)12:12:11
@roberthensing:matrix.orgroberthI don't feel like plugins are easier because I don't think libfetchers plugins have been done, but I could be wrong12:13:00
@magic_rb:matrix.redalder.orgmagic_rbWell ill trust you on this one, i know nothing about nix's codebase, ill see if i get to this till nixcon12:13:35
@magic_rb:matrix.redalder.orgmagic_rbThanks for the chat robert12:14:35
@roberthensing:matrix.orgroberthGlad I could help :)12:32:02
2 Jul 2025
@michael.zeagler:matrix.org@michael.zeagler:matrix.org left the room.02:12:28
3 Jul 2025
@aleksana:mozilla.orgaleksana 🏳️‍⚧️ (force me to bed after 18:00 UTC) Dumb question, why is queryDerive in perl binding having the different output from nix derivation show? And the former sometimes doesn't exist, for example for FOD derivation 03:35:44
@aleksana:mozilla.orgaleksana 🏳️‍⚧️ (force me to bed after 18:00 UTC)
=> diff <(nix derivation show /nix/store/l8k0pylnpwqygghg81xl0xd2gh6mwx51-hyprland-0.49.0.drv) <(nix derivation show /nix/store/wr5llaxf7b2hs9h4w57r1in3p27gip19-hyprland-0.49.0.drv)
2c2
<   "/nix/store/l8k0pylnpwqygghg81xl0xd2gh6mwx51-hyprland-0.49.0.drv": {
---
>   "/nix/store/wr5llaxf7b2hs9h4w57r1in3p27gip19-hyprland-0.49.0.drv": {
54a55,60
>       "/nix/store/07m7dxvrn127dxbkw1z560f9lqp0k1fy-systemd-257.6.drv": {
>         "dynamicOutputs": {},
>         "outputs": [
>           "dev"
>         ]
>       },
103c109
<       "/nix/store/8crp9ab8mh8n9px3jpybirplvyqmvyfi-aquamarine-0.8.0.drv": {
---
>       "/nix/store/88mr8yy390m73mml6j1yydssn4kgv2nw-xwayland-24.1.8.drv": {
106c112
<           "dev"
---
>           "out"
145,150d150
<       "/nix/store/dnlpqxhg50xmwxs85jqgzd29h4x8d2y9-systemd-257.6.drv": {
<         "dynamicOutputs": {},
<         "outputs": [
<           "dev"
<         ]
<       },
235c235
<       "/nix/store/qf8z2a2m2szv64q7fz1gc1cbaylzjx30-xcb-util-errors-1.0.1.drv": {
---
>       "/nix/store/nmkl6ljyvnfb778jdkahpjclzxdgm6fr-aquamarine-0.8.0.drv": {
241c241
<       "/nix/store/qvfgs67p2lg8xmy6lvj3wwx406ql5cjq-xwayland-24.1.8.drv": {
---
>       "/nix/store/qf8z2a2m2szv64q7fz1gc1cbaylzjx30-xcb-util-errors-1.0.1.drv": {
244c244
<           "out"
---
>           "dev"
04:16:53
@aleksana:mozilla.orgaleksana 🏳️‍⚧️ (force me to bed after 18:00 UTC) The left is from the second line of nix derivation show /nix/store/dc5vnmz4y7dmy2h5m1pri7ldpv2q4lv1-hyprland-0.49.0, and the right is from $store->queryDeriver("/nix/store/dc5vnmz4y7dmy2h5m1pri7ldpv2q4lv1-hyprland-0.49.0") 04:18:57
@aleksana:mozilla.orgaleksana 🏳️‍⚧️ (force me to bed after 18:00 UTC) I know it now. Same with https://github.com/NixOS/nix/issues/7562 04:38:09

Show newer messages


Back to Room ListRoom Version: 6