IRC channel logs

2013-11-06.log

back to list of logs

<trickstrr>hello
<civodul>hello!
<viric>civodul: kial antono ne aliĝis al guix?
<civodul>mi ne scias
<civodul>he showed interest in it at the beginning
<viric>aha
<mark_weaver>Hello friends!
<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.
<mark_weaver>s/evix2/exiv2/
<civodul>howdy!
<jmd>Hello
<civodul>hey jmd, good to see you here ;-)
<jmd>I'm having trouble understanding how to use guix.
<civodul>ah
<civodul>tell us :-)
<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
<civodul>what makes you think it doesn't?
<jmd>If it does, it does it very fast.
<jxself>Fast is good right?
<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>john@jocasta:~$
<jmd>$ time guix build --no-substitutes pspp
<jmd>/nix/store/8jsp2s8r4wpd71jg9msysbjc94naki7x-pspp-0.8.1
<jmd>
<jmd>real 0m4.802s
<viric>jmd: how do you remove it?
<jmd>user 0m4.156s
<jmd>sys 0m0.248s
<jmd>
<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/...."
<viric>I don't know with guix
<civodul>jmd: that's because it's already built
<civodul>so there's nothing to do
<jmd>How do I unbuild it?
<civodul>unbuild :-)
<civodul>you can run the garbage collector to remove it, if it's unreferenced
<jxself>Hey, mark_weaver is alive again. ;)
<mark_weaver>moin!
<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"
<civodul>hey mark_weaver!
<mark_weaver>hi civodul!
<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?
<civodul>or because it was intermediate?
<mark_weaver>well, the things in my profile were referenced, but not the things that are needed to build those things.
<mark_weaver>sorry, that was poorly worded.
<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: i see
<civodul>mark_weaver: as a meantime you can manually add GC roots with "guix build --root"
<civodul>*as a workaround
<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?
<jxself>:)
<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.
<civodul>i never quite understood them
<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>blech
<civodul>viric, mark_weaver: the options i had in mind are gc-keep-outputs and gc-keep-derivations: http://hydra.nixos.org/build/6695691/download/1/nix/manual.html#sec-conf-file
<civodul>and env-keep-derivations
<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)
<civodul>:-)
<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 :)
<civodul>heh
<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>s/disable is/disable it/
<mark_weaver>I'm not sure precisely what happens when you pass --no-substitutes to one of the client commands.
<civodul>jmd: are you on i686?
<civodul>mark_weaver: that disables substitutes for all the derivations it will build
<mark_weaver>okay
<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.
<jmd>Yes. I'm on i686
<civodul>mark_weaver: that does not answer my question :-)
<civodul>jmd: unfortunately there's a bug here: http://bugs.gnu.org/15314
<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>that should work
<civodul>and then rebuild & restart the daemon
<civodul>mark_weaver: agreed on that one
<civodul>even a daemon warning is fine with me
<mark_weaver>okay, I'll take what I can get :)
<civodul>but my question was on how we could improve the doc of what --no-substitutes does in client commands
<civodul>:-)
<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>good point
<civodul>i'll try something
<civodul>i'm working on the snippet thing, BTW
<mark_weaver>cool :)
<mark_weaver>btw, I noticed that when I visit http://hydra.gnu.org/, noscript says that it's blocking scripts from googleapis.com
<mark_weaver>does hydra.gnu.org use google services?
<jxself>jquery, it seems.
<mark_weaver>ah, indeed.
<jxself>It might be better if that lived on hydra itself, to avoid calls to Google?
<civodul>that sucks
<civodul>jxself: yes, definitely