IRC channel logs
2026-06-23.log
back to list of logs
<switchy>hmm, I get a hang running guix commands that then makes almost everything afterwards hang (can't even reboot or get to a vt...) is this familiar to anyone? <switchy>seems to work if I roll back a system generation, I'm gonna blame the kernel <switchy>scratch that, I have no idea what's going on... <switchy>no, it's right after a fresh boot. it doesn't freeze unresponsively, it's like there's an io lock on the kernel side <stephen0>provided that they flushed, you should be able to view the log when you reboot into an older generation <switchy>hmm my clock is a bit messed up, that's certainly not helping <switchy>I think that might be doing it. even though ntp fixed it up I think some services jumping 3 years ahead broke things? fixing it from uefi seems (fingers crossed) to have got me back to stability <switchy>having said that the building guix part of the system reconfigure is taking forever! <charlesroelli>How do you point the git-fetch uri of a package source to a local Git repository? I tried "file:///path/to/repo" and get "fatal: '/path/to/repo' does not appear to be a git repository". Workaround is currently to run a local git-daemon and point the uri to "git://localhost:/path/to/repo". <csantosb>(source (git-checkout (url "file:///home/USER/REPO") (commit version))) <aloys`>I find it difficult to find information about writing my own service and modifying package. For example, the 'subsitute-keyword-arguments' appears in the cookbook but not in the docs. The source code contains the syntax rules but I'm not very skilled with Guile Scheme yet. Would you have any advice in how to go about 'learning' guix in depth? I read the manual, and parts of the cookbook. I submitted a few PRs for small lint nits, but I <aloys`>seem to struggle to get to the next phases. The lack of "go to reference" in Scheme is a hard step for me. Any advice welcome. <gabber>aloys`: Hi! That's one thing we surely lack with the current state of our docs. <gabber>You could share what you have here and get some input? <aloys`>(PS:I would prefer to avoid the use of LLMs if possible) <gabber>I think most of us tried to search other service definitions for inspiration—and ask here (or on help-guix) whenever we get stuck <identity>aloys`: most people would, too, i would like to think <gabber>Patches for improving the documentation are always welcome, too (even opening issues) <aloys`>gabber: documentation PRs are always tricky in my experience when you have a solid grasp of the domain. <identity>aloys`: what do you mean by «go to reference», exactly? <gabber>aloys`: that's why it would be cool if you helped us with your perspective ;) <efraim>sounds like ctags or something similar <identity>Geiser definitely has that, though i never use it, personally <trev>aloys`: you can try out my guix LSP if you want <trev>kind of just a proof of concept to help newbies write packages...it's LLM slop so don't take it seriously <aloys`>gabber: sure, I am happy to contribute where I can. Right now my Scheme knowledge is probably the issue; I'm unable to understand the definition of the 'substitude-keyword-arguments'. I am even struggling to articulate a proper question here! <gabber>aloys`: I understand! And I've been there. So it takes keyword arguments and lets you overwrite the ones that need adjustments. <identity>and you cam always take a college course in computer programming in Scheme, err, read SICP… but that is definitely the nuclear option <identity>and it will teach you Scheme, not Guile Scheme <aloys`>trev: identity: Yes, I was referring to ctags/LSPs. Right now my strategy is to grep the codebase for `define X` and look for other examples - as well as the cookbook and manual. 'Go to reference/source' is my 'go to' (pun) strategy to understand new codebase. Geiser is able to do that? I need to dig a bit more into it; do you have to load all the 'modules' files? Sorry, if I'm using the wrong terms. <identity>aloys`: yes, you probably have to import all the (relevant) modules <trev>aloys`: geiser can somewhat do that but you need to load modules <efraim>for substitute-keyword-arguments (and probably some other ones too) I'd suggest just looking at other examples from within the codebase. <aloys`>identity: I'm going through SICP right now; it is helping. <trev>yeah grepping is not a bad idea. this is one reason why I "made" the guix LSP. it's more approachable for people that come from other languages. the ares-rei or whatever (nREPL) might be progressing better though <gabber>aloys`: and don't refrain from pasting your code in a pastebin, share the link here and ask why it wouldn't work. most of us have been through the whole gradient of the learning curve and have some experience with any and/or all the errors you might encounter <aloys`>gabber: thanks, will do. I think I need to strengthen my Scheme a bit more; it seems to be the blocker here. I will be back :-) <gabber>aloys`: have a look at (guile) Pattern Matching in the reference manual, i think that could lead you into the right direction <futurile>csantosb: ooh, you're getting a lot of good topic discussions. <futurile>I wish there was a guix tag on lobste.rs - since I'm not much of a nix user heh <futurile>still a few discussions have made it there <futurile>untrusem: I think the problem on lobste.rs is understandably it means any guix article is mostly read by Nix users, who start a bit defensively from the position of "how is this better than Nix?" <untrusem>but in the end the proposal didn't get anywhere <futurile>the article last week (that got pulled in the end) about nix/gux shell kinda went that way <futurile>untrusem: well thanks for trying - we're a small community in the grand sea of free software and nerdy topics :-)) <untrusem>no problem, I like to atleast get eyes on guix things in lobsters <futurile>untrusem: yeah, totally worth it, and there are some high quality comments <futurile>untrusem: I can see why the admin didn't think it was worthwhile from their perspective looking at the DB file <simendsjo>Can the home shepherd require system services? I have some services requiring networking and some requiring my wireguard service (wireguard-foo). Trying to add these to the requirement fails though. <simendsjo>ieure: But there has to be some workaround? I have some services which fails to get up because they don't wait for networking. It's quite annoying. <ieure>simendsjo, I'm not aware of any. I'd expect the network to be up by the time you log in. What user services need it? <simendsjo>ieure: For example, I have one setting up an ssh tunnel over wireguard to my home server. This requires my wireguard service to be running. I've also had some problems with my SearXNG service, which I assumed was because it tried to start before networking. I have auto-login enabled, so networking might not be up when I log in...? <ieure>simendsjo, I think all that stuff makes much more sense as system services than user. Though I wouldn't expect SearxNG to have issues starting up when the network is down, unless you're binding it to one of the interfaces that isn't up when it starts. <ieure>simendsjo, syncthing-service-type runs as a system service, but as a user, you could look at that for inspiration. <simendsjo>ieure: Thanks, I'll have a look at syncthing. <ieure>Also, if you already have a VPN to your home server, what's the SSH tunnel for? <theothornhill>Hi! How are the C_INCLUDE_PATH and CROSS_C_INCLUDE_PATH actually supposed to work? I'm working with Andrew Kelley atm to upstream the patches we've been making for Zig over the years. They don't seem mutually exclusive, but they expect to be treated that way? <theothornhill>I'm confused. Why wouldn't we just use _only_ C_INCLUDE_PATH in all cases? <Rutherther>wdym that they expect to be treated that way? the cross gccs should respect CROSS_C_INCLUDE_PATH, while the native ones respect C_INCLUDE_PATH <theothornhill>yes, but this assumption is only relevant for gcc, no? Should the zig compiler care? <Rutherther>I know pretty much nothing about zig, so I don't know <theothornhill>I don't think you need to, but if you're experienced with runpath and dynamic linkers etc you can absolutely help :) <simendsjo>ieure: The tunnel is used to avoid exposing too much. I don't want to expose cuirass directly to all users, so I thought it was easier to just set up a tunnel. <ieure>simendsjo, Slap some HTTP Basic Auth on it instead? <simendsjo>Another question: I think I might hit a quota limit on codeberg. I'm trying to 'guix pull' on a system which haven't been updated in a *long* time, and I get an error after a while. My guess is it's timing out (or being killed by codeberg). As a workaround, I could pull from savannah, but I'd really like to pull from codeberg. <ieure>simendsjo, There is no quota system. <simendsjo>ieure: Sorry, not cuirass, but the substitute server. So I expose it only on 127.0.0.1 on my server, and use a tunnel to access it through wireguard. I could listen directly on the wireguard ip instead I guess. <ieure>simendsjo, Why do you care if substitutes are available to others? <ieure>I run guix publish with discovery on all my stuff, makes it much faster to reconfigure two systems, since the second can reuse the stuff the first just downloaded. <simendsjo>ieure: I don't know exactly how it works, and I don't want to expose too much. Maybe I'm just a bit too cautious. <jan0t>but regarding the fact they added the age field in their internal database, how it will proceed? <jan0t>btw I dont know much about guix internally so Idk... <jan0t>Is it possible to use openrc or any other init? <identity>jan0t: this question has no relation to Guix whatsoever <jan0t>identity, it has, to the guix system <jan0t>I thought you were mentioning someone here on the server with this name <ieure>That's not how anyone addresses anyone on IRC. <nmeum>currently, the way we invoke cargo in cargo-build-system removes path declarations from the dependency specification