IRC channel logs


back to list of logs

<kete>I'm installing GuixSD.
<lfam>kete: Cool!
<lfam>I won't be around much this evening / morning, but hopefully there will be other helpful people here
<kete>Yes, appreciated
<kete>nice – info on tty2
<lumidragon>is there a way to checksum a git check similar to using guix hash or guix download??
<lumidragon>meant git checkout.
<lfam>lumidragon: Check out the desired commit and then delete the .git directory. Then do `guix hash -r` on the Git repo directory
<lfam>Better to mv the .git directory, or work on a copy of the Git directory, so you don't have to clone again
<lfam>We have to do this because the .git directory might be different every time you clone, as people commit to it. It would be nice if `guix hash` could exclude things, so you didn't have to delete the .git metadata
<lumidragon>kk thanks, much appreciated.
<kete>Does GuixSD need the Colemak keymap?
<kete>The GPM mouse daemon is so awesome :)
<kete> should have quotes around MY-SSID.
<defanor>kete: it has the colemak keymap, it's called "en-latin9". and i think it needs it
<defanor>my guix build has finally finished, with an error
<defanor>"no space left on device" D:
<kete>my eyes hurt, and I can't dim the screen. I'll just start over in the morning.
<kete>thanks defanor I think so, too. I'll try that tomorrow.
<lfam>Do we package a tool to check a disk's SMART status?
<defanor>does `guix system init` proceed from where it failed, or is it doing everything from the beginning each time?
<lfam>My question appears to be answered by the smartmontools package
<lfam>defanor: I _think_ that if you just stop `guix system init` and restart it, whatever you downloaded or built should still be in the store. But, I'm not sure what happens if you reboot, or anything like that.
<defanor>hrm. how much disk space the "bare-bones" system installation may require?
<lfam>defanor: Depending on what packages your OS configuration requires, you will probably get more substitutes and have to build less if you `guix pull` to get the latest package definitions. If you don't do it from the installer image, you should do it after you reboot into the system, because that is how you get security updates (there are many).
<lfam>I don't know off the top of my head, but I built a QEMU image of a very slightly modified bare-bones config yesterday, and the image is 1.2G. I don't know how that compares to a bare-metal installation.
<defanor>strange. i've tried to install on a 20G disk, also using qemu (qemu-kvm, a qcow2 disk)
<defanor>`df -h` says that only 1.4G is used
<lfam>And you still ran out of space? Are the partition and filesystem definitely using the entire disk?
<defanor>yup, it shows those 1.4G as 8%
<lfam>Did you know Guix has built-in support for building QEMU systems? `guix system vm` and `guix system vm-image`
<lfam>Huh, what does it say before it says out of space?
<defanor>didn't know that. is it for running on the guest system?
<defanor>it was building some library. unfortunately, it's lost now
<lfam>No, those build immutable and mutable images, respectively.
<defanor>i've poked it a bit and it got out of reach
<defanor>(the second "it" = error message)
<lfam>Right, not enough scrollback
<lfam>How big is /tmp?
<lfam>Is it RAM backed?
<lfam>Guix builds each package in an isolated environment in $TMPDIR, which defaults to /tmp. Some software requires immense amounts of space to build, and the build dies with "out of space" messages.
<defanor>2G, but there's "none" in filesystem
<defanor>"none on /tmp tmpfs …"
<lfam>I'm not sure how this works in the installer image
<lfam>You are building a mostly unmodified bare-bones system? Any added packages?
<defanor>yup, and nope
<defanor>just changed the user name
<lfam>I would try it again to see what package it dies while building
<defanor>trying now
<lfam>That's a poor sentence. Hopefully you understand what I mean :)
<defanor>though it'd take a couple of hours at least
<lfam>Is your network connection very slow? It shouldn't take that long to download the substitutes for the bare-bones system
<defanor>(looks like it's re-building everything)
<defanor>the network connection is fine, the building takes a lot of time on a VM
<lfam>Okay, that's not right
<lfam>Oh, I didn't realize it was virtualized
<defanor>ah, wait, "download the substitutes"? how's that?
<defanor>that is, what are "the substitutes"?
<lfam>Guix is a build-from-source system, but the system can transparently use binary substitutes from our build farm, or any other build farm (if you authorize it).
<lfam>Check the manual, section 3.3 Substitutes
<lfam>If you just want to try GuixSD in a VM, I recommend installing Guix and using `guix system vm-image`.
<defanor>installing on a desktop?
<defanor>checking the manual
<lfam>Guix will work on pretty much any GNU / Linux system, and is very unintrusive (it only creates /gnu, /var/guix, some new users (the builders), and a symlink forest at ~/.guix-profile)
<lfam>To be clear, Guix is the standalone package manager. GuixSD is the operating system built around Guix.
<lfam>You wouldn't have to install it on a desktop. You could install it on a server, build the VM there, and then copy the image to any machine with QEMU (and ideally with KVM)
<lfam>But I can understand not wanting to install Guix just to build a VM in order to try a new OS
<defanor>got it. and regarding substitutes – "guix system init" can also use them, right?
<lfam>Yes, as long as it can reach the substitutes server. You would see the messages about downloading them from
<lfam>However, if there are no substitutes available for what you want, it won't help you much :) You might try `guix pull` so that you request the latest packages. It might increase the number of packages you can substitute.
<defanor>my primary concern with installing it on another machine is that it'll shadow some installed packages somehow/somewhere. got that with nixos, was quite confused with paths
<lfam>Well, if you have 'foo' at ~/.guix-profile/bin/foo and also at /usr/bin/foo, you need to set up your PATH so that it chooses the one you desire.
<defanor>yup, same with nix (and ouch, s/nixos/nix/). though i knew it, somehow things got messy
<lfam>It's been said in this channel that environment variables are one of the great problems of computer science ;)
<defanor>though sorted it out then, but three package managers would be a bit too much
<defanor>does the hydra public key come with guixsd? failing to find it
<lfam>Yes, I think it's authorized by default in GuixSD, but not for standalone Guix.
<lfam>Look in /etc/guix/acl
<defanor>yup, there is some key
<lfam>That's it then
<lfam>Every Guix daemon signs all it's built packages. You can share them between machines if you authorize the source machine's key.
<lfam>If you don't seem to be getting any substitutes, then you either can't reach the substitutes server, or you are requesting things for which we have no substitute. That could mean that our build farm hasn't built your thing yet, or we have already garbage collected the thing you are requested, because too much time has passed and we need to make space for new substitutes.
<lfam>I don't know exactly what's happening here
<lfam>If it's because too much time has passed, one would do `guix pull` to update to the latest package definitions.
<defanor>hm, it seems something's wrong with network here. with dns in particular
<lfam>Oh :( I thought we had resolved that problem
<lfam>Please do `herd restart nscd` and then try your query again. Maybe bring the network up and down too
<defanor>have set a working dns server in /etc/resolv.conf, and it pings, but dns is not working still
<defanor>will try now, thanks
<defanor>works now
<defanor>running `guix pull`
<lfam>Wish I could figure out how to debug that
<lfam>`herd restart networking` would probably have worked too
<defanor>`guix pull` is finished. if i'll run `guix system init` now, will it use substitutes, or will it just continue to use the loaded sources?
<defanor>(i.e., should i clean something up before that?)
<lfam>No need to clean up. The build from source substitution is transparent.
<lfam>It will always use substitutes if they are available and you don't tell it not too with --no-substitutes
<defanor>updates lists of substitutes now
<lfam> <- relevant bug report
<defanor>"after a couple of minutes (about 10 or so) name resolution will start to fail" – uh oh, sounds scarier than if it didn't work at all
<lfam>Yeah, not a great experience for the user
<mark_weaver>I used to have that problem often, but it hasn't happened for me in several months.
<lfam>It doesn't seem to manifest on "installed" GuixDS systems, only in the installer
<lfam>Rereading that bug report, I remembered your awesome domain name mark_weaver :)
<mark_weaver>heh, thanks :)
<mark_weaver>yeah, I was glad to pick that one up
<defanor>installed guixsd, but the partition with the root filesystem doesn't appear
<defanor>so it opens a guile repl, where the `system` function fails
<defanor>how could i debug it?
<defanor>looks like `needed-for-boot?` is #f by default. perhaps should change that
<defanor>though `mount?` is #t by default
<defanor>tried to use a path instead of a label, but it still mentions the label. probably i should `guix system reconfigure`
<defanor>does reconfiguration work from the installer though, or should i just `init` it again?
<defanor>`reconfigure` seems to reload the packages anyway
<defanor>i'd rather try to `init` again, then
<defanor>i thought that the bare-bones version won't install xorg, but it even pulls things like inkscape
<defanor>done, and another error now: "fsck.btrfs: no such file or directory"
<defanor>not sure what file it refers to, but maybe i should add btrfs-progs into the config
<defanor>and could set `check?` to #f for debug
<mark_weaver>defanor: I think we don't yet have support for btrfs in GuixSD, at least not for the root partition
<defanor>mark_weaver: oh. then i'll probably use ext4, if this will fail again
<mark_weaver>ext4 is what I use, and I suspect what most GuixSD use, so that's well tested.
<mark_weaver>*most GuixSD users use
<mark_weaver>inkscape is used to render our SVG graphics for things like the GRUB background image, which is why that's needed even for the barebones config.
<mark_weaver>reconfigure doesn't work from the installer. reconfigure is only used from within the system that you wish you update.
<mark_weaver>you'll probably need to erase the installed system and start the installation from scratch, I'm afraid. once you have a working system installed, future mistakes are easily dealt with by choosing an older (working) system from the GRUB menu, but mistakes in the initial install are rather painful, I'm sorry to say.
<mark_weaver>it would be good to find ways to improve this, but I'm not yet sure how to do it.
<defanor>of course, and it's not a big deal – i didn't configure much. just trying to install the basic system. thanks for the answers
<mark_weaver>np, good luck!
<notadrop>Hi, how to -u (upgrade) ALL installed packages?
<notadrop>guix package -u foo bar
<efraim>guix package -u
<efraim>or guix package --fallback -u
<efraim>sneek: later tell notadrop to upgrade all installed packages run `guix package -u' or `guix package --fallback -u'
<sneek>Will do.
<efraim>sneek: botsnack
<defanor-on-guix>ACTION has finally installed guixsd \\o/
<notadrop>Hi! Are bugs with GuixSD filed seperately from bugs with the Guix package manager? (I'm assuming that yes, they are...)
<sneek>notadrop, you have 1 message.
<sneek>notadrop, efraim says: to upgrade all installed packages run `guix package -u' or `guix package --fallback -u'
<notadrop>efraim: thanks! :)
<notadrop>No output and command ran successfully. I guess that means there are no updates currently availiable for my system.
<mark_weaver>notadrop: bugs for Guix and GuixSD are not distinguished. both should be sent to
<mark_weaver>notadrop: note that "guix package -u" is similar to "apt-get upgrade" (except it only upgrades packages in the profile of the user who runs it), and "guix pull" is similar to "apt-get update" (except it only updates guix packages for the user who runs it)
<mark_weaver>notadrop: if you haven't run "guix pull" or equivalent, then you'll never get updates.
<mark_weaver>notadrop: also note that you'll need to run "guix pull" for each user who runs guix, which normally includes at least two users: your normal user, and root. if you don't run it as root also, then "guix system reconfigure", which is run as root, will not have updated packages.
<mark_weaver>this is a common confusion
<Kooda>mark_weaver: ah, since you talking about that: is it possible to make guix pull behave like guix package --fallback? I get errors every time I try to pull.
<mark_weaver>what errors?
<Kooda>guix pull: error: build failed: some substitutes for the outputs of derivation `/gnu/store/mgnqhcmzc76jxanfp5g6i60ycxnf874n-gzip-1.6.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source
<mark_weaver>you could file a wishlist item at
<civodul>Hello Guix!
<notadrop>mark_weaver: thanks. guix pull reminds me of "pacman -Sy"
<civodul>efraim: what do you think of the latest googletest patch?
***avph_ is now known as avph
<efraim>civodul: I haven't had a chance to look at it yet, I was out house hunting yesterday
<civodul>efraim: ok :-)
***doppioslash_ is now known as doppioslash
***ielectric is now known as domenkozar
<civodul>efraim: there's also a couple of other pending patches from Lukas Gradl, if you happen to have available bandwidth today ;-)
<phant0mas>civodul: wip-hurd in it's current status cannot build the cross-toolchain for the Hurd
<phant0mas>something somewhere went really wrong
<civodul>but nobody touched wip-hurd, right? :-)
<phant0mas>cross-building the glibc for the hurd outside guix works
<phant0mas>but I merged patches from other branches
<phant0mas>so I messed up and I don't know where
<phant0mas>maybe some of Jan's changes
<phant0mas>I will keep looking
<phant0mas>I have to solve it today
<civodul>maybe check the CROSS_C_INCLUDE_PATH thing, though it doesn't seem related
<civodul>make sure libihash is in CROSS_LIBRARY_PATH and appears on the link command line
<phant0mas>civodul: it is in CROSS_LIBRARY_PATH
<phant0mas>so there's something probably wrong in the link command line
<efraim>whats the wip-qt branch?
<civodul>efraim: no idea
<civodul>maybe old cruft?
<civodul>phant0mas: there's no "-lihash" on the command line, right?
<phant0mas>yes there's not
<phant0mas>but even I add it, the result is the same
<civodul>could it be a regression in glibc/libpthread?
<phant0mas>/s/even/even if
<phant0mas>I reported it to the #hurd
<phant0mas>this could very well be a regression
<phant0mas>but when I tried with an older version which according to my commits it worked
<phant0mas>it doesn't
<phant0mas>I will report back when I have something more usefull
<civodul>strictly speaking, it's a matter of (1) passing -lihash, and (2) finding libihash in the search path
<civodul>so you should carefully check these two things
<civodul>possibly strace the command to see where it's looking for libihash
<phant0mas>civodul: I got some progress
<phant0mas>I unsetted LIBRARY_PATH and passed -lihash
<phant0mas>now for the rest
***ringst_ is now known as ringst
<civodul>phant0mas: those remaining symbols are found libc (specifically, but the linker script imports that)
<civodul>s/found libc/from libc/
<civodul>iyzsong: could you upload your OpenPGP AE727D37 to the key servers and/or Savannah?
<iyzsong>civodul: sure, let me try.
<defanor>what's the proper way to set the default keyboard layout (for both console and X) in GuixSD? seems like one shouldn't touch anything in /etc, so should i edit local configs, or can it be set in the system config somehow?
<iyzsong>civodul: done, uploaded to savannah :-)
<civodul>iyzsong: thanks! would be useful to have it on as well
<civodul>the gpg/git mix is depressing
<iyzsong>well, I just learned how to sign and verify, feel cool~
<civodul>it feels cool, but it kinda sucks
<davexunit>civodul: in your very professional opinion, how hard is it to get Hydra setup?
<davexunit>might need to setup an instance at work ;)
***kete is now known as kete`
<civodul>oh cool!
<civodul>i'm afraid it'd be relatively hard given that (1) Hydra FTBFS currently, (2) we may need to custom hacks to make it work, and (3) nobody's tried it yet
<civodul>you may be better off setting up mthl's Cuirass, but of course that has no web UI etc.
<civodul>that said, i'd be glad to be proved wrong!
<civodul>for the new hydra machine, i'm unsure whether to set up Hydra or not
***kete` is now known as kete
<civodul> <- Chicken + NixOS, woow
<civodul>(Felix-of-Chicken's company)
<iyzsong>I never tried hydra, it looks scaring, and I doubt my laptop is useful with it.
<davexunit>civodul: I might just use 'guix publish' + a script to continuosly pull and build packages, then.
<civodul>right, Cuirass is pretty much that script
<civodul>note that 'guix publish' lacks compression support
<davexunit>cool. so I guess I can try that out.
<civodul>probably ok on a local network though
<davexunit>yeah it would be local, would be nice to have compression, though, which is why I was hoping for hydra
<davexunit>or I can just add compression :)
<civodul>yes you can! :-)
<civodul>i looked at your guile-zlib bindings
<civodul>we need to add procedures to compress/decompress to/from a port
<defanor>ACTION has found `console-keymap-service`, left to find something for X
<davexunit>civodul: would zlib be sufficient?
<civodul>yes, definitely
<davexunit>civodul: who knew that random library might come in handy...
<davexunit>I'm having trouble remembering, does zlib just do bz2 compression? I think that's what we need, right?
<civodul>zlib just does zlib compression
<civodul>but it turns out that libz (zlib), libbz2, and libxz have the exact same API
<paroneayea>efraim: ooh cool it sounds like you're making good progress with bournish? :)
<civodul>so if you have bindings for one of them, you essentially have bindings to all of them
<paroneayea>also, I didn't know about let*-values... very cool!
<efraim>yeah i'm liking let*-values quite a bit
<davexunit>civodul: okay so I just need to bind against libbz2?
<davexunit>I can add such bindings directly to guix, or make a separate library. not sure which would be best.
<civodul>davexunit: either way is fine
<civodul>IIRC, zlib functions start with a "z", and libbz2 functions start with "bz" instead
<civodul>something like that
<davexunit>civodul: remembering back to when I wrote the bindings, I found that I needed to make guesses at how much memory the decompressed data would take up, and if decompression failed I would expand the buffer and try again. I never did know if there was a better way :)
<davexunit>civodul: "today I learned"
<civodul>oh :-)
<civodul>davexunit: yeah it needs a bit of care
<davexunit>I took a "double the buffer and retry" strategy
<davexunit>but I imagine there is a way to know up front?
<davexunit>seems like metadata that the compressed archive would have.
<civodul>in fact it's terrible
<civodul>i did stuff with that in libchop back in the day, bah
<civodul>so you need to look at the various fields of the zlib data structure, like 'avail_in' and all that
<civodul>the 'z_stream' thing
<civodul>and it's quite easy to shoot yourself in the foot
<civodul>but it's a one-time effort and everyone will love it! :-)
<bavier>I don't think the z_stream saves the uncompressed size
<bavier>you have to save it yourself
<davexunit>I'll give it a shot when I can
<davexunit>from the perspective of a Guile port abstraction, I don't think we could know the size in that way
<civodul>in libchop i had 1 template C file that that did both compression and decompression for zlib and bzip2
<civodul>ACTION is looking for good refreshing news
<bavier>with a guile port abstraction, you probably don't need to inflate the entire data at once
<davexunit>but there's new questions:
<civodul>davexunit: alternately, Industria has a full implementation of zlib in Scheme
<davexunit>how much to read/write?
<davexunit>bz2, too?
<davexunit>civodul: can guix decompress zlib stuff?
<davexunit>haven't looked at that code in awhile
<civodul>ah, 'guix substitute'
<civodul>well, gzip
<davexunit>I remember seeing code that handled bz2
<civodul>gzip is zlib + header
<davexunit>not sure what the path of least resistance is here :)
<civodul>i think FFI bindings to zlib would be best
<civodul>you should check whether Chicken or Racket already has something
<civodul>that's very likely
<davexunit>well, I already have the basic bindings.
<davexunit>but yeah, I will try to hack on that soon
<mark_weaver>defanor: we don't have any way to configure the default X keymap. I'm not sure off-hand how to do that, so if you want to investigate that would be welcome. for now, we just configure it in our desktop environment, or if all else fails to you do it via the ~/.xsession script if necessary using 'setxkbmap'.
<mark_weaver>if ~/.xsession exists and is executable (shebang and chmod +x), then it will be run *instead* of the default action for launching the chosen desktop environment. so, the last thing it should do is to run something like 'startxfce4' in the foreground, preferably using 'exec'.
<defanor>mark_weaver: yup, i'm about to do that (setxkbmap, in a user config). thanks
<janneke>ACTION has been without Debian for 48hrs *yay*
<mark_weaver>congrats! \\o/
***pastaf_ is now known as Pastaf
<defanor>is there a way to list all the active/running guix services?
<mark_weaver>"herd status"
<defanor>when a new guix version comes out, how do you update it?
<mark_weaver>it is essentially a rolling release. you use "guix pull" (or alternatively, run from a git checkout that you keep up to date), and are never far from the 'master' branch of our git repo.
<mark_weaver>there's nothing particularly special about our releases, except that we create new installers
<defanor>looks like the guix emacs mode requires magit, which isn't shipped with it. and the default i3-wm configuration uses dmenu and i3status, which aren't in its dependencies. are those deemed as bugs?
<taylan>how do I wrap an executable with a custom script again? akin to wrap-program, but providing hand-written code. I think there was a way to do it.
<taylan>maybe I'm dreaming. wrap-program doesn't seem to use any lower-level public procedure to do the actual wrapping.
<taylan>meh, I can do it manually
<defanor>what's that wrap-program thing? i'm failing to find it in the manual
<taylan>defanor: it wraps an executable with a script doing environment variable settings
<taylan>in guix/build/utils.scm
<janneke>thanks mark_weaver! *very happy*
<lfam>Ugh. The ntp package definition fetches the source from, which redirects to
<lfam>But does not work.
<lfam>Gnutls problems
<lfam>Asking on #ntp if the redirection is stable. If so, I will update NTP and add the URL to the package definition
<janneke>it's a bit quiet on the mingw front, sorry about that
<janneke>i was preparing a new patch set last weekend and running a fairly extensive test set...
<janneke>only to find out that i cannot cross-build readline anymore
<wingo>it sounds like we're at a place that is somewhat resistant to bitrot, having all of these recipes reified into guix
<janneke>something changed, bisecting is not really an option, make-boot* wants to rebuild
<wingo>aw that's irritating :/
<janneke>yup...i lack some understanding still of the build system, it seems
<defanor>can `guix system disk-image` use an alternative (gnu system install) module (e.g., in order to put alternative sample configurations there)? or can it just init/install the current system (same as the one used as installer), without writing a new configuration?
<defanor>and is there a way to put files into a user home directory, during installation? and/or to install packages into a user store?
<slim404>I'd like to host /gnu/store/ in a separate partition
<slim404>does it matter if it becomes a symlink ?
<mark_weaver>slim404: for GuixSD, or Guix running on top of another distro?
<slim404>mark_weaver: guixsd
<mark_weaver>I'm not sure how the boot process will cope with it not being on the root partition. that might be bad.
<slim404>mark_weaver: thanks
<kete>do I just put my keymap in a file for console-keymap-service FILE? Is /etc a good place?
<mark_weaver>kete: IMO, it's better to put it in the OS configuration itself, so that it gets versioned along with everything else
<mark_weaver>put something like this in the file:
<mark_weaver>(define keymap (plain-file "keymap" "keymaps 0-255
<mark_weaver>keycode 42 = Shift
<mark_weaver>keycode 54 = Shift
<mark_weaver>and then add (console-keymap-service keymap) to the 'services' field of the OS config.
<mark_weaver>where the contents of that large string literal are what should be fed into 'loadkeys'
<kete>thanks, that's more involved than what I was asking. I just want to load en-latin9. I was putting it in the OS config and 'en-latin9' in /etc/console_keymap, but it's probably better to make it limited to my user even though there won't be any other users.
***fkz is now known as Guest18900