IRC channel logs

2015-04-27.log

back to list of logs

<cehteh>so ...
<cehteh>anyone of you had success with gsd-usb-install-0.8.1.x86_64-linux in a kvm?
<cehteh>i am more or less following the manual, tried some variations (guix pull; guix system init ..)
<cehteh> http://public.pipapo.org/guix.png
<cehteh>somehow the installation doesnt configure the initrd/kernel/grub or whatever correctly
<cehteh>oh .. in short: the /gnu/store is completely empty after i ran system init and rebooted
<cehteh>.. err /gnu is already
<cehteh>no store
<davexunit>I've never ever seen that happen
<cehteh>i now retry without the cow-store started
<davexunit>the cow-store is an important part
<davexunit>did you verify that /gnu/store was populated before rebooting?
<cehteh>yes
<cehteh>but i couldnt figure out what all the unionfs mounts where all about
<davexunit>then I don't understand how it could be empty, if it's not empty.
<cehteh>maybe that shadowed the real store somehow
<cehteh>when i dont start the cow-store then things will be copied over still?
<davexunit>yes
<davexunit>you don't *need* the cow-store
<davexunit>but the reason it's useful is because otherwise everything guix downloaded while installing would be installed to the ramdisk
<davexunit>so you're limited by your RAM.
<davexunit>with the cow-store, the store will live on disk
<cehteh>ah ok
*davexunit goes afk
<cehteh>well i gave the vm 4GB .. should be ok
<cehteh>err 8GB
<cehteh>could it be that the grub installed cant handle ext4?
<davexunit>I boot an ext4 partition
<davexunit>you may be the first to be installing to a VM like this
<davexunit>so there could be a nasty bug here
<davexunit>could you paste your os config somewhere?
<davexunit>(not pastebin.com, though)
<cehteh>the files are there, but from grub commandline i cant ls and dirs except the root dir
<cehteh>what do you mean by os-config? the one i used to install my system?
<davexunit>yes
<davexunit>the operating-system expression
*davexunit takes guile-minikanren for a spin
<davexunit>paroneayea: I will probably apply this patch tonight with a couple of really minor stylistic tweaks.
<davexunit>just waiting for git to download...
<cehteh>i've pretty much used the template, only changed the hostname, the username and the filesystem label
<cehteh>and ext4
<cehteh> http://public.pipapo.org/guix.png
<cehteh>doh .. cant copy paste from the vm :D
<cehteh>should configure the serial cosole
<paroneayea>davexunit: woooo
<paroneayea>davexunit: I'm using The Reasoned Schemer as motivation for going through some really boring admin tasks
<davexunit>cehteh: that looks alright.
<paroneayea>invoicing and stuff.
<paroneayea>davexunit: oh yeah, also Aeva dropped by my apartment today, I showed her both Guix and a live demo of the live coding Sly features
<paroneayea>she got excited by seeing both in action
<davexunit>cehteh: I think it would be a good idea to write to guix-devel@gnu.org with a copy of this config and a report about what is going wrong.
<cehteh>how do i chroot into the installed system ... on another system i would just chroot /mnt ... but that doesnt work with guix
<davexunit>paroneayea: oh wow!
<davexunit>paroneayea: I'm glad you still have a working Sly setup! :)
<paroneayea>davexunit: yeah it still works :)
<davexunit>glad aeva liked sly and guix!
<paroneayea>I showed off the guix environment stuff inside of sly too
<paroneayea>er
<paroneayea>using the sly/package.scm
<davexunit>cehteh: you should be able to chroot
<davexunit>what doesn't work?
<davexunit>reports about this sort of things not working would be good for our mantainer to see.
<davexunit>he's afk for a few days, but he'll read the mailing list when he gets back.
<cehteh>different bash on the usb than on the installed medium, but figured it out now
<cehteh>eh no doesnt work :D .. profile lost
<davexunit>you can adjust env variables as needed
<davexunit>and/or use things directly from /gnu/store
<cehteh>i did chroot /mnt /gnu/store/...-bash*/bin/bash .. but then everything else is out :)
<davexunit>what do you mean?
<cehteh>bash works but nothing else in /bin or PATH then
<davexunit>well, there is no /bin in guix
<cehteh>yes
<davexunit>you'd have to configure $PATH as needed
<cehteh>but to what?
<cehteh>there is no profile yet
<cehteh>the system didnt booted up yet
<davexunit>you can create a user profile
<cehteh>everything installed but /root is empty
<davexunit>I haven't done this from a chroot, but if you are root and $HOME is /root
<davexunit>you should be able to something like 'guix package -i guile'
<davexunit>and get guile in $HOME/.guix-profile
<cehteh>can i change the $HOME for that?
<cehteh>err no chicken egg problem
<cehteh>because the rescue environment is not the same as the installed environment
<cehteh>i am just doing a guix pull and hoping the rescue env is up to date then
<davexunit>I am confused.
<davexunit>if guix works in your chroot, you can create a user profile that will allow you to get a list of env vars to set.
<davexunit>does 'guix package -i guile' not work?
<cehteh>the chroot doesnt work
<cehteh>because there is no profile yet
<davexunit>does the 'chroot' command fail?
<cehteh>yes
<davexunit>I thought you were in it and used bash
<davexunit>what's the error?
<cehteh> /gnu/store/....bash not found
<cehteh>because the rescue (usb image) bash is another bash than it is installed on the target
<davexunit>so your path is wrong
<cehteh>no versions differ
<davexunit>why does that matter?
<cehteh>chroot wants to execute $SHELL .. but that has the full hashed path
<davexunit>so could you set $SHELL to something that would be correct in the chroot?
<cehteh> http://public.pipapo.org/guix2.png
<cehteh>mhm lemme try
<cehteh>nah
<cehteh>ls: command not found
<cehteh>thats borked
<davexunit>because you need coreutils on $PATH
<davexunit>cehteh: could you find a version of bash in /mnt/gnus/store and set $SHELL to that?
<cehteh>but there is no profile inside the chroot
<davexunit>I know, but you have the store
<davexunit>so you can create what you need
<cehteh>how so?
<cehteh>setting $SHELL and chrooting works
<cehteh>mmh have to add everything to $PATH manually then
<davexunit>you should be able to create a profile form within the chroot with 'guix package'
<davexunit>'guix package -i guile' will create a user profile for root and install guile, for example
<davexunit>'guix package --search-paths' will spit out a list of environment variables that you should set to use the stuff in your profile
<davexunit>and you can eval 'export PATH=/root/.guix-profile/bin'
<cehteh>first i have to add guix to path .
<davexunit>I have no idea if you'll be able to talk to the daemon from that chroot
<cehteh>likely not
<cehteh>even if .. that daemon doesnt know that i am in a chroot
<cehteh>lemme see if i can start a daemon in the chroot
<cehteh>err pita
<davexunit>paroneayea: I ended up altering your build script more than I originally planned, but I am going to push the patch now.
<davexunit>paroneayea: is that comment by the 'license' field still relevant?
<davexunit>your latest patch doesn't install the license anywhere
<davexunit>I think we can remove it
<davexunit>I'm pretty stoked to have minikanren conveniently available now
<paroneayea>davexunit: it's not relevant, kill the comment
<paroneayea>and fine by me re: altering build script
<paroneayea>interested in seeing the altered version :)
<davexunit>paroneayea: pushed!
<paroneayea>\\o/ \\o/ \\o/
<davexunit>paroneayea: congrats and thanks!
<paroneayea>woooo I'm so excited!
<paroneayea>aha, match
<paroneayea>davexunit: clever use of match!
<paroneayea>davexunit: also why the #t at the end?
<davexunit>match is the best. :)
<davexunit>I use an explicit #t because 'copy-file' doesn't return a value
<davexunit>and though the build phase will pass without this, it's best practice to explicitly return a truthy value
<paroneayea>gotcha
<paroneayea>makes sense
<davexunit>perhaps we should enforce this by testing build phases for *unspecified*
<paroneayea>I figured that might be it
<davexunit>one other style thing to note is that I used 'for-each' instead of 'map' when looping over scm-files
<davexunit>because we're not transforming the list, but applying a procedure for its side effects.
<paroneayea>hm interesting
<davexunit>and I transformed '(if (not ...))' into '(unless ...)'
<paroneayea>good call. I always forget about (unless) and (when)
<davexunit>yeah, easy to do
<davexunit>now, I need to a similar thing for Industria
<davexunit>and maybe from there we can extract an r6rs-build-system or something
<cehteh>ah making progress
<paroneayea> https://identi.ca/cwebber/note/FHNc0TwERYG2voRk-l1JSw
*paroneayea posts exuberantly
<cehteh>.. looks like bug in either the gsd kernel or kvm
<davexunit>cehteh: thanks for sticking with this for so long
<cehteh>when i change the virtual disk from sata to virtio or ide then it boots
<cehteh>.. but kernel is paniking
<cehteh>well i am quite interested in this project and would invest some time and resources
<cehteh>(as long i make some progress)
<davexunit>paroneayea: yay!
<davexunit>cehteh: don't hesitate to post to the guix-devel list when you get stuck. you'll wait longer for a response, but more people are going to read it than just hear on the irc channel
<cehteh>i wonder that no one else has this problems, isnt it natural that one tries a new distro in a VM?
<paroneayea>I should try Guix in a VM... :)
<cehteh>pls do :)
<paroneayea>er, GuixSD
<davexunit>cehteh: well, I use Guix to make my Vms
<paroneayea>davexunit: do you think I did an okay job for a first try on the package though?
<davexunit>paroneayea: absolutely.
<paroneayea>yay \\o/
<davexunit>it wasn't a straightforward one at all.
<davexunit>but it wasn't dependency hell, so that was nice.
<davexunit>time for bed!
<paroneayea>good night davexunit !
<davexunit>later paroneayea
<davexunit>good luck cehteh
<cehteh> http://public.pipapo.org/guix3.png
<cehteh>.. so far
***Digit_ is now known as Digit
***Digit is now known as Guest69625
***Guest69625 is now known as Digit_
***Digit_ is now known as digitteknohippie
***digitteknohippie is now known as Guest33255
*paroneayea points gun at foot
<paroneayea>so how does one deal with a package that needs to bootstrap itself?
<paroneayea>eg, thinking about packaging opendylan
<paroneayea>I guess I could look at gcc
***Digit_ is now known as Digit
<cehteh>gcc needs some (sufficient) C compiler and does a 3 stage bootstrap
*paroneayea just sent a doozy of an email to the list :)
<cehteh>packaging mercury will be fun :)
<cehteh>well for me the first thing is get guixsd running at all
*paroneayea wonders if it's kosher to snarf descriptions straight from Debian...
*paroneayea wonders that propagated-inputs means
*paroneayea also wonders why his attempt at packaging extremetuxracer is failing, hm
<iyzsong>paroneayea: the packages listed in 'propagated-inputs' will be propagated by the package when it was used as a input or installed to profile.
<paroneayea>iyzsong: aha
<iyzsong>o.o
<rekado_>Hi Guix, before pushing my flexbar patch, I'd like to push the tbb rpath fix: http://lists.gnu.org/archive/html/guix-devel/2015-04/msg00505.html It's only two lines and looks harmless, so I'd appreciate if someone could take a quick look.
*davexunit looks
<davexunit>rekado_: looks fine to me. maybe remove the leading/trailing whitespace around '=', though.
<davexunit>but that's a nitpick.
<rekado_>thanks
*davexunit looks at https://linuxcontainers.org/
<rekado_>(I'll remove the spaces around '=' before pushing.
<rekado_>)
<davexunit>rekado_: thanks for looking at the sfml patch. I pushed that.
<rekado_>yay!
<rekado_>I've been planning to package M.A.R.S. which depends on sfml.
<davexunit>ooh what's that?
*davexunit searches
<rekado_>it's a silly game with pretty graphics
<davexunit>watching the trailer now
<davexunit>looks fun
<davexunit>rekado_: looks like it will be simple to package this game. we have all the dependencies
<rekado_>yup. I like how this is becoming true for more and more packages.
<davexunit>yes, things are starting to become convenient
<davexunit>I keep finding packages that I am not expecting to find
<davexunit>it's great
<davexunit>mark_weaver: have you seen this security advisory for wpa_supplicant? http://w1.fi/security/2015-1/wpa_supplicant-p2p-ssid-overflow.txt
<davexunit>paroneayea: using bower for the first time. it's pretty mediocre!\\
<paroneayea>davexunit: ;)
<paroneayea>davexunit: a mediocre solution for a less than mediocre state of affairs
<davexunit>it seems that most projects that have bower.json files store build artifacts in their git repo
<davexunit>and bower fetches those
<davexunit>bleh
<paroneayea>yup
<paroneayea>davexunit: "its' better than 'git add extlib/jquery/'"
<davexunit>I don't know why, but I was expecting something more sophisticated
<davexunit>certainly, yeah.
<paroneayea>it's not sophisticated at all
<paroneayea>I was pressured into using it in mediagoblin!
<paroneayea>and worse
<paroneayea>the community members were right who argued for it
<paroneayea>because I was coming up with a solution which was basically another mini package manager
<davexunit>it's a step above bundling everything
<davexunit>bundling complicates license compliance and stuff
<paroneayea>yes
<paroneayea>I think I might crosspost my email to guix-devel to the userops list
<paroneayea>since it's not just a guix problem
<paroneayea>what do you think davexunit ?
<davexunit>so here's what I'm thinking: if we try out the $WEB_ASSET_PATH, it would be easy to make it compatible with bower.
<davexunit>paroneayea: that would be fine, yeah.
<paroneayea>yeah
<davexunit>export WEB_ASSET_PATH=/path/to/bower_components
<paroneayea>hm yeah
<davexunit>on Debiabn: export WEB_ASSET_PATH=/usr/share/web-assets
<davexunit>something along those lines
<davexunit>I think bower's directory structure is fine
<paroneayea>I think you're right, davexunit
<davexunit><name of package>/asset.{js,min.js,js.map}
<paroneayea>going down this path, I also see an easy way to unify virtualenv + bower / guix environment / guix package / deb/rpm/etc
<paroneayea>for mediagoblin
<paroneayea>which is really good, given this state of affairs :)
<davexunit>supporting 'guix environment' would just be adding another helper file to the root of the source tree
<davexunit>in addition to bower.json, you'd have package.scm
<paroneayea>yup
<davexunit>(assuming we package all the JS and CSS and such
<davexunit>)
<paroneayea>well, the web world is not so different as in terms of the popular vs long tail of linked assets
<paroneayea>it's really not much different from normal applications, except that there has to be some linking inside the package to simplify things, plus we *make* it harder
<davexunit>now, we should write 'guix import bower' ;)
<paroneayea>but it's really not that much different than the kind of linking we've been dealign with forever in software
<paroneayea>us web devs have just been thinking we've been too special to pay attention to the rest of the packaging world, I'm afraid :)
<paroneayea>me included!
<davexunit>which is why I think unifying package management is so important
<davexunit>someone will come along and say "what about windows?", though. and for that... keep using gem, pip, npm, bower, etc. ;)
<davexunit>all these things get deployed on GNU/Linux anyway, so if guix or similar is the tool used in production, we win.
<paroneayea>yeah
<paroneayea>davexunit: and OSX people can continue to use virtualenv + bower and get jealous of all the cool kids who are running guix environment
<paroneayea>then they say "well I could just run it in Parallels if I really wanted to"
<davexunit>heh
<davexunit>they could use Nix
<paroneayea>oh Nix works on OSX? ha :)
<davexunit>or someone could port guix to darwin/xnu/whatever
<davexunit>yeah a bunch of people use Nix on OS X
<paroneayea> https://nixos.org/wiki/Nix_on_OS_X sure enuf, yup
<paroneayea>haha, installation of nix on that page has a curl | sh
<paroneayea>awesome.
<davexunit>yup
<davexunit>I cringed when I read that
<davexunit>I tried to install Nix on my girlfriend's work laptop with is a macbook
<davexunit>and failed
<paroneayea>ha
<paroneayea>(sucks but ha?)
<davexunit>nix is way different than guix and I couldn't figure out how to make it work.
<davexunit>I followed the instructions but something wasn't working
<davexunit>I tried installing GNU hello and it started compiling gcc...
<davexunit>even though I thought I told it to use nixpkgs and their hydra instance
<paroneayea>davexunit: https://lists.gnu.org/archive/html/guix-devel/2015-04/msg00517.html the problem is in sdl_image or in extremetuxracer?
<paroneayea>oh I see I think.
<davexunit>paroneayea: I think iyzsong suggestion is better.
<davexunit>fwiw
<davexunit>I forgot that pkg-config should take care to setup the right include path for SDL
<davexunit>so '#include "SDL.h"' should be just fine
<paroneayea>cool
<paroneayea>trying it :)
<paroneayea>thanks iyzsong :)
<davexunit>rekado_: I tried to see if I could package m.a.r.s. reeeaaally quickly, but guix fails to download the source due to a tls issue. :(
<davexunit>guix download https://github.com/downloads/thelaui/M.A.R.S./mars_source_0.7.5.tar.gz
<bavier>davexunit: you might be able to use a git checkout for the time being
<davexunit>bavier: yeah, I just don't really have time to do this now that it's taking extra work. maybe later.
<bavier>;)
<bavier>looks like a fun game though
<paroneayea>oh
<paroneayea>guix builds things in /tmp/ ?
<davexunit>yeah
<paroneayea>that makes sense. I hadn't done -K before
<davexunit>at least I think it does that. or perhaps it's just copied to /tmp after a failure when -K is used.
<bavier>no, the builds are resident in /tmp the whole time
<paroneayea>it does, I noticed the /tmp before I did -K
<davexunit>thanks :)
<davexunit>I was right all along :)
<paroneayea>hey
<paroneayea>I've got extreme tuxracer running :D
<davexunit>fuck yeah!
<paroneayea>yesssssss
<paroneayea>okay I'm submitting a new patch
<paroneayea>this is awesome.
<davexunit>w00t
<paroneayea>submitted a patch
<cehteh>mhm on some server i have /tmp mounted as noexec .. guess that would be a problem with guix
<davexunit>paroneayea: could you use 'modify-phases' instead of 'alist-cons-after'?
<davexunit>and name the phase 'patch-makefile? the 'shebangs' part is inaccurate because it's not patching a shebang.
<paroneayea>davexunit: I can use that sure
<davexunit>paroneayea: thanks. it's just a style thing.
<paroneayea>now's a good time to link http://geekz.co.uk/lovesraymond/archive/linux-doomsday
<davexunit>we introduced that syntax to make things read a bit better, and I think it's worth using consistently on new packages.
<davexunit>paroneayea: hahahahaah how have I never seen that?
<paroneayea>ELER is good times
<paroneayea>fixed and submitted, davexunit
<davexunit>paroneayea: woo!
<davexunit>paroneayea: building for myself, then I will push. thanks!
<davexunit>but now is lunch time!
<davexunit>so I'll let the builder do its thing.
<paroneayea>:)
<paroneayea>having tuxracer on your computer is kind of distracting.
<paroneayea>especially when you haven't played it in almost a decade.
<davexunit>paroneayea: pushed!
<paroneayea>wooooo
<paroneayea>it's almost like I know what I'm doing kind of!
<davexunit>paroneayea: :)
<davexunit>packaging isn't so hard after all!
<davexunit>(when upstream knows what they are doing)
<paroneayea>admittedly this is which is why mediagoblin is so hard to package: I didn't know how to make things easy to package until... well, now
<paroneayea>guix makes it easier
<paroneayea>packaging stuff is a low barrier to entry... if you know scheme. And if you screw up, roll back!
***gnusosa_ is now known as gnusosa
<davexunit>you don't even have to really know Scheme to do basic packaging. We have several packagers that didn't really know scheme when they started.
<davexunit>it helps a lot, but it's encouraging to see several examples of people being able to learn the basics from the docs and reading other package recipes.
<paroneayea>davexunit: yeah I think I could have done the tuxracer one without scheme knowledge
<paroneayea>not true of the miniKanren one but, as said, that was more tricky than most
<davexunit>paroneayea: yeah, that one requires scheme knowledge.
<davexunit>it all depends on upstream ;)
<davexunit>not having a build system certainly raises the barrier
<angelic_sedition>how exactly is the store shared with the host when running "guix system vm"? do you have to include the packages in the config file to be able to use them?
<angelic_sedition>should "guix package -I" give me output in the vm (it doesn't)?
<davexunit>angelic_sedition: the store is mounted read-only in the VM
<davexunit>so yeah, you have to include everything in the config
<davexunit>you cannot create user profiles or anything
<angelic_sedition>how useful are user profiles if you only have one user?
<davexunit>angelic_sedition: using a user profile means that you can install packages without having to reconfigure the system.
<davexunit>which is convenient.
*alezost uses his user profile for everything except iproute
<davexunit>you also won't be able to enjoy the wonderful emacs mode that alezost wrote ;)
<angelic_sedition>what happens if you run guix-daemon without --build-users-group and install everything as root, is that still a user profile?
<davexunit>if you run 'guix package', it gets installed to a user profile, yeah.
<angelic_sedition>okay thanks for the explanation
<davexunit>yw
<angelic_sedition>a bit dissapointing user profiles don't work in the vm though
<davexunit>angelic_sedition: you can use 'guix system vm-image' instead
<davexunit>'guix system vm' is built for speed.
<davexunit>a read-only mounted store makes VM generation quicker.
<angelic_sedition>thanks, makes sense
<davexunit>of course, we could use more advanced vm deployment features.
<davexunit>help wanted :)
<davexunit>I want to control remote VMs/containers with guix.
<paroneayea>guixopssss
<paroneayea>davexunit: I'm still not really sure how nixops works, and how that would translate into guixops, and how much we'd really want to carry over or not
<davexunit>paroneayea: a good portion of nixops is parsing Nix expressions into XML nodes, so we can do without that part. ;)
<paroneayea>yes we can :)
<paroneayea>I wonder if g-exps can help
<paroneayea>gexps are kind of this magical, mystical thing to me right now
<paroneayea>I don't really know how they work
<davexunit>we don't have to parse shit because it's all scheme, baby.
<davexunit>I should write down my discoveries from reading the nixops code.
<paroneayea>yes, please write a blogpost!
<paroneayea>or a mailing list post!
<davexunit>basically, it revolves around objects called 'deployments'
<paroneayea>in short, a braindump would be good.
<davexunit>a deployment is a collection of machines with a unique id
<davexunit>and there's a state directory that nixops writes things to, the IP that each machine ended up with and stuff.
<davexunit>yeah I should just brain dump on the mailing list and we can discuss strategies
<paroneayea>bd
<paroneayea>(thumbs up)
<davexunit>I have some basic data types already defined in my wip-ops branch
<davexunit>the key one is the <machine>
<davexunit>which contains an <operating-system> and a <platform>, another new data type.
<paroneayea>davexunit: can <operating-system> be anything other than guixsd?
<davexunit><platform> objects provide the abstraction layer for the various infrastructure that systems can be deployed on.
<davexunit>paroneayea: no, it's a guix <operating-system> object.
<paroneayea>got it :)
<davexunit>one that you would use with 'guix system'
<paroneayea>hm, gexp->script
<paroneayea>might be helpful :)
<davexunit>I know how g-exps work... sort of.
<davexunit>I haven't used them enough to appreciate them fully.
<roniz>what is GUIX
<roniz>I dont really understand
<bavier>roniz: Guix?
<roniz>yeah :p sorry for my casing
<davexunit>roniz: guix is a package manager that also provides a GNU/Linux distribution.
<davexunit>roniz: is there anything in particular that is confusing?
<bavier>roniz: have you browsed the manual at all? www.gnu.org/s/guix/manual
<davexunit>something we could explain better on our home page, perhaps?
<ijp>good news for guix with gsoc, I see three accepted projects
<bavier>ijp: that's great news, indeed
<davexunit>ijp: link?
<ijp> https://www.google-melange.com/gsoc/projects/list/google/gsoc2015
<davexunit>thanks
<davexunit>didn't get any takers for my container project. :(
<bavier>off-topic -> in terms of the FSDG, is Guix is responsible for filtering packages that are installable via other package managers we support?
<davexunit>bavier: I guess it depends. we shouldn't ship a package manager that recommends non-free software out-of-the-box.