IRC channel logs


back to list of logs

<the_tubular>Can somebody tell me what happened there ?
<the_tubular>That was weird
<the_tubular>I changed directory and reran the command and it worked ...
<nckx>Most commands don't like running in a deleted current working directory.
<nckx>(Is it still a cwd if it doesn't exist…? Most commands don't like philosophy.)
<the_tubular>Umm, the directory does exist, but i was messing with docker mounts, so that might be it
<nckx>Well, it didn't exist to that process at that point, is all I can say.
<the_tubular>Thought I hit a bug :p
<nckx>Nope. I'm a bit surprised you've never encountered this before (it's not that hard to produce — here it happens mostly when I'm messing around in a --keep-failed /tmp/guix-build-… in one shell, then re-run the build [so a new but identically-named directory is created] in another, then forget to ‘cd $PWD’ in the first shell.)
<the_tubular>I see, well that's a good thing I encounter it rarely
<nckx>Yes. I meant ‘it's nothing to worry about, not as arcane an error as your situation might have led you to believe’, not ‘omg you noob’.
<mfiano>is there a message leaving bot in here?
<the_tubular>Ohh i'm still in that second category :P
<the_tubular>My guix learning as hit a cap, and can't find good ressources to watch/read to keep learning :(
<nckx>mfiano: ‘sneek: later tell NICK: blah’.
<nckx>There's also a very useless feature if you forget the ‘later’:
<nckx>sneek: tell mfiano: Good night!
<sneek>mfiano:, nckx says: Good night!
<mfiano>sneek: later tell luis-felipe: I'll try again. I may have just tried it on a random broken commit.
<sneek>Got it.
<nckx>ACTION → 😴💤
<mbakke>the_tubular: what are some topics you would like to learn more about?
<the_tubular>Guix / Scheme, but I learn a lot with videos and watched pretty much all I could find. I've read the manual and pretty much all of the little schemer and still feel like a noob :(
<the_tubular>I'd like to learn how to configure services
<mfiano>Which manual?
<mfiano>Guile or Guix? :)
<the_tubular>Guix's manual
<mfiano>Ah, well are you new to programming in general, or just Scheme?
<the_tubular>Not totally new, but my experience is limited.
<the_tubular>Aka i just know a bit of python to get me through boring tasks.
<mfiano>You have a couple of options for a good learning path, depending on how you feel.
<mfiano>If you want to learn programming very well, using Scheme as a vehicle, just read SICP.
<the_tubular>I'm open to all ideas, but learn better in video format. Never heard of SICP
<mfiano>Scheme though, is a very small language, and you could also start by reading TSPL3 or TSPL4 (I recommend the latter if you will be using Guile).
<mfiano>SICP is actually a course, in both text and video form.
<mfiano>Structure and Interpretation of Computer Programming
<mfiano>It is a well-known Scheme book.
<mfiano>It's where to start if you are new to programming, and want to start with an easy, small, language
<the_tubular>I'll definitely give it a shot, any other recommendations ?
<mfiano>Otherwise, The Scheme Programming Language 3 (for R5RS) or 4 (for R6R6) is a more throw you in the deep end kind of start, but with good exercises along the way, and you can also ask questions on IRC.
<mfiano>R6RS rather
<mfiano>The latter two are books only.
<the_tubular>What are those ?
<the_tubular>R6 R5 ?
<mfiano>A revision of the original IEEE Scheme standard
<jman>hello quick question about contributing patches to guix: since it's under the GNU org. umbrella I would need to assign copyright to the FSF through the usual procedure, correct?
<mfiano>There are many variants of Scheme, and those are efforts to have them all more or less follow the same paths
<the_tubular>Got it, thanks a lot mfiano, and if you ever think of something else, feel free to ping me
<mfiano>the_tubular: Check out #guile for newbie help. I'm new to guile, but not other Lisps.
<the_tubular>Should I be focusing on whichever guix use ?
<the_tubular>But yeah, learning guix is a lot different than learning other distro like gentoo, well that helps that I could read portage as it's written in python.
<the_tubular>It's kind of kicking my ass.
<mfiano>the_tubular: All you need to really know is Guile follows all of R5, R6, and R7 (with some slight variations that it mentions in like 1 paragraph of the Guile manual)
<mfiano>So read either TSPL3 or 4. Doesn't matter too much. 6 is larger.
<mfiano>err 4 is larger, rather
<jgart[m]>mfiano: Do you happen to know if scheme is a smaller lang than lua? I have a feeling core lua is smaller but I haven't counted the primitives or whatnot
<the_tubular>Also, any podcast ? I know of FOSS & crafts, but it's not really "guix" focused
<mfiano>I can't answer that because Scheme isn't an implementation, and afaik, Lua is. But I know very little about Lua. From what I know, I would say base Scheme is much much smaller.
<haugh><mfiano> "Structure and Interpretation..." <- SICP is a general computer science textbook that happens to be written in Scheme. It is an iconic book, but it does not paint an accurate picture of modern Scheme in practice.
<mfiano>Lisp is full of historical treasures. I can't think of any good CL book that didn't age well.
<the_tubular>What does that mean "Scheme isn't an implementation" ?
<mfiano>(I come from CL)
<nckx>jman: No. There is no copyright assignment at all.
<jman>ok! thanks nckx
<mfiano>the_tubular: I probably won't ping you here, but feel free to ping me in #guile about any guile/scheme questions. If I can't answer, someone can!
<jgart[m]>the_tubular: I think he means that guile is an implementation but scheme is a collection of standards for how to implement a scheme
<the_tubular>Also is there some "easier" stuff I could read for just reading lower level stuff like writing bindings to configure a program ?
<the_tubular>Guix's manual kind of touch on it, but it's not enough ...
<jgart[m]>But Guile doesn't conform to any RNRS although it supports some of them
<jgart[m]>the_tubular: unfortunately not
<mfiano>The thing is Guile is a kind of Scheme which is a kind of Lisp. There are many kinds of Lisps, Scheme is one family of them. There are also many languages (implementations like Guile) in the Scheme family.
<the_tubular>I understand that, but I don't understand which "level" do what mfiano
<mfiano>There is no level.
<mfiano>You download a language and use it
<the_tubular>What does Guile brings to Scheme that brings to Lisp ?
<mfiano>I can't understand that question?
<jgart[m]>the_tubular: re ffi You have existing code, blog posts, irc
<jgart[m]>But not sure if someone has written a good blog post on guile ffi
<the_tubular>I mean, what is a kind of scheme and what is a kind of lisp ?
<jgart[m]>Probably not
<haugh>Guix is a program written and configured in Guile, which is a dialect of Scheme, which is a standard for how to write a programming language in the Lisp family of languages, which includes Common Lisp and Clojure
<jgart[m]>Guile is a kind of scheme which is a kind of lisp
<mfiano>a kind of lisp is anything that derives from the original McCarthy 1958 invention called LISP
<panadestein[m]>How to get Plymouth to work in Guix System? For instance, do you simply add it to your programs in the configuration file, or you create a service?
<jgart[m]>the_tubular: TLDR Guile has one namespace whereas CL has two namespaces, one for functions and one for variables
<the_tubular>I see
<mfiano>It has many more than two
<jgart[m]>That's one major difference
<the_tubular>Sorry about the vague questions ^^
<mfiano>Lisp-2 is just a label Scheme people throw at CL to make distinguish that it has more than 1, but it has like 10 or something.
<mfiano>If you read PAIP I think it is mentioned in that.
<jgart[m]>mfiano: What are the other namespaces?
<jgart[m]>Beside var and func
<mfiano>I don't recall. I remember answering that in one of my reddit comments a couple years ago if you really wanted to dig.
<jgart[m]>What is PAIP
<the_tubular>Lisp-2 ?!?!
<jgart[m]>Not familiar with that acro
<jgart[m]>book acro
<jgart[m]>spec acro?
<jgart[m]>Oh right
<jgart[m]>I haven't really read that one yet
<jgart[m]>Just skimmed it
<jgart[m]>But I know it's in "the canon"
<the_tubular>You guys lost me
<the_tubular>Canon ?
<jgart[m]>I just meant the books that are deemed important
<jgart[m]>Like PCL
<the_tubular>Ohh lol
<jgart[m]>The "canon of work"
<jgart[m]>not pachelbel's canon
<jgart[m]>although that piece is in "the canon" in addition to being a musical canon
<haugh>The cannon Graham keeps in his garage
<jgart[m]>sorry I'm sh*t posting now
<jgart[m]>mfiano: Do you still 💚 CL?
<money>psh always
<money>ML too
<mfiano>I love all my tools.
<money>CL ML most after
<vagrantc>you know it
<vagrantc>ACTION waves
<ecbrown>Looks like the cuirass manual is not available, though referenced in the manual: e.g.
<Guest30>ecbrown: looks like all of the links under the `*` path are broken, culprit seems to be this line in the Haunt source for the site [1]
<Guest30>[1] -
<Guest30>From my quick look it doesn't seem like the cuirass manual or tarball paths are ever populated
<trevdev>Has anyone got a .dir-env.el method for activating a guix shell for a project?
<trevdev>I'm about to muddle my way through writing an eval cons and try to muddle my way through it
<lechner>trevdev / Hi, do you want buffer-env?
<trevdev>lechner: That's a start! Ideally I'd like to write something that will make emacs behave like it started from a guix-shell env, but I realize that might be tricky. Maybe it's simpler to do just that: activate guix shell then run emacs from there.
<lechner>trevdev / doesn't buffer-env provide exactly the desired environment on a per-buffer basis?
<trevdev>lechner: I'm nearly done the article, I'm a slow reader. I think it might be all I need
<lechner>yay! it's confusing to me too
<Guest30>it might be good at some point in the future to add a note about `buffer-env` in the guix docs, since it seems like it has some pretty common use-cases in guix (for those of us using emacs)
<trevdev>lechner: I think this needs some work if it's going to see a `manifest.scm` up the directory tree. I have not read the source yet, maybe the author has accounted for this with project.el
<lechner>trevdev / okay, i was just trying to help. i got buffer-env to work one time but then it stopped. you are probably right
<trevdev>lechner: Hey, I appreciate the help! It was helpful :) Part of a learning process
<lechner>thank you for using guix!
<trevdev>lechner: I think I found a better lead in exec-path-from-shell. I may be able to adapt the code to at least easily grab the PATH or any other specified environment variable
<trevdev> Just an FYI - I can try to follow up later but I am so bad at IRC that I'm not even sure you're the person I was talking to about this guix shell stuff
<lechner>veni, dixi, egredi
<efraim>zacchae[m]: I make sure to not reconfigure from a tty. as for qutebrowser, we still have the qtwebengine bug which is why I have ("QTWEBENGINE_CHROMIUM_FLAGS" . "--disable-seccomp-filter-sandbox") in my environment-variables.
<Parnikkapore_m>I'm giving the plover package some TLC; the app starts with the following error message (visible with --log-level debug, does not block usage)
<Parnikkapore_m>OSError: cannot open shared object file: No such file or directory
<Parnikkapore_m>Any idea on how to look into this?
<netamuffin[m]>Is there a way to make a shepherd service that runs stuff in a container that has access to only one of my network interfaces? I am pretty new to guix and guile, so reading the source of make-forkexec-constructor/container didn't seem to have that option.
<sughosha>Hi all, is it possible to modify ~/.profile of from Guix Home?
<sughosha>I want to source a file from ~/.profile, so I want to know if I can customize ~/.profile.
<sughosha>Or if there is any service like home-environment-variables-service-type where I can source a script along with "export"ing environment variables.
<paul_j>sughosha: First of all, a disclaimer - I am not very familiar with the details of guix. As I understand it, you would edit the .profile in a different location, then add it to your home configuration. When you run "guix home reconfigure", it will load your edited .profile into the store, and create a desktop link to it from ~/.profile. Since the store is not writable, you cannot just edit the .profile via the link - you need to re-edit
<paul_j>your original file and run "guix home reconfigure" again.
<paul_j>Actually - apologies - seems like I have mixed up my understanding. I have configured home-bash-service-type to add environment variables, but I haven't directly created .profile as I explained above. I do follow this approach for other config files (such as mpd.conf).
<PurpleSym1>munksgaard: In light of #54729 (sorry, still not merged ☹️) I’m looking at wip-haskell again. I’ll probably add GHC 9.2 first, then try to update packages to Stackage LTS 20.
<paul_j>Looking here:, you can add your own customisations to .bash_profile, .bashrc, .bash_logout and .profile. This should enable you to get the .profile you want with your contents.
<munksgaard>PurpleSym: No problem, I've not had time to work on guix stuff anyway. But if you do that upgrade, I'll take a look at itds patch.
<PurpleSym1>munksgaard: Yeah, maybe we have to adjust your initial (or rather, simon’s updated) patch to fix attoparsec 0.14.4, which is part of Stackage 20.2.
<munksgaard>PurpleSym: Makes sense
<sughosha>paul_j: Thanks for taking your time. `home-shell-profile-service-type` is what I was looking for. I had a look at shells.scm, but I didn't pay attention to this service other than the services for bash,zsh,fish,etc.
<Parnikkapore_m>re Plover error: I'll try adding #@dbus to LD_LIBRARY_PATH and see what happens
<axelbdt>Hello, I wish to deploy Guix System on a cloud instance supporting custom images (iso, qemu...). How can I find or generate an image that would allow basic ssh and subsequent `guix deploy` to the machine? I am a bit overwhelmed buy the manual and cookbooks. Thanks!
<jgart[m]>axelbdt: You can upload an iso to vultr
<jgart[m]>axelbdt: Or use
<jgart[m]>They provide Guix System images in the cloud ready to go
<jgart[m]>Or wait 5~ years for me to code up a guix deploy service...
<axelbdt>Haha, thanks for the reply. So I should use the Iso from Guix download page and go through the graphic installer on the VPS instance? Won't I end up with a "desktop setup" with XFCE and other things?
<axelbdt>Nevermind, not choosing a DE was actually an option ^^ Installing right now
<mirai>netamuffin[m]: what you want to do is pass a namespace
<mirai>you setup a new namespace which has its own routing table and add the desired interface to this namespace
<rekado>cbaines: I was going to reconfigure bayfront to apply some minor changes to goggles, but since yesterday the big garbage collector lock is held. Is this expected?
<netamuffin[m]>mirai: thanks. I will look into that, once i am back at my pc.
<jas4711[m]>hi guix! i was just bitten by a GnuPG bug that was already fixed, and noticed Guix uses really old GnuPG. Any reason for this, or should I just try to build recently released stable 2.4 and submit patches for it? Should that be done against core-updates?
<rekado>hmm, “guix refresh” appears to be broken
<rekado>In procedure update-spec-package: Wrong type argument: #<package node-openzwave-shared@1.7.2 gnu/packages/zwave.scm:94 7fb352f918f0>
<nckx>jas4711[m]: Go ahead, and yes (see ‘guix refresh -l gnupg’).
<jas4711[m]><nckx> "jas4711: Go ahead, and yes (see..." <- thanks for mentioning that command! i suppose that if 'guix refresh -l FOO' is large enough, contributions go onto the core-updates branch? Is this documented anywhere? Learning that the core-updates branch existed was key for my understanding how grafts would work, and maybe the 'guix refresh -l FOO' command workflow teaches me something more about the Guix development workflow
<nckx>jas4711[m]: Yes, see (guix)Submitting Patches (although it's the first match for ‘core-updates’, just search for that 😛).
<jas4711[m]>D'oh! Thanks gain for the pointer! I read that long time ago now that I see it, but it never sunk in. Will try again
<nckx>I re-read it a while back and realised I'd forgot (or didn't process) a few things…
<nckx>The naive rebuild-count approach should disappear one day, anyway.
<nckx>Thanks for updating gnupg!
<lechner>nckx / should we instead look at the aggregate rebuilding time a change is expected to incur?
<Parnikkapore_m>is the main concern here "number of things that might break" or "length of time this will take on the build farms"?
<lechner>i think the point is to control the impact of rebuilding
<Parnikkapore_m>ok, thanks!
<nckx>s/ on the build farms// — this is also to be mindful of those building at home, not using substitutes.
<nckx>But yes, it also touches on breakage: I expect people to rebuild all dependents of their master patches locally; for staging/c-u this is generally not done because it's prohibitive.
<cbaines>rekado, regarding bayfront GC, yes, I've got a GC running to clear some space on bayfront. Feel free to kill it though if you want to reconfigure the machine.
<jas4711[m]>yeah, i realized rebuilding core-updates locally took some time, the rebuild of the existing gnupg in core-updates just finished on my laptop... i'm hoping building a refreshed version of it will be fast now though
<nckx>Should be.
<netamuffin[m]>(mirai) I've somewhat figured out how network namespaces work now. Do you know of a proper way to define the setup of a namespace as part of a service? I would like to have a containerized service that can only use one of my interfaces, ideally even without the shared interface disappearing from the default namespace.
<jas4711[m]>are there substitutions available for core-updates? changing even tiny things in gnupg.scm causes a lot of things to be rebuilt (curl, python, ...)
<lechner>jas4711[m] do you mean grafts?
<nckx>Then you didn't really rebuild the existing core-updates gnupg earlier. You would have needed those then. Python is a (transitive) input to pcsc-lite, which is an input to gnupg.
<nckx><are there substitutions available for core-updates> If you didn't get any, then… no.
<nckx>Assuming you have substitutes configured already.
<jas4711[m]>ok i'll just let it build instead of understanding the dependency tree. i have updated libksba, libgpg-error so far which maybe triggered more rebuilding to happen
<lechner>jas4711[m] which bug did you encounter?
<nckx>Oof, yes, libgpg-error is a major rebuilder too.
<jas4711[m]>lechner: -- i can't SSH into modern boxes any more without disabling the new PQ crypto
<jas4711[m]>the bug is fixed in gnupg 2.2.41 too, but I reckon I should add GnuPG 2.4 too while I'm at it
<jas4711[m]>my idea was to rename the current gnupg to gnupg-2.2 and bump that to 2.2.41 in case we need the gnupg 2.2 branch somewhere
<jas4711[m]>and make gnupg be 2.4.0
<lechner>do we follow LTS or latest?
<nckx>jas4711[m]: You could just add gnupg 2.4 to master without touching anything else.
<jas4711[m]>let's see if rebuilding works or not :-) i realize it may be too early to move to 2.4.0 but we won't know until we try and fail
<jas4711[m]>nckx: gnupg 2.4 requires a libgpg-error update
<nckx>That would fix users of ‘guix install gnupg’ at least. If you rename the variable (more work, but also won't cause rebuilds), it will address all user-side users of gnupg.
<nckx>jas4711[m]: Same process.
<nckx>(define-public libgpg-error-x.y (package (inherit libgpg-error) …))
<jas4711[m]>nckx: ah, you mean introducing libgpg-error-1.46? interesting
<tsvallender>I'm installing packages with Guix Home via (home-environment (packages (list perl ruby node))), but how can I specify a version? I thought it would be @v but that doesn't work. For Ruby it seems to work to specify ruby-3.2, but the same syntax doesn't work for Node
<sneek>tsvallender, you have 1 message!
<sneek>tsvallender, nckhexen says: Import (gnu system setuid).
<nckx>tsvallender: It's not a ‘syntax’, it's just a different variable name. Guix defines a ‘ruby’ and a ‘ruby-3.2’ variable, this does not apply to every thunkable name-version combo.
<lechner>tsvallender / you are using variables or specification strings?
<nckx>It seems Guix does not have any other versions of node, only ‘node’ (10.24.1).
<lechner>jas4711[m] / did you see this workaround?
<nckx>Oh, and 14.19.3.
<nckx>700 lines further down 😛
<tsvallender>Ah okay. I guess strings, this is new to me!
<nckx>It's called ‘node-lts’.
<nckx>Symbols, really.
<tsvallender>Yeah it's the v14 I wanted, that's node-lts? Where did you find that?
<tsvallender>So I know where to look for these things in future!
<nckx>guix package -A ^node$
<nckx>The A is for ‘available’, the argument is a regex (so just ‘node’ would work but return a lot of noise).
<nckx>I actually first looked at gnu/packages/node.scm, which has node near the top, which is how I missed the node-lts definition near the bottom. So don't do that.
<nckx>Instead, use the ‘location:’ field that ‘guix package’ returns.
<nckx>Yes, this is a bit tedious now that I've typed it out.
<nckx>IWBN for the CLI to print the variable, if that could be done reliably.
<tsvallender>So to see the name, look at the line given by the location? That's how I should have found "node-lts"?
<tsvallender>Thanks for the help, that's working anyway :)
<nckx>Yeah, wasn't it obvious? /s
<jas4711[m]><lechner> "jas4711 / did you see this..." <- Yes -- although -oPubkeyAuthentication=unbound is a better workaround to still use PQ crypto. I can get into my systems with the workaround, but I think we should have more recent GnuPG since it is an important package
<nckx>jas4711[m]: There's no reference from openssh to gnupg I'm missing, right? That is, ssh uses gnupg from PATH (or some other environmental place) if it's installed?
<lechner>jas4711[m] / i did not mean to advocate against the update; the purpose was merely to provide immediate relief
<nckx><i can't SSH into modern boxes any more> So does this imply that Guix's OpenSSHd isn't modern? (I didn't check.)
<jas4711[m]>nckx: ssh talks to gpg-agent and all this is working, I get the error from scdaemon which is running under gpg-agent. so the call path works but there is a bug in scdaemon
<nckx>So just updating the gnupg (agent) in the environment should fix this?
<jas4711[m]>nckx: It doesn't happen for everyone -- only if you have a Ed25519 key on an OpenPGP card and want to use it for authentication
<nckx>Here I was trying to reproduce it :)
<nckx>I use EC keys but not on a card.
<nckx>Sorry for missing that.
<jas4711[m]>nckx: here is my report: -- I only later found out that it was a known bug
<jas4711[m]>updating GnuPG in Guix seems to be a perfect learning experience for me. Right now I'm stuck adding a new ./configure parameter that the updated libgpg-error requires, but this helps me get along with all the paranthesis. will unfortunately run out of time for today, but will keep working on it
<nckx>Holla if you get stuck.
<jas4711[m]>nckx: thank you!
<lechner>Hi, i'm a bit helpless with this build error even though I am sure it is something simple. Can anyone help?
<rekado>what’s the code and command leading to this output?
<jas4711[m]>btw merging the following to core-updates would be nice, GnuPG 2.4 requires libksba 1.6.3:
<rekado>lechner: uhm, you’re compiling guix.scm there
<rekado>is this with the guile-build-system?
<rekado>make it skip guix.scm
<rekado>unless you really mean to compile it
<lechner>how do i do that, please?
<lechner>and should that be the standard?
<Guest30>i assume the guix.scm file contains the guix definition for the guile package you're building?
<rekado>lechner: use not-compiled-file-regexp
<rekado>see the “build” procedure in guix/build/guile-build-system.scm
<lechner>yeah, it was an innocent addition to the repo. rekado hit the nail on the head
<rekado>normally, for a Guile package you’d put your modules in a sub-directory
<rekado>the guile-build-system can be told to compile everything in that directory then
<nckx>lechner: I see that the Huh?-bot doesn't match
<lechner>nckx / can you please expand?
<lechner>i see
<lechner>hang on
<nckx>That's the bot's job.
<ss2>hello, I reinstalled a Guix on a lvm partition scheme. Did a reconfigure, but now grub fails to find/load the kernel. The previous generations too. I did no gc so far.
<ss2>entering insmod lvm doesn't help either.
<ss2>Ther kernel image in the store is there. I just checked.
<nckx>jas4711[m]: Pushed.
<lechner>nckx / i added a few days ago but not the two URL forms /XXXX and /cgi/bugreport.cgi?bug=XXX should I do so?
<Guest30>ss2: there's a lot that could be going wrong there, is this the first time you've run reconfigure (i.e., is it a fresh install)?
<nckx>That's up to you, but I don't see any value in the inconsistency. If the bot always outputs, it's a nice way to advertise our tracker.
<ss2>It was my first reboot after reconfiguring the third time.
<lechner>ss2 / which error do you see?
<ss2>So I don't know if it wen't wrong ealry. But I could reboot after the fresh install yesterday. Something must have gone wrong later.
<nckx>ACTION missed the paste. So it does.
<rekado>ss2: can you boot the first generation?
<lechner>i always forget about that
<ss2> The error is: error: no such device: /gnu...bzImage; error: file `...' not found; error: you need to load the kernel first.
<ss2>I noticed that I need to load lvm manually first, but it would boot just fine first.
<lechner>ss2 / you can either boot into an earlier generation or work in the grub shell
<ss2>Don't wanna reinstall again. It just took me the whole day.
<lechner>no need
<ss2>nope, all generations are broken.
<ss2>well, not bootable so far.
<lechner>what's the output of ls
<ss2>(lvm/device-NAMES) (proc) (hd0) etc.
<ss2>sorry, have to type it.
<ss2>the devices are there apparantly.
<lechner>and you have the lvm module loaded
<ss2> /boot is in its own partition.
<lechner>on lvm?
<ss2>no, directly
<lechner>i guess that would be a volume
<rekado>ss2: can you access /boot from grub?
<ss2>it is in its own partition outside of lvm, the rest is inside.
<rekado>in the grub console?
<rekado>did you arrange for the kernel and initrd to be on /boot?
<ss2>I don't think so..
<Guest30>ruh roh
<rekado>ss2: when you append a slash after the device name you might be able to see what’s on it
<rekado>all you need for booting is for grub to be able to access the initrd and kernel image
<lechner>ss2 / in the grub menu you can hit 'e' on any entry (for edit). what are the starting paths for linux and initrd ?
<rekado>lechner: Guix only generates /gnu/store locations
<rekado>gotta make Grub find the disk that holds /gnu/store, so that these locations can be resolved
<ss2>yes, they go to the store, and root=/dev/mapper/device.
<lechner>literally, that?\
<ss2>okay, how do I ls a directory in grub? I'll just read some docs for a while.
<rekado>ss2: I suggest going to the grub console and ls’ing the devices
<nckx>Just ‘ls’?
<rekado>append a slash if nothing happens
<nckx>Yeah. You can also use variables like $root and $prefix to figure out what GRUB thinks should be there.
<rekado>e.g. ls (hd0)/
<rekado>or ls (lvm/device-NAMES)/
<nckx>rekado: It will print file system info without the /, nothing won't happen.
<ss2>ah, now I got it. Yes, I can list /boot#
<rekado>okay, but /boot doesn’t contain your kernel and initrd
<rekado>so that’s not very helpful
<rekado>what about the partition that has /gnu?
<lechner>i think /dev/mapper/device is wrong. it should read /dev/mapper/${volumegroup}-${volume}
<rekado>gotta identify it and then set the root variable, so that grub picks that disk to read from
<nckx>You can list all detected partitions with just ‘ls’.
<ss2>I've got all partitions in front of me. All lvm volumes to, which is system-rootfs.
<lechner>i agree, however, that grub has to find it first, via "root"
<nckx>lechner: That doesn't sound right.
<nckx>Maybe some other distro does it like that.
<ss2>and the kernel is sitting in there.
<nckx>/dev/mapper/device is correct for any device named, er, ‘device’.
<lechner>set root=(lvm2/XXX)
<nckx>ss2: On which (GRUB) device, and what is $root?
<nckx>I'm going to stop, you're getting too many instructions.
<lechner>actually, i am stopping
<lechner>i know too little about guix
<lechner>ss2 / please listen to nckx
<ss2>okay, I've got (lvm/system-{home,rootfs,swap}) and (hd0) (hd0,msdos{1,2,3}) and (proc)
<nckx>lechner: Hm? You were correct, we were just asking too many questions.
<ss2>great, I've bein playing with lvm the last days. Something had to fall apart eventually. ^^
<ss2>and I didn't place my kernel out to say /boot. It is left in system-rootfs, which wasn't smart maybe. So far my test runs had been working.
<lechner>nckx / not sure what you are talking about
<rekado>ss2: it’s okay not to have the kernel + initrd in /boot
<nckx>ss2: If you ‘set root=(the-device/that-had-gnu-store)’ on the command line, then hit ESC (IIRC) to return to the menu, it should boot. Once.
<lechner>grub can lvm
<rekado>it would only be a problem if grub wasn’t able to read from your LVM volumes
<lechner>or hit 'e' and change to your liking
<nckx>ss2: That's why I asked what $root is *now*, i.e., what GRUB was trying and failing to read.
<lechner>then you can use the store path in the menu
<ss2>after setting root, I've got: error: unknown filesystem.
<nckx>That's true, but then you're just inserting the implicit $root by hand, twice. Setting $root is equivalent but less work.
<nckx>ss2: You said you could ‘ls (something)’ that showed /gnu/store/stuff. But setting $root to that same ‘(something)’, then running ‘ls /’, doesn't work?
<nckx>Smells like a typo or unclear instructions on my part.
<nckx>* ‘ls (something)/’ that showed /gnu/store/stuff
<ss2>ls / doesn't work now. It is error: unknown filesystem.
<ss2>ufff, maybe the fs is having problems. Dmesg was throwing errors early on. Will fsck it for now.
<nckx>So what does ‘echo $root’ say now?
<nckx>Or did you never change it?
<lechner>root is not set right
<lechner>how about ls (lvm/XXX)/gnu ?
<nckx>The silence makes me fear we'll never know.
<ss2>I'm still here.
<sughosha>Could someone take a look at This is first time I created a new .scm file, don't know if I have to add anything else. Also, I did some mistakes which I fixed in the next patches.
<led-lightbulb>~sughosha: Open issue )lIg( Huh? "[PATCH] gnu: Add libswell" from Sughosha
<ss2>If I do ‘set root=(lvm/system-rootfs)’, then ‘ls /’ I get ‘error: unknown filesystem’.
<nckx>sughosha: You need to register new files with gnu/local.scm under GNU_SYSTEM_MODULES (sic, that includes packages).
<happy-shoes-1979>Hi... (full message at <>)
<nckx>sughosha: Also, just squash (=‘merge’) the two commits when sending a v2. Revisions should stand on their own.
<ss2>I just rebooted and run an fsck against the lv, which is fine. So maybe I borked it somewhere else.
<ss2>ah, but i can do a ls / if I mount my lv home partition. Something is broken somewhere else.
<sughosha>nckx: I don't know about squash and merge, I will look for that. Thanks.
<ss2>okay, whatevers. Reinstalling will be it.
<lechner>ss2 / really?
<ss2>but then I was still wondering why grub (then when it was still working) would have me do an insmod lvm.
<apteryx>mbakke: what was the domain again, and how can it be usedÉ
<nckx>ss2: For argument's sake, why would Guix generate a different grub.cfg if you reinstall?
<apteryx>it seems unreachable
<nckx>(Name of the script in etc/.)
<ss2>lechner: I created the ext4 partition and it had no big directories features enabled and was constantly throwing errors until I did a tune2fs to make it quiet again. But I don't know how much had gone wrong actually, and it is a new system anyway.
<sner>happy-shoes-1979: what output are you specifically seeing from straight when you attempt install?
<apteryx>nckx: I meant the hack devised by mbakke a week or so ago
<nckx>So do I.
<apteryx>could not resolve host
<nckx>Pretty sure that's on your end.
<ss2>nckx: I don't suspect that guix did anything wrong. This is my running system config that has been working for ages. It has never failed on me. :)
<ss2>but I was sloppy with my partitions early on.
<apteryx>nckx: does wget work for you? I get: wget: unable to resolve host address ‘’
<unwox>apteryx: it works for me too
<nckx>Both at home and in Munich.
<nckx>I had a Canadian VPS until last week :)
<sner>apteryx: do you mean (rather than the inverse)?
<apteryx>I'm using my internet provider's nameservers
<nckx>apteryx: Maybe invalidate nscd cache?
<nckx>you're still misspelling it.
<apteryx>ACTION needs a coffee
<sner>happens to the best of us
<ss2>that's such a cool idea with the domain. :)
<nckx>In apteryx's defence, I didn't notice it was still wrong in the wget example.
<nckx>But then I always need coffee so maybe not much of a defence.
<nckx>ACTION goes to get ☕ for everyone.
<apteryx>ACTION blames the object-oriented-like naming of the script
<ss2>okay, I'm gonna reset this machine again. :/ Thanks for your help still.
<mroh>ss2: guix's grub (and generated grub.cfg) does not have "insmod lvm" (and "set root=(lvm/...), so out of the box its not possible to boot from lvm (w/o editing grub.cfg). Im working on it... but its time consuming (and not much fun) to test...
<nckx>I'm a bit weary, but good luck ss2.
<nckx>mroh: Do you have patches?
<zacchae[m]>sneek tell efraim: Oh wow, and just like that my qutebrowser is fixed (as far as I'm concerned)! Thanks a ton
<sneek>efraim:, zacchae[m] says: Oh wow, and just like that my qutebrowser is fixed (as far as I'm concerned)! Thanks a ton
<mirai>netamuffin[m]: I don't yet though I've been planning on doing it for a while
<ss2>oh, I'd be happy for patches too. I've got a good use case to test on.
<mirai>just need to find some time for it
<mroh>nckx: very much wip, yes...
<happy-shoes-1979><sner> "happy-shoes-1979: what output..." <- Well, it's not blowing up on install, it's broken when i try to use any straight.el` functions:... (full message at <>)
<nckx>apteryx: If you want to register install-guix, go ahead 😉
<zacchae[m]>sneek later tell efraim: Oh wow, and just like that my qutebrowser is fixed (as far as I'm concerned)! Thanks a ton
<nckx>We could also add to make it look more trustworthy, but mbakke's unofficial hack is nicer, damn them.
<apteryx>nckx: eh. I still haven't uploaded an apteryx photo to, so I don't think I should manage extra domains ;-)
<KarlJoad>Does guix deploy respect verbosity and debug flags? I cannot make figure out why the deploy fails SSH authentication when I can SSH there myself. The necessary information is in .ssh/config too.
<sneek>KarlJoad, you have 1 message!
<sneek>KarlJoad, rekado says: thank you, I’ll apply later today.
<led-lightbulb>~sneek: Closed issue )xLg( Huh? "[PATCH 0/2] [DOCUMENTATION]: describe .guix-channel directory field" from Karl Hallsby
<happy-shoes-1979>sner: I think this is a minimal reproducible error, but i'm still learning how guix shell works:
<happy-shoes-1979>guix shell --network emacs emacs-straight-el git findutils coreutils -- env HOME=$HOME/emacs-test emacs --eval "(progn (add-to-list 'load-path \"$HOME/.guix-profile/share/emacs/site-lisp\") (guix-emacs-autoload-packages) (straight-check-all) )"
<sner>nckx: the maintainer team still has `` registered, right? any thoughts on ``?
<florhizome[m]>archwiki says, to enable hibernation I need “resume” in the initramfs hook
<florhizome[m]>is there an equivalent for guix?
<nckx>We don't have initramfs ‘hooks’.
<nckx>The initrd code already handles hibernation. All you need is ‘resume=/dev/foo’ in your kernel arguments.
<sner>happy-shoes-1979: let me take a look
<nckx>florhizome[m]: Some more complex set-ups are supported (encryption), some aren't (files, I think?).
<florhizome[m]>right now ‘sudo loginctl hibernate’ just seems to shut down the device
<florhizome[m]>hybrid-sleep and suspend-then-hibernate don’t do anything
<sner>happy-shoes-1979: also, try to keep your message lengths relatively short, the matrix->irc bridge truncates your messages to a link otherwise
<nckx>sner: Just for length, you mean? I'm not sure we have a clear vision on what that .info domain is for, apart from its use by the HPC project.
<happy-shoes-1979>sner: sure thing, i'll find a pastebin. Thanks for the tips.
<nckx>I'm not familiar with loginctl.
<nckx>florhizome[m]: Did you set up a swap partition and add it to resume=?
<nckx>Those two things are all that's needed.
<sner>nckx: i didn't realize the hpc site was sitting under that domain (thought it was going unused), disregard
<nckx>My understanding is that it's for metaguix stuff (e.g.,, HPC, …) but I don't know if that was ever formalised. Maybe that opinion's not shared. And the choice to mirror the front page makes it less than clear.
<florhizome[m]>nckx: yes
<florhizome[m]>but I used resume=UID=..
<nckx>(UUID?) Hm, could you try with the /dev file name instead?
<nckx>Oh wait.
<florhizome[m]>let’s just try one more time
<nckx>Yeah, I'm not sure where you got UUID= from? I don't think that was ever supported.
<florhizome[m]>yes maybe it should be UUID
<florhizome[m]>not UID
<nckx>I'm not sure where you getting this from.
<nckx>That's for Arch btw.
<nckx>Using Arch-specific docs for Guix will eventually end poorly.
<sughosha>nckx: I registered wdl.scm in gnu/ []
<led-lightbulb>~sughosha: Open issue )lIg( Huh? "[PATCH] gnu: Add libswell" from Sughosha
<nckx>I'll add ‘UUID=’ prefix support eventually, but for now, if UUIDs work at all, it's without that prefix: resume=d49b9fa5-a55d-4b98-a4fa-c3cb645480d4.
<nckx>I tested that when I added the feature, but never since, so I hope it still works.
<nckx>Until then, /dev/foo is what I use and safest.
<nckx>The lack of ′UUID=’, ‘LABEL=’ prefix is because it re-uses existing Guix functions for that (in se, good), but Guix never followed the blkid-standard FOO= notation used by many other distroes (probably bad, because it's fundamentally ambiguous).
<sughosha>If I should sum up all the patches and make into a single commit and resend, I am also fine with that.
<nckx>sughosha: Yep. The v5 should be entirely self-contained, not assume that someone has the previous version applied. So one single patch that adds the entire file and adds it to gnu/ at the same time.
<nckx>Er, ‘v6’, I guess.
<sughosha>nckx: Ok. I will create a new seperate branch and make single commit. Then send it as reply to the same issue.
<nckx>Sounds good. The new branch isn't needed, but if that helps you keep things clear in your mind whilst you learn, go right ahead.
<happy-shoes-1979><sner> "happy-shoes-1979: let me take..." <- FYI, i got it to work. Had to do with native comp I think. This was my hint:
<happy-shoes-1979>Thanks for your help.
<nckx>ACTION watching
<sner>happy-shoes-1979: glad to see you resolved it, sorry for the delay, had to go afk for a few mins there
<netamuffin[m]>mirai: nice. tell me, in case you have you develop a solution. thanks again!
<lechner>hi can guix boot of a luks-encrypted root drive? how does grub find the modules? thanks!
<nckx>Yes. GRUB builds in the modules it (thinks it!) will need to load the others; this can include cryptodisk.
<klat>Hey everyone, how can I get a silent boot in guix? I already have this and installed plymouth, but still get a lot of kernel messages
<klat>Also, how to enable KMS in general
<lechner>nckx / our grub includes cryptodisk, or i have to tell it to?
<nckx>klat: There's no support for silent boot through plymouth yet. I think rekado was working on that. I use a screen-filling Linux boot logo for that, which works, but it's a gross hack.
<nckx>lechner: It's automated.
<klat>nckx: thanks, that saves me some time debugging
<nckx>klat: I'm not sure what you mean by ‘enable KMS’. It's not opt-in, or at least not on any sane hardware (can't speak for Nvidia :).
<klat>I am interested, how do you implement your hack :)
<lechner>nckx / automated via mapped-devices?
<klat>Yeah unfortunately I have an Nvidia laptop
<sughosha>nckx: I sent v7 patch with one single commit.
<nckx>klat: (the code's a bit ponderous; I was slightly less confident in Guile back then).
<nckx>It also assumes you build your own kernel, but who doesn't do that.
<klat>Thanks a lot!
<nckx>lechner: It could be, but I think we just set a CRYPTODISK_PLEASE variable unconditionally.
<nckx>(Name obviously not accurate :)
<KarlJoad>Does guix deploy not read SSH's config file (somehow)? Deploy says it cannot reach the machine, but everything is correct; I can manually SSH there.
<nckx>It could be cleverer, but it's probably not worth the risk. GRUB still fits in any BIOS boot partition I've ever had.
<florhizome[m]>ok now I’m in a precarious situation
<florhizome[m]>I get an “/gnu/store/… initrd” not found by grub, for the last configuration too
<florhizome[m]>and for the configuration before btrfs gives an error
<nckx>The configuration before which exact change? And what's the error?
<nckx>(I'd recommend a fsck, but hey, btrfs is magic and never breaks so doesn't have that.)
<lechner>nckx / does the LUKS module thing also work with EFI boots?
<nckx>It should but I can't say from experience. It used to in… 2018 or –19.
<nckx>Haven't used UEFI+LUKS since.
<nckx>I'd expect noise if it broke, though.
<nckx>Is that your situation?
<lechner>okay, thanks
<lechner>i am helping someone offline
<lechner>it's much easier when you are around
<nckx>Good luck.
<led-lightbulb>~lechner: Open issue )Dhg( Huh? "[PATCH staging] gnu: go-golang-org-x-net: Update to 0.1.0." from Felix Lechner
<lechner>nckx / should work now
<lechner>are there any hoops after adding a new channel?
<KarlJoad>I figured out my issue. Turns out you have to specify the identity file.
<KarlJoad>lechner: After adding a channel, usually no? I have never had an issue unless it was my own channel that I broke myself.
<lechner>how may i check that a channel was pulled
<KarlJoad>If you already pulled, you can use "guix describe" to find out the channels you are using.
<lechner>KarlJoad / thanks!
<rapa>Hello, any idea why this nyxt package tranformation is failing to build? The error is
<KarlJoad>I just tried to use the guix deploy -x to reboot a computer, and got an error, despite the computer doing what I want. Is that expected behavior?
<lechner>KarlJoad / which error?
<KarlJoad>lechner: "Throw to key `guile-ssh-error` with args ... ("channel-get-exit-status" "Parent session is not connected #<unknown channel (freed) ..." Ellipses indicate omitted parts.
<lechner>KarlJoad / yeah, we have been getting those on deploy recently
<lechner>ACTION checks logs
<KarlJoad>I'm pretty sure this one is a non-issue because I sent the command to reboot, so the SSH server and connection just died.
<KarlJoad>I could send a pastebin to somewhere so others could view it. I could also submit a bug report, if that is the better move.
<lechner>there is a bug report, i think
<lechner>Hi, should the guix from the system profile ever be preferred over a personal user profile?
<nckx>rapa: In future, paste the actual ‘View build log at’ build log. In this case, it reports ‘Component ASDF/USER::CL-GOPHER not found, required by #<NASDF-SYSTEM "nyxt">’. You need to add cl-gopher to the inputs. You also need to add cl-tld, because the CL god is a bloated beast that demands sacrifice. Then you'll get ‘Component ASDF/USER::DISSECT not found’, which is where I stopped.
<rapa>nckx: my bad, I realised that my paste was not useful
<nckx>No biggles.
<rapa>One last question if I may
<florhizome[m]><nckx> "The configuration before which..." <- before the last reconfigure which added the resume= line
<nckx>Try booting with ‘noresume’ (by editing the GRUB ‘linux’ command line with ‘e’ at the menu). You previous ‘shutdown’ using loginctl probably wasn't a shutdown at all, but a hibernation, which was now resumed (which is very bad). At least that's my guess.
<florhizome[m]>nckx well the btrfs error could have multiple issues but i guess it's because i resized the Partition to add swap
<florhizome[m]>nckx: hm yeah there were funky things going on
<nckx>Yeah… :-/
<florhizome[m]>i actually rebooted into an older session, then shut that down again and then i arrived there
<nckx>Well, it's possible that my guess above is wrong, and to be frank I hope it is.
<nckx>rapa: If you're waiting for permission, no need.
<mirai>Is there anything remaining to do for #60131? There's not many ways to handle AVIF images in Guix at the moment
<rapa>nckx: thanks! I was actually thinking how to proprly ask, it is quite trivial though
<florhizome[m]>I am downloading a guix image to reconfigure from a chroot anyways
<rapa>(append (list cl-gopher cl-tld)) this is not working and I don't know why
<rapa>    (inputs (modify-inputs (package-inputs nyxt)
<rapa>      (append (list cl-gopher cl-tld))))
<nckx>It might be because nyxt uses old-style inputs. `(("label" ,package) …))
<rapa>I see
<nckx>I'm using (inputs `(,@(package-inputs nyxt) ("foo" ,foo) ("bar" ,bar)) myself.
<rapa>So you don't use modify-inputs at all, ok
<nckx>No, mainly because I was in a hurry.
<nckx>florhizome[m]: If possible, throw away that btrfs, don't keep using it :-/
<nckx>At least until you can scrub it or otherwise confirm it's healthy.
<nckx>(Does scrub verify all metadata? I don't know. I'd guess so.)
<nckx>The corpse-god is sated, at least for now:
<nckx>That builds, rapa, but I didn't run it.
<rapa>I can feel your love for CL
<rapa>thanks a lot
<lechner>Hi, anybody having problems getting M.2 SSDs recognized in UEFI mode (but they are present in CSM mode)?
<nckx>rapa: Nah, I was just being silly. It's not CL's fault.
<nckx>Have fun!
<nckx>lechner: Is this a old Thinkpad by chance?
<nckx>I ask because then I can at least try to reproduce it, but this particular one doesn't have UEFI.
<lechner>no, it's a 2022 MSI motherboard
<lechner>didn't rekado also have problems booting off of M.2 on the embedded thing?
<mirai>lechner: I'm running 2 M.2 ssds with btrfs-1 raid and no CSM
<mirai>with a 2022 motherboard as well
<mirai>if the issue is already present at the UEFI level maybe try updating the fw for it?
<mirai>some nvme drives also may require a fw update
<lechner>ACTION is the only one running ten-year old rotational media with sapphire bearings
<mirai>if both ssd fw and mobo fw fail to solve the issue I'd report it to the vendor(s)
<mirai>(you're paying not just for the hardware but for their support as well)
<lechner>unfortunately, nobody is paying for my support
<lechner>anything to win another soul over to Guix
<lechner>i am so embarrassed because of my antique equipment; no SSDs or DDR4 memory here
<florhizome[m]><nckx> "(Does scrub verify all metadata?..." <- I can check it first
<florhizome[m]>wdym by "throw it away" ?
<leg7[m]><lechner> "Hi, anybody having problems..." <- Recognized as boot drives?
<bjc>zfs scrub verifies every block that's accessible, including meta-data
<nckx>florhizome[m]: I mant reformat it if possible, since you mentioned a guix image.
<nckx>bjc: I presume the same is true of btrfs? (If merely by virtue of having to, well, walk the entire tree & checksums in order to perform the scrub.)
<lechner>leg7[m] / yeah
<bjc>i would assume it's true for btrfs, since a scrub that doesn't check metadata is pretty broken
<bjc>but then again, btrfs still has a write hole, so…
<florhizome[m]>nckx the Image is the guix Installer that i'm downloading as a rescue tool
<phodina[m]1>What is the best way to refer to the root directory of the channel in the code? E.g. when I want to use some file I add to the repository like defconfig (not a patch).
<leg7[m]>lechner: Maybe because you installed your bootloader in legacy mode
<lechner>we installed both
<lechner>but we will blow the bios. the board is coreboot approved
<nckx>ACTION just uses search-patches…
<rapa>nckx: nyxt is working like a charm, thanks again
<rekado>lechner: no, wasn’t me. I have no M.2, nor do I have 2022 boards.
<rapa>I want to bother you good people once last time today. I have something like this (service home-files-service-type `("init.el" ,(local-file "")))
<rapa>This is an org-mode file that I usualy tangl manually
<rapa>Can I do the tangling using scheme, preferably in the above code block?
<KarlJoad>You could define a package that runs emacs in the build phase to tangle the file. That may overcomplicate though, I am not sure.
<phodina[m]1><phodina[m]1> "What is the best way to refer to..." <- Solve by using `(search-path %load-path FILE)`
<florhizome[m]>nckx i add 'noresume' at the end of the file after i Press e in grün?
<omlet[m]>How long can the distrobox be added to the guix latest?
<nckx>When the patch is revised and approved.
<omlet[m]>Does it take long?