IRC channel logs

2015-11-26.log

back to list of logs

<orbea>guix pull = how to update guix?
<orbea>ACTION wonders how to view the guix package changelog...
<orbea>Not as simple as "guix log" :P
***francis7 is now known as emacsuser
***emacsuser is now known as francis7
***francis7 is now known as fchmmr
***fchmmr is now known as francis7
***shymega_ is now known as shymega
***tschwing_ is now known as tschwinge
<civodul>Hello Guix!
<efraim>hi!
<efraim>between your and ricardo's suggestions I have python2-oauthlib building. I thought I had to edit python2-cryptography to fix python2-oauthlib, but now I understand everything that uses python2-cryptography needs to be specifically told what to do
<Gottox>Hi there!
<Gottox>I'm currently trying to compile elogind and got this error:
<Gottox>config.status: creating Makefile
<Gottox>config.status: error: cannot find input file: `po/Makefile.in.in'
<Gottox>(v219.12)
<civodul>hi Gottox
<civodul>Gottox: are you building it with guix, or from a checkout?
<Gottox>from a checkout
<civodul>i recommend starting from the tarball at https://wingolog.org/pub/elogind/elogind-219.12.tar.xz
<civodul>it's bootstrapped, so you don't need autoconf/automake/gettext to start building it
<Gottox>let's try that... :)
<Gottox>I hope, that I can use elogind to build gnome with logind support on voidlinux.
<Gottox>We currently rely on consolekit support, but that's fading away.
<civodul>yeah
<Gottox>./.libs/libelogind-core.a(libelogind_shared_la-clean-ipc.o):clean-ipc.c:function clean_ipc: error: undefined reference to 'mq_unlink'
<Gottox>hm... -lrt is missing.
<Gottox>cool, got it compiling...
<civodul>our package adds LDFLAGS=-lrt too
<civodul>you're welcome to fix it upstream, of course ;-)
<civodul>Python help needed! https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00685.html
<rekado_>I wonder if we could bootstrap gcc not from a binary of gcc but with the binary of a much smaller C compiler, which we could build from a simple compiler written in plain assembly.
<civodul>that's a good question
<civodul>there's interesting stuff to be done in that area
<civodul>tinycc is the smallest i know of, but it's not that small either
<civodul>but anyway, GCC needs a C++ compiler nowadays
<rekado_>:(
<efraim>if it were assembly wouldn't we need one for each architecture?
<rekado_>efraim: yes.
<efraim>x86 is pretty set but I don't know a lot about arm. would one armv7 version be enough for 32-bit arm or would we need chipset specific ones?
<rekado_>or we could bootstrap GCC first and then build cross-compilers for other platforms, no?
<civodul>that's what we're doing already, IIUC
<rekado_>yes, but we bootstrap with a GCC binary.
<Gottox>efraim: We at voidlinux are using one armv7 gcc-cross for all our platforms.
<civodul>rekado_: then i don't understand your suggestion ;-) what did you mean by "bootstrap GCC first"?
<rekado_>well, in my dream world there is a tiny compiler for a subset of C written in assembly, which would be used to build tinyCC, which would be used to build GCC, which can then be used to build cross-GCCs.
<rekado_>it's not much of a suggestion, I'm just dreaming out loud.
<civodul>the problem is not cross-GCCs, but rather everything before
<civodul>and unfortunately, by switching to C++, GCC spoiled our dream
<rekado_>could an older version of GCC be used to build the C++ compiler?
<rekado_>my dream is just to move the root of the graph a few more turtles down.
<civodul>an older version might work today, but it's not sustainable
<civodul>most likely we'd have to build a very old GCC, to build an old one, to build a recent one, to build the latest one
<civodul>and the old versions would probably need patching here and there, more and more over time
<civodul>unless we also build old binutils and glibc
<civodul>but it sounds endless...
<civodul>maybe worth trying though, maybe i'm overly pessimistic
<efraim>something else I learned poking around python, later versions of python-mock depend on python-pbr, which already depends on python-mock
<efraim>wait, giux import pypi mock says it's ok with the bootstrap 0.11 version, so nvm
***francis7 is now known as vimuser
<civodul> http://permalink.gmane.org/gmane.linux.distributions.nixos/18680 <- similar to 'guix package --manifest' + something for user services
<civodul>iyzsong: ↑
***vimuser is now known as emacsuser
***emacsuser is now known as francis7
<iyzsong>civodul: ah, yes. I see it, but haven't try. it use systemd for user services, also manager user files, etc.
<civodul>yes, this is similar to the idea you proposed a while back
<civodul>we could do that with per-user dmd instances
<Gottox>hmm... will elogind be started via dbus or do I need an init script?
<iyzsong>Gottox: the service file of elogind have a wrong Exce=/bin/false, so it can't be activated
<civodul>yes, i've been willing to fix that
<iyzsong>civodul: sure, and I think dmd can work in more places than systemd :) what we're going to do is the userops coined by Christopher Allan Webber: http://mediagoblin.org/news/userops.html
<iyzsong>doesn't davexunit already work on managing user's files?
<fps>hmm, hmm, building the world does indeed take a while :)
<fps>is there a guix package invocation to find out what packages have been built already?
<fps>ls'ing /gnu/store and fiddling with cut is boring
<iyzsong>I don't know that :-
<fps> https://pastee.org/mc7tt
<fps>result of find /gnu/store -type d -maxdepth 1
<fps>fps@raksha ~$ guix package -A | wc -l
<fps>2698
<fps>2698 packages
<fps>about halfway done then,maybe
<fps>and ca. 22G of diskspace used
<fps>i also have a feature request :)
<fps>is it possible to prepend every line of output of guix build with the package name that's being built?
<civodul>iyzsong: yes, davexunit said he was looking at managing files in general, which could include user files
<civodul>fps: unfortunately no so easily, because we get those lines directly from the daemon, and only the daemon knows what's going on
<civodul>and the daemon doesn't think in terms of packages, but in terms of "derivations"
<civodul>but i'd really like to have a way to disentangle the logs that the daemon sends
<fps>civodul: and derivations are not named, right?
<fps>civodul: they are just some sort of low level program that the daemon executes?
<civodul>derivations are the /gnu/store/xyz.drv things
<civodul>that's their name
<civodul>and yes, it's a low-level build program, as you write
<fps>oh ok, the daemon could then maybe prefix the lines it sends with the derivation name.. that might help already to judge what's going on :)
<fps>[configurable, of course]
<civodul>yeah, something like that
<fps>civodul: the guix-build daemon is the nix-daemon in the guix repository?
<fps>ugh, manual options parsing. boost::program_options exists :)
<fps>raw pointers. what's this? the 20th century? ;
<fps>;)
<rekado_>boost? yuck!
<fps>*shuder*
<fps>rekado_: hehe
<fps>yuk
<fps>global variables
<fps>this code comes from people that love functional programming? :)
<fps>raw pointers, naked strcpy's, global variables
<fps>ayayayayay, ole, l'allegria!
<fps>rekado_: you don't like boost? what parts of it and why? :)
<civodul>fps: code for the daemon is in nix/, with the interesting bits in nix/libstore, and with the relevant bits in nix/libstore/build.cc :-)
<fps>disclaimer: my previous comments were a bit tongue in cheek :)
<fps>civodul: thanks
<rekado_>fps: the long-term goal is to rewrite the daemon in Scheme. Few people here like to hack on C++.
<fps>i can imagine. c++ is horrible :)
<fps>i'm not a functional programmer by any means, but most c++ programs can benefit heavily from the lessons functional programming taught us
<civodul>on corporate funding: https://news.ycombinator.com/item?id=10631271
<cehteh>civodul: about all this build-server, funding stuff and more .. i would really like if guix could sustain with a completely distributed infrastructure, gnunet, bittorrent, signed builds where anyone trusted can cooperate
<cehteh>(long term goal of course)
<civodul>cehteh: sure, that's part of the goals
<civodul>we would still need a build farm for continuous integration though
<civodul>but yeah, the more decentralized, the better!
<cehteh>even continous integration could be distributed eventually
<civodul>hmm yeah, maybe
<rekado_>I'm confused about propagated-inputs and inputs in the ghc-* packages.
<rekado_>do we really need to propagate inputs for Haskell applications/libraries?
<rekado_>should the "inputs" in most of these ghc-* packages not really be "native-inputs"?
<rekado_>trying to package pandoc now.
<civodul>rekado_: since Haskell doesn't have anything like RPATH, we have to propagate stuff
<civodul>same as for Python, Perl, etc.
<rekado_>oh.
<rekado_>sad.
<civodul>yeah
<civodul>well, i can live with it ;-)
<rekado_>I just find propagation really icky.
<civodul>for the mess it introduces in profiles?
<rekado_>yes.
<rekado_>users must be aware of propagation (you can't tell just by looking at a package in the list); I usually notice only when guix tells me about conflicts.
<civodul>yeah
<civodul>that's pretty bad
<civodul>OTOH it's the kind of thing i would use 'guix environment' for, or install in a dedicated profile
<civodul>as opposed to installing them in ~/.guix-profile
<rekado_>I usually end up doing that, but only after seeing all these conflict warnings.
<civodul>ok
<mark_weaver>fps: here's what I do: "ls -ltr /var/log/guix/*/*", optionally piped to 'tail'
<civodul>rekado_: i think fixing it requires support from the language itself :-/
<civodul>mark_weaver: high tech ;-)
<mark_weaver>heh :)
<mark_weaver>rekado_: replacing just the compiler wouldn't really help all that much, because you still need binaries of all the other utilities, plus a kernel.
<mark_weaver>rekado_: my dream is to implement a minimal little subset-of-scheme REPL that works as a coreboot/libreboot payload, and then document a set of REPL commands that gradually builds up the system to the point of being able to compile the GNU toolchain and go from there.
<mark_weaver>another example of a coreboot/libreboot payload is GRUB
<rekado_>civodul: I was convinced that Python offered a way to "import /path/to/module", but I was shocked to learn that this doesn't actually exist.
<desiderantes>hello, i see that a systemd .service file is provided when installing guix for users
<desiderantes>is there a upstart job for that?
<rekado_>Ruby supports this, though, and I really think it's worth working on a build phase that replaces plain "require lib" statements with "require /path/to/lib"
<rekado_>mark_weaver: that's a nice dream :) I'd like that.
<mark_weaver>and part of the bootstrap process would involve compiling the last version of GCC (4.6?) that doesn't require C++ to compile, and then using that to compile the newest version of GCC that can be compiled with that version of GCC, and so on, until we get to the version of GCC that we want.
<mark_weaver>:)
<mark_weaver>rekado_: this may be of interest. not quite what I was going for, but along similar lines. it's a shame he chose the RPi to do it, but it could be ported: http://interim.mntmn.com/
<mark_weaver>the main difference is that I'd like to start from something so small that it's quite practical for one person to audit and understand the assembly code.
<civodul>desiderantes: no, there's no upstart job; but if you write one, we can add it :-)
<desiderantes>civodul, i wrote one
<desiderantes>i was just checking if there's one already
<civodul>ok
<civodul>mark_weaver, rekado_: BTW, if you have ideas of things to discuss at https://reproducible-builds.org/events/athens2015/ , let me know!
<desiderantes>civodul, i've been testing it and it seems to work properly, how can i propose it for inclusion?
<civodul>desiderantes: post it to guix-devel; better: if you're familiar with the autotools, post a patch that integrates it similar to etc/guix-daemon.service.in
<civodul>specifically, do something similar to commit d2825c96
<mark_weaver>civodul: well, my main concern about all of the reproducible builds projects that currently exist is that they all requires putting one's faith in a *huge* pile of binary code to start with.
<mark_weaver>which is not to say that this is not a logical first step, and an important one.
<mark_weaver>but I for one will not be satisfied until we can start from something whose machine code is fully auditable by a single person in a reasonable length of time, and then have the rest of the bootstrap be 100% source code in the true sense of the term (preferred form for editing)
<mark_weaver>and then it will time to work on the hardware :)
<civodul>yeah
<mark_weaver>but in the meantime, it would be interesting to see how small we can make the Guix bootstrap binaries.
<civodul>OTOH, Lunar suggested that, if we do double-diverse compilation of the bootstrap binaries, then we can be sure they are free from the Thompson attack
<civodul>yes, to me, we still want to make the bootstrap binaries smaller, regardless
<mark_weaver>e.g. by using busybox and maybe tinycc or similar
<desiderantes>civodul, ok, will do, thanks
<mark_weaver>the diverse compilation idea is a good one, but it's important to remember that the compiler is only one of the components where such a Thompson attack could be launched from. the assembler, linker, and kernel are other places to be concerned with.
<civodul>yeah
<civodul>not to mention the various compilers, interpreters, etc.
<mark_weaver>and taking into account all of those places, the amount of diversity we have available to work with is far too limited to give much comfort.
<civodul>yeah, even if we restrict ourselves to C++ compilers, we have only two of them in fact
<mark_weaver>right
<civodul>and it's not even clear that they can compile each other
<civodul>i think one option for us to remove the number of bootstrap binaries would be to have more things written in Guile
<civodul>not feature-full, but good enough as replacements for, say, coreutils, findutils, ld, etc.
<mark_weaver>yeah
<civodul>basically unpack the bootstrap-binaries tarball, see what we can implement, and remove it from there
<mark_weaver>although Guile itself is too big, and so it would be good to write such code with an eye toward running it on a simpler scheme implementation during the bootstrap.
<mark_weaver>although maybe at some point we can work on making Guile itself more modular, with a very simple core.
<mark_weaver>dunno, some of these ideas are off the top of my head, and not fully baked :)
<mark_weaver>anyway, I have to go afk for a while. happy hacking!
<civodul>later!
<zacts>hello guix
<zacts>I may try installing guix on my laptop today
<zacts>just to get used to it
<zacts>I want to contribute towards full disk encryption via cryptsetup + LVM2
<zacts>so maybe we can work on this
<civodul>would be nice!
<civodul>Sleep_Walker already went pretty far on that front, but then we dropped the ball
<civodul>we should resume work
<Sleep_Walker>I agree
<civodul>are you in? :-)
<civodul>i remember there were shortcomings with the mapped-device design that needed to be addressed
<Sleep_Walker>I'm always in, I just haven't found time for that :/
<Sleep_Walker>it's not that far from top on my TODO list
<civodul>heh
<Sleep_Walker>but family is occupying my time more and more
<Sleep_Walker>zacts: you can find some information on ML archive, but I'm not sure, how relevant it still is
<zacts>Sleep_Walker: ok
<zacts>yeah I'll ask civodul later today or this week
<zacts>civodul: ^
<rekado_>as I also have a fully encrypted disk with LVM I'd be willing to help if you need to verify some techniques.
<civodul>nice
<Sleep_Walker> https://lists.gnu.org/archive/html/guix-devel/2015-04/msg00282.html thread start
<civodul>zacts: ↑
<zacts>thanks
<zacts>rekado_: oh for sure! nice
<zacts>let me know how you did it, and what problems you encountered...
<desiderantes>well, make is taking a LONG time
<civodul>yeah
<desiderantes>civodul, done
<desiderantes>patch sent
<civodul>desiderantes: thank you!
<desiderantes>civodul, :D
<desiderantes>first time i send a patch to a project
<civodul>heh, welcome!
<civodul>rekado_: did you have a chance to submit a proposal for the HPC track at FOSDEM?
<civodul>ACTION shamelessly tries to offload work :-)
<civodul>if we were many to go there, there are several devroom where we could talk: distributions, config management, containers, and security
<civodul>*devrooms
<civodul>ACTION sends a call for proposals :-)
<civodul>damned, i've silenced the channel
<civodul>Steap: you're gonna talk about Guix-Tox at FOSDEM, right?
<Steap>civodul: I don't know, got any money to send me there ?
<civodul>come on, you earn twice my salary! ;-)
<civodul>it's surprising there's no OpenStack devroom
<civodul>maybe it's too small a project?
<avoine>is it normal that when I create a vm with guix system vm ... that in it /gnu/store is read-only?
<civodul>avoine: yes, because the VM shares the store with the host
<civodul>see http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html
<civodul>ACTION has to go
<civodul>ttyl!
***6JTACKCGI is now known as paolo
<rekado_>civodul: I wanted to submit, but haven't yet. I'm always away from my personal machine. I'll try to submit the talk in the HPC track tonight or tomorrow morning.
<rekado_>ACTION goes afk to meet with the local FSFE group
***joehillen_ is now known as joehillen
***necronian_ is now known as necronian
***catern_ is now known as catern
<fps>if the publish service is running
<fps>are all built packages automatically available over port 80?
<fps>if i connect to http://localhost i just get Resource not found; /
<fps>no idea if that's the expected behaviour. is the protocol documented somewhere
<fps>?
***keverets_ is now known as keverets
<sirgazil>hmmm, guile-sdl is failing to build, so I can't install guile-sly :(
<sirgazil> http://pamrel.lu/bbd3c/
<rekado_>submitted two talk proposals for FOSDEM2016, one in the HPC track, the other for the Guile devroom.
<civodul>rekado_: excellent, thanks rekado_!
<fps>hmm
<fps> http://fps.io:9999
<civodul>sirgazil: ouch
<fps>how can i check if the build service actually provides builds there?
<rekado_>civodul: thanks for the reminders. I had this FOSDEM submission page open in a tab for much too long and always managed to procrastinate...
<civodul>i know that feeling :-)
<fps>this is a not very stable ssh port forwarding to the local port 80 on the guixsd vm :)
<fps>if i access it with links i just get Resource not found: /
<civodul>fps: i just tried this: guix challenge inkscape --substitute-urls='http://hydra.gnu.org http://fps.io:9999'
<civodul>and it works :-)
<civodul>if you publish the public key, people will be able to use substitutes from there
<fps>hmmm
<civodul>sirgazil: it seems to build fine here: http://hydra.gnu.org/job/gnu/master/guile-sdl-0.5.2.x86_64-linux
<fps>publish as in:
<civodul>sirgazil: did you disable substitutes?
<fps> https://pastee.org/y96qy
<fps>service might go away anytime though..
<sirgazil>no, they are enabled.
<fps>fps@raksha ~$ find /gnu/store/ -maxdepth 1 -type d | wc -l
<fps>1657
<fps>also it's just 1657 packages as of now ;)
<civodul>sirgazil: is this a recent pull or git checkout?
<fps>i'll have to ponder how to make the port forwarding more relibale
<sirgazil>civodul: but this machine is i686
<sirgazil> http://hydra.gnu.org/job/gnu/master/guile-sdl-0.5.2.i686-linux
<fps>but not tonight. that involves reading and stuff..
<sirgazil>I did a recent pull, but other packages install alright.
<fps>fyi: that's: /dev/sda1 99G 28G 67G 29% /
<civodul>sirgazil: ooh indeed, it's failing here
<civodul>:-/
<fps>including the base system before that which was like 3G
<civodul>so 70G for two thirds of the packages?
<fps>28G :)
<fps>here's what's in store: https://pastee.org/v3zx4
<fps>i guess it might be worthwhile to tailor the config.scm including cron jobs, etc, so other people can just slap it onto a vm and let it do work..
<civodul>yes, i've been willing to do that
<fps>public key is here: https://pastee.org/y96qy
<civodul>sirgazil: could you email bug-guix@ with this problem, mentioning the architecture and commit?
<fps>feel free to hammer it :)
<fps>good night
<civodul>night!
<sirgazil>civodul: sure
<civodul>thanks, and sorry for the bad experience :-/