ChanServ changed the topic of #nixos-fr to: https://nixos.org || Salon francographe de NixOS || https://logs.nix.samueldr.com/nixos-fr
apeyroux has joined #nixos-fr
<apeyroux> bonjours :)
<apeyroux> je voulais savoir s'il y avait des parisiens dans le coin ?
<julm> apeyroux: pas moi :P
<julm> bon, la gem ruby libv8 et v8 sont pénibles, pour une raison que j’ignore libv8 ne veut pas utiliser le v8 de nix malgrès buildFlags = [ "--with-system-v8=true" ]; et essaye donc de compiler v8 depuis sa source (sans même passer un --no-history à gclient ce qui explose mon réseau et mon disque) /o\
<julm> c'est ballot parce que Discourse dépend de libv8
<julm> bon, en remplaçant v8 par v8_6_x dans le buildInputs de libv8 et en l’installant en version = "6.2.414.42.1" ça a l’air de se passer mieux
<julm> par défaut c'était libv8 en 6.7.288.46.1 et v8 en v8_3_16_14
<julm> rah non voilà mini_racer qui plante sur libv8 ou v8 maintenant
<julm> /nix/store/g64s798cz2ma0p8hja8sy9m3mbfz4wfg-v8-6.2.414.27/include/v8.h:21:10: fatal error: memory: No such file or directory
<julm> mais pourtant je mets glibc dans buildInputs :(
<julm> glibc.dev même
<julm> hm, sans le .h c'est un truc différent on dirait
<julm> bon, il semblerait que gcc soit utilisé sur un .c qui est en fait du C++
<julm> WARNING: C++11 support is required for compiling mini_racer. Please make sure
<julm> you are using a compiler that supports at least C++11.
<julm> bon mais pk il l’utilise pas
<julm> c quoi don le paquet de g++
<julm> donc*
<samueldr> les compilateurs sont supposés être donnés par stdenv
<symphorien> export NIX_CFLAGS_COMPILE=-std=c++11
<symphorien> Je crois que le défaut est plus ancien
<julm> sans rien toucher
<julm> j'ai essayé de rajouter gccStdenv au buildInputs, ça change rien on dirait
<julm> symphorien: il essaye déjà de passer -std=c++11 on dirait : cc1: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C
<samueldr> on dirait bien que leur build system essaie d'utiliser gcc et non g++ pour compiler le fichier
<julm> c'est nul
<samueldr> c'est v8?
<julm> non
<julm> c'est la gem mini_racer
<julm> 817 mini_racer = {
<samueldr> ah ok, mais c'est suite à l'inclusion d'un header v8 (je me fiais au store path dans ton texte précédent)
<julm> 818 dependencies = ["libv8"];
<julm> 819 source = {
<julm> 820 remotes = ["https://rubygems.org"];
<julm> 821 sha256 = "1k5mh400lz7hhzvcxd2v4a0wk58vwp9qkywa6wkirrmmaqqc3qgc";
<julm> 822 type = "gem";
<julm> 823 };
<julm> 824 version = "0.2.0";
<julm> 825 };
<julm> oui, mini_racer dépend de libv8 qui dépend de v8
<julm> du coup je mets dans pkgs/development/ruby-modules/gem-config/default.nix :
<julm> 210 libv8 = attrs: {
<julm> 211 buildInputs = [ which v8_6_x python ];
<julm> 212 buildFlags = [ "--with-system-v8=true" ];
<julm> 213 };
<julm> 214
<julm> 215 mini_racer = attrs: {
<julm> 216 buildInputs = [ v8_6_x gccStdenv ];
<julm> 217 };
<julm> 'fin gccStdenv sert à rien
<samueldr> :( pas super le collage de lignes: freenode s'assure d'en laisser passer qu'une par seconde
<julm> ah le relou
<julm> me faudrait pouvoir reproduire le build manuellement pour le modifier éventuellement
<samueldr> je sais pas si tu ajoutais CXX = "g++"; dans l'attrset de mini_racer -> https://github.com/discourse/mini_racer/blob/master/ext/mini_racer_extension/extconf.rb#L19-L22
<samueldr> y'a peut-être quelque chose qui casse CONFIG['CXX'] ailleurs
<samueldr> (je regarde libv8)
<julm> mouhahaha, ya déjà des rigolos
<samueldr> ?
<samueldr> quoi que, stdenv déjà mets CXX à g++ :/
<julm> 133 spec, sourcå = found.max_by { |(s,_)| s.version }
<julm> sérieux…
<julm> c'est quoi ce caractère non-utf8
<samueldr> invalid multibyte char (UTF-8) <- c'est invalide ;)
<samueldr> (eh, tu as demandé c'était quoi!)
<julm> n'empêche c'est même pas l'erreur que donne nix
<samueldr> hmmm, jamais utilisé rvm alors je peux rien dire
<julm> ah oui bien vu
<julm> c'est le rvm que m'a fait installer Discourse
<julm> rien à voir avec nix
<julm> mais de fait c'est ce que ça utilise quand j'essaye de reproduire manuellement le plantage de mini_racer
<julm> vu que c'est chargé dans ~/.zlogin et ~/.zshrc
<julm> bon, j'ai corrigé l'utf-8 à la main et ça passe
<julm> bundle install && bundle exec rake compile
<julm> (au hasard…)
<julm> je suppose que rake c'est le make de ruby
<samueldr> c'est un make-like en ruby oui
<samueldr> c'est possible de l'utiliser pour des trucs non-ruby
<julm> en tout cas il mentionne cc1plus
<julm> et surtout je me demande comment il trouve v8.h comme un grand
<julm> ah, c'est le bundle install
<julm> qui utilise donc Using libv8 6.7.288.46.1 (x86_64-linux)
<julm> alors que mon nix propose libv8 (6.2.414.42.1)
<julm> changeons donc le Gemfile.lock
<julm> ça marche aussi bien
<julm> bon, me faut reproduire en ayant exactement l'environnement de nix
<julm> probablement en chargeant discourse.rubyEnv.env dans un nix-shell
<julm> mais comment, hmm
<julm> comment on fait un nix-shell -p sur un paquet de nixpkgs ?
<julm> on écrit forcément un shell.nix ?
<julm> pour nix build je fais juste: nix build -f . -p $package
<symphorien> nix-shell -A donne l'environnement pour compiler l'argument
<julm> j'ai l'air d'avoir un shell.nix qui marche
<julm> sinon j'ai aussi ça qui semble marche: nix-shell -I nixpkgs=$PWD -p discourse
<julm> marcher*
<julm> enfin, « marcher »… qui me redonne l’erreur de mini_racer
<julm> WARNING: You build with buildroot.
<julm> hmm
<julm> ce serait p'têt buildroot le coupable
<julm> qu'est-ce qu'il vient faire là lui
<samueldr> buildroot est un outil pour compiler des systèmes, un peu comme openwrt
<samueldr> c'est possible que le build system de ce que tu regardes assume quelque chose pour buildroot, qui est faux pour nix