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? <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? <csantosb>Related question: how do you update Guix as foreign ? <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>Exactly. I need to download the git repo, search for the guix-install.sh file, locate the embedded zzz thing and ... <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 ? <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 <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 <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>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 ? <ximon>Where do I find the sway config rutherther <ximon>Like safe no virus you know? <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" <ximon>Interesting guix seems to work without sudo <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 <Rutherther>there are licensing issues with both (with Firefox it's mostly just the brand), see librewolf and/or ungoogled-chromium <ximon>Guix the slowest packagemanager in the world <ximon>The apps appear not in my dmenu <trev>the hamsters must need to be fed <identity>ximon: because it has to pull a big repo and then build some code <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 <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! <Deltafire>i wonder if the nix package manager is faster <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 <apteryx>I'm not sure what's the different between the two python-3.11.14 packages <Deltafire>there's a few more duplicates in that list also <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 <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>someone told me it can save space by compression <untrusem>I use btrfs but not have taken advantage of it even once <ieure>yqshao, Guix will usually package the snapshot with the fix instead of backporting a patch. <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 <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 <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>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? <ieure>untrusem, Is this in regards to #4970? <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? <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. <ieure>tesseract, As in the packages don't build. <tesseract>ieure: i am not using guix currently. i will clone and build manually <ieure>tesseract, Why are you asking in #guix then? <ieure>Maybe there's #icecat for general icecat questions? <ieure>We are, of course, happy to answer Guix questions in #guix. <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. <FuncProgLinux>The guix build -k -P1 step always gets me eating my fingernails xD <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 <luca>And changing it to maybe-string does make it compile and build and everything <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. <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>(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>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 *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. <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>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>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>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? <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 ? <Rutherther>what's the purpose of the C locale then and why it's better than en_US. <ieure>vagrantc, Oh, the env the installer runs in? <vagrantc>because it does not predispose any particular location <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... <vagrantc>hopefully this doesn't spark heated debates :) <vagrantc>git grep en_US | nl ... shows 206 occurrences ... although only some are probably "defaults" <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 <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 <vagrantc>hrmpf. after all that, still no USB disk... <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.)