IRC channel logs
2014-09-21.log
back to list of logs
<jxself>Must be the added memory. Thanks, nully. <davexunit>so, I have figured out how to build all the derivation inputs of a package, but not the package itself. <davexunit>now, to figure out how to build an environment from that. *davexunit can't figure out how to acquire the environment variables that the nix daemon sets when building <davexunit>derivation-builder-environment-vars doesn't yield the same things that are set in the build environment. :( <tadni_>davexunit: My new guix install on my other fedora install is pulling everything from source automatically. <davexunit>I'm guessing you've already made sure that hydra's pubkey has been authorized? <tadni_>davexunit: Do you need to do this now, even on a non GNU Distro install? *tadni_ doesn't even have a guix in his /gnu/store currently. <tadni_>davexunit: I'm not needed to before, and I had subsitutes enabled. <tadni_>And I've had guix on like 5 host machines. <davexunit>well, I can pull substitutes from hydra without issue <tadni_>Hrm, well I guess I need to figure this out by this Friday -- or I guess I won't be doing guix hackathon this year... seeing my workstation now doesn't build the latest guix either. <davexunit>the standalone guix installation might automatically authorize hydra, I remember it not doing that, but it could very well have been changed. <tadni_>Shouldn't it be "guix archive --authorize < hydra.gnu.org.pub? <tadni_>"guix archive: error: s-expression does not denote a public key" <tadni_>Hrm, the file is empty... hydra.gnu.org.pub. <tadni_>davexunit: Weird, must have changed in the past 3 months at some point. *tadni_ is hopefully doing atleast clisp at the hackathon, maybe stumpwm. <davexunit>okay, so the set-paths phase of the gnu build system is what is setting the env vars I was wondering about. <davexunit>but since I'm not running the builder and not assuming that the package is using the gnu build system, I'm not sure what I can do with that information. <Tsyesika>hmm i can't do a guix pull it errors saying "guix pull: error: symlink: No sch file or directory" <Tsyesika>i'm passing the verbose flag and it's not giving me anything more useful (such as which file) <alezost>Tsyesika: do you have ~/.config directory? <alezost>Tsyesika: if no, create it and try again <davexunit>making a bit of progress on guix environment. <davexunit>in doing so, I realized that nix shell is more composable than I thought. <davexunit>by default, it spawns a new $SHELL, but you can instead use the --command flag to run a different program in the environment. so, guix environment doesn't seem to one-up nix shell after all. <Tsyesika>hopefully by tonight i'll have something packaged X *Tsyesika is doing a guix system reconfigure <davexunit>hmm why is guix downloading the source code to things like gcc when I'm building the input derivations of a package? <davexunit>wow, exporting a function from (guix build utils) causes rebuilds of all packages! gah! <davexunit>I understand why, now. different build code changes the hashes. <davexunit>has a mostly working 'guix environment' script <davexunit>hmmm how to get the native search paths from a derivation... <davexunit>from what I can tell, there's no reliable way to pull the necessary search paths out of a derivation <davexunit>they are part of the builder script, which could be any scheme code. <davexunit>and I'm unable to obtain all of the packages necessary for a build because of implicit inputs. <davexunit>if I could only get complete set of inputs for any package, I could simply iterate over their native search paths. <davexunit>or get a full set of search paths from a derivation... <davexunit>from what I've read of the nix-shell source, they assume that a phase called 'setup' exists and run it in the new shell. <davexunit>I think they can just do that because the phases are bash functions. <davexunit>in guix, there need not even be phases, the trivial build system doesn't have any. there's just a builder script. <davexunit>I guess I could avoid all of this pain if implicit inputs could be queried somehow. Although, implict inputs aren't constant for a build system. the python build system could use any version of python. This is a tough problem... <usrnix>Is there a typical package template file for making packages with guix? <davexunit>just look at the packages in gnu/packages/*.scm for examples <usrnix>Is the copyright at the top of the scm files of the people who edit the file or of the guix project? different packages have different lists <davexunit>the people who have contributed to that file <usrnix>I guess I should install guix then <usrnix>Where can I get the public key for the guix package? <mark_weaver>or use "gpg --recv-keys" to fetch it from a keyserver <usrnix>mark_weaver: That worked thanks - wow 374 keys <philed>What's the general recommended way with things like Ruby and Ocaml libraries? Just use things like opam/rubygems, or package them in guix? *jxself makes an evil laugh <davexunit>I made what I thought was a trivial change to guix's source code earlier today and it triggered a rebuild of all packages :x <Tsyesika>i'm sure rebuilding my entire gentoo install didn't take this long <davexunit>guix probably has more overhead, but also could be some unoptimized bits. <davexunit>jxself: a lot of nix is already written in c++ <davexunit>the nix daemon, the part that guix uses, is c++ <jxself>The bug should be to go in the other direction. :) <davexunit>c++, though static, is an upgrade in my mind. <davexunit>it at least makes things consistent. I've been reading the nix-build perl source code whilst I've failed to implement 'guix environment'. *jxself gives up trolling davexunit <Tsyesika>it must be installing every package there is or something <mark_weaver>davexunit: some of the files in guix/build/* are essentially implicit inputs to every build by default. <davexunit>mark_weaver: yes, I learned that the hard way. ;) <mark_weaver>heh, well, just revert the change and you should be all set again... <davexunit>yup. that's what I did once I figured out what the culprit was. <civodul>see the story about "code strata" under "G-Expressions" :-) <civodul>davexunit: thanks for the detailed analysis for 'guix environment', BTW <davexunit>civodul: thanks for responding so quickly. :) <civodul>i think that should work, but i sympathize with all the headaches you've endured <davexunit>I'm unsure if your suggestion will solve the problem completely, because from what I can tell, I will still be missing out on the search path specifications of implict inputs. <davexunit>for example, python is an implicit input to the python build system, and it has the PYTHON_PATH search path. *civodul scratches his head <davexunit>here I was thinking it would be easy when I started. :P <civodul>so each build system augment the search path specs, indeed <civodul>"implicit inputs" are really a double-edged sword <davexunit>I was thinking that maybe a build system should expose it's implicit inputs, but the implicit inputs can vary by package and by the type of build being performed. <davexunit>I guess that I will give nix a +1 for how trivial it was for them to add nix-shell. <civodul>yes, but OTOH --search-paths is basically impossible to get <civodul>search paths are not declarative in Nix <civodul>anyway, that doesn't help us here :-) <civodul>actually, would it be a problem to expose the implicit inputs of build systems? <civodul>after all, python.scm explicitly refers to 'standard-search-paths' <davexunit>they vary depending on the build being performed. the python build system may use any python package as implicit. <civodul>oh but there's #:implicit-inputs and #:python, right <davexunit>but yeah, ideally we'd be able to use the high-level package inputs. <davexunit>we don't really know what the implicit inputs are until the derivation is made, and you have to inspect the builder source to figure it out. <davexunit>and you can't go from derivation->package reliably. <civodul>of course there are hacks that could be done to get the result in most cases <civodul>i'll think some more but i can't think of any good solution so far <davexunit>and yeah, the hack would just cover up the issue most of the time and then really screw someone over eventually. <davexunit>okay. I'll think too, but I've exhausted all of my ideas. <civodul>okay, sorry i don't have better news <Tekk_>is the download link for stable broken? *Tekk_ was looking on ftp <zacts>Tekk_: guix is interesting isn't it :-) <Tekk_>I'm building a slackbuild of it now <zacts>oh interesting, there is a slackbuild, or you are making a slackbuild for it? <zacts>Tekk_: I'm going to try out Sabotage Linux today <zacts>I think it would be nice to allow for guix to build with the musl-clib as a user option <mattl>does anyone have a Guix build I could easily run a VM, that's essentially ready to go? I think that might be an interesting next step, to allow the world to see a LiveCD or similar that boots up and lets you start installing things.