IRC channel logs

2022-05-04.log

back to list of logs

<rekado>berlin booted this time
<nckx>\o/
<rekado>I just idled in Grub and asked iDRAC to print info on the disks, hoping that would make them “ready”
<nckx>luke-jr: You're… right, from what I can see in guix.git. I'm extremely surprised.
<nckx>luke-jr: No way to ’guix install wgetpaste’?
<rekado>I feel like a superstitious pigeon.
*rekado restarts the mumi<-->debbugs sync
<luke-jr>nckx: still trying to do the `system init` step, so probably too early? idk
<nckx>You can install whatever you want to the live environment, short of running out of RAM.
<nckx>Which wgetpaste should not do :o)
<nckx>It's ‘just’ a Guix System.
<nckx>If you've started cow-store you're not even limited by RAM.
<luke-jr>there we go: https://paste.c-net.org/KeatonTouchy
<nckx>rekado: It's not called superstition if you succeed.
<luke-jr>found a pastebin that works with plain wget XD
<nckx>That's odd. What does ‘guix hash /gnu/store/i5a5jv9zipfw30xmvmk9d3zlk1m7j7yg-texlive-bin-pdftex-poppler0.76.patch’ say?
<luke-jr>the 0cx hash
<luke-jr>which is some kind of 404 page
<luke-jr>because the URI is dead
<nckx>Oh, OK.
<nckx>Then we're back to why (well, how) Guix would ‘use it’ if it's filled with nonsense?
<luke-jr>I found the correct file and `guix download`'d it
<nckx>But the file name hash is based on the content hash.
<nckx>What's the correct URL?
<luke-jr> https://raw.githubusercontent.com/archlinux/svntogit-packages/49d7fe25e5ea63f136ebc20270c1d8fc9b00041c/repos/extra-x86_64/pdftex-poppler0.76.patch
<luke-jr>which I dug out of https://logs.guix.gnu.org/guix/2021-07-09.log#171049
<nckx>I forgot I could ‘guix build /gnu/store/i5a5jv9zipfw30xmvmk9d3zlk1m7j7yg-texlive-bin-pdftex-poppler0.76.patch’.
<nckx>What a nice feature.
<nckx>luke-jr: Can you ‘guix gc -D /gnu/store/bad-patch’ and download it again?
<nckx>I'm too tired to think much so if that magically ‘fixes’ things it's great news for both of us.
<luke-jr>same error >_<
<nckx>I don't get it.
<nckx> https://paste.debian.net/plainh/8602335b
<luke-jr>would it be terrible to copy the correct file over the bad one in /gnu/store? :x
<luke-jr>I'm not using substitutes
<nckx>My point is just that the content hash is right, and the file name should reflect it, so why are we getting the same file name with differing contents.
<luke-jr>also, based on that 2021 log, I expect latest guix has the URI changed, but trying to guix pull opens another can of worms at this point I assume
<nckx>The /gnu/store/HASH is not based on the URL.
<nckx>To answer your question: manually mucking about in the store is a warranty-voiding business, but the installer's /gnu/store/ is ephemeral, and you're adding objectively correct data, so…
<luke-jr>tried it - didn't help
<luke-jr>looks like it overwrote the file with the 404 again
<nckx>That doesn't make sense. If you ‘guix download’ that githubusercontent URL, Guix won't try to overwrite it.
<zamfofex>nckx: Can the store normally even be modified? I thought it were a “read‐only file system”.
<nckx>Something is not right. I just don't see what.
<nckx>zamfofex: There are trivial ways around that, but indeed, by default it's bind-mounted read-only.
<nckx>It's just a foot protector, not a security feature.
<luke-jr>nckx: the filename differs when `guix download` is used
<nckx>That means it's not the same file.
<zamfofex>nckx: I see. I thought it was a custom mount (something akin to FUSE) that read the actual contents from some file and didn’t actually implement writing, but I guess not.
<nckx>Hm, no, I'm mistaken.
<nckx>zamfofex: Oh no, not at all.
<luke-jr>bingo: renaming the file locally and guix download-ing that matches it
<nckx>Yes.
<luke-jr>ugh, more patches w/ the issue
<nckx>You should be able to curl/mv/guix download your way to glorious tedium.
<nckx>It's kind of the deal you choose when not using substitutes, until git repos are hosted on IPFS or whatever.
<nckx>You could also ‘guix pull’ on the installer first.
<luke-jr>guix pull failed too >_<
<nckx>OK.
<nckx>I'd love to stumble through debugging that but (1) I'd already forgot you'd said that before because (2) I really need to go to bed.
<nckx>Night, luck, et al.
<nckx>o/
<luke-jr>gn
<luke-jr>thanks
*nckx mumbles sleepily ‘I thought rekado fixed the stuff, did I misread that too?’ but really can't think anymore.
<luke-jr>on another note, it's curious that Guix has texlive, considering it's non-free..
<luke-jr>"The files in this directory are master files maintained personally by Donald E. Knuth. Nobody else is authorized to make any changes whatever to them! ///"
<luke-jr>even has a request for people to report infringement
<djeis>Hmm? https://www.tug.org/texlive/copying.html
<luke-jr>pretty sure the actual license trumps websites *shrug*
<luke-jr>FWIW, after manually getting those patch files in, it finished successfully
<luke-jr>any easy way to disable substittues by default?
<drakonis>surely you realize that it also says that you have to fork and rename itw
<drakonis>?
<drakonis>the license has changed over the years as well
<drakonis>its also public domain lol
<drakonis>according to knuth himself
<drakonis>but you have to rename it
<djeis>Plus, changes is different from distribution.
***ChanServ sets mode: +o nckx
***nckx changes topic to 'GNU Guix | https://guix.gnu.org | videos: https://guix.gnu.org/blog/tags/talks/ | bugs & patches: https://issues.guix.gnu.org | paste: https://paste.debian.net/ | Guix in high-performance computing: https://hpc.guix.info | This channel's logged: https://logs.guix.gnu.org'
***ChanServ sets mode: -o nckx
<drakonis>oops
<nckx>?
<luke-jr>manual tells everything about substitutions except how to turn it off by default >_<
<luke-jr>no --deauthorize option for guix archive either
<nckx>guix-service-type is documented.
<nckx>& answers both your questions to a tee.
*nckx 😴
<luke-jr>> No manual entry for guix-service-type
<drakonis>have you tried using info?
<drakonis>alternatively, reading the online version of the docs?
<luke-jr>yes
<djeis> https://guix.gnu.org/en/manual/devel/en/html_node/Base-Services.html#Base-Services
<djeis>See the section on guix-service-type and guix-configuration
<djeis>And read through https://guix.gnu.org/en/manual/devel/en/html_node/Using-the-Configuration-System.html to see how to actually modify the guix-configuration
<wdkrnls>djeis: I remember earlier you were talking about this issue: https://bugreports.qt.io/browse/QTBUG-92969
<djeis>Yup!
<apteryx>rekado: hey, sorry, I was expecting to fully able to conduct any debugging that could arise from my reboot, but I overlooked the fact that my iDRAC access goes poof the minute the server ain't online.
<apteryx>rekado: the Btrfs array is mounted with the 'degraded' option, so I'm not sure what the trouble was
*apteryx checks emails
<luke-jr>(modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) (use-substitutes #f))))
<luke-jr>liek this?
<djeis>Looks about right, yea.
<luke-jr>wow, I was expecting #f to at least be wrong XD
<djeis>You could also accomplish that by not including the standard signing keys.
<djeis>Or the standard substitute servers.
<djeis>That'd let you still accept substitutes from some service of your own at some point, if you wanted.
<luke-jr>oh, use-substitutes can't be overridden? :o
<atka>shouldn't transparent hugepages be set to madvise by default instead of always?
<atka>maybe the hpc crowd can better answer that
<djeis>Oh, "use-substitutes?"
<djeis>The ? is part of the field name.
<djeis>It's conventional for boolean fields to end in ?
<atka>yes
<atka>I think every boolean I've encountered in the guix source has ended with ?
<djeis>But yea, even if you list a substitute server guix won't accept substitutes from that server that aren't signed by one of your trusted keys.
<luke-jr>oh
<djeis>By default the guix-configuration record includes the keys for the official substitutes server.
<djeis>That's the authorized-keys field.
<luke-jr>how do I get the DHCP client to send the hostname to the router?
<djeis>Hmm, that's a good question... I should probably solve that for my own purposes.
<djeis>I'm not certain the standard dhcp-client-service-type's impementation has an option to do that tho. I run a custom dhcp service on some of my boxes specifically because I was unsatisfied with the limited config options of the stock one.
<djeis>Essentially it just runs dhclient as a shepherd service... You might be able to get it to respect a /etc/dhclient.conf, I'd need to fiddle with it. Ideally the guix service would be able to generate that or smth.
<luke-jr>how about /etc/inputrc? :x
<luke-jr>looking at /gnu/store/0iii8i1lc4wg3wccs1db7y7d8lg80i04-guix-1.3.0/share/guile/site/3.0/gnu/services/networking.scm , it doesn't look like there's a way :/
<luke-jr>for the DHCP client thing
<luke-jr>/etc/config.scm:54:0: error: (modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) (use-substitutes? #f)))): invalid field specifier
<luke-jr>if only this stuff didn't use such an obscure and unintuitive language :/
<littlebobeep>luke-jr: You think Scheme is unintuitive? What language do you think is intuitive?
<littlebobeep>If you read the GNU Guile manual and r6rs it helps a lot
<littlebobeep>Didn't there used to be a switch to pass to guix-daemon that completely disabled substitutes?
<the_tubular>What is r6rs ?
<AwesomeAdam54321>littlebobeep: There is the --no-substitutes flag
<AwesomeAdam54321>s/flag/switch
<AwesomeAdam54321>the_tubular: It's a standard for the Scheme programming language
<the_tubular>I see
<kitty1>luke-jr: It honestly would be nice if there was more projects like nix/guix so everyone could choose exactly the way they want it to work out of various different options lmao ,, personally I think scheme is really intuitive and great once you get used to the flood of parenthesis, relative to most languages for this task. I remember when learning the basics of scheme I just kinda jumped in and set
<kitty1>my browser to nyxt (common lisp) set up guix (scheme) and kinda just delved into things like the SICP (a book on scheme, there might be better introductions tho) to make myself learn it quickly.
<littlebobeep>kitty1: I find SICP harder to learn Scheme than reading manuals of interpreters or the Lambda papers / r5rs / r6rs.... SICP's examples are so often based on advanced mathematics that makes my head hurt... I used to study Calculus and Trig and loved them, but SICP is still quite difficult for me
<kitty1>yeah, that was kinda my issue with it too, read only part way through and might jump back into it again some time lmao
<littlebobeep>the_tubular: http://www.r6rs.org/ PDF, HTML, and TeX, have fun (this is LOADS of fun seriously check it out!)
<kitty1>but it still helped, probably bad as an introduction but still has a lot of cool knowledge
<luke-jr>littlebobeep: C, C++, Perl, Python, HTML, PHP, even Javascript to an extent
<atka>the_tubular: hello
<atka>sneek: botsnack
<sneek>:)
<ZhuAisi[m]>Hello Guix. I just see this exciting work https://issues.guix.gnu.org/55227
<ZhuAisi[m]>But there's question for me: What's the job of bootstrap-guile? Can we live without it?(in theory)
<zamfofex>janneke: Oh, wow! I was checking out the link ZhuAisi[m] shared, and it is really cool! 🎉 Congratulations!
<janneke>ZhuAisi[m]: yeah, thanks!
<ZhuAisi[m]>janneke: Thanks for your great work!
<ZhuAisi[m]>luke-jr: Yes, Scheme is looking weird for user who familiar with C style languages. But Scheme is simple to learn, maybe you can give it a try.
<rekado>luke-jr: texlive is weird; it’s considered free software because it is permitted to make changes as long as the files have new names.
<rekado>I find the video lectures from the SICP course excellent. They are much easier to follow than the SICP book.
*janneke agrees
<kitty1>rekado: Oh? I never even thought of doing that ;; anywhere in particular I could find those?
<rekado>kitty1: https://archive.org/details/mit_ocw_sicp
<f1refly>what would be the best way of storing openvpn login information? The documentation rightly points out that file-like objects will be stored publicly in the store, which would be quite subobtimal.
<abrenon>hello guix
***attila_lendvai_ is now known as attila_lendvai
<Christoph[m]>f1refly: Maybe with guix home? https://guix.gnu.org/manual/devel/en/html_node/Home-Configuration.html
<jpoiret>Christoph[m]: guix home suffers from the same issues
<jpoiret>it needs to be stored outside of the store
<Christoph[m]>Hm. So there's no suggested solution yet?
<dirtcastle>I was thinking that there is a way to install gentoo from another linux I installed aside. or through another linux iso totally. I think this is the same with any distro or smtg. can I do that with guix too
<rekado>yes, just boot whatever and then run “guix system init /wherever”
<dirtcastle>looks like I need to install shepherd b4 that
<dirtcastle>rekado:
<rekado>no, you don’t need shepherd to use “guix system init”
<rekado>I’ve used this method to install Guix System after booting an existing Ubuntu.
<dirtcastle>i need to install guix before this
<dirtcastle>?
<dirtcastle>rekado:
<dirtcastle>from apt?
<dirtcastle>or throught installer script I guess,. I'll use script.
<dirtcastle>rekado: after installing guix on ubuntu in my case, I'll create a partition called say guixfs , where guix os will be there. and mkdir -p /mnt/guix . and mount the partition on guix and run guix system init on a config file there?
<WesterWest[m]>dirtcastle: don’t forget to mount boot partition if you use efi
<dirtcastle>before running guix system init or after?
<WesterWest[m]>and you won’t have a config file there so you probably need to write one yourself
<WesterWest[m]>dirtcastle: before
<dirtcastle>u asking me to do this - mkdir -p /mnt/guix/boot . right?
<WesterWest[m]>guix needs to put the kernel (and bootloader, if you choose so)
<dirtcastle>WesterWest[m]: yes. I guess so.
<WesterWest[m]>dirtcastle: are you on an efi system?
<dirtcastle>yes
<dirtcastle>efi
<WesterWest[m]>okay then create /mnt/guix/boot/efi
<WesterWest[m]>and mount the efi partition there
<WesterWest[m]>dirtcastle: after that proceed here https://guix.gnu.org/manual/en/html_node/Proceeding-with-the-Installation.html
<WesterWest[m]>don’t forget to change all mentions of /mnt with /mnt/guix as you have mounted the root partition there
<dirtcastle>I'm trying to dual boot.
<dirtcastle>hmmm....
<dirtcastle>i think I'll have to specify where the boot partition goes
<WesterWest[m]>dirtcastle: you still need to mount the efi partition
<WesterWest[m]>it is for all systems on a disk
<dirtcastle>ohh. okok
<WesterWest[m]>if your other installation is linux, you can install guix without a bootloader and add it to the other linuxes bootloader manualky
<WesterWest[m]>but if it’s windows, keep in mind that windows doesn’t recognize linux installations
<dirtcastle>I have to mount the boot partition onto another ssd.
<WesterWest[m]>usually you can get away with always booting grub (or whatever else) that has menu for all the systems currently present
<dirtcastle>one has windows. another has ubuntu. I'm trying to install guix alongside ubuntu
<dirtcastle>and I'm aiming to get rid of ubu5
<dirtcastle>ubuntu*
<WesterWest[m]>dirtcastle: it is usually done that you have efi on each disk that contains a valid installation as it allows you to boot even if the other disk isn’t present
<WesterWest[m]>dirtcastle: just mount the ubuntu’s efi partition then
<WesterWest[m]>it doesn’t matter, it can be shared
<WesterWest[m]>guix will simply create another efi entry (the one that you select from bios)
<dirtcastle>WesterWest[m]: makes sense.
<WesterWest[m]>you can then manually write into bootloader-configuration of the guix config file the other systems
<WesterWest[m]>and then your guix bootloader will act as a master that simply calls others
<dirtcastle>WesterWest[m]: yes. understood. grub config is awesome
<WesterWest[m]>dirtcastle: it really is
<dirtcastle>that program I'm talking abt
<dirtcastle>so I only have to care abt boot partition and guix system init will gr everything else right?
<AwesomeAdam54321>yeah
<ulfvonbelow>I think our exim service as-is doesn't quite work... from what I've read in the manual, exim needs to be setuid root in order to do local delivery to various users. We also aren't using -q<time> or a cron job to process the queue, so if anything temporarily fails to be delivered it's just stuck forever
<dirtcastle>nice.
<WesterWest[m]>dirtcastle: don’t forget about the bootloader config in guix, but other that that, the whole process shoud be automatic
<dirtcastle>oh. noted.
<apteryx>Christoph[m]: I usually keep the secrets in /secrets (or anywhere of your choosing) and have the service read them from a file
<apteryx>we're getting this on berlin after reconfigure: nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64
<apteryx>any clue?
<apteryx>I want to raise server_names_hash_bucket_size to 128 say, but how do I do this with our nginx config?
<apteryx>ah, we have a config option for it :-)
<apteryx>‘server-names-hash-bucket-size’ (default: ‘#f’)
<Christoph[m]>apteryx: Thank you!
<dirtcastle>are there texinfo available for guix manual and cookbook
<apteryx>see under doc/ in the git checkout of guix
<apteryx>rekado: good afternoon! and thanks again for yesterday. Is it expected that at this time I can't access berlin or node 129 iDRAC (times out)
<WesterWest[m]>I am trying to package haskell-language-server and I have encountered a weird error that I don’t know how to solve
<WesterWest[m]>“Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS”
<mroh>Wester West: perhaps, you have a circular input cycle: https://issues.guix.gnu.org/46624
<WesterWest[m]>mroh: ok I hate haskell now
<WesterWest[m]>it is certainly possible that some of those packages depends on another that depends on it
<WesterWest[m]>as cabal allows that
<attila_lendvai>if i want to add https://gitlab.freedesktop.org/whot/xkblayout then should it go into python-xyz.scm or into xdisorg.scm?
*attila_lendvai goes with xdisorg.scm
<yewscion>sneek: botsnack.
<sneek>:)
<WesterWest[m]>has someone managed to install ghcup? I need to develop some cabal projects, but the guix cabal doesn’t want to cooperate
<jpoiret>i wouldn't bet on ghcup or rustup working ootb on guix
<wdkrnls>I was failing to debug a package and looking at the failure output I saw: file ‘cleanup’ has the wrong MD5 checksum
<wdkrnls>That doesn't sound good.
<wdkrnls>I have no idea where that message is coming from. How do I find out?
<WesterWest[m]>jpoiret: it doesn’t, but I really don’t know how to fix it, i need haskell :D
<jpoiret>we've got some flavor of haskell 8 packaged
<jpoiret>ghc 8*
<jpoiret>ghc 9 is not packaged yet though, as it requires quite a lot of work
<jpoiret>basically, ghcup will download prebuilt binaries that expect a lot of things to work a specific way, which isn't the case on guix
<WesterWest[m]>jpoiret: i would really love to get haskell-language-server working, but that has some circular deps and that doesn’t work well with guix package
<WesterWest[m]>and guix-packaged cabal straight up refuses to work on my project
<jpoiret>surely there's an example of a haskell package that originally requires circular deps, that you could take inspiration from?
<jpoiret>i faintly remember seeing one, although it could've been rust
<bjc>i didn't think cargo allowed circular dependencies
<rekado>apteryx: we were missing an IP on eno4 to connect to the maintenance network.
<WesterWest[m]>jpoiret: the main problem is that hls requires about 50 unpackaged packages and the file with them has 1370 loc, so I dobiti have the energy to check where is the circular dependency coming from
<rekado>I just added the IP manually; and I pushed a commit to the maintenance repo.
<jpoiret>yep, that's the issue with languages that have their own package managers
<jpoiret>lots of small deps, annoying to package
<jpoiret>you could temporarily use containers for that, although i don't know how lsp would work across containers
<jfred>I kinda wish it were easier in Guix to interoperate with language package managers though; I haven’t used Nix much yet but the tooling around that seems a bit more fully developed there from what I’ve seen
<WesterWest[m]>jpoiret: oh yeah, docker style language server would work, if I bind the ports
<jpoiret>jfred: that's because they sometimes just let the tools do all the work
<jfred>Ah, interesting
<jpoiret>ie for some they just download all the deps as specified and vendor them all in the package
<jpoiret>so no reuse at all
<jpoiret>one thing that could be beneficial (although i'm not sure if it would resolve everything) would be to have good guix support for FHS containers
<bjc>jpoiret: i use emacs+eglot for language environments in containers for all my dev work
<WesterWest[m]>bjc: do you have some sort of direction/example?
<janneke>efraim: do we have substitutes for riscv64 yet?
<bjc>WesterWest[m]: eglot supports it out of the box
<bjc>if you are editing a remote file, eglot will start the lsp on the remote
<WesterWest[m]>bjc: but i’m editing a file on my guix system
<bjc>over tramp?
<bjc>or maybe i'm misunderstanding something. i was saying that emacs+eglot will work transparently over containers (via tramp). so if you need to use a container -- for instance, guix can't build run your haskell language server -- you can run that in a container
<bjc>you will need the file to be in the container, too, but that's just a matter of mounting directories
<efraim>janneke: right now only I have substitutes. I can share the Tor address but we haven't gotten build machines yet
<efraim>k7muufoychzetmq7evsv6gcq4sxq4olxo3uy2zlhek5fkfvl5uscbgyd.onion port 3000 according to my notes
<efraim>Also for 32bit powerpc-linux
<janneke>efraim: thanks!
<WesterWest[m]>hi! I just noticed that /etc/containers/policy.json is missing from guix, is there a way to patch guix to put a file there? As without this file podman refuses to pull any image
***Lumine_ is now known as Lumine
<WesterWest[m]>and also some weird issue with cgroups :(
<podiki[m]>not guix related, but just found out (accidentally) that if you press 'e' when using less it will open the file in your editor
*attila_lendvai has migrated to home services, and succesfully installed his custom xkb into ~/.config/xkb/
<apteryx>podiki[m]: I should read the 'less' manual one day, I also mostly discovered its features by stumbling around :-)
<podiki[m]>yeah, I hadn't realized I was still in less when I switched to a terminal, started typing my next command to suddenly find myself in emacs
<podiki[m]>turns out there's a lot less can do, took me a while to confirm the command by flipping through man!
<apteryx>less is more!
<bjc>one thing i didn't know about for the longest time: you can type in command line flags after less has started
<bjc>so if you want case insensitivity for searching, just type ‘-i’
<apteryx>nifty!
<nckx>I find the occasional run-time ‘-S’ particularly handy.
<nckx>(Hi geeks.)
<nckx>luis-felipe: Cool swag! 👍
<WesterWest[m]>i kinda want to write some documentation on podman on guix as it is really finicky right now and a great source of frustration:D
<luis-felipe>nckx: :) thanks
<nckx>TIL ‘crop hoodies’ 🤷
<luis-felipe>I just came here to share it. So for those who don't know, I published a collection of new t-shirts, hoodies, and mugs, featuring the 10 Years of Guix:
<luis-felipe> https://mastodon.online/@luis_felipe/108244769193309925
<luis-felipe>:D
<dlowe>luis-felipe: I thought you were on fosstodon :D
<luis-felipe>dlowe: I discovered that one a bit late :)
<dlowe>mastodon supports actually moving accounts now
<WesterWest[m]>i’m so tired of cgroups 😭 once again podman refuses to work properly
<bjc>this has been my life for the last few days
<bjc>podman/crun/docker have actually made me appreciate systemd
<WesterWest[m]>bjc: i wish i had a huge system that is uportable, buggy and with mantainers if it meant that podman would start up the container
<bjc>it doesn't help with podman. it does, however, actually start containers and is fairly simple to work with
<bjc>podman is an abstruse mess. and i'm comparing it to systemd of all things, here
<luis-felipe>dlowe: Oh, really? I'll take a look later, thanks.
<bjc>does guix have lxd? i had that working pretty well before i switched to systemd-nspawn
<WesterWest[m]>bjc: at this point my only hope is docker
<bjc>good luck. i think i'm going to have to do the same thing
<WesterWest[m]>where did your podman setup fail?
<dirtcastle>best resource to learn guile?
<bjc>i'm trying to run my containers on zfs, and podman can't handle it
<bjc>from what i can tell, it's a lack of openat2 support in zfs
<WesterWest[m]>bjc: well even if you did, you could fail on cgroups so…
<bjc>but my use case is: i have this directory, please make it a container. so i need almost nothing out of container management. but i can't figure out how to make podman work with it
<bjc>i think i have the cgroups stuff working. i'm able to use ‘crun’ to start them, but since crun won't set up networking or anything, it's a wash
<bjc>systemd-nspawn also uses cgroups, and i long ago migrated to v2 (and dealt with the hiccups), so i don't expect issues there
<kennyballou>Hey #guix, I'm trying to modify the z3 package to include java bindings, but seem to be getting stuck at the configure phase. Here is the Z3 definition: https://pastebin.com/ApagA92c. The configure output of the derivation states that it was unable to find javac in the PATH, but I've added java to the native-inputs. Is there something else I'm missing?
<luis-felipe>dirtcastle: I don't know any course about guile, only the manual. Do you have previous programming experience?
<djeis>Odd, I've gotten podman to work in the past...
<the_tubular>WesterWest[m] sorry just saw your message about podman, the package definition definetly need some work, but in  the meantime you can create those file manually
<dirtcastle>luis-felipe: yes. I am trying to learn elisp. know little bit of c and python.
<djeis>Having the package itself create those files would be difficult, but for a guix system a system service for podman could be created that sets the files up.
<WesterWest[m]>the_tubular: I haven’t managed to run podman successfully even after that, sadly cgroups are weird
<the_tubular>I'm using podman fine everyday, but there are a few hurdles. Podman just got update to 3.4.4 in guix, but podman 4 is released (or releases soon) so I guess we can hit 2 birds with one stone and upodate the package definition when we upgrade the pacakge.
<the_tubular>WesterWest[m] If you check the package definition, there's a comment about a command you have to run for it to work
<djeis>Wester West: Are you running elogind?
<luis-felipe>dirtcastle: There is a quick introduction the Guix Cookbook: https://guix.gnu.org/en/cookbook/en/html_node/A-Scheme-Crash-Course.html
<WesterWest[m]>djeis: i’m pretty sure I am
<WesterWest[m]>the_tubular: i did that but it failed when I tried to run that container
<the_tubular>Were you running as root ?
<djeis>Ah, yea, you probably don't want to run that command if you're also using elogind.
<djeis>I'm pretty sure elogind also tries to manage cgroup stuff.
<the_tubular>I've been using podman for months now without major issues.
<the_tubular>Well since the very first day we got the package definition.
<luis-felipe>dirtcastle: There is also this work-in-progress book: https://jeko.frama.io/
<the_tubular>WesterWest[m] Try with sudo -i
<dirtcastle>luis-felipe: I was anyway abt to read cookbook and manual. the book has suggestion for further learning.
<the_tubular>Next time I have to travel, I'll bring a copy of the cookbook and r6rs with me.
<the_tubular>I think I will learn a lot ;)
<dirtcastle>luis-felipe: jeko book seems amazing.
<luis-felipe>dirtcastle: And since you're not new to programming, maybe check the Guile Manual indexes when you're looking for specific functions for example (https://www.gnu.org/software/guile/manual/guile.html#Procedure-Index)
<the_tubular>WesterWest you tried : `sudo mount -t cgroup2 none /sys/fs/cgroup`
<the_tubular>Correct ?
<WesterWest[m]>the_tubular: yea
<WesterWest[m]>i’ll try the sudo -i
<the_tubular>Yeah, ping me when you do :)
<luis-felipe>You can also as in #guile IRC channel or mailing list, or #guile in the Fediverse for help when you can't find a particular way to do things.
<luis-felipe>*ask
<djeis>Hmm, yea, rn I get "Error: OCI runtime error: cgroups in hybrid mode not supported, drop all controllers from cgroupv2" when I try to use podman...
<djeis>And I'd rather not mount over the stuff elogind is already managing.
<dirtcastle>luis-felipe: Thanks for your time!!
<luis-felipe>You're welcome :)
<dirtcastle> i was asked the same question in #guile. idk what to think abt recommendation not overlapping at all. luis-felipe
<the_tubular>Umm, haven't played with podman for a while, but IIRC that was the error i was getting when cgroups wasn't mounted
<the_tubular>I don't know much about elogind though :/
<nckx>diI know exactly one thing about cgroupsv2: that it's supposed to be managed by exactly one daemon (which is, de facto, systemd). Is our elogind managing them a discrepancy, or does elogind take the place of systemd here, and should podman be able to talk to our logind?
<djeis>Ah, so, I think it's fine that elogind is managing the cgroups (although that does make podman soft-depend on elogind...). However, our elogind is running a "hybrid" cgroups hierarchy.
<the_tubular>Not familiar with elogind enough to answer that nckx :/
<nckx>We have the same problem :)
<djeis>Which means it runs a v1 cgroup hierarchy at /sys/fs/cgroup and then a v2 at /sys/fs/cgroup/unified
*nckx yells at systemd.cloud.
<djeis>And podman doesn't support that.
<nckx>Huh. Interesting.
<nckx>That does sound a bit… deprecated.
<djeis>The comment in the podman package says to mount a v2 hierarchy at /sys/fs/cgroups
<the_tubular>Let's take the other path and change all container to be guix container :P
<djeis>Which would break a running elogind, I presume.
<djeis>But systemd can run in either v1, hybrid, or v2. Maybe elogind can be configured to just use v2?
<nckx>M-hm.
<nckx>(Not an answer, just agreeing.)
<djeis>I think elogind can also work with a separate cgroup controller, so maybe it'd make more sense to have a dedicated cgroup controller instead of having elogind provide that?
<djeis>And that way podman could still be made to work on systems that don't want to pull in elogind.
<nckx>If I'd have to bet I'd say that Guix's current hybrid set-up is an historical accident/left-over, not a necessity. I say this mainly because I'm pretty sure my kernel has all the legacy v1 stuff ripped out. But then I don't run GNOME/docker/podman/… or anything fancy that might actually use cgroups.
<djeis>Regardless, I think a guix system service for podman is warranted.
<nckx>djeis: What are common providers beyond systemd?
<nckx>s/provider/controller/
<the_tubular>It was working well on my old openrc gentoo box
<the_tubular>No clue what was the magic underneath though
<f1refly>how do I remove pulseaudio from my system? I removed the pulseaudio-service-type, which jugding from the documentation only removes the pulseaudio config files, and setting (pulseaudio? #f) in alsa-settings
<f1refly>I didn't find anything regarding the removal of pulseaudio entirely
<f1refly>Do I have to filter it from base-packages?
<djeis>Sorry, not controller, "manager".
<djeis>Controllers are the things inside of cgroups that manage particular resources.
<nckx>f1refly: So pulseaudio in $PATH?
<nckx>Many packages depend on pulseaudio, ripping it out is not supported.
<WesterWest[m]>the_tubular: no luck, still the cgroup error (but not the same as before running mount none on the cgroups)
<WesterWest[m]>and it only does that at podman run, not at podman build
<f1refly>nckx: I'm still probing around why my laptop consumes 15W in idle when I'd expect something around 4W-5W, powertop lists pulseaudio as the culprit
<the_tubular>Umm, podman run works fine on my side ...
<f1refly>So removing it to test if things get better or if powertop is lying would be my first attempt to know why
<WesterWest[m]>the_tubular: weird
<WesterWest[m]>but docker works! so i’m just going to stick with that
<djeis>Ah, adding "systemd.unified_cgroup_hierarchy=1" to the kernel command line should get elogind to use only v2.
<djeis>Because, well, that's how you have to select something like that with systemd.
<djeis>And they just lifted that logic entirely.
<WesterWest[m]>djeis: why is that an systemd option???
<djeis>Elogind was forked out of systemd.
<WesterWest[m]>still, it should be standardized
<djeis>It's systemd's seat management code lifted out and turned into an independently-maintained project.
<djeis>I guess they just haven't gotten around to changing that bit of the codebase?
<djeis>I might try this in a min...
<djeis>Nope, that did not seem to work.
<djeis>Ah, no: guix system itself mounts the v1 cgroup stuff, and the guix system service for docker explicitly depends on that.
<djeis>Which forces elogind to run in hybrid mode if it wants cgroup v2 at all.
<djeis>And that seems to break podman.
<djeis>Which, I think, means the other direction is the solution for now: tell elogind to not mount the v2 hierarchy at /sys/fs/cgroup/unified and stick entirely with v1.
<djeis>Which is a bit unfortunate, imo, but the other solution involves forcing an update to the latest docker and rewriting bits of gnu/system/file-systems and gnu/services/docker
<djeis>Wester West: Okay, so, I was able to make podman work by going the other direction: adding "elogind.legacy_elogind_cgroup_controller=1 systemd.unified_cgroup_hierarchy=0" to my kernel args so that elogind doesn't mount the v2 hierarchy at all and runs entirely in legacy mode.
<djeis>Might only need the first of those two options, I didn't test that.
<WesterWest[m]>djeis: that is the same as mounting the v2 into none right?
<djeis>No.
<djeis>This is telling elogind to not mount the v2 hierarchy at all.
<WesterWest[m]>oh
***stikonas_ is now known as stikonas
<djeis>And relying on podman supporting legacy cgroups.
<djeis>I'd imagine this means that guix systems that don't run elogind would never run in to this issue at all.
<djeis>The system mounts the legacy hierarchy, nothing comes around to mount the v2 hierarchy, podman just runs in legacy mode.
***daviid` is now known as daviid
<WesterWest[m]>btw I must say, all the guix art is so pretty 🤩
<nckx>All hail Luis Felipe (mostly).
<tricon>WesterWest[m]: it is quite good.
<kennyballou>I believe I figured out the build step for z3 to include java bindings. I followed java-openmpi as an example. However, how do I tranlsate the old `(assoc-ref inputs "jdk")` to use the new gexpr style? I don't know what to pass `search-input-directory`. For reference, here is my current package definition: https://pastebin.com/uJqdEXFb
<mekeor[m]>when i want to use a module from one channel in a module of another channel, do i need to put the path of the former channel to GUIX_LOAD_PATH?
<WesterWest[m]>mekeor: i think you have mixed up modules and channels
<mekeor[m]>Wester West: channels are just guile modules, no?
<WesterWest[m]>mekeor: i don’t believe so
<mekeor[m]>Wester West: why not?
<djeis>Channels are collections of guile modules.
<mekeor[m]>yeah, along a channel-declaration, but thats not important here
<WesterWest[m]>and can be pulled with guix pull and they can use packages fron other channels
<djeis>Well, when made part of a built guix they can refer to other channel's stuff.
<WesterWest[m]>you add channels to your ~/.config/guix/channels.scm
<mekeor[m]>yes thats not my question
<WesterWest[m]>when you pull, you make all modules from all the channels available
<djeis>Yeah but that doesn't help when developing a channel.
<djeis>That's how you consume already-made channels.
<WesterWest[m]>djeis: oh sorry, maybe i misunderstood
<mekeor[m]>i put a channel calles guix-emacs in my channels.scm, then pulled, when i start guile, i cant (use-modules (emacs packages melpa-generated)). it doesnt find it
<mekeor[m]>*called
<djeis>Oh.
<djeis>That's a known bug.
<djeis>Well... Did you use guix repl or just guile?
<mekeor[m]>just guile
<djeis>Because your channels don't show up on the load path of arbitrary guile repls, only the one from guix repl.
<mekeor[m]>ok cool, thanks :)
<djeis>But even past that, secondary channels won't show up there until you use `(gnu packages)` for some reason.
<mekeor[m]>but referencing it in a channels package module should work ootb, right?
<djeis>Channels should be able to refer to modules from other pulled channels, yes.
<mekeor[m]>secondary channels? wont show up where? in guix-repl?
<mekeor[m]>guix-repl worked. nice
<djeis>Yea, for some reason trying to load channels other than the official gnu one in `guix repl` doesn't always work if you don't first `(use-modules (gnu packages))`
<mekeor[m]>it worked for me :)
<djeis>Nice :)
<mekeor[m]>did anyone ever try this channel? https://github.com/babariviere/guix-emacs
<mekeor[m]>the melpa-generated.scm file has 3.6MB!
<WesterWest[m]>djeis: is there actually a way to load channels into guile? I mean sometimes guix fails with a cryptic error and I need to debug it, but guile is missing the channels
<mekeor[m]>maybe thats why guix pull doesnt terminate for me
<djeis>That's what guix repl is supposed to give you: a guile session where the same load path that guix itself is using is active.
<WesterWest[m]>mekeor: i mostly use the default provided by guix or simply guix import them
<kennyballou>mekeor[m]: I use it in my home profile, but I pin it to a specific commit, and manually update it.
<WesterWest[m]>djeis: i want to do something along the lines of guile -L CHANNELS -L myproject myscmfile
<mekeor[m]>kennyballou: does it take long for you to guix pull?
<kennyballou>mekeor[m]: no, maybe a minute tops
<mekeor[m]>kennyballou: pinning is a nice thing but reviewing changes to a 3.6MB file is tedious
<djeis>Wester West: You might be able to accomplish that by putting ~/.config/guix/current/share/guile/site/3.0/ on the load path.
<djeis>That's how I've got my geiser-guile configured.
<WesterWest[m]>djeis: i think I tried that but it didn’t work :/ my geiser simply doesn’t see any modules for example
<djeis>That might've been the thing I was mentioning above about needing to first use `(gnu packages)`
<kennyballou>mekeor[m]: indeed, I live a little fast and loose on updates to that channel. But I don't update very often... maybe every few weeks. I would probably be better served manually importing the packages that I depend on being updated, but I digress. I just did a `guix pull`, all channels were pulled in ~2 minutes
<mekeor[m]>kennyballou: okay hmm maybe it takes so long because i reference that melpa-generated module from my custom channel (in order to "inherit") (because emacs-ement is packaged for guix but not for melpa)
<WesterWest[m]>djeis: can I instruct geiser to have that line executed?
<djeis>Oh, also, you can pass a file to run to guix repl these days.
<djeis>And add some to the load path for your own projects.
<djeis>`guix repl -L myproject -- file.scm` ought to work.
<mekeor[m]>i wonder if guix-pull is quicker if i re-order my channels so that first babariviere/guix-emacs is loaded and my personal channel afterwards
<kennyballou>mekeor[m]: that's out of my wheel house.. I just import with time-machine... https://git.sr.ht/~kennyballou/dotfiles.git/tree/master/item/kbg/services/emacs.scm
<kennyballou>mekeor[m]: perhaps, there might be a cycle there, by the sounds of your personal channels referencing the babariviere/guix-emacs
<kennyballou>from my on again off again attempts to package dnslookup, the cycle detection of go-protobuf gets me every time... still not sure how to resolve that
<Guest88>on guix system, is there a way to authorize a public key without running guix system reconfigure?
<mekeor[m]>guix archive --authorize? (wild guess)
<kennyballou> https://guix.gnu.org/manual/devel/en/html_node/Substitute-Server-Authorization.html#Substitute-Server-Authorization
<kennyballou>yeah, `guix archive --authorize < .... `
<Guest88>that fails on my system: "guix archive: warning: replacing symbolic link /etc/guix/acl with a regular file
<Guest88>hint: On Guix System, add all `authorized-keys' to the `guix-service-type'
<Guest88>service of your `operating-system' instead. guix archive: error: mkstemp: Permission denied"
<kennyballou>Guest88: I could be wrong, but I believe that needs to be run as root
<kennyballou>Do both, add it to your system definition, but temporarily fudge it so you can run the reconfigure... I'm suspecting a chicken and egg problem?
<Guest88>yes, thats the idea. i wanna have the substitute available when running guix system reconfigure
<Guest88>i just ran it as root. it still showed that warning, but didn't error
<kennyballou>Make sure the file is no longer a soft link and has the right content, and you should be good to go
<Guest88>"the file" being /etc/guix/acl?
<Guest88>the new key is in the acl file now
<kennyballou>Guest88: yes, that's "the file". then your reconfigure should work, no?
<kennyballou>err, work as intended with substitutes
<Guest88>hopefully :D
<Guest88>it worked. thank you. so my issue was that i never tried running guix archive --authorize with sudo
<WesterWest[m]>djeis: how do you setup geiser? Mine doesn’t seem to load my project into load path even when I try very hard to convince it to do so
<kennyballou>How can I specify NFS mounts to be mounted automatically on an unencrypted system? On an encrypted system, specifying the `(dependencies mapped-devices)` works, but on a system that does not use any mapped devices, I'm not sure how to get the mounting of NFS to happen at the right time and not hang the bootup. I've tried copying the root file-system object as the dependency, but that just errors saying nothing provides that "service"
<kennyballou>is that error the hint, can I specify the networking service as a dependency?
<the_tubular>Anyone made progress on emacs-eaf ?
<kitty1>the_tubular: I wouldn't be aware ; internet kinda bad right now, what is emacs-eaf?
<the_tubular>Emacs Application Framework, kinda hard to exaplain
<the_tubular>Basically you can render python and JS inside of emacs
<the_tubular>One of the project of eaf is eaf-browser, a full fledged chronium browser inside of emacs :)
<the_tubular>kitty1 if you are interested in emacs you should definitely look it up