IRC channel logs
2026-05-13.log
back to list of logs
<stephen0>Does guix have any convenient abstractions like what nix has for firewall setup? <loquatdev>What would be the cleanest way to concatenate the contents of several file-like objects into one file-like object? <ieure>loquatdev, Do you need both the individual and combined files to exist? That is, are the individual files a necessity of the usecase, or an implementation detail of your solution to it? <ieure>stephen0, Hmm, this isn't much of an abstraction, you just provide a native-to-the-tool configuration file. Not particularly Guixy IMO. <loquatdev>ieure: I really just need the combined file, but my goal is to pass file-likes obtained from evaluated origin records or packages, perhaps also using file-append. <ieure>loquatdev, mixed-text-file is what you want, then. Turn the other file-like objects into gexps, include them in the mixed-text-file, and they will eval and their contents inline into the result. collectd-service-type (which I wrote) is a fairly close example. <stephen0>ieure: yeah, but at least a service already exists. I wont have to cobble another one together, I just have to figure out the configuration details. <apteryx>ERC users, you may want ot 'guix pull' and update your profile; the new emacs-erc fixes a couple bugs such as with logging or with reconnecting to a server. <basicnpc>Any exciting directions using coding agents recently? <basicnpc>With guix as a deterministic and reproducible backing bones I am guessing/expecting agents to be quite useful. But I don't have the imagination.. <ieure>basicnpc, LLM stuff is not very popular with Guix folks. <ieure>Personally, I find it abominable and refuse to use it. <basicnpc>Would discussing about it further makes you feel uncomfortable? <ieure>Say whatever you like, just don't expect agreement, much less enthusiasm. <ieure>Genuinely baffled that so many FOSS people are rushing to embrace the technology destroying FOSS. And jobs. And the planet. <basicnpc>Their beliefs in FOSS aren't strong enough :-/ ? Dunno. <ieure>Well, I just have no idea how you can both contribute to FOSS and wax poetic about the technology which stole essentially every line of GPL'd code so they could sell it to corporations. <ieure>You think corpos are going to sponsor FOSS stuff when they can get it for (effectively) free from an LLM? I sure don't. <apteryx>M-x forgejo RET N shows I have 35 notifications; but the website shows 52; what the discrepancy for? <basicnpc>ieure Are you working on some guix stuff lately? Contributing to guix, or what not? <bdunahu>can an LLM unbundle this software that has exactly 30 things in the .gitmodules? <ieure>basicnpc, I am a Guix committer and work on it regularly. I do not care what an LLM can do. <basicnpc>Right. Lets not talk about LLM then -_- Do you help package? Or do you improve the actual guix infrastructure?! <ieure>basicnpc, I contributed and co-maintain the LibreWolf web browser, along with some Emacs packages I wrote. I haven't gotten deep into the guts of things, but I also contributed autofs (automount) and collectd services. Plus package updates and reviews of anything that seems interesting. <apteryx>this makes emacs-forgejo buffers look nicer: (add-hook 'visual-line-mode-hook #'visual-fill-column-for-vline) <apteryx>but I need to figure out how to have visual-fill-mode enabled automatically for all forgejo buffers <apteryx>forgejo-buffer-setup-functions looks promising <csantosb>apteryx: discrepancies might happen due to the local db not in sync with the remote host <apteryx>ah yes, maybe it was rate limited to fetch them all in a short time <csantosb>Yes, there is also this rate limitation too, codeberg side <apteryx>works well at any rate, though I haven't figured out how to create a PR yet <apteryx>ah, I was doing M-x forgejo, but it looks like the actual entry point is forgejo-vc <apteryx>it just seems to disappear in the void if I C-x v f, then 's' to submit a PR, RET on the title, C-c C-c with some body text. <csantosb>Which reminds me, we need something like bug-reference-mode with links to forgejo:thanosapollo/emacs-forgejo#37 or similar <csantosb>Another nice feature, (add-hook 'forgejo-watch-hooks #'forgejo-alert-notify) <apteryx>yep, found that one already :-) though I'm not sure I'm configuring the watch right; I want all the notifications I get in codeberg, since it's configured to only send on mentions or teams, etc. <apteryx>not necessary but apparently recommended for customizable variables <identity>apteryx: setq-default is for buffer-local variables, not all customizable variables <dcunit3d>guix has a great CLI and API ... idk that LLM is really all that useful <dcunit3d>i mean maybe... but idk. i don't get the hype really <sham1>That seems rather orthogonal <dcunit3d>i think the LLM folks haven't quite considered the problem of managing the software that's being created at an exponential rate. welll maybe they'll figure it out <dcunit3d>they'll probably run out of neologism first. that's my guess <identity>most software created at an exponential rate is abandoned at an exponential rate <identity>apteryx: …and ‘setopt’ does the right thing in the case of buffer-local variables, so you should probably just use that for every ‘defcustom’ed variable <apteryx>I see; setopt seems like the abstraction I thought setq-default was indeed <sham1>Before that one could have used (customize-set-variable) <apteryx>trying to comment on a PR diff in emacs-forgejo: forgejo--validate-host: Host nil not configured in ‘forgejo-hosts’ <apteryx>from a PR, I did = (forgejo-pull-view-diff), then selected some part of the diff and pressed 'c' to try sending a review comment. <dcunit3d>identity: that's an interesting way to put it <trev>hi futurile. still checking daily for a blog post from opensats <futurile>I didn't know that CI published a channels file for each evaluation <trev>Guix lives a very secret life <trev>untrusem: you can test them in system/home containers, i know that <stephen0>I'm sure I saw it in an info page somewhere, but I can't locate it now: is there a way to have a name or description associated with a generation? <stephen0>I managed to get some nftables rules into a file-like object and feed that to the nftables-service, but I had a minor hiccup. I had invalid syntax in there that had to be fixed. But the system deployed despite that problem. Is there a way to call nft -c -f on the file to verify the syntax and break the deployment if there is an error? <identity>that could probably be done at serialization time, not sure about that though <stephen0>I did put the ruleset into a named file-like object. So if there were a way to create a check phase I have a thing that could be passed to it. <stephen0>though keep in mind I've been using guix for less than a week and I have no idea what I'm talking about <identity>i meant like, done by the service, not on the user end. you could probably put the nftables stuff in an actual file and check that before deploying <charlesroelli>stephen0: the nginx-service-type does a syntax check in an extension of activation-service-type, it might help to do something similar <stephen0>charlesroelli: thanks. I'll take a look. <mwette>Is anyone else having access issues downloading opencascade from git.dev.opencascade.org. I wonder if the intent is to download from github. <yelninei>ACTION found the patch to fix gcc-14 with glibc 2.43 <yelninei>ACTION leaves it up to someone else to fix this for every other gcc <futurile>mwette: seems like it's down for scheduled maintenance when you try to go to it <mwette>futurile: Thanks. It was like that all day yesterday, too. <yelninei>folaht: yes, but you need to make the patches field into a list <yelninei>i.e. (patches (list xkeyboard-config-yr-patch)) . because you can have more than 1 patch <folaht>Why isn't there a patch variable that just takes one patch? <folaht>Oh right, no need to answer that question. <zeromind>hi, are the system/hardware requirements for guix system documented anywhere? i could not find any and trying to run "guix pull" in a small vm i set up for testing, with 2 cpu and 2gb ram, guile gets killed due to out of memory <zeromind>in dmesg there's: Out of memory: Killed process 389 (guile) total-vm:1493024kB, anon-rss:1184428kB, file-rss:124kB, shmem-rss:0kB, UID:999 pgtables:2520kB oom_score_adj:1000 <Sven792>zeromind: interessting. probably the same specs as for a bloated mainstream OS everyone knows /s. Idk actually. There's a lot of room for improvement though when we want to talk about performance <bavier>zeromind: until just recently I was running guix fine on a 2011 laptop with dual-core AMD and 4gb ram, running GNOME. I imagine beyond that it depends a lot on what applications you want to run; e.g. I wasn't often running a graphical web browser but librewolf did work. <zeromind>the intended use-case would be on a small vps with a webserver and potentially a small python web app; the ram usage after boot is around 250mb with guix system, only "guix pull" uses all ram <zeromind>was trying to go with a smaller vps (2gb) due to price factors <Sven792>oooh, I could try Guix on an old i686 HP laptop with 2GB RAM. Shouldn't be fun on it but I could see if anything is working there <Sven792>That's not a lot of fun if one can't use it properly, or isn't it? ;D <Sven792>Is there any DE for i686 currently available? <efraim>of my 2 smallest build machines one has 2 GB of ram and 2 GB of swap and the other has 1.5GB of RAM and 2.5 GB of swap <chris0ax>hey guix! i was wondering, has anyone wrote a way to inspect a nar bundle? like something like 'nar -tf'. I see theres 'guix archive -t' for single item nars. <identity>you might also want to play with vm.swappiness, i imagine that with <4 GB of memory reclamation might become a bottleneck <bjc>man, guix takes so long to build even if it's not swapping. you've got more patience than i do <cdegroot>I've had pulls that required both a firefox and a kernel build. I ctrl-C and run it again before I go to sleep :) <cdegroot>it helps that my main box (where I always pull first) has some oomph. I'm still not sure that I needed a Threadripper in there but for this sort of stuff it comes in quite handy :) <cdegroot>(also, I find it worrysome that a browser is more complex than arguably the most complex operating system kernel we know) <cdegroot> I guess you get used to it. Even before Guix, I built my kernels from source as I wanted a full device driver for that box' motherboard's I/O controller. <cdegroot>Sven792: I've been reading up on seL4 and if we could just build something decent on top of that, I'm switched from Linux :) <ieure>cdegroot, The surface area of the modern web dwarfs nearly everything. <ph>i have an old threadthripper and it still takes some time. <cdegroot>ieure: I wonder, though. If you implement JS and CSS without all the compatbility hacks... is it still _that_ complex? And is it just complex because, well, C++. <cdegroot>(I'd be ok with a browser that only runs clean/modern JS and clean/modern CSS and if old sites break on it, so be it) <cdegroot>but that's a bit off-topic. Building Firefox from source sucks, no matter your CPU :) <ph>it's great in winter season. <identity>cdegroot: if you tear out all of the legacy stuff, it is just implementing a programming language and a typesetting algorithm for the most part <ieure>cdegroot, Audio and video streaming, WebGL, WebAssembly, canvas, websockets, CSS animations, developer tools (including a source debugger), DRM, sandboxing/process isolation. Probably many, many more things I'm forgetting. <Sven792>ieure: Just run guix with a nice Desktop in a browser. Why not? ;D <cdegroot>ieure: more sensible architectures would not cram all that into a single executable, of course. I guess I want both a microkernel and a microbrowser (which, like the microkernel, operates as a constellation of services) <ieure>cdegroot, For sure, it's obviously ludicrous, but if you don't have all that it's no longer "a web browser" because the stuff people expect to work doesn't. <ieure>And if you're making something that's not a web browser, I don't know why you'd want to even consider JS, one of the worst languages ever. <cdegroot>It's funny. In the '90s we had things like "object linking and embedding" because apps become too complex and we wouldn't stand for that, also because it was inflexible, composible software is good. I'm not saying that the solutions from back then were any good, but why we just accept multi-gigabyte monoliths that do everything including the kitchensink these days without thought... no clue. <cdegroot>Javascript isn't _that_ bad if you scrap the old cruft. I wish ECMA had the guts to do that. <cdegroot>(iow, make the dynamic typing a bit more strict, that'll bring you 99% to a reasonable language) <ieure>Does modern JavaScript have integers? <ieure>At least as of 2022, it didn't even have integers. All numbers are double precision floats. <identity>what does it mean for a language to «have integers», specifically? <ieure>identity, To have an integer type with backing store which stores the whole number. <ieure>JavaScript does not have an integer type at all. Whole number values are stored as floats. <ieure>Is it in the language now? There used to be a hacky package which added some awful fake integer stuff on top of the native double. <identity>«available across browsers since September 2020» <ieure>Cool, that is good news. Is it in the actual language, or is it a browser extension to the language? <ieure>Any int representation is better than none, but built in is also better than addon. <bjc>cdegroot: cyberdog (an old apple opendoc browser) was basically a micro-browser with a lot of plugins <bjc>alas, apple killed opendoc, so it is no longer with us, and no one remembers fresco <cdegroot>yup, that was one of these '90s initiatives. <cdegroot>(still waiting for someone to mention hypercard ;-)) <bjc>hypercard is the cosmic microwave background of free software nerds <bjc>the code might not have been free, but it was more important for the birth of hobbyist programming than anything other than excel <bjc>(or 1-2-3 if you want to go back real far) <ph>the nostalgia, I did quite a few things in hypercard. <bjc>hypercard has never been equalled, and i long for its vision of the future almost every day <cdegroot>(that's what I used in college. I might be showing my age here :P ) <bjc>is visicalc older than 1-2-3? i admit my memory is very fuzzy that far back <bjc>i know 1-2-3 was absolutely huge for the time, though. the first thing that earned the moniker “killer app” <cdegroot>bjc: everybody longs back for it but nobody reimplemented it? <bjc>it doesn't work anymore. hypercard assumes a kind of computation that we've abandonded as a society <cdegroot>I must say I never used it in anger, but the '90s were replete with "build your own software!" stuff and that's one baby we tossed out with the batchWWWater. <cdegroot>hmm... make a joke, introduce a typo, kill joke. Whatever. <ph>about 26 years, I've worked at a strange company that was doing kids games and learning software for mathematics, they had their own custom dev and runtime. All written in scheme, all the math stuff were encoded in mathml and renderered in their custom html browser. <bjc>the web used to be *great* for doing it yourself <bjc>everyone i knew was making badly coded web pages. when js was first introduced the copy-pasting was without end <bjc>js got too overwrought, just like the web itself, and now none of that works anymore <ph>I think we need balance, early 2000 it was the same situation with Flash. <bjc>a lot of amateurs stopped making games when flash was killed. it's a shame <bjc>i get the “breaking the web” arguments, but in this day and age we get a fully broken web anyway <ieure>It's less breaking the web and more breaking up with the web. <fritjof>guix newbie here. Plenty emacs entusiasm, but not a very in-depth knowledge of computing. <fritjof>I have gotten a GNU Guix system up and running on a T430 thinkpad, and would like do dive into exwm at some point. <fritjof>right now, I've downloaded my emacs.d with my init.el inside it from codeberg, but how do I get my init file to be loaded when I start emacs instead of the .emacs file that the system has set. Is it even advisible to do so? <untrusem>zeromind: I don't know if it's already answered but you could build guix on your machine and publish the binary to the server using guix publish <untrusem>That way you won't have to use your server's memory <zeromind>untrusem: ah, that sounds like a good options, as having the vps compile things would take quite a while i guess, is there an easy way to (pre-)build the derivations(?) for another system? (am new to guix and do not know the right terms/processes yet) <untrusem>you can cross compile things and publish those <zeromind>would be both x86_64, am not sure what part of guix pull on the vm currently fails -- i mean the page you linked sounds like it will use pre-built things, implying they need to be there already on the host that publishes <mwette>When guix downloads git repos does it not use `--depth=1' ? <bavier>mwette: I believe there's a long-standing deficiency in libgit (used by (guile-git)) that doesn't allow shallow checkouts? <bjc>you could submit a bug if there isn't one <bjc>or if you have the chops, it's not too difficult to add a foreign fucntion to the guile library <bavier>mwette: cool, wonder if that's new. I think it would be nice to use `--depth=1`. <mwette>bavier: not in guile-git that i have, so must be new, in fact, the custom-headers is now displaced wrt guile-git layout of %fetch-options <bjc>we recently made some changes to stuff that uses %fetch-options <bjc>oh, the definition. i see. i'm not sure then <bjc>changes we made were around memory-management across the ffi boundary <mwette>OK. MM can be messy with ffi usage. <bjc>ah, that version has our changes in it <bjc>yeah, it was weird. worked on linux, not on hurd. shouldn't have worked anywhere <bjc>one day i'd like an explanation for how that code didn't crash on linux =) <mwette>If there are no accesses to the bottom half of the struct, no foul. <dajole>For Guix managed Emacs packages, it seems I need to restart Emacs to pick up changes. Any way around that? <dajole>Ah, never mind, I found `guix-emacs-autoload-packages` in the manual. <gordon1>so i managed to progress a bit further, using this code snippet https://bpa.st/raw/3XVA in my /etc/config.scm now my system guix has no avahi dependency, however when I do guix pull it still build guix without this patch, what is the right place to put this snippet so guix pull will also patch the guix repo? <ieure>gordon1, Probably a question for guix-devel. I don't think you can reasonably do this without creating a fork of Guix and using that source instead. <gordon1>ah, there is #guix-devel, will check it out <ieure>Yes, it comes with Problems, the simplest solution is to disable commit authentication. Otherwise you'd have to replay the entire commit history (or squash+rebase it) on top of a new introductory commit. Merging updates would not be fun in either scenario. <gordon1>but is there at least a way to disable commit authentication globally so i don't have to type --disable-authentication every time i invoke guix pull? <ieure>gordon1, Patch guix to make it the default. <ieure>Since you're forking the whole shebang, that's the most straightforward way to do it. <gordon1>i mean sure, but it feels like just adding more layers of complexity, i'd need to maintain two changes in different places <ieure>I suppose it's more complex, but it doesn't seem like outsized complexity vs. the complexity of what you're asking for. <gordon1>tbh i would be happy if there was a way to do that without personal fork <gordon1>i wonder if i can maybe make a replicating patch <gordon1>it's not about avahi per se, it's about dbus, but sure <ieure>What kind of environment are you operating in where disabling the services is insufficient guarantee, and you must ensure that the software doesn't touch the system or get used in any way at all? <gordon1>well, dbus shown multiple times that just disabling it is not enough, software that is complied with its support finds a way to start the broker <gordon1>also this is just wrong approach, if i have no intention to use it ever, why have it and collect dust on my disk? <ieure>You really might be better off with something like Linux From Scratch. <gordon1>i'm feeling good with my gentoo, thank you very much, but i feel it lacks the powerful tools guix has to modify package manifests en mass and in a consistent way instead of hacky sed <gordon1>and tbh guix would be perfect at that, if only there were a way to modify guix definition itself <zeromind>untrusem: oh, that one seems to be easiest; spent way too long debugging my .scm here before noticing the guix on openSUSE was too old for that, updated and i just saw "guix deploy: sending 387 store items (1972 MiB) to 'smol-guix.fritz.box'..." -- so that should do nicely, thanks