| 5 Nov 2025 |
Alessandro π€ββοΈπ | nel frattempo ho capito perchΓ© non va ccache: la build avviene dentro buildFHSEnv, che non monta gli extra-sandbox-paths (forse c'Γ¨ una issue da aprire su questo) | 14:36:58 |
Andrea Ciceri | In reply to Alessandro π€ββοΈπ sent an image ma cosa e' ceffa? non c'e' nel tuo repo | 15:08:41 |
Andrea Ciceri | Quanto ci mette a buildare dicevi? | 15:18:45 |
Alessandro π€ββοΈπ | ma quando fa questo scan Γ¨ aware del fatto che sta lavorando dentro fhs? ho il timore di dovermelo patchare io in qualche modo | 15:38:46 |
Alessandro π€ββοΈπ | questo rende tutto molto piΓΉ chiaro | 15:35:57 |
Alessandro π€ββοΈπ | nix-ccache -s
Cacheable calls: 83 / 83 (100.0%)
Hits: 1 / 83 ( 1.20%)
Direct: 1 / 1 (100.0%)
Preprocessed: 0 / 1 ( 0.00%)
Misses: 82 / 83 (98.80%)
Local storage:
Cache size (GiB): 0.0 / 5.0 ( 0.07%)
Hits: 1 / 83 ( 1.20%)
Misses: 82 / 83 (98.80%)
che gioia, alla prossima build ci metterΓ meno :D | 15:24:22 |
Alessandro π€ββοΈπ | ah hai tolto src? perchΓ© dovrebbe cambiare? chiedo perchΓ© non capisco bene cosa sta succedendo, non per critica | 15:23:07 |
Andrea Ciceri | Nix dopo aver buildato la derivazione scannerrizza il binario e si salva da quali path dipende, ed e' qui che si accorge che hai una fixed output derivation che dipende da roba.
Infatti scommetto che se zippi il binario prima di metterlo in $out ti andra' (non e' una soluzione eh, ti perderesti le dipendenze e una volta scompattato punterebbe a path che magari non sono nello store) | 15:35:03 |
Alessandro π€ββοΈπ | btw dovrei essere appena riuscito ad abilitare ccache: serve passare un argomento extra (--bind x x) per bubblewrap quando si fa buildFHSEnv | 15:16:18 |
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 |