<davexunit>development environments made easy, with guix! *davexunit thinks about write a guix environment for guix :P <davexunit>I've been using this channel as my personal microblog today, apparently <davexunit>so here's more: I was able to use guix environment to debug test suite issues with guile-sdl :) <Steap>must be even better than guix build -K <davexunit>helped me track down the problem pretty quick :) <davexunit>funny, I didn't even think of this use-case when I wrote it. <jmd>What does and=> mean ? <jmd>I can't find a mention of it in any Guix, Guile or Scheme manual. <alezost>jmd: it is documented in Guile manual: (info "(guile) Higher-Order Functions") <alezost> -- Scheme Procedure: and=> value proc When VALUE is ‘#f’, return ‘#f’. Otherwise, return ‘(PROC VALUE)’. <jmd>So its the same as (and value (proc value)) then? <alezost>jmd: almost, it's just a sugar. If VALUE is an expression, you'll have to do (let ((v (<some-expr>))) (and v (proc v))) or just (and=> (<some-expr>) proc) <jmd>Another scheme question: If I do (and expr1 expr2) is there any particular order in which expr1 and expr2 are evaluated? <alezost>jmd: expressions in ‘and’ are evaluated consecutively (expr1 first) and if one is failed then the rest are not evaluated <roptat>hello again! I would like to modify /etc/profile to have some system-wide configuration there. Can I go ahead and edit the file it points to, or is there another prefered way? <alezost>roptat: If it's a link to /gnu/store/…, then you shouldn't modify that file. (I don't know about the preferable way though) <roptat>yes, it is a link to /gnu/store/*-bashrc <alezost>roptat: everything that is placed in the store should be untouched <alezost>roptat: I can't help with your question as I hadn't tried a stand alone system yet. You may ask later on this channel or ask at <guix-devel@gnu.org> ***tschwing_ is now known as tschwinge
*davexunit is brainstorming titles for his libreplanet talk proposal <agumonkey>I got gnu-usb-install-0.7.x86_64.xz and thought that the decompressed data would be an .iso image <agumonkey>to be fed to virtualbox as a bootable device <agumonkey>I was wondering if you knew a way to convert <davexunit>it's a raw disk image. can virtualbox not handle that? <davexunit>people occasionally ask about isos, but we can't see a good reason for them as they are quite outdated. <agumonkey>davexunit: it seems that vbox needs explicit conversion <agumonkey>unfortunately a typo under the wrong account erased the vbox convert tool. #fail <davexunit>you could use qemu instead, if that's an option for you. <agumonkey>Ill try that as a fallback thanks. Reboot time <davexunit>there are some caveats that come with the 0.7 release image, fyi. our upcoming 0.8 release should have less gotchas. <agumonkey>ok, dd image converted into vbox .vdi, and running. Time for install/rtfm <davexunit>one important thing to note is that the 0.7 installer will install guix 0.6 <davexunit>and you can easily tweak the install os to have that. <davexunit>it would of course be better to write your own os config with these packages so that you don't have to install to ramdisk each time <davexunit>we opted to ship a very minimal image to conserve resources <davexunit>it's also the first bootable image for real hardware <agumonkey>but a guile based system needs a paredit-like editor <davexunit>I don't really have hardware to spare for an experimental system. <agumonkey>not long ago I used an archlinux script to compile a livecd with base, emacs, guile and such <agumonkey>arch is great, but nix is pretty awesome so Ill redo that in guix <davexunit>I hope that we'll have an ARM port soon enough, and then I'll have a system to run guix standalone. <davexunit>I've focused a lot of my time working on development workflows using guix <davexunit>which doesn't require the full system, it's easy to run guix on any distro. <davexunit>now, I want to make it easy to hack on guix... when using guix. <agumonkey>you're speaking about arm based single board computer ? <agumonkey>I have two, a rpi and a parallela, the former is too slow, the latter might be able to run guix normally <agumonkey>I don't have a novena, but I have the thinkpad keyboard bunnie uses for it's prototype :D <davexunit>if it installs successfully, you'll want to update guix on the new system by using a fresh git checkout of master <agumonkey>editing s-exps outside of emacs really is a challenge <agumonkey>it is, I was recently browsing it's author just because I never really read about him even though paredit is one of my favorite things ever <agumonkey>ha.. rebooted the new system but I don't have a NIC (ifconfig -a only lists localhost) <davexunit>if you can figure out the kernel module you need, then you can add that to your initrd, I think. <davexunit>someone else could probably help you better than that. <agumonkey>I'm having unbound variable issues, the docs are fairly light <agumonkey>trying (initrd (cut base-initrd <> #:extra-modules '("libahci.ko" "ahci.ko" "e1000.ko" "e1000e.ko"))) <agumonkey>guix is cute but as cryptic as standard gnu tools ~_~ <civodul>agumonkey: how does it fail exactly? <civodul>alirio: so would it help to move env var definitions to /etc/profile? <alirio>civodul: if using dm, no; .bash_profile and /etc/profile are a user/system distinction <civodul>i've read that section of the Bash manual a couple of times, but somehow i fail to "integrate" it <alirio>civodul: we can use $SHLVL for conditional setting... <alirio>civodul: 'bash --norc' instead of 'sh' would be another option <alirio>I cloned the repository yesterday, 'make check' pass all tests, but I get this: '/gnu/store/j0wn0gqqjrxfmgi9416y89yijy0qlnid-build-bootstrap-guile.sh: line 8: 5 Segmentation fault $out/bin/guile --version', executing manually: '/gnu/store/jfahjwwad516il2bdycw0zfygskvfdrc-guile-bootstrap-2.0/bin/guile --version' works as it should <civodul>and you get this while trying to build something, like "guix build hello"? <alirio>yes, and './pre-inst-env guix package --no-substitutes -i hello' <civodul>does "env -i /gnu/store/jfahjwwad516il2bdycw0zfygskvfdrc-guile-bootstrap-2.0/bin/guile --version" work? <civodul>and "chroot /gnu/store/jfahjwwad516il2bdycw0zfygskvfdrc-guile-bootstrap-2.0 /bin/guile --version"? <alirio>it gives 'GC Warning: pthread_getattr_np or pthread_attr_getstack failed for main thread <alirio>GC Warning: Couldn't read /proc/stat' above the normal output <civodul>"./pre-inst-env guix build guile-bootstrap -s i686-linux --no-substitutes" on my x86_64 box <civodul>it's the same binary, running in 32-bit mode, but then it's not a "real" 32-bit box <civodul>i've copied the tree to a real i686 machine, and "sudo env -i /usr/sbin/chroot ./jfahjwwad516il2bdycw0zfygskvfdrc-guile-bootstrap-2.0 /bin/guile --version" runs well there <civodul>nothing special about the guix-daemon setup? <alirio>'sudo env -i /usr/sbin/chroot /gnu/store/jfahjwwad516il2bdycw0zfygskvfdrc-guile-bootstrap-2.0 /bin/guile --version' works here too <alirio>I'm using trisquel 7 liveiso, and I have the script to reproduce it... *jmd officially gives up trying to get an arm compiler working <civodul>jmd: please post your findings/issues! <jmd>Actually it seems to be an issue with gcc-4.9 <civodul>alirio: "liveiso" means it's a live distro? *civodul goes afk for a moment <jmd>I keep getting warnings, and then "Warnings treated as errors" even though I have passes --disable-werror <alirio>yes, and grub is booting directly from the iso <DusXMT>jmd: Hmm, I also had problems with compiling gcc (was attempting to do an arm LFS) on my phone with gcc... <mark_weaver>alirio, civodul: regarding .bash_profile not being sourced when using a window manager: my solution to that is to source .bash_profile from .xsessionrc or whatever it's called (I don't have that computer in front of me right now) <mark_weaver>jmd: I'll work on the ARM port for Guix when my Novena board arrives. I should have it within a month or so. <jmd>The thing is, gcc 4.8.3 doesn't seem to support my CPU <jmd>Well not with the options I wanted. The hard-float particularly. <mark_weaver>I would look at Debian's toolchain packages for armhf, especially the way they configure gcc/binutils/glibc and any patches they've applied. <jmd>The annoying thing about Guix, is that if you have to touch something that low in the dependency tree, then building takes about 19 hours then you get an error, saying that this set of options is unsupported, try a different set. <mark_weaver>sometimes, with difficult packages on a minority architecture, I've started by building the software "manually". <mark_weaver>"guix environment" might be helpful for setting up a semi-restricted build environment when doing those tests. <alirio>mark_weaver: from gnu/services/xorg.scm, seem slim calls .xinitrc which calls .xsession <mark_weaver>I have a vague recollection that, at least on Debian, some display managers don't call .xinitrc but do call .xsession. <jmd>Do we have R packaged ?? <jmd>mark_weaver: .xinitrc is called only when you select "System Default" as the session type. <alirio>mark_weaver, jmd: there's a executable called xinit, .xinitrc is it's configuration file, display managers shouldn't use it <jmd>alirio: I guess that is an opinion which is not universally accepted then. <jmd>I don't see much sense in guix package --list-available=regexp having rexep match the package name. <jmd>The description might be more useful. *alezost uses both variants: "M-x guix-search-by-regexp" (bound to a key) to search by regexp in "name+synopsis+description" and another command based on ‘guix-search-by-regexp’ to search by regexp in "name" only <civodul>mark_weaver: i've updated the number of packages in guix.html \\o/ <jmd>civodul: That option produces an ERROR: <jmd>ERROR: In procedure gettext: <mark_weaver>jmd: what's the exact command that produced that error? <jmd>Maybe I messed something up then. I have some local hacks ATM. <civodul>jmd: you mean need to recompile, due to the ABI change last week or so <civodul>either "make clean-go && make", or rebuild .go files from $GUIX_PACKAGE_PATH <jmd>I probably need to do "git reset --hard" too. <ph4nt0mas>jmd: it's the same problem I was telling civodul somedays ago <mark_weaver>it would be nice if we had a specific example of a command that produces that error <ph4nt0mas>if I try to search any package I just get the error <jmd>"./pre-inst-env guix package --search=pdf" <mark_weaver>although I'm testing on a machine that's not quite up to date. let me try updating. <civodul>ph4nt0mas: did you try "rm -rf ~/.cache/guile" or similar? <civodul>it's clearly an ABI issue, and that can happen if there are stale .go files <ph4nt0mas>well everything else works , tomorrow I will find some time to investigate and see where those .go files are hiding from me <civodul>could you try "strace -o log guix package -s foo"? <civodul>to see which .go file is loaded last <ph4nt0mas>/usr/lib/guile/2.0/ccache/system/base/target.go <jmd>I think we should remove all the superlative adjectives (such as "powerful") from package descriptions. <alirio>jmd: a superlative would be "most powerful" <jmd>removing all .go files and running "make" seemed to do the trcik for me. <ijp>I call them "manipulative names" <civodul>of course it's hard to determine the degree of objectivity of any given phrase <jmd>true. But some are blatently POV. <civodul>i'm not sure if this can be formalized as a lint rule :-) <alirio>a check for "most" or "est" doesn't seem hard <mark_weaver>yeah, but I don't think superlatives are the thing we should be checking for <mark_weaver>rather, we should be looking for "marketing-speak", or something to that effect <jmd>but a quick grep for some buzzwords will pick out some of them. <mark_weaver>e.g. suppose there's a package that computes shortest paths through a graph. <civodul>alirio: "most" can be used in other contexts, like "most of the time", etc. <mark_weaver>hmm, guix.texi now requires texinfo 5, because of the use of indentedblock. <mark_weaver>(or that's my guess. anyway, it now fails to work with texinfo 4) <mark_weaver>civodul: attempting to compile guix with texinfo 4.13 now fails with the message: "./doc/guix.texi:4332: Unknown command `indentedblock'." <mark_weaver>I'm using texinfo 4.13 on my Yeeloong, because texinfo 5 takes over 10 minutes to compile guile.texi <mark_weaver>(where texinfo 4 takes on the order of tens of seconds) <mark_weaver>yeeloong users aren't numerous enough to cater to, but it'll be a while before texinfo 5 is widely available among users of debian derivatives, anyway. <mark_weaver>alirio: ah, okay. well, debian wheezy doesn't, anyway <civodul>okay, we can try to avoid @indentedblock, lemme see <civodul>mark_weaver: does @quotation work with Texinfo 4?