!OHimLTKAXNbFrEoogf:matrix.org

Nix Milan

110 Members
https://milano.nix.pizza/7 Servers

Load older messages


SenderMessageTime
2 Nov 2025
@telegram_463188749:t2bot.ioAlessandro Candido17 MB e' la risorsa che identifica o l'URL stesso? (comunque no, nessuna idea)15:08:01
@telegram_7189191315:t2bot.iogecko Unrelated, c'ho un URL da 17MB che non cambia mai che devo fetchare ad evaluation-time (contiene una serie di coppie (URL, hash)). Potrei usare builtins.fetchurl ma a quanto capisco cacha solo per un'ora e quindi ogni ora dovrei fetcharmi tutto il file. builtins.fetchtarball mi permette di specificare un hash, che è bello, ma a quanto capisco cacha comunque solo per un'ora. Idee? 14:57:54
@telegram_73824637:t2bot.ioAndrea Ciceri Se vuoi una versione ancora piu' pompata c'e' pure writeShellApplication che fa anche andare shellcheck nella checkPhase della derivazione 15:46:45
@telegram_73824637:t2bot.ioAndrea Ciceri Inoltre e' una derivazione, quindi ha una closure e si porta dietro tutte le dipendenze. Se dentro lo script usi tipo ${pkgs.foo}/bin/foo allora la derivazione si porta dietro foo 15:46:13
@telegram_73824637:t2bot.ioAndrea Ciceri
In reply to gecko
Unrelated, c'ho un URL da 17MB che non cambia mai che devo fetchare ad evaluation-time (contiene una serie di coppie (URL, hash)). Potrei usare builtins.fetchurl ma a quanto capisco cacha solo per un'ora e quindi ogni ora dovrei fetcharmi tutto il file. builtins.fetchtarball mi permette di specificare un hash, che è bello, ma a quanto capisco cacha comunque solo per un'ora. Idee?
perche' proprio ad eval time? IMO e' meglio evitare il piu' possibile, se e' per scaricare roba "privata" puoi aggiungere token al file pntato da nix-netrc.
Comunque credo che usando pure-eval (di default se usi i flake) builtins.fetchurl dovrebbe chiederti anche un hash, immagino tu non stia usando i flake pero' magari puoi comunque passarglielo l'hash?

Tra l'altro dove hai letto che cacha solo per un'ora? Non la trovo nella documentazione
15:42:24
@telegram_73824637:t2bot.ioAndrea Ciceri
In reply to gecko
Qual è il vantaggio di usare writeShellScriptBin invece che creare a mano uno script e fare chmod +x? 🤔 Non mi è chiaro perché avrebbe senso star lì a creare una derivazione per una cosa usata solo in un punto.
writeShellScriptBin ritorna una derivazione che una volta buildata produce una una cartella contenente bin/tuo-script.sh.
Quindi pui fare tipo environment.systemPackages = [ (writeShellScriptBin {...}) ]
15:44:40
@telegram_7189191315:t2bot.iogecko
In reply to Andrea Ciceri
perche' proprio ad eval time? IMO e' meglio evitare il piu' possibile, se e' per scaricare roba "privata" puoi aggiungere token al file pntato da nix-netrc.
Comunque credo che usando pure-eval (di default se usi i flake) builtins.fetchurl dovrebbe chiederti anche un hash, immagino tu non stia usando i flake pero' magari puoi comunque passarglielo l'hash?

Tra l'altro dove hai letto che cacha solo per un'ora? Non la trovo nella documentazione
Hai ragione, la doc di fetchtarball dice cacha un'ora, fetchurl no. Però se provi la seconda volta è più veloce.

