*davexunit comes back from being afk and catches up <davexunit>paroneayea: ah yes, services and state. as I dig into writing service definitions more, I think activation scripts are the right place for managing stateful things. <davexunit>for example, postgresql-service creates /var/lib/postgresql/data and runs the 'initdb' program if necessary. <paroneayea>davexunit: so, maybe before starting/restarting mediagoblin each time, "gmg dbupdate" is run? <davexunit>a more "serious" setup could take care to do a backup first, somehow. <paroneayea>we might want to incorporate ways to declare "here's how to backup my stuff for this service" fairly generically <paroneayea>but it would be nice for figuring out where the state is and how it can be backed up to be a pretty "smart" operation <paroneayea>I shouldn't have to say "back up here, and back up here, and back up here" generally if we can compose a set of functions that can extract that data to be backed up <paroneayea>great post by the obnam author trying to think of a user story for backups happening without users having to think too much about it <davexunit>paroneayea: yeah, there's room for automation here. <paroneayea>how much in guix can we programmatically specify that? <paroneayea>certainly the current story for users of having to reproduce the structure of their system *and* back up their mutable state is a sorry one <paroneayea>if it could help also with the latter, making it easy to figure out how to back up <paroneayea>davexunit: anyway, obviously the above thoughts aren't immediately actionable in that raw form <davexunit>I think that the "what" would be defined by each service somehow <paroneayea>but I think there's ways we can structure making it easier into the system <davexunit>and a more generic backup service could run the backup jobs for everything <paroneayea>(set! topic (string-append topic "| <davexunit> kid tested, civodul approved")) <davexunit>but good, I think we've identified the appropriate layer for imperative tasks. <paroneayea>but first I need to finish my replacing virtualenv+bower thing :) <davexunit>I really want to use dmd as a user service manager <davexunit>I really wanted such a thing a year ago at my last job <davexunit>I had a lot of rails servers up in a screen sessions <paroneayea>"oh well, I'll just prop this up here as a solution for the moment" <paroneayea>*that stick you prop it up with becomes the cornerstone of a towering deployment monstrosity* <paroneayea>your job eventually becomes reinforcing that stick <davexunit>but it made rebooting a really undesirable thing <paroneayea>davexunit: I'm currently supporting code in contracting that has the equivalent of a "many to many" of users' "group" permissions <paroneayea>each client's "group" type table is differently structured <paroneayea>it's a good thing I drink caffeine, not alcohol, when stressed and tyring to get through things :) <davexunit>for one thing, I want a user dmd service for running offlineimap <davexunit>easy to make a basic config file for user services *davexunit is wondering if he should be going through all this trouble to write an interface around postgresql config <davexunit>perhaps I should just let the user do the necessary (text-file* ...) stuff <davexunit>but on the other hand it's really convenient to have an abstraction for this stuff... <kete>:D good! how are you doing? <paroneayea>good, kinda tired and restless, too much to get things done at this very second :) <kete>I'm tired too. I've seen you working <kete>is that supposed to be like paranoia? <vmlinuz88>So it is pronounced similar to how a New Yorker would say it. <vmlinuz88>paroneayea What have you been working on? Guix-related? <paroneayea>vmlinuz88: I've gotten some guix patches in, and am trying to work towards the 0.8.0 release, and doing some contracting <paroneayea>trying to figure out how to make deployment better while also exploring guix, and finding those might go hand in hand <paroneayea>kete: and you? what are you hacking on? anything within the context of guix? or otherwise? <kete>final exams, graduating with bachelors. borrowed the scheme book in case I need something to read after finals. could review changes to guix manual <vmlinuz88>paroneayea I'd love to start hacking and helping out the Guix project. I'm familiar with scheme syntax but I don't know much about the API. I'm willing to learn, of course. Is there anything in particular that would be suitable for me? <paroneayea>hey vmlinuz88, I might not be the best person to ask, I'm new to hacking myself! <paroneayea>civodul, mark_weaver, and davexunit may have better ideas than I do <paroneayea>is to set up a local dev environment, test installing some packages <vmlinuz88>I'm installing guix in a vm right now, it's still running the guix system init command as I install it to a vmdk <paroneayea>what I like about the route I suggested for installing above is it's easy to modify guix from the git checkout of guix that you have <paroneayea>installing from a vm should give you a nice experience of what guixsd is like though <vmlinuz88>the host system I'm currently running is Fedora 21 <vmlinuz88>I'm thinking about installing guix via get (as per your suggestion) <paroneayea>I imagine the route I suggested above would work for fedora as well <vmlinuz88>when running the ./bootstrap command in guix directory, it says "autopoint: no such file or directory" <vmlinuz88>ah, it looks like it's part of the gettext package. <vmlinuz88>paroneayea Your guix install method is working like a charm :) <marxy>I've attempted installing GuixSD a few times on the same PC (Different USBs, re-downloaded the image, etc.) and always get the same error-- that the build of system.drv failed. I'm not exactly sure where to go from this error message, though, and I was wondering if someone did... http://pastebin.com/3vG5GE4f <rekado->re wordpress: it also works when run through php-fpm; it does not need Apache. It would be best if we didn't link these "servlets" too tightly with the HTTP server. ***amirouche|bis is now known as amiruc
<cehteh>there is really some need for snapshotting releases and let hydra or some other server cache them for enough time *davexunit tries to create netlink datagrams in Scheme code, fun fun <paroneayea>I wonder if guix ops could be useful for something like compiling stuff for a beaglebone black or etc, some mini-computer, and then sending it off <paroneayea>you can calculate the derivations locally... but can you send the built stuff across the wire too? <davexunit>paroneayea: yes, you can send the closure of the system over the wire in a nix archive <paroneayea>oh yeah, and davexunit, sadly I was told that what we feared was true: <paroneayea>that each package can have a different and incompatible version of a dependency in its own namespace <davexunit>but by virtue of us preparing a distro, we keep things sane. <paroneayea>davexunit: yeah I suppose one could do it, but what a mess :| <davexunit>in the free for all of nodejs, you end up with like 10 different versions of underscore to make things work. <paroneayea>I expected that installing dmd would install the info files <davexunit>paroneayea: hmm, it should, judging by the Makefile *davexunit is currently writing a service to start mpd from dmd <rekado->I guess I should write a service file for JACK. <rekado->currently I start JACK manually on my recording workstation <civodul>i use it for mcron, privoxy, and a couple other things <davexunit>civodul: how much abstraction do you feel is appropriate for guix system services? I have this postgresql-service, but I'm unsure how much extra work I should do around handling config for the user. <davexunit>a postgresql.conf file is just a list of "key = value" lines, so I thought, "well, I'll just have the user pass in an list and write out the correct file" <paroneayea>davexunit: it might be nice to have that as an option, but also allow users to specify their own file <paroneayea>have a function that generates such a file from a list <davexunit>yeah I'm thinking of something along those lines <davexunit>since postgresql actually has 3 main configuration files <civodul>davexunit: if the list doesn't lose any expressivity, go for that <civodul>otherwise, if the syntax is complex and changing, just let the user pass a plain file <civodul>what i did for nsswitch.conf is a bit extreme :-), but the underlying syntax is set in stone anyway <paroneayea>I challenge someone to try to find a universal sexp structure that can be serialized to any apache configuration ;) <davexunit>civodul: oh yeah, the complicating factor here is that there's a few state directories that need to be created, so I have to formalize those somehow <davexunit>I could make those parameters to the procedure as I have now, but the user will have to redundantly specify them in their config file. <civodul>you could still have parameters with the expected default values <civodul>and if someone really wants to change them, they can <davexunit>I guess they should be set to what postgresql uses by default <davexunit>actually, it looks like I can specify these directories as command line switches