IRC channel logs

2015-05-01.log

back to list of logs

<davexunit>maybe it won't be too hard.
<davexunit>but, gotta go!
<civodul>paroneayea: in Nix one can produce strings that embed references to derivations
<civodul>like: someattr = "ls ${coreutils}/bin";
<civodul>so that's similar in spirit, but in Nix these are "just strings"
<paroneayea>civodul: aha
<paroneayea>civodul: "C has macros too" ;)
<civodul>heh :-)
<civodul>the nice thing is that gexp don't rely on special compiler support
<civodul>Scheme is wonderful
*civodul -> zZz
<civodul>good night/day!
<paroneayea> https://wiki.debian.org/Javascript/Policy might want to take a similar direction to this..
<ph4nt0mas>good morning Guix
<civodul>Hello Guix!
<davexunit>morning civodul!
<cehteh>hi
<Sleep_Walker>morning :D
<civodul>sneek: seen remi`bd
<sneek>I last saw remi`bd on May 04 at 05:09 am UTC, saying: thanks!.
<civodul>May 04, uh?
<alezost>sneek: seen civodul
<sneek>civodul was here May 01 at 01:19 pm UTC, saying: May 04, uh?.
<cehteh>haha time machine?
*DusXMT things sneek means May 04 of 2014
<cehteh>prolly
<alezost>unlikely, remi`bd was here this April
<cehteh>maybe the bot didnt notice?
<cehteh> /msg nickserv info remi`bd
<paroneayea>o/
*paroneayea tries to chew some more on https://lists.gnu.org/archive/html/guix-devel/2015-05/msg00000.html
<paroneayea> http://sandervanderburg.blogspot.com/2014/02/reproducing-android-app-deployments-or.html f-droid, replicant, and guix? :)
<paroneayea>o/ davexunit
<davexunit>hey paroneayea
<davexunit>civodul: I was also thinking that 'guix deploy' would be a good name, and then thought of the exact same issue with the action of the same name :)
<civodul>:-)
<paroneayea>civodul: what's the hash built from in guix? is it the derivation file itself?
<paroneayea>file/contents
<paroneayea>trying to figure out how (gexp->package) will be sure to retain a unique hash
<davexunit>paroneayea: a couple things are the build script and inputs
<davexunit>
<davexunit>the target platform
<davexunit>some others that I'm forgetting...
<phant0mas>that PATH_MAX definition not being supported in hurd is causing sed and patch to fail as well
<DusXMT>in debian, in sed, they set PATH_MAX to 200, claiming: MAX_PATH is not defined in some platforms, most notably GNU/Hurd. In that case we define it here to some constant. Note however that this relies in the fact that sed does reallocation if a buffer needs to be larger than PATH_MAX.
<civodul>paroneayea: yes, what davexunit says, basically it's a hash of all the inputs plus system string
<DusXMT>in patch, they just set it to 8192, claiming: make GNU/Hurd happy
<civodul>sed and patch being GNU, they should be able to do better :-/
<civodul>phant0mas: it'd be ideal if you could send a patch upstream, but otherwise just throw in a "CPPFLAGS=-DPATH_MAX=8192" or some such
<civodul>you're going to encounter this many times though
<civodul>to the point that we might want to simply patch unistd.h, as sad as it may be
<DusXMT>8192 is a pretty long line of text, that's over a 100 terminal rows... I think that as a temporary fix, it could do, to get the system up and running
<civodul>well, 777, whatever :-)
<civodul>i guess i'll merge core-updates real soon
<civodul>it has emacs and icecat built for x86
<paroneayea>civodul: how to make a fake package and specify a source that doesnt' make guix freak out?
<paroneayea>for the gexp->package
<paroneayea>I've stubbed out most of the other fields...
<civodul>paroneayea: you can leave (source #f)
<civodul>that's fine
<paroneayea>whoa okay
<paroneayea>so how does my emacs know to indent run-with-store differently than say, (list) ?
<paroneayea>I didn't tell it how to do that...
<davexunit>paroneayea: .dir-locals.el
<davexunit>a.k.a emacs magic :)
<paroneayea>ohhhh right of course.
<paroneayea>wait, no! this isn't in such a place though.
<paroneayea>I'm making a package.scm in mediagoblin's git repo!
<davexunit>paroneayea: oh, then it must be the name that scheme-mode intelligently handles
<davexunit>'with' is a key that the form takes 1 arg and a thunk or body form of some sort
<civodul>paroneayea: yay for Guix + Mediagoblin!
<paroneayea>:)
<davexunit>paroneayea: now, package up all the python dependencies! :P
<davexunit>I did 30 awhile ago before I got burnt out.
<paroneayea>davexunit: heh :)
<davexunit>civodul: would you consider it bad form to potentially use multiple store connections throughout the duration of a program?
<civodul>davexunit: i think so, yes :-)
<davexunit>I'm implementing the 'provision' hook for <platform> 'guix deploy', and while most of the time I don't think a store connection would be needed, in the case of a local VM I want to build something.
<davexunit>okay
<civodul>make everything a monadic procedure?
<civodul>so then the store connection can be threaded through them
<davexunit>yeah, I suppose so.
<davexunit>will try that.
<civodul>that can sometimes be annoying
<civodul>but if the procedure doesn't actually need it, it can still be lifted
<civodul>like (lift my-normal-proc %store-monad)
<davexunit>yeah
<paroneayea>civodul: http://pamrel.lu/d8c5a/ I think you said inputs can be derivations, but when I try to run this with guix environment I get:
<paroneayea>guix environment: error: /home/cwebber/devel/mediagoblin/package.scm:43:4: package `web-assets-' has an invalid input: ("assets-script" #<derivation /gnu/store/c3gglxzf38v6vw9m7s51k2hw0pxdk2jh-list-files.drv => /gnu/store/gmv6ffb4l1lp7jzpbr64q2qvbsgnbk46-list-files 5c59c30>)
<davexunit>paroneayea: does it build with 'guix build', though?
<civodul>oh
<civodul>paroneayea: indeed, it cannot be a derivation, but it can be a derivation file name (silly!)
<paroneayea>note that's obviously not the right derivation, I'm just trying to get *a* derivation working
<paroneayea>ah!
<civodul>sorry for the confusion
<davexunit>civodul: it should be simple to add a patch to match derivations, too, right?
<paroneayea>yesssssssssssssssssssssssssssssss
<paroneayea>got it linked!
<civodul>davexunit: yes
<davexunit>paroneayea: yay!
<davexunit>I'm excited for this
<davexunit>glad you are working on it.
<civodul>paroneayea: re gexp->package: http://paste.lisp.org/+35Z5
<davexunit>together, we can conquer the world!!
<civodul>:-)
<paroneayea>civodul: awesome
<civodul>the thing is, until wip-build-systems-gexp is merged, the thing must be an sexp, not a gexp
<paroneayea>you should check that into guix ;)
<civodul>yes, when wip-build-systems-gexp is in
<paroneayea>civodul: what's the @@ in outputs?
<davexunit>module reference syntax
<davexunit>@ for public symbols, @@ for al
<davexunit>all*
*paroneayea reads "Using Guile Modules" in the fine manual
<paroneayea>oh I see
<paroneayea>does this also allow getting around dependency DAG issues, kind of like how people "import foo" inside of functions when otherwise there would be a dependency cycle?
<paroneayea>neat
<civodul>no, it's just that gexp-outputs is currently private, so @@ allowed me to cheat :-)
<paroneayea>:)
<davexunit>paroneayea: we have to use 'module-ref' for the dependency cycle thing sometimes
<paroneayea>okay, now I'm getting excited
<paroneayea>I think this is starting to look like a pretty feasible route.
<paroneayea>I should get lunch and then do Real Work (TM) (contracting, that is) but I'm excited this is on track
<davexunit>:)
<civodul>heheh
<paroneayea>the btrfs-subvolumes thing came up on http://sandervanderburg.blogspot.com/2015/04/an-evaluation-and-comparison-of-snappy.html?showComment=1430478179877#c3488496727928781327
<paroneayea>and I wonder if btrfs-subvolumes could also be something explored by guix, I'm not sure it makes sense or not
<paroneayea>but it could at least satisfy the symlink haters
<paroneayea>(by adding a different complex system?)
<paroneayea>note that the btrfs subvolumes thing is how gnome intends to handle containerized app deployment while keeping things deduplicated, from what I've read
<civodul>the problem is that the file system is a too low-level layer
*civodul considers moving {dbus,upower,colord}-service in a single desktop.scm
<civodul>davexunit: does that make sense?
<davexunit>civodul: gnu/services/desktop.scm ?
<davexunit>makes sense to mel
<davexunit>me*
<civodul>yes
<davexunit>runs 'guix gc' for the first time in a *long* time and re-downloads some of the world
<davexunit>probably a year's worth of builds I just purged
<civodul>you must have a big hard disk :-)
<civodul>i often run "guix gc -C1G" or similar
<davexunit>just a 120GB SSD in my laptop.
<davexunit>the store was several GB but not too large
<davexunit>and TIL about the -C flga
<davexunit>flag*
<civodul>ok
*davexunit works on 'provision' hook for 'guix deploy' some more
<davexunit>civodul: thanks for the suggestion about an OS -> OS procedure.
<davexunit>Added that as a 'transform' field to <platform>
<civodul>sounds good
<davexunit>nice to have all this VM code already available. makes prototyping a lot easier.
<davexunit>civodul: off the top of your head, would you expect dmd to "just work" when run as PID 1 in a PID namespace?
<davexunit>local VM deployment is a success :)
<davexunit>monads really are magical
<paroneayea>damn, I have monad-grokking envy still
<paroneayea>maybe using monads in guix will help
<davexunit>paroneayea: it's helped me *a lot*
<paroneayea>I still fear I have to learn haskell to learn monads, even though this is unlikely to be true.
<davexunit>you don't need to.
<davexunit>I'm comfortable with scheme, so learning them in scheme is nice.
<davexunit>I just wrote this pretty cool provision -> boot sequence in monadic style that is neat
<paroneayea>I tried to make it through http://okmij.org/ftp/Scheme/monad-in-Scheme.html but haven't really made it yet
<paroneayea>maybe I should try it again.
<Vous>#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#
<Vous>ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#E
<Vous>RROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ER
<Vous>ROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERR
<Vous>OR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERRO
<Vous>R#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR
<Vous>#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#
<Vous>ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#E
<Vous>RROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ER
<Vous>ROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERR
<Vous>OR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#
<Vous>#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#
<Vous>ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#E
<Vous>RROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ERROR#ER
<Vous>Sorry :/
<paroneayea>Vous: I'm guessing there was an error somewhere.
<Vous>lol
<davexunit>whoa
<cehteh>looks like the error was the error :)
<cehteh>tada ... my GuixSD kvm works .. finally
*cehteh makes a image backup ... better safe than sorry
<davexunit>cehteh: yay!
<paroneayea>btw civodul, one thing that I *think* your gexp->package didn't do, that I kind of expected it to
<paroneayea>was to put the derivation supplied by the package onto a path
<paroneayea>so it was executable
<paroneayea>maybe it shouldn't, I don't know, though that's what would make it useful to me probably?
<davexunit>yeah, it should install the script to /bin
<paroneayea>yeah that's what my current thing does
<davexunit>nice
<paroneayea>hm
<paroneayea>though my route currently requires (open-connection) :\\
<davexunit>monad
<paroneayea>not as functional as it could be probably
<paroneayea>davexunit: yeah I guess
<davexunit>civodul: I see that there are user-groups and user-accounts fields for services, but I'm not sure what extra work is needed for the service to actually use them.
<davexunit>I'm writing a postgresql-service, and I need to be the 'postgres' user before launching the daemon.
<civodul>davexunit: the service just needs to be told about the user name, and then it can switch to it
<civodul>(to drop privileges)
<davexunit>civodul: but I do the switch manually in the activate script, right?
<civodul>no, i suppose postgresqld (?) just does that by itself
<civodul>it probably needs to be told what the user name is, in a config file
<civodul>see bitlbee for example
<davexunit>okay
<davexunit>I'll see what postgresql does
<davexunit>I think we need a gnu/services/utils.scm for common things
<davexunit>like chowning a file given a username
<cehteh>mhm .. network in kvm is unstable
<cehteh>fuu
<civodul>cehteh: weird
<cehteh>i am used to it, kvm gives all kinds of trouble
<cehteh>4.0 kernel on the host btw
<cehteh>something is extremely wonky there, 'halt' just hangs
<civodul>uh, that could always be a bug in dmd, or some service failing to stop
<civodul>dunno
<cehteh>haha .. something like that
<cehteh>now dbus didnt start up ... meeh :D
<cehteh>good that i made a backup of the working image
<civodul>is it 0.8.1 or master?
<cehteh>0.8.1 .. bootstrapped from debian8
<cehteh>with the kernel in master networking doesnt work at all
<cehteh>the devices (either virtual nics or virtio_net) show up .. but configuring them times out
<cehteh>i try to track that down later, for now i am happy when i just get it running and being able to ssh to it
<cehteh>(i havent even figured out how to setup ssh yet :D ... and changing the locale bugs somewhat too)
<cehteh> http://www.gnu.org/software/guix/manual/guix.html#Using-the-Configuration-System .. is the start of the example there outdated? new installes use (use-service-modules ..) or do i get something wrong there?
<davexunit>civodul: is it possible to unquote a regular scheme value, such as an alist, into a gexp?
<civodul>davexunit: yes, with #$ (ungexp)
<cehteh>meeh
<cehteh>... broken again
<civodul>cehteh: use-service-modules is just a shortcut for use-modules
<davexunit>civodul: oh, awesome.
<davexunit>you've thought of everything :)
<cehteh>i tinhk i give up for now, trying with a new kvm/kernel someday
<cehteh>final test, starting another vm and see how stable the network is there
<cehteh>other vm works :/ ..
<cehteh>is there some receipe somewhere to build a vanilla kernel in guix, preferably from git?
***pfo_ is now known as pfo
<cehteh>.. even weirder, while haveing another vm running in parallel where the network works, the network on the guixsd vm stays stable as well
<cehteh>methinks before starting with deterministic package managers, he has to get deterministic computing to work here
<cehteh>ohno ..hangs again
***pfo_ is now known as pfo
<davexunit>civodul: turns out I need to explicitly change the user account before runnin g the postgres daemon