IRC channel logs
2013-11-06.log
back to list of logs
<viric>civodul: kial antono ne aliĝis al guix? <civodul>he showed interest in it at the beginning <mark_weaver>My Yeeloong is still busy building new bootstrap tarballs for core-updates. I'd estimate it has a couple more days to go on that. <mark_weaver>I also had my x86_64 box try to build every package in Guix using core-updates. <mark_weaver>Here are the packages that I tried (but failed) to build on x86_64: apr-util, net-tools, qemu-1.5.1, qemu-with-multiple-smb-shares, and xf86-input-evdev. gnutls failed two tests the first time, but succeeded in a later attempt. <mark_weaver>and there are several other packages that I failed to _download_: evix2, ImageMagick, setuptools, simplejson, mechanize, PyICU, and pysqlite. <jmd>I'm having trouble understanding how to use guix. <jmd>I expected "guix build --no-substitutes pspp" to build pspp from source. But it doesn't seem to do that. <civodul>hmm that's definitely what it should do <jmd>If it does, it does it very fast. <viric>maybe you already had it built <jmd>Even after I remove it, it still just prints the /nix/store location <jxself>Aparently it's too much for civodul. :) <jmd>john@jocasta:~$ guix package --list-installed <jmd>john@jocasta:~$ guix build --no-substitutes pspp <jmd>/nix/store/8jsp2s8r4wpd71jg9msysbjc94naki7x-pspp-0.8.1 <jmd>$ time guix build --no-substitutes pspp <jmd>/nix/store/8jsp2s8r4wpd71jg9msysbjc94naki7x-pspp-0.8.1 <jmd>guix package --remove=pspp <viric>ah, that simply takes it out from your PATH. not from your disk <viric>(civodul will confirm; I know mostly nix, not guix) <jmd>how should it be done? <viric>with nix, "nix-store --delete /nix/store/...." <civodul>jmd: that's because it's already built <jmd>How do I unbuild it? <civodul>you can run the garbage collector to remove it, if it's unreferenced <jxself>Hey, mark_weaver is alive again. ;) <jmd>civodul: I did try that too <civodul>jmd: for instance you can run "guix gc --delete $(guix build pspp)" <civodul>if that fails, that means it's still "live" <jmd>civodul: Ok. So its still live. How do I kill it? <mark_weaver>speaking of gc, one of these days I want to add a GC mode that is more useful for people like me who use --no-substitutes. <mark_weaver>I ran it once and discovered to my dismay that the next time I wanted to update something, I had to recompile almost everything again from scratch. <civodul>mark_weaver: because nothing was referenced? <mark_weaver>well, the things in my profile were referenced, but not the things that are needed to build those things. <civodul>jmd: assuming you installed in in your profile, you can run "guix package --remove=pspp" <jmd>"guix package --list-installed" returns nothing. So nothing should be referenced, right? <mark_weaver>basically, I want a mode that includes as "live" anything that would be needed to build the things in the existing profiles. <civodul>jmd: then you need to remove the previous generation, which contained it (that will prevent roll-back) <civodul>and finally you can run "guix gc" as noted <civodul>to remove the previous generations, use "guix package --delete-generations" <civodul>mark_weaver: as a meantime you can manually add GC roots with "guix build --root" <mark_weaver>well, a lot of the intermediate packages are not the same as what you'd get by simply naming the package. <jmd>Ahh --delete-generations does the trick. <viric>mark_weaver, civodul: maybe you can disable the trim from 'build dependencies' to 'runtime dependencies'. <jxself>Oh, about 0.5. Isn't that enough of a To Do list? <mark_weaver>jxself: yeah, I'm not suggesting that we do this before 0.5 <civodul>viric: yeah; do you know about Nix's obscure options in that regard? <viric>Or you could get a list of all dependencies required (.drv) to build all live paths. <viric>civodul: no, I don't. I know there is a raw grep for every build input, and if there is no match, it goes out. <mark_weaver>it may be that there's some way to refer to those intermediate packages. <viric>civodul: one trick is, in every recipe: "echo $buildInputs > $out/.buildInputs" :) <civodul>that actually seems to be what mark_weaver is looking for <civodul>which means we'd just need to add command-line options for that in guix-daemon.cc <civodul>which could take up to 5mn (bikeshedding not included) <viric>I don't understand them much <viric>but this will keep anything that built fine, forever. <viric>ah no. maybe not. complicated. <mark_weaver>civodul: hmm. would gc-keep-derivations keep all of the inputs, transitively? <mark_weaver>from the description, it sounds like it would only keep the .drv files <jmd>So now I am running "guix build --no-substitutes pspp" but is seems to have ignored the --no-substitutes <mark_weaver>basically, I want to keep all the inputs to the live packages, and all of the inputs to those inputs, etc. <civodul>mark_weaver: don't ask me, i said i don't quite understand'em :-) <civodul>i'd need to wrap my head around those descriptions <mark_weaver>okay. at the moment, I'm just never deleting anything, but I can only keep that up for so long :) <jmd>Or perhaps the --no-substitutes applies only to the named package, and not it's dependencies? <mark_weaver>jmd: well, I pass --no-substitutes to guix-daemon, which is supposed to disable is globally. <mark_weaver>I'm not sure precisely what happens when you pass --no-substitutes to one of the client commands. <civodul>mark_weaver: that disables substitutes for all the derivations it will build <civodul>do you think the manual should be improved in that regard? <mark_weaver>well, my personal opinion is that until substitutes are authenticated, they should be disabled by default, and that there should be big hard-to-ignore security warnings printed when you enable them. <civodul>mark_weaver: that does not answer my question :-) <civodul>i'll look into it for 0.5 if nobody else does <jmd>oh. Any way that I can circumvent the problem? <mark_weaver>civodul: well, if we limit my opinion to the manual, I think the manual should emphasize that --no-substitutes is a good idea for security. <civodul>jmd: in guix-daemon.cc, replace "settings.useSubstitutes = true;" by "settings.useSubstitutes = false;" <civodul>and then rebuild & restart the daemon <civodul>even a daemon warning is fine with me <civodul>but my question was on how we could improve the doc of what --no-substitutes does in client commands <jmd>OK. Thanks. I'll do that tomorrow. <mark_weaver>civodul: it would be better if the description of '--no-substitutes' for guix package described what it does, instead of referring the reader to the guix build docs. <mark_weaver>especially since the description in guix build is so brief. <civodul>i'm working on the snippet thing, BTW <jxself>It might be better if that lived on hydra itself, to avoid calls to Google?