IRC channel logs
2026-08-24.log
back to list of logs
<cqst>guix has downloaded some frightening version of gnupg that threatens you every time you run it <cqst>NOTE: THIS IS A DEVELOPMENT VERSION! It is only intended for test purposes and should NOT be used in a production environment or with production keys! <cqst>its saying I have version 2.5.20-unknown <RavenJoad>Hey all! The manual "(guix) Build Systems" states that #:asd-files and #:test-asd-file are package-arguments for the asd-build-system variants. I needed to look at those when putting together PR #10707. However, those keyword arguments are gone from all the Scheme files now. Does that line up for others too? If so, I was thinking of updating the manual. <apteryx>hm, at the REPL, ,use (shepherd service) (service-lookup 'pipewire) -> Throw to key `match-error' with args `("match" "no matching pattern" #f)' <sneek>apteryx, you have 1 message! <sneek>apteryx, PotentialUser-78 says: The commit 86776ccd30bb44eb856fcf3a14a8338f38fe1367 breaks name resolution in network-manager on guix system. <apteryx>I guess the shepherd API is intended to be used in a REPL connected to shepherd? <apteryx>ah yes, see how Guix wraps it e.g. in gnu/services/herd.scm:216:9 <apteryx>(it makes use of `with-shepherd-action') <apteryx>this is better than grepping 'herd status': $ herd eval root "(if (lookup-running 'pipewire) 'yes 'no)" <RavenJoad>apteryx: That's good to know. I'll have to look at that later myself. <apteryx>the shepherd limitation being that if you want to know anything about system services, you need to be 'root' <RavenJoad>Yeah, but that's more or less true with any service-management system, no? It is with systemd, at least. <apteryx>with systemd you can still 'systemctl status anything' as a plain user <apteryx>because d-bus provides some fine-grained access control, that systemd builds upon, IIRC <RavenJoad>Ah, yes. You can see if it is up, but not see any journal info. <RavenJoad>I guess that just means that Shepherd needs to get a capability or finer-grained access control in the future. <apteryx>probably not a trivial thing to add :-) <RavenJoad>Probably not at all. If I had infinite time, it might be something I would get around to now that I have thought of it. <apteryx>is it possible to return an exi code from 'herd action some-service' ? <apteryx>hm, "The ‘herd’ command returns zero on success, and a non-zero exit code on failure. In particular, it returns a non-zero exit code when ACTION or SERVICE does not exist and when the given action failed." <apteryx>from (info "(shepherd) Invoking herd") <PuercoPop>lh: I'm confused, my distro (Fedora) doesn't package guix. I've used the binary-install to install guix following the instructions in the manual. From reading the install script, it does install guix for the root user. Is the guix binary that I use governed by the root user's profile? <RavenJoad>Just doing a grep for exit in the shepherd codebase makes it seem like only 0, 1, and 127 are used exit codes. So if anything, I think it would come down to the services. <PuercoPop>doing which guix -> ~/.confi/guix/current/bin/guix vs doas which guix /usr/local/bin/guix makes me think they are to separate guix CLI installs. Is the daemon 'root' only? (I did follow the rootless path) <apteryx>RavenJoad: herd eval root "(exit 1)" -> killed my home shepherd instance ^^' <RavenJoad>PuercoPop: A summary to your first question: no. Each user has their own profile. You can see them in /var/guix/profiles/per-user/*. <apteryx>"when the given action failed"; how to make an shepherd action fail? <RavenJoad>apteryx: From memory (this is a while ago now), shepherd treats an action that returns either #f as "failed", I think. <RavenJoad>Yeah. I have a custom shepherd service with start/stop actions that return #~(#t) and #~(#f) respectively. <PuercoPop>RavenJoad: Ok, they are separate guix! But then the original question, what does doing sudo guix pull achieves if one won't have an operating system definition under the root profile? <RavenJoad>If you use sudo, I believe you will update the root guix's package profile. Which should update the guix-daemon for the root user, which runs the guix-daemon, I believe? I'm not 100% sure, since I don't use Guix on a foreign system. <RavenJoad>But you can try a "sudo guix pull" and see what happens to the full path that the deamon ends up running from. <RavenJoad>The daemon is pretty stable though. Updating the root profile with a "sudo guix pull" probably won't have to happen too often. <apteryx>RavenJoad: herd eval root "#f"; echo $0 -> 0 <apteryx>but herd eval root "(error 'oops)"; echo $0 -> 1 <RavenJoad>Hmmm... Perhaps returning any value from a service action is fine. I don't know. <apteryx>or maybe it's a particularity of 'eval' <apteryx>this works as a shell script check; herd eval root "(if (lookup-running 'pipewire) "" (error)" 2>/dev/null <RavenJoad>Maybe? I have never toyed with the eval action of the shepherd root. <apteryx>this works as a shell script check; herd eval root "(if (lookup-running 'pipewire) #t (error)" 2>/dev/null <RavenJoad>Disregard my question from earlier. I just opened a PR instead, so hopefully more people see it. <apteryx>I think 49f9d7f697d1 may be mistaken; the inotify support in nscd has been improved since 2.22 in commit cf9313e7d1d, and is supposed to be able to track file creation/deletions <apteryx>so if nscd cannot detect a newly created /etc/resolv.conf, that'd be a bug, but it's supposed to work <PotentialUser-60>Hello! I'm thinking of moving from NixOS to Guix System. I'm currently using github:microvm-nix/microvm.nix to set up declarative virtual machines (primarily for container isolation), is there anything similar for Guix? <PuercoPop>That said you can use nix from guix as a stop gap measure during the transition. [cpp]nix is packaged in Guix <PuercoPop>microvim.nix seems to support firecracker. Guix supports mostly qemu iirc, <PotentialUser-60>PuercoPop: Thank you! That looks interesting. Qemu is fine, is that what Guix Container uses under the hood? Nix has something similar, but it uses systemd-nspawn I think, which is why microvm.nix exists for increased isolation using real virtual machines. <PotentialUser-60>I just found the `guix system vm` command, that's very cool! I'll play with it and see if I can replace my current setup. <ieure>PotentialUser-60, `guix shell --container' uses Linux namespaces, `guix system vm' uses qemu. <skullcap>Has anyone successfully gotten guix to run on an Orangepi 5? <nikolar>i've tried clean installing guix and i am getting an error saying "1 dependencies couldn't be built" <untrusem>nikolar: can you share it in a paste bin <untrusem>are you installing guix as an os or in a foreign distro? <nikolar>also sorry, not installing, but pulling right after installing <yelninei>i am a bit lost with the grub issue and bisecting core-packages-team sounds like a bad idea <untrusem>nikolar: can you do "guix weather guile-lzlib" <yelninei>mhh older gccs are broken, bisecting is a nightmare because every commit starts at tcc-boot0 <yelninei>well better than having to recover my vm because grub is broken <simendsjo>Why does gpg warn that it's a development version? It's 2.5.20 which looks like a regular release. <sham1>IIRC because it's from Git and not a tarball <PuercoPop>I'm writing a home service. How do I prevent a file being created if no value was provided? I'm trying to use `define-maybe` but the empty file is still being created? <PuercoPop>Ok, I think maybe using the ,@(when .. (list ...)) idiom might do the trick <PuercoPop>why do they use if instead of when? In CL we would use when for that idiom