IRC channel logs

2025-12-19.log

back to list of logs

<ekaitz>guix home uses the shepherd config files by default, is it possible to keep my own manual config?
<ekaitz>i tried adding .config/shepherd from my config but it says the link is already pointing to something else
<ekaitz>oh i can just remove %base-home-services, right?
<ekaitz>it didn't work
<ekaitz>:(
<nomike>Hi
<nomike>When I'm running `guix home reconfigure` it fails with the package "enjarify" failing to build. Any suggestion on how I can reconfigure my guix-home? I don't know what enjarify is, it's probably a dependency of something else. Nevertheless I filed an issue for it: https://codeberg.org/guix/guix/issues/4954
<nomike>It's package definition hasn't been touched within the last 4 years, so no clue why it fails now.
<Deltafire>I think something changed with the python build scripts, a bunch of packages are failing with the same error
<Rutherther>nomike: just transform the package so that it doesn't run tests with options->transformations
<simendsjo>I'm trying to migrate away from gdm, but I get a strange error. If I first log through gdm, I can open a terminal and log in. But if I try to log in without first logging in to X, I get an "exception thrown" from sheperd.conf when trying to log in on a tty. My guess is some binding to X in one of my home services somehow. Any ideas how I can debug this?
<Rutherther>hey guix, how is https://guix.gnu.org/guix-install.sh updated, is it manually?
<csantosb>Related question: how do you update Guix as foreign ?
<Rutherther>what part exactly?
<csantosb>Say I install Guix using guix-install.sh on top of Debian; one year later, guix-install.sh contents change.
<csantosb>For example /etc/profile.d/zzz-guix.sh gets renamed, or its contents change
<csantosb>How exactly am I supposed to know ?
<Rutherther>that's a manual process currently
<csantosb>Exactly. I need to download the git repo, search for the guix-install.sh file, locate the embedded zzz thing and ...
<csantosb>At a minumum, zzz should live outside of guix-install, https://codeberg.org/guix/guix/src/master/etc/guix-install.sh#L751
<Rutherther>that's not easy to do
<csantosb>Not a big deal, it doesn't change everyday, but still, we need to keep foreign users in mind too
<yin>guys after my research into guix i've decided this kind of abstraction is not for me. thank you for your help, this is a great project! i hope this philosophy keeps infecting the way we think about computing
<csantosb>yin: Out of curiosity, what is the bigger blocker for you ?
<cbaines>Rutherther, regarding guix-install.sh https://codeberg.org/guix/maintenance/src/branch/master/hydra/modules/sysadmin/web.scm#L335-L354
<yin>csantosb: the main benefit of guix for me would be reproducibility and dev environments. for me specifically, the rare times i need to reproduce a system in such a complete way do not justify guix's tradeoffs (maintenance requirements, package availability, ecosystem lock-in, etc...). i would love to see linux being structured in a way that would offer this, but from the groud up. abstracting system
<yin>configuration away today feels like a patch and just delegates the work to a centralized organization, not solving the root problem, but i rant
<yin>i love the benefits it brings, they just wouldn't outweight the inconvenience for me, personally
<luca>Sounds like guix in a forreign distro would work better if you want reproducible dev envs but not the whole reproducible OS
<yin>you're right! but for that specifically i got many other options
<luca>For what is worth, I use both OCI devcontainers and guix. Some things work well with guix (C++ dev for me), while others don't (nodejs dev)
<Rutherther>cbaines: so if I am reading correctly it's updating every 4 hours automatically
<Rutherther>thanks!
<luca>I also feel a lot of the painpoints you name, but I'm not quite ready to throw in the towel
<yin>a tangent: one thing this project reminded me of was lisp machines
<yin>how i would love that to take off
<DarthTRump>how to install sway in guix
<DarthTRump>guix install sway?
<Rutherther>depends on how you want to use it exactly, but "guix install sway" could work, yes, if you want to start sway in TTY, it will work
<identity>you might want to see (info "(guix) Sway window manager")
<Rutherther>as long as your system also has the necessary components like elogind / seatd
<ximon>Hopefully my system will work on guix
<ximon>I try now installing guix
<ximon>On my hardware
<ximon>Wtf the PC is so loud at the moment through guix is this normal?
<Rutherther>not really 'normal', probably what happens is that your fans go to 100% speed when they're not controlled and linux-libre doesn't have the drivers that would control them
<ximon>Rutherther how do we know guix is safe ?
<Rutherther>safe in what way?
<ximon>Where do I find the sway config rutherther
<ximon>Like safe no virus you know?
<Rutherther>consult the sway docs for that
<ximon85>Rutherther it is not in the place where it is supposed to be /etc/sway/config
<gabber>i have a single assertion failing in a unit test. unfortunately many assertions in that file are exactly the same, so (substitute*) would change all of them. do we have means to comment out single lines of code in Guix?
<Rutherther>ximon85: right the default config is in "$(guix build sway)/etc/sway/config"
<ximon85>I installed sway with the other way
<ximon>Interesting guix seems to work without sudo
<ximon>How is that possible
<ximon>But you have no Firefox or chromium why?
<Rutherther>because guix doesn't modify the system paths. Guix can be used as regular user, you do guix install to install to your user's profile
<ximon>That's cool
<Rutherther>there are licensing issues with both (with Firefox it's mostly just the brand), see librewolf and/or ungoogled-chromium
<Rutherther>...or icecat instead of librewolf
<ximon>Guix the slowest packagemanager in the world
<luca>Haven't used pip? :P
<ximon>The apps appear not in my dmenu
<ximon>Disgusting how slow it is
<ximon>Lol
<ximon>Why is guix pull so slow
<trev>the hamsters must need to be fed
<identity>ximon: because it has to pull a big repo and then build some code
<kestrelwx>o/
<DarthTRump>kestrelwx time to install fedora
<DarthTRump>you played enough on fuix
<gabber>has Guix been run on non-linux (and non-hurd) systems? any of the BSDs?
<ximon>Guix the worst of all nightmares
<kestrelwx>Then you should probably value your time instead of doing this bit for months.
<ximon>Unfortunately I don't have a book
<DarthTRump>fedora
<JackleBells>I personally am ok with guix pull taking a while as long as I can enjoy apt-like integration of installed apps alongside more up to date versions than in my distro's repos
<luca>Out of curiosity, why use a distro with packages that are not up to date enough to you? As opposed to another distro or even guix system?
<JackleBells>Well... it's more of a sentimental than logical reason, but as a new Linux user, I really enjoy the distro I landed on first and I want to "back this horse"
<JackleBells>(Pop!_OS, started with 22.04, now on 24.04 this year)
<luca>Sounds good. Have fun using linux!
<JackleBells>Thanks! :)
<Deltafire>i wonder if the nix package manager is faster
<ity>Hello
<ity>I am switching from NixOS to Guix Linux?
<csantosb>luca: Sometimes, you don't have a choice, and you're constraint to use an OS which is well supported by third party proprietary tools. Then, you improve the experience with Guix on top of it.
<ity>Does anyone use Niri?
<apteryx>ity: welcome! The distro is called Guix System, for your info :-)
<apteryx>anyone has a use for a working ceph package? A tester would be great.
<apteryx>I guess without a service it's probably a bit of a pain/challenging to use at the moment
<Deltafire>ity: i'm using niri
<apteryx>wow, boost weighs > 150 MiB
<apteryx>and ceph depends on 3 variants of python, totalling close to 300 MiB in its closure: https://paste.guixotic.coop/_shell_-12522311-12528577.html
<apteryx>I'm not sure what's the different between the two python-3.11.14 packages
<apteryx>(this is without grafts)
<Deltafire>there's a few more duplicates in that list also
<csantosb>`guix size boost` gives me 277.6 Mio
<csantosb>Little overweight problem in Guix
<untrusem>hello guix
<Deltafire>157.8Mio for boost itself, and if you look in the store directory you'll see the size is made up of thousands of boost header files
<untrusem>I gced my system after a very long time
<untrusem>199GB
<Deltafire>not sure how guix can reduce that
<untrusem>what is hard linking?
<Deltafire>deduplication by the directory entries point to the same inode on disk
<Rutherther>untrusem: it's when two seemingly different files on the system, like /path/to/a and /path/to/b refer to the same inode, ie. they refer to the same contents on the disk
<untrusem>I see
<untrusem>do you folks use btrfs
<untrusem>someone told me it can save space by compression
<untrusem>I use btrfs but not have taken advantage of it even once
<yqshao>Is there a policy about what backporting patches for packages? I am looking specifically at a case where bug fix which has been merged but not released, and the release cycle seemed slow: https://github.com/LibVNC/libvncserver/pull/617
<ieure>yqshao, Guix will usually package the snapshot with the fix instead of backporting a patch.
<yqshao>ieure thanks!
<ieure>No problem.
<old>I really wish there were a kind of service with Shepherd for core dumps
<old>I have my emacs daemon that crash spuriously and I would really like to have a coredump of that without having to mess with sysctl
<old>food for thoughts :-)
<ieure>old, There's a sysctl-service-type, but it's a system service, not a home one, since users typically don't have permission to mess with sysctls. Does that help at all?
<old>I will have to look at the service description
<old>But in my ideal world, I would like shepherd to automatically keep coredump of crashed services and I could get them easily with herd
<old>but yeah, it requires root
<ieure>You could maybe make an Emacs package variant that wraps the process with a script that sets the ulimit so it'll dump core, then give it to the shepherd service.
<ieure>But yeah, it should be easier.
<old>I mean, I could also just attach GDB To emacs and wait
<old>that's what I am goig to do
<old>Having this spurious crashes for 5 years now I am getting tired of it
<ieure>Yeah, that does suck.
<FuncProgLinux>untrusem: I use btrfs but "default" only. No special tags or subvolumes or anything.
<FuncProgLinux>Will try on a guix VM once I get timeshift working to see if the snapshots are useful in Guix or if that's killing a fly with a tank
<untrusem>FuncProgLinux: same
<FuncProgLinux>interesting... latest commit has a non-functioning make clean
<FuncProgLinux>No package 'sqlite3' found but I did make a shell using: guix shell -D guix help2man git strace sqlite --pure
<ieure>Yes, the package name is "sqlite." Guix packages generally don't put the version into the package name, though there are exceptions.
<FuncProgLinux>I have to specify "sqlite-3" then?
<FuncProgLinux>If so I can add a comment on the documentation effort, since that package is not listed on the latest info manual in Emacs.
<ieure>FuncProgLinux, `guix shell' uses the package name, which is "sqlite." If you want a specific version, you need a specifier, like sqlite@3.
<untrusem>What is the criteria for a PR that the guixbox uses to build a package?
<untrusem>guix ci bot
<ieure>untrusem, Is this in regards to #4970?
<tesseract>hello everyone
<untrusem>that prompted it, but I always wondered that
<tesseract>i want to build icecat for my arm raspberry pi
<tesseract>i can build for x86 machine of mine by cloning icecat repo. will it also work on arm?
<tesseract>do i need to do special things for that?
<ieure>untrusem, I think it builds every PR, but it's always way behind, usually seems like 2-5 days after the PR opens.
<ieure>tesseract, It *should* build for aarch64, but in practice aarch64 is broken much more than amd64.
<ieure>tesseract, You don't need to clone the repo if you're using Guix already, `guix build icecat' on your machine.
<tesseract>ieure: broken as in?
<ieure>tesseract, As in the packages don't build.
<tesseract>:/
<untrusem>ieure: ohh I see
<tesseract>ieure: i am not using guix currently. i will clone and build manually
<ieure>tesseract, Why are you asking in #guix then?
<tesseract>is it forbidden?
<ieure>It's off-topic.
<tesseract>i thought i would only get help in here
<tesseract>so, i asked in here
<ieure>Maybe there's #icecat for general icecat questions?
<tesseract>i don't know
<tesseract>lmme see
<ieure>We are, of course, happy to answer Guix questions in #guix.
<tesseract>wow. there is really an icecat channel :D
<dariqq>i think i finally managed to build the 32bit webkitgtk again. gcc-13 and gcc-14 ooms, gcc-15 has some weird error with tail call functions, gcc-12 fails linking at the end (all of these after fixing the issue with <cfenv>), gcc-11 is too old. Finally clang seems to work but there is another bug with g-ir-scanner and clang and it needs an extra cpp argument for g-ir-scanner.
<dariqq>what is this insanity
<FuncProgLinux>The guix build -k -P1 step always gets me eating my fingernails xD
<untrusem>lol
<untrusem>what you building?
<FuncProgLinux>caja for #4922
<tplaten>I did participate in the FSF hackathon and I will go to FOSDEM and Guix Days: currently working on a schedule for https://fosdem.org/2026/schedule/track/libre-chip-fpga-and-vlsi-devroom/
<luca>Does anyone know if there's any special rules in regards to --load-path / -L? Does the path have to be a git repo? Does it only take the master branch? Or should it "just work" with whatever is in the path at the given time
<identity>luca: you just point it at a/dir/ and you can load a/dir/ectory/module.scm as (ectory module)
<Rutherther>it doesn't work with git in any way, it doesn't know about branches etc.
<dariqq>reconfigured 32bit system with mate again on master. The list of hacks to force it to build for 32bit is only getting longer.
<Rutherther>dariqq: what makes you interested in 32bit systems btw?
<dariqq>just nostalgia for simpler times
<dariqq>but with more and more things not being tested for 32bit anymore the experience is not great and I am slowly retiring it.
<luca>Hi, anyone got any tips as to what the opposite of "maybe-string" would be in a define-configuration? Something that would _require_ a string, and ideally fail if it's not provided
<Deltafire>string?
<identity>does «string» not work?
<Rutherther>dariqq: I see! Makes sense.
<luca>I get a `error: serialize-string: unbound variable` with this service https://git.lucamatei.com/guix-luca-repo.git/tree/luca/services/biboumi-service-type.scm?h=user/luca/biboumi
<luca>And changing it to maybe-string does make it compile and build and everything
<Rutherther>so define serialize-string
<Rutherther>or turn off serialization if you aren't using it
<ieure>luca, You want a string field without a default value. That will force the user to supply one.
<luca>Rutherther: What is serialization in this context? I am building the config file manually with string-append and mixed-text-file. Is that serialization? If not, how do I turn serialization off?
<Rutherther>that's what serialization would provide you, but not, it's not the serialization I mean. You may use the "define-configuration/no-serialization" helper
<ieure>I actually also have a serialization question, but lemme push my code first so y'all know what I'm talking about.
<luca>Ok, I added /no-serialization to define-configuration in my file and now I get a new error which I don't quite get https://lucamatei.com/paste/6234be5c-9dfb-49e9-aff7-a324533ef98d.txt
<ieure>Context: I've been missing collectd since switching stuff to Guix, so I've been hacking up a service for it. One of the things that needs to be in the collectd configuration is "TypesDB", which is a path to a file containing unit definitions for the collected metrics. There's a default one which comes with collectd, which should pretty much always get referenced in its configuration, but you can also add new TypesDB lines if you need
<ieure>new types.
<ieure>(For my usecase, I do need a custom typesdb)
<ieure>So in collectd-configuration, I added a types-databases field, which is a list of file-likes. The default is a file-append to create the path to the file in the collectd package.
<ieure>Field: https://codeberg.org/ieure/atomized-guix/src/branch/collectd/atomized/services/monitoring.scm#L100
<ieure>Default value: https://codeberg.org/ieure/atomized-guix/src/branch/collectd/atomized/services/monitoring.scm#L186
<ieure>Sorry, wrong field, here it is: https://codeberg.org/ieure/atomized-guix/src/branch/collectd/atomized/services/monitoring.scm#L223
<ieure>I'm having difficulty serializing this field to the configuration. It needs to end up ex. TypesDB "/gnu/store/...-collectd-5.x.y/share/collectd/types.db"
<ieure>I wrote a serializer that returns a gexp that formats the file-like: https://codeberg.org/ieure/atomized-guix/src/branch/collectd/atomized/services/monitoring.scm#L174
<ieure>I *think* field serializers can return gexps? The manual is strangely worded on this point, stating "The procedure should return a string or *note G-Expressions:: that represents the content that will be serialized to the configuration file..."
<ieure>Huh, I guess there was some hidden text in info-mode? The text reads "return a string or see G-Expressions that represents..."
<ieure>But I believe it should handle a gexp.
<ieure>But, the config serializer doesn't seem to understand the gexp, so it fails serializing the config when it gets to that field.
<ieure>What's the right way to handle this?
<ieure>I found lightdm-gtk-greeter-configuration, which does a similar thing, it seems to work there.
<Rutherther>luca: https://git.lucamatei.com/guix-luca-repo.git/tree/luca/services/biboumi-service-type.scm?h=user/luca/biboumi#n175 I think it's because you're constructing the configuration without that arguments, you might want to make the deafult value something like #f and let the user supply it. But I am not completely sure
<ieure>Rutherther, luca, The define-maybe macro uses a sentinel value as placeholder to mean "no value supplied," and the makes some serializers which produce no output when they encounter it, or delegate to the value serializer if not. So if you use define-maybe and write your own serialization code, you need to handle that value in your own code.
<ieure>*and then makes...
<ieure>So either: use define-maybe and the default serializers; use define-maybe and write your own serializers which handle %unset-marker%; or don't use define-maybe at all and write your own serializer and don't care about %unset-marker%.
<ieure>But you picked: use define-maybe, write your own serializers, don't handle %unset-marker%, and that won't work.
<luca>I actually commented out all the define-maybe's so I hope I'm not using them now. trying to minimise the scope of errors 😅
<ieure>Tangentally related question to above: If I eval (serialize-configuration (collectd-configuration) collectd-configuration-fields)), I get a gexp. Is there some way to build or eval that in a Guix repl?
<luca>`,use (guix)` then you can gexp stuff like `,build (plain-file "test" "test")`
<luca>imagine I said that with the correct verbs and terms and stuff
<ieure>luca, That doesn't work, I get &gexp-input-error and no helpful information to debug further.
<ieure>luca, It points at gnu/services/configuration.scm:165, which is the serialize-configuration call that returns the gexp.
<ieure>I guess the reason that doesn't build is the same as the thing I'm trying to fix, serialize-configuration transduces the config into a list of serialized fields, then string-append's them together. But one of the fields is another gexp, which string-append doesn't know what to do with.
<luca>in my 10 minutes of experience that happens when there's problems with my configuration code, not gexps 😅
<ieure>Okay, yeah, no, ,build simply does not work with gexps.
<ieure>Try: ,build #~(format #nil "hi")
<ieure>You get the same &gexp-input-error.
<Rutherther>it doesn't, that's what the plain-file etc. is for
<Rutherther>it can build a file-like object
<Rutherther>gexp itself is not a file-like object
<ieure>Right.
<Rutherther>with serialize configuration, I think the easiest is "(mixed-text-file "xyz" (serialize-configuration ...))"
<ieure>Hmmm, I am doing that, maybe I have the wrong stuff in there.
<ieure>Okay, yep, I had a with-output-to-string in the mixed-text-file, it works much better without that.
<ieure>As in, it mostly works now.
<ieure>Nice, well, got a bit of cleanup work, then this is getting PR'd.
<vagrantc>now that we have a C.utf8 locale ... maybe the installer should default to that instead of en_US ? also UTC for default timezone? guess same story for the other system templates?
<ieure>vagrantc, Default where?
<Rutherther>vagrantc: isn't C.utf8 more for machines, and en_US for humans? Why use C? Agree with the time zone
<vagrantc>guix/system/examples/ and gnu/installer.scm ?
<vagrantc>Rutherther: no? :)
<Rutherther>what's the purpose of the C locale then and why it's better than en_US.
<Rutherther>s/./?
<ieure>vagrantc, Oh, the env the installer runs in?
<vagrantc>because it does not predispose any particular location
<ieure>Right right.
<vagrantc>functionally, it is basically english
<vagrantc>although it has more reasonable time defaults, in my opinion, as a nice side-effect :)
<ieure>That was my next question, I know you pick the language as the first step, I've never chosen anything but English, but if you pick another language, I assumed you'd get an installer in German (or whatever).
<Rutherther>it's not, it's just for the timezone for your config
<vagrantc>not a huge deal, but for a project that seems largely coming out of europe, en_US seems a bit silly ... C.utf8 did not exist upstream until fairly recent glibc versions (e.g. not the version in guix 1.4.0)
<vagrantc>but it seems a more "neutral" default not that C.utf8 is actually available...
<vagrantc>and the regular C locale was missing utf8, so back then it was a poor default in a variety of ways...
<Rutherther>I'm fine with making that switch
<vagrantc>hopefully this doesn't spark heated debates :)
<vagrantc>git grep en_US | nl ... shows 206 occurrences ... although only some are probably "defaults"
<Rutherther>vagrantc: are you going to take care of this?
<vagrantc>and many are basically translations of the manual and cookbook...
<Rutherther>or should I? If me, I would switch only the examples and installer for now
<vagrantc>dunno if posting to guix-devel is the right place to start or file an issue or whatever
<vagrantc>can try it and see what breaks for the installer RC :)
<vagrantc>whee /gnu/store/5kfaqjbn9zr92wr6x0jsycqy2ysa748b-guix-system-install-1.4.0-47.21ce6b3.aarch64-linux.iso
<FuncProgLinux>Ohhh translations are needed? I could help with spanish though the manual already has a lot already translated
<Rutherther>no translations were discussed here currently
<vagrantc>translations are often needed, though i'm not sure of the current status
<FuncProgLinux>mmm guess I have to tweak icedove to show me more context after going afk, I though the language thing was related
<FuncProgLinux>I did install my both computers in english, spanish translations were partial last time I checked (around march +-)
<Rutherther>we're just discussion what locale is default in various Guix examples and the installer
<Rutherther>s/discussion/discussing
<FuncProgLinux>Getting the XDG_USER_DIRS in spanish was an oddisey though.
<vagrantc>hrmpf. after all that, still no USB disk...
<Rutherther>in aarch64 VM?
<vagrantc>yeah
<Rutherther>I do not know the exact configuration, it should work with scsi pci cdrom and hd and with virtio-hd, virti-cd. Not sure what else is there. Probably missing modules for that
<Rutherther>I can try device usb-storage,bus=ehci.0,drive=usbstick
<Rutherther>ideally let me know the diff between lsmod without that usb storage and with it from a different booted system (or the installer, but booted through cdrom etc.)