IRC channel logs

2015-03-18.log

back to list of logs

<davexunit>how long does it take to rebuild guix?
<davexunit>it takes forever for me, and I'm not sure if it's due to things like:
<davexunit>;;; note: source file ./gnu/packages/guile.scm
<davexunit>;;; newer than compiled /home/dave/.cache/guile/ccache/2.0-LE-8-2.0/home/dave/Code/guix/gnu/packages/guile.scm.go
<davexunit>every module that is compiled prints out tons of these
<Sleep_Walker>does HEAD work for you?
<Sleep_Walker> http://paste.opensuse.org/view/raw/29179096
<Sleep_Walker>1e87da58a160d75ba3f5356809a715c04ae31697 <-- first bad commit
<Sleep_Walker>aha
<Sleep_Walker>I just read about ABI breakage, now all makes sense
<civodul>heh
<civodul>Hello Guix!
<Sleep_Walker>morning :)
<taylanub>ugh, just when I'm done with mplayer2, mplayer2.org goes down. not sure if it will go back up since development is dead
<ewemoa> http://web.archive.org/web/20121226204036/http://ftp.mplayer2.org/pub/archive/release/source/ ?
<Sleep_Walker>heh
<Sleep_Walker>we have mplayer with mencoder so I guess we can have mpv as well
<taylanub>I'll package mpv too if nobody beats me to it; dependencies should be similar so all auxiliary work done for mplayer2 should be useful.
<taylanub>I found a public mplayer2 repo that isn't hosted on mplayer2.org, but I wonder what I should do with the home-page field.
<Sleep_Walker>can I somehow rename (renumber) profile?
<Sleep_Walker>when the numbers generated are no longer monotonic, I usually get confused
<taylanub>don't they only go up?
<Sleep_Walker>the only generation I have now is 42 (coincidence?)
<taylanub>I think not!
<Sleep_Walker>I'm afraid that next one will have number 1
<Sleep_Walker>oh, it's monotonic now
<Sleep_Walker>but I'm sure it wasn't
<Sleep_Walker>generation 43, welcome!
<Sleep_Walker>and another question - how am I supposed to set my own SSL certificates?
<Sleep_Walker>search-path points SSL_CERT_DIR inside guix profile
<Sleep_Walker>that leads to /gnu/store in the end
<Sleep_Walker>I don't think that users wants to/can add certficiates to that directory
<Sleep_Walker>is there some better way?
<Sleep_Walker>(I can copy that manually after each change, but that is quite awful)
<Sleep_Walker>I could also setup unionfs to gather all the cerftificates, which is even more awful
<Sleep_Walker>how it is intended to work?
<taylanub>I think there was ongoing work on that. maybe check the ML.
<Sleep_Walker>aha
<Sleep_Walker>I found some discussion
<Sleep_Walker>hm, WIP and it doesn't consider user defined certificates
<Sleep_Walker>best for now is probably to make package from that :)
<civodul>generation numbers increase monotonically
<civodul>Sleep_Walker: the way to handle certificates is by installing a certificate package
<civodul>either in the global profile, or in the user's profile
<civodul>currently there's only one such package, nss-certs
<Sleep_Walker>I need to add my company certificatio authority certificate to have secure and trusted communication with internal servers
<Sleep_Walker>it's unlikely I'd create and publish package for that
<davexunit>good morning, guix.
<Sleep_Walker>good morning
<Digit>g'mawnin. :)
<Sleep_Walker>argh, I miss cron
<davexunit>that's the kind of emotion that gets things packaged ;)
<davexunit>I thought we had mcron?
<davexunit>which is pure guile :)
<Sleep_Walker>yes, I mean, I miss it as a service
<davexunit>ah yes, we need more service definitions
<Sleep_Walker>right!
<davexunit>I haven't written any yet. I really need to.
<Sleep_Walker>and one to make life of pioneers easier
<Sleep_Walker>script to be run on boot
<davexunit>I'm interested in ones for mysql and postgresql
<davexunit>as I work towards reproducible web app deployment
<Sleep_Walker>and is anyone working on some container support?
<Sleep_Walker>I was asked about that several times already
<davexunit>I've proposed it as a project for this year's GSoC
<Sleep_Walker>aha
<Sleep_Walker>the fact that we can install different versions at the same time is already recognized as cool but there is no isolation between them
<davexunit>here's a discussion from november about the challenges: https://lists.gnu.org/archive/html/guix-devel/2014-11/msg00417.html
<davexunit>the idea is to add support for OS config deployment to Linux containers
<davexunit>so that you could do something like 'guix system container my-config.scm'
<Sleep_Walker>ah, it predates my presence on ML
<davexunit>additionally, I'm interested in using the VM/container features in 'guix environment'
<davexunit>though I don't know how that will work, yet.
<davexunit>but the idea is for it to be a complete replacement to 'vagrant up'
<Sleep_Walker>hm, I don't know this one
<Sleep_Walker>people in our company (developers, not administrators) are working on http://machinery-project.org/
<Sleep_Walker>administrators are using puppet and similar stuff for maintaining state and configuration of machines
<davexunit>would this replace puppet?
<davexunit>yo civodul. thanks for the patch review. made some silly mistakes. :)
<Sleep_Walker>I guess that they'd like to, but I'm mere observer at this
<Sleep_Walker>I don't manage that big number of machines to benefit from systems like this
<Sleep_Walker>OTOH process isolation for some services would be nice
<Sleep_Walker>btw. what software do you use as offline dictionary?
<civodul>davexunit: i've tried it and it rocks!
*civodul has found a font that rocks: http://pixelambacht.nl/2015/sans-bullshit-sans/ :-)
<civodul>Sleep_Walker: i use WordNet
<civodul>i tried to package GNU Dico but there were issues with the test suite
<davexunit>civodul: oh cool! glad it works for more than just me. :)
<civodul>heheh
<davexunit>I really like using pattern matching to handle URI routing
<civodul>yes, that part is cute
<civodul>it's really great we can have this functionality with relatively few lines of codes
<Sleep_Walker>WordNet is interesting, but is it for translation from one language to another?
<davexunit>yeah, it wasn't much code at all. I was happy about that.
<Sleep_Walker>it sounds like thesaurus with explanations
<civodul>Sleep_Walker: no translation, no
<davexunit>I have been trying to come up with a little DSL for URI routers that builds on the simple pattern matching to handle things like the request method (GET, POST, etc.) and the content-type
<civodul>HOP has a define-service form
<civodul>when one write (define-service (foo-bar #:key x) ...)
<civodul>that creates a handler for /hop/foo that can be called with ?x=123
<civodul>*/hop/foo-bar
<davexunit>oh cool
<civodul>but that doesn't work to URIs like /*.narinfo
*davexunit grows concerned over the prevalence of propagated inputs
<davexunit>I worry that the benefit of different packages being able to use different versions of the same libraries will be made null by all the propagated inputs that dynamic languages require currently.
<davexunit>is this a misguided fear?
<civodul>davexunit: that's a problem within the same profile or environment
<civodul>but yeah, that can become annoying
<civodul>in my main profile i have a couple of collisions caused by that
<civodul>re dynamic languages, it seems we cannot really do better in the absence of a RUNPATH-like mechanism
<civodul>:-/
<davexunit>yeah...
<davexunit>I'm trying hard to find some solution for ruby, at least.
<davexunit>I can certainly do it for executables, but not libraries.
<davexunit>maybe it's not worth all of the effort...
<civodul>i think it's a problem that has to be solved upstream
<civodul>for instance, Guile's .go could have a RUNPATH
<civodul>esp. in 2.2 where it actually *is* ELF :-)
<davexunit>I guess I will just propagate ruby inputs for now, then.
<davexunit>if you were searching for a ruby feature that allowed this, what would it be?
<davexunit>"ruby RUNPATH" isn't yielding anything
<davexunit>we essentially want to "hardcode" the location of libraries into builds
<civodul>"ruby library search path" maybe
<civodul>right, we want to hardcode the search path in build byproducts (.pyc, .go, etc.)
<rekado_>davexunit: would it not be sufficient to replace all "require" statements to take the full path to a library as their arguments?
<rekado_>require can either take a name of something in the standard path or some path if I recall correctly
<davexunit>rekado_: I did some work in that direction but ran into a complication
<davexunit>you can have gem A refer to gem B via an absolute path, but what about gem A refering to a module within gem A?
<davexunit>that must also be an absolute path
<davexunit>I guess a phase that ran after the test suite, but before installation, could patch the require statements?
<davexunit>I imagine this method will fail in ways I haven't thought about, as well.
<davexunit>what if the string passed to import isn't a string literal?
<davexunit>s/import/require/
<davexunit>any dynamic dependency loading will fail :(
<rekado_> http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-require says that it will look up the name in the $LOAD_PATH.
<rekado_>could the load path not contain the paths of all inputs?
<rekado_>or is this something undesirable?
<davexunit>rekado_: setting the load path env var requires all the packages to be propagated
<rekado_>davexunit: oh, I see.
<rekado_>if the only problem with replacing the arguments to "require" is that dynamic dependency loading would fail would it not reduce the number of inputs that would need to be propagated?
<rekado_>for those modules where dependencies are not loaded with a string literal we still may have to propagate inputs or patch stuff, but I don't think that this is common enough to require us to always propagate inputs.
<davexunit>rekado_: I worry about the complications introduced by doing this aggressive patching
<Sleep_Walker>what an irony - I could use levenshtein algorithm on implementation of levenshtein algorithm implementation (it seems to be part of both sdcv and stardict packages)
<Sleep_Walker>s/implementation (//
***Gonbe is now known as _`_
<civodul>forgive my ignorance, but i fail to do anything with Transmission with the .torrent files that were sent some days ago
<civodul>how's that supposed to work?
<Sleep_Walker>the theory is that you simply open the torrent file, which contains information about chunks the original files consist from
<Sleep_Walker>it should contact torrent tracker and your download should start
<Sleep_Walker>(unless it is not blocked, you're not behind firewall, etc..)
<Sleep_Walker>you may need to open some ports for torrent client
<civodul>yes, but "transmission-cli ./foo.torrent" fails saying it can't read the file
<Sleep_Walker>civodul: works for me
<Sleep_Walker>I added `-p <port number>' though
<Sleep_Walker>why don't we have env in /bin, that would make life easier a bit
<taylanub>civodul: am I reading it right (in package.scm) that a generation N+1, left there after rolling back to N, can be clobbered at any time by a transaction, which will claim N+1 for the new generation it creates?
<mark_weaver>civodul: have you checked to make sure the file is actually a torrent file?
<taylanub>if so, that's surprising because I thought generations are never deleted implicitly, but maybe it's fine since a roll-back is always to a presumably "safe" generation (so one generally doesn't desire a "roll back of a roll back")?
<Sleep_Walker>taylanub: I deleted generations manually if you are commenting my bug report
<civodul>hey, mark_weaver
<civodul>mark_weaver: 'file' says it is, but i don't know what it should be like
<civodul>it's a binary file
<civodul>taylanub: if one rolls back from N to N-1, and then creates a new generation, that new generation will be N, thereby overwriting the previous N
<taylanub>Sleep_Walker: apparently if you do one more transaction, you will override your N+2. this gives some perspective on how the problem could be approached. (I was going to propose making the new generation always (apply max generations), with the assumption that they're not disposable; if they are disposable then perhaps they could just be disposed immediately on roll-back...)
<Sleep_Walker>I'm not even sure whether it is error or not but I was just a bit confused before I realized how it works
<Sleep_Walker>civodul today insisted that generation numbering is always monotonic so I'd rather reported that
<Sleep_Walker>I'm satisfied with the current state but I have some remnants of my previous (overly complicated) workflow
<Sleep_Walker>If I have some working version as part of profile for a while, it can be present in many of my profiles and I can't remove it until all the profiles with that will be wiped as well
<taylanub>Sleep_Walker: it's monotonic throughout one "path" of the generation tree, i.e. from the root to any node the number will increase at every step by some amount.
***Rastus_Vernon is now known as rvernon
***rvernon is now known as Rastus_Vernon
<rekado>I'm sometimes annoyed with how git merges stuff when rebasing.
<jxself>I'm sometimes annoyed with git.
<rekado>I wish I could tell it that I don't want my s-expressions to be broken up in this nonsensical manner by merges.
<rekado>mostly I don't edit any s-expressions when working on guix, but I add new ones to the top level.
<rekado>it's so much work to rebase at times.
<taylanub>indeed, I wish for sexpr diffing/patching. maybe it can be added to git as some plugin or whatever git supports.
<rekado>reading about merge strategies now. Maybe with some other strategy git just does what I mean.
<civodul>git supports custom merge strategies
<civodul>perhaps we could use http://planet.racket-lang.org/package-source/stamourv/sexp-diff.plt/1/0/main.rkt somehow
<rekado>went around the problem by moving my new variables to the very top of the file, then rebase, then move my stuff back where it should be.
<rekado>I think rather than telling git to be smarter I want it to be dumber in most cases.
<civodul>rekado: do you often have such conflicts?