| 5 Nov 2025 |
Andrea Ciceri | credo che non ti andrebbe nemmeno senza fhs | 15:39:03 |
Andrea Ciceri | anche senza fhs il binario dipenderebbe da glibc o simili | 15:39:27 |
Andrea Ciceri | Se il binario e' compilato staticamente probabilmente andra' (improbabile che lo sia) Altrimenti potresti modificare usare removeReferencesTo sul binario per non farlo dipendere da niente. Poi fai un'altra derivazione (normale, input addressed, anche solo con runCommand) che prende questo binario dalla derivazione fixed output e usa patchelf su di lui | 15:38:46 |
Alessandro π€ββοΈπ | 2.5h su un host abbastanza potente | 15:20:57 |
Andrea Ciceri | comunque secondo me cosi' ti andra':
stdenv.mkDerivation {
name = "cef";
# This is a hack that should be fixed by envvar below
GIT_SSL_NO_VERIFY=true;
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
CURL_CA_BUNDLE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
buildCommand = ''
cp -r ${cefSrc}/* .
${cefBuildEnv}/bin/cefBuildEnv ${buildScript}
mkdir -p $out
cp -r tmp_download_dir/chromium/src/cef/binary_distrib $out/cef
'';
outputHash = lib.fakeHash;
outputHashAlgo = "sha256";
outputHashMode = "nar"; # nar: recursive Nix Archive
} | 15:17:36 |
Alessandro π€ββοΈπ | ahhh | 15:35:19 |
Alessandro π€ββοΈπ | beh ma cavoli vuol dire che tutte le derivazioni fixed-output non possono dipendere da glibc?? | 15:40:03 |
Alessandro π€ββοΈπ | ahah no prima si chiamava ceffa.nix perchΓ© avevo un altro cef.nix, ma Γ¨ praticamente quel file che vedi nel repo | 15:15:22 |
Alessandro π€ββοΈπ | sicuramente non lo Γ¨ | 15:38:57 |
Alessandro π€ββοΈπ | π€― | 15:40:11 |
Alessandro π€ββοΈπ | sΓ¬ in teoria | 15:35:00 |
Andrea Ciceri | niente, stavo delirando e cercando di rimouvere roba che vedevo in nix derivation show .#default ma non credo sia quello. Credo che l'errore lo vedi perche' la tua derivazione fixed output dipende da altre derivazioni a runtime (a build-time per forza e ci sta) Alla fine tu produci un binario dentro $out, giusto? | 15:31:28 |
Andrea Ciceri | non e' vero, non andra' comunque | 15:22:02 |
Andrea Ciceri | https://github.com/nixos/nixpkgs/blob/master/pkgs/development/libraries/libcef/default.nix
ma e' la stessa cosa?
EDIT: fixato il link | 15:49:17 |
Alessandro π€ββοΈπ | la cosa fastidiosa Γ¨ che ho appunto trovato il modo per usare l'archivio con i sorgenti di chrome... ma lui continua ad usare depot-tools e se li scarica. ma mi pare ci fosse una flag per usare un checkout locale, in quel caso dovrebbe bastare e potrei rimuovere la FOD | 15:46:36 |
Andrea Ciceri | ah c'e' anche [nuke-references](https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/nuke-references/default.nix) invece di removeReferencesTo, non so bene cosa cambia | 15:43:10 |
Alessandro π€ββοΈπ | ma magari riesco a fare qualche trick per evitare di scaricare tutto e quindi evitare la FOD | 15:43:00 |
Alessandro π€ββοΈπ | infatti non mi spiacerebbe, se riesco a farlo funzionare, contribuire a nixpkgs in modo da avere anche una versione che arriva da sources | 16:02:03 |
Alessandro π€ββοΈπ | intanto grazie per l'aiuto | 15:43:26 |
Andrea Ciceri | magari sto dicendo cavolate, ho pochissima esperienza con fixed output derivation scritte a mano | 15:41:12 |
Alessandro π€ββοΈπ | eh esatto, Γ¨ la stessa cosa, ma io devo cambiare delle impostazioni durante la build | 16:01:29 |
Andrea Ciceri | comunque che io sappia in nixpkgs le fod vengono usate solo fetchare roba, non per compilare binari e cose cosi' | 15:41:55 |
Alessandro π€ββοΈπ | sΓ¬, infatti proverΓ² a fare cosΓ¬ | 15:45:30 |
Andrea Ciceri | eh la cosa piu' pulita sarebbe configurare la build e/o patchare qualcosa per fargli usare roba che scarichi tu con nix invece che farla scaricare a lui direttamente | 15:43:45 |
Andrea Ciceri | Pero' non lo sta buildando, scarica il binario gia' buildato e lo patcha con patchelf | 15:51:08 |
Andrea Ciceri | di niente, e' molto interessante sta roba per me, mi incasino sempre tra dipendenze runtime e buildtime (ovvero tra la closure dell'outPath e la closure del drvPath credo)
Tipo ora non ci avevo pensato che in effetti non puoi conoscere la closure a runtime senza prima aver buildato | 15:46:13 |
Alessandro π€ββοΈπ | https://discourse.nixos.org/t/error-illegal-path-references-in-fixed-output-derivation/56749
ci devo guardare perchΓ© sembra che tu abbia ragione | 15:42:40 |
Andrea Ciceri | In reply to Alessandro π€ββοΈπ beh ma cavoli vuol dire che tutte le derivazioni fixed-output non possono dipendere da glibc?? possono usare a tempo di build tutto quello che vogliono ma dentro $out non ci possono mettere roba che dipende da glibc o qualsiasi altra derivazione | 15:40:50 |
Alessandro π€ββοΈπ | a proposito di ccache, TIL: https://github.com/mozilla/sccache che sembra molto figo: ccache con storage in locale o remoto e anche distributed build | 17:33:46 |
David | In reply to Andrea Ciceri forse a me funziona senza perche' uso sudo-rs e li' e' il default? no, Γ¨ perchΓ© usi il nuovo nixos-rebuild: https://github.com/NixOS/nixpkgs/issues/355746#issuecomment-3491710789 | 18:47:13 |