Non sto usando i flake, ma mi pare strano che la funzione prenda un argomento in più se sei in un flake 🤔 In realtà questo diventerà parte di un flake.
Comunque non è roba privata, è che sono proprio gli URL di cui voglio fare pkgs.fetchurl, che quindi devo fare a evaluation time (credo).
Io vorrei una roba che cachi indefinitamente e chi mi chiede l'hash.
L'URL è questo btw: https://download.visualstudio.microsoft.com/download/pr/5011a9cc-e8ef-42cb-ad72-87de1031accc/b674dd46f83a684142689b3a86c73ba5f2e2477018087e4df218516214bbad58/VisualStudio.vsman
16:40:04
@telegram_7189191315:t2bot.iogecko A 'sto punto non mi è ben chiaro l'uso di builtins.fetch{url,tarball} 🤔 17:01:29
@telegram_7189191315:t2bot.iogecko Mmh, dici di fare semplicemente builtins.readFile (pkgs.fetchurl ...)? Pensavo fosse haram, ma forse funziona. 17:00:50
@telegram_7189191315:t2bot.iogeckoIDF?17:05:00
@telegram_7189191315:t2bot.iogecko OK, quindi quello che dicevo prima builtins.readFile. Se funziona figo, di nuovo però non capisco perché non usare sempre questo invece che builtins.fetchtarball. 17:07:09
@telegram_7189191315:t2bot.iogeckoI guess per funzionare anche se non hai abilitato IFD17:08:11
@telegram_7189191315:t2bot.iogeckoIo ne ho bisogno ad evaluation time17:02:58
@telegram_41776856:t2bot.ioMarco TurchettoSe non passi per il build time, non puoi fare caching nel nix store17:04:49
@telegram_41776856:t2bot.ioMarco TurchettoLol, IDF lo scambio sempre 🙈17:05:44
@telegram_41776856:t2bot.ioMarco TurchettoHai bisogno del valore ad evaluation time, ma questo non implica che tu lo debba scaricare ad eval time, puoi fare una IDF17:04:03
@telegram_41776856:t2bot.ioMarco TurchettoCredo tu abbia bisogno dei pkgs.fetch* invece dei builtins.fetch*16:57:02
@telegram_41776856:t2bot.ioMarco Turchetto Nixpkgs Reference Manual
https://nixos.org/manual/nixpkgs/stable/#chap-pkgs-fetchers
16:57:02
@telegram_41776856:t2bot.ioMarco TurchettoImport From Derivation17:05:16
@telegram_41776856:t2bot.ioMarco TurchettoIl tldr è che il download avviene in fasi diverse, evaluation Vs build time, c'è una tabellina riassuntiva nella doc17:02:11
@telegram_7189191315:t2bot.iogecko Bene, ho speso un paio d'ore a convertire uno script Python in nix e ora dovrei pure scrivermi un convertitore da SHA256 in hex a base64 (SRI). (no, c'è builtins.convertHash). A ben pensarci, dato che non posso evitare IFD, tantovale teneremi lo script Python :| 19:40:25
@telegram_41776856:t2bot.ioMarco TurchettoMa perché vuoi evitare l'IFD? Cioè non è il top in certi casi ma non è nemmeno il male assoluto22:52:50
3 Nov 2025
@telegram_7189191315:t2bot.iogecko Ma no infatti, era solo una cosa che se evitavo preferivo. Comunque alla fine convertHash saves the day e son riuscito a fare tutto in pure nix (eccetto builtins.readFile che è IFD). Mi resta il dubbio se fosse meglio usare builtins.fetchurl ma va beh. 07:55:24
@telegram_73824637:t2bot.ioAndrea Ciceri Ah senno' se non vuoi usare i flake ma vuoi un tool cli che ti fa pinnare roba e metterla in un lockfile c'e' questo: https://github.com/andir/npins 09:04:31
@telegram_73824637:t2bot.ioAndrea Ciceri(non consiglio ma vorrei provarci un giorno, anche solo per cazzeggio)09:02:49
@telegram_73824637:t2bot.ioAndrea Ciceri Comunque per use case molto estremi puoi creare nuove builtin (tipo questa per convertire gli hash) compilando un plugin e facendolo caricare dinamicamente a nix: https://nix.dev/manual/nix/2.24/command-ref/conf-file.html#conf-plugin-files 09:02:18
@telegram_73824637:t2bot.ioAndrea Ciceri
In reply to gecko
Hai ragione, la doc di fetchtarball dice cacha un'ora, fetchurl no. Però se provi la seconda volta è più veloce.

Non sto usando i flake, ma mi pare strano che la funzione prenda un argomento in più se sei in un flake 🤔 In realtà questo diventerà parte di un flake.
Comunque non è roba privata, è che sono proprio gli URL di cui voglio fare pkgs.fetchurl, che quindi devo fare a evaluation time (credo).
Io vorrei una roba che cachi indefinitamente e chi mi chiede l'hash.
L'URL è questo btw: https://download.visualstudio.microsoft.com/download/pr/5011a9cc-e8ef-42cb-ad72-87de1031accc/b674dd46f83a684142689b3a86c73ba5f2e2477018087e4df218516214bbad58/VisualStudio.vsman
> ma mi pare strano che la funzione prenda un argomento in più se sei in un flake

Invece e' proprio cosi', una delle critiche ai flake infatti e' che fanno troppe cose tutte assieme (https://samuel.dionne-riel.com/blog/2023/09/06/flakes-is-an-experiment-that-did-too-much-at-once.html)
Anche se nel caso particore della pure evaluation mode credo sia possibile attivarla anche senza flake (mai provato).
Anche perche' senza hash come fa nix a garantire ad eval time che la roba scaricata dall'url sia sempre le stessa? Stesso motivo per cui nella pure eval mode non puoii fare builtins.getEnv o builtins.system
Comunque se hai intenzione di usare i flake perche' non dichiari sta roba come input del flake direttamente?

Sotto usa sempre builtins.fetchurl credo e lo fa ad eval time (lockando nel flake.lock)

Anche se onestamente, se l'url non cambia spesso andrei di IFD e via...
08:58:49
@telegram_73824637:t2bot.ioAndrea Ciceri Si dice qualcosa qui: https://nix.dev/manual/nix/2.25/command-ref/conf-file#conf-pure-eval
(comunque abbastanza vago)
13:25:32
@telegram_73824637:t2bot.ioAndrea Ciceri > Ma dov'è che è documentata 'sta cosa? Nella doc di fetchurl non se ne fa menzione.

in effetti non dove la doc parla di builtins.fetchurl, forse una menzione ci stava li' siccome comunque moltissima gente parte direttamente coi flake
13:25:10
@telegram_73824637:t2bot.ioAndrea Ciceriesattamente questo intendevo13:24:03

Show newer messages


Back to Room ListRoom Version: 10