IRC channel logs
2026-10-25.log
back to list of logs
<ArneBab>bytesurfer: yes, you package everything in guix, otherwise you can’t ensure that it is byte-for-byte reproducible if crates change. <ArneBab>⇒ every crate needs its own package. <RavenJoad>bytesurfer: Yes, it is very different. But as for _getting_ the long string of dependent cargo packages, I have a little script for that. <RavenJoad>guix import crate --lockfile="$RUST_PACKAGE_REPO_PATH/Cargo.lock" $RUST_PACKAGE | grep define | awk '{print $2}' <RavenJoad>You need to close the final project first. Then you end up reading through Cargo's lockfile and let Guix generate the dependent package definitions. _You_ still have to manually add them to Guix, but at least with that you do not need to track them all down. You might find that Guix has many, if not most, of them already. <bytesurfer>I lied... I will at some point package it. Just not now <RavenJoad>bytesurfer: Well in that case... I should probably stop packaging it myself.... <bytesurfer>If you are working on kalker, then do that and I'll do numbat <Air4x>Hey, does anyone know how to add "icedove-l10n:it" to a home environment? Using "icedove-l10n:it" as a specification to pass to 'specificaitons->packages doesn't work. <iyzsong>Air4x: it should works, eg: (specifications->packages '("icedove" "icedove-l10n:it" ...)), what error you meet? <Air4x>iyzaong: "icedove-l10n:it" package not found. Sorry for the late reply <RavenJoad>sneek: later tell bytesurfer I got an initial version of kalker going. It does simple expressions fine. I have to sort one more thing out before I can open a PR for it. <bytesurf`>Also thank you so much for bringing kalker to guix!!! (and sorry for putting that burden on you) <bytesurf`>I'll make sure to get numbat merged to guix as soon as I am done migrating the remaining stuff of my config to guix <RavenJoad>bytesurfer: No worries! It wasn't really a burden! <sneek>bytesurfer, you have 1 message! <sneek>bytesurfer, RavenJoad says: I got an initial version of kalker going. It does simple expressions fine. I have to sort one more thing out before I can open a PR for it. <apteryx>weird, the disk-image used in a 'guix system vm' produced script is not generated if I use a transformation on the underlying OS (info "(guix) operating-system Reference"). <RavenJoad>Yeah. sneek is a bot for the Guix & Guile(?) channels. <untrusem>and see the guix cookbook on packaging rust apps <bytesurfer>untrusem: I did search but found nothing... interesting <bytesurfer>I got it, there is a rust package (should be rel. easy) for zsh that brings in fish abbreviations <bytesurfer>I tried to PR zsh-abbr but the license was in the way -> cancelled <untrusem>you don't have to manually write every crate packages its generated for you <bytesurfer>untrusem: how about packaging rust packages that are not crates? <bytesurfer>I found an interesting package earlier, m-obeid/Mixtapes <untrusem>bytesurfer: that chapter is about packaging rust application <untrusem>it is self-contained bun if you get stuck ask here :) <mra>finally managed to build a custom guix ISO that I can boot into! bad news, I seem to be missing drivers for my Bluetooth chip, so when I go to install from the shell instead of using the graphical process, my shell is filled up with messages reading "hci0: missing free firmware" <mra>since I don't care about Bluetooth drivers during installation, is there a way to silence those? <ArneBab>sneek: later tell RavenJoad: could you add your rust import script to guix import crate behind a --recursive flag? <ArneBab>sneek: later tell RavenJoad: or does import from lockfile already do that and I just didn’t understand? <untrusem>ArneBab: looks like they are not using the new rust-build-system <mra>finally managed to install a guix system on top of ZFS. only problem now is that it doesn't boot... <mra>it seems like GRUB is attempting to search the zpool/gnu dataset wherebi put the guix store for the Linux kernel, but either can't find it or can't mount it or something <apteryx>would someone have an example of using 'transformation' on an operating-system to graft a package with another one? <apteryx>mra: you may be able to disable the unnecessary features in UEFI <efraim>apteryx: Uh, I could probably adjust my gparted.scm OS config to use the new transformation field <efraim>I'm not suprised I didn't upstream it, it's pretty ugly <sneek>Welcome back stampede_, you have 1 message! <stampede_>hako: Thanks for that! first time i hear of special-files-service, i was just simply symlinking the serialized toml file in the activation service <illybytes>experiencing the same issue that made me quit that time but i think i know what to do x3 <illybytes>so anyone here has figured out how to make the cups system daemon see the hpps filter? <illybytes>because for some reason iit tries to load it from it's store path and not hplip's <illybytes>hmm, so looking at the cups service type, its supposed to concat all the extensions, but idk how it does that <illybytes>looking at where the cups daemon runs it, it just seems like the path of cups with no extras stufd <nckx>illybytes: Did you see cups-server-bin-directory? <nckx>Note the list of subdirectories that get unionised, it doesn't unconditionally the whole thing. <illybytes>nckx: it says from the scm file that it unionizes /lib/cups /share/ppd /share/cupd <illybytes>but lib/cups only contains cups and cups-filters stuff <nckx>We might not be looking at the same thing. My CUPS is running as ‘gnu/store/40i6n0gi17901fv1myfqxlij7ih72y9c-cups-2.4.14/sbin/cupsd -f -c /gnu/store/kbss1sid21zcnig8kicdpidm11sffcx0-cupsd.conf -s /gnu/store/wn5rgr5h10fb6w0qa17hdgq3ksby92i1-cups-files.conf’. <nckx>grep ServerBin /gnu/store/wn5rgr5h10fb6w0qa17hdgq3ksby92i1-cups-files.conf → ServerBin /gnu/store/dhd4ryhxzjcsp4l22b4lfdsa820l5rsr-cups-server-bin/lib/cups <nckx>ls /gnu/store/dhd4ryhxzjcsp4l22b4lfdsa820l5rsr-cups-server-bin/lib/cups/filter/hpps → a success is you. <nckx>I haven't printed in a very long time so it might be broken though. <illybytes>it is present in cups-server-bin but it doesnt run cups from that <illybytes>it runs it from the standard cups-2.4.14 folder with no extensions <illybytes>i should also look at the cups config file to see if something is wrong with it <illybytes>nckx: okay so, in the config it does point to one of the cups server bin folders that does have hpps <illybytes>but still tries to look for it in its own folder for some reason x.x <nckx>Yeah, the last line of your paste is pretty damning. Whatever is ‘supposed’ to happen isn't. <illybytes>i wonder, why doesnt cups respect the guix provided config? <illybytes>nckx: when did you last successfully print anything? check cups's logs, i wanna see if trying that cups version might fix it <nckx>Oof, long before the start of my current logs in August. Probably 2024. I just send PDFs to my office laser nowadays. <nckx>And of course creating a dummy hplip printer and sending a 1-page job to it just loops forever, the job is now 387 pages. I do not miss CUPS. <illybytes>wonder, can i modify the cups service definition so that it uses a union directory with the extensions <nckx>I'd check whether your access_log contains ‘cupsdSetEnv: PATH=/gnu/store/…-cups-server-bin/lib/cups/filter:…’ but you have to enable debugging for that. <nckx>(log-level 'debug2) ;I think <illybytes>oh god i forgot i did guix gc yesterday its redownloading everything xbxbxb <nckx>But the answer is going to be ‘yes it does and yet things don't work’ and since your paste complains explicitly about a qualified /gnu/store binary, it's probably not getting looked up in $PATH to begin with. <nckx>Wait a minute, that ‘but is not currently installed’ isn't from CUPS at all, it's from system-config-printer.py in some code that raises all kinds of alarm bells to my jaded eye. <nckx> # We didn't find a necessary executable. Complain. <nckx>"""Check that the driver for an existing queue actually exists, and prompt to install the appropriate package if not. <nckx>You know, stuff that a Python wrapper script(!) should really be messing with in the first place when/if the server is properly configured. <illybytes>doesnt explain still why everything else fails to print with a "No such file" error <nckx>I can't say, but it does look like a lot of complex logic and assumptions. <nckx>It's not simply relaying errors from the server, it's ‘checking whether the server is properly configured’ and refusing to continue if it thinks it's not, which is at least a huge red flag. <illybytes>okay, printer disappeared from the gtk dialog <nckx>Yeah, I'm sure there's something wrong, but I think it's best if you enable CUPS debugging and avoid s-c-p for now. <illybytes>i set it up as server default and using the lpr command, printing is working!!!! <illybytes>so its mainly just gui apps that are fucked? <nckx>So it was just a clueless helpful GUI Python script (is there any other kind?). Not a good look for Guix of course, but a bit funny. <nckx>I assume printing from a GUI dialogue (assuming you do such a thing) works too? <illybytes>i can spam test page as much as i want and it will not sent it to queue <nckx>Does it show up in CUPS's /jobs (active or cancelled) at all? <illybytes>gnome settings do show the jobs, but the only jobs that show up are triggered by lpr <efraim>I went to localhost:631 and I tried to add my network xerox printer and i'm not seeing an option for a xerox model <nckx>I never used GNOME, but I never had a problem with printing from GTK applications. <efraim>I normally print from the printer's web portal using a pdf saved in /tmp <illybytes>efraim: oh yeah my printer is also kinda weird and neither hplip nor hplip-plugin had its ppd, but i did have that in hand, so i just loaded that in the cups web ui <illybytes>i think ive had this ppd on my hdd for 6 years <efraim>even less useful, my previous printer used to be connected to a debian box, so I would cat a file over ssh and use lpr to print <nckx>efraim: Upstream line is that every single remotely modern network printer be ‘Generic IPP’ now, and anything manufacturer-specific is deprecated legacy. I'm not sure if that 100% reflects reality but that's their position. Driverless & all that. <nckx>You should get a scary warning to that effect if you do choose a make/model. <illybytes>i have tried the driverless options for both hp printers we had, it was always lacking than just the official(/6 year old mystery) ppd <illybytes>altho for my network enabled printer, generic ipp works well enough <nckx>I'm also not impressed, so I'm glad their threat to remove support has been mostly hollow. <nckx>YW, wish I could do more but I'm allergic to gnomes. <illybytes>nckx: stopped breakfesting cus while i was eating i looked up the same issue of gtk not finding the printer on nixpkgs and during that time, gtk print dialog didnt work but the qt ones worked <illybytes>nixpkgs' fix was adding data dir to dbus, maybe dbus on guix also has that issue? <illybytes>okay so, compared to nixpkgs, we are missing quite a few dbus config flags <illybytes>i wonder, what's the best way to go about testing a change to something as essential as dbus? <illybytes>like can i just guix system to replace system dbus with my version? <efraim>or there's also the new transform field on the os config <ryanprior>If I check out guix master and run `guix --file=guix.scm` in the project root I get a stacktrace. Is that a bug or am I doing it wrong <bytesurfer>alright, guix has invaded my mind hard... now I need to alias guix to git lol <sneek>bytesurfer, you have 1 message! <bytesurfer>sneek tell RavenJoad "Thank you so much for the PR!! I appreciate the time and effort you spent on making this possible!!!" <sneek>RavenJoad, bytesurfer says: "Thank you so much for the PR!! I appreciate the time and effort you spent on making this possible!!!" <dariqq>bytesurfer you need "later tell" if the person is offline <sneek>Welcome back dariqq, you have 1 message! <sneek>dariqq, csantosb says: nope, this is a typo, sorry about that; I was wondering why I had to rebuild all emacs locally to upgrade. <bytesurfer>sneek later tell RavenJoad "Thank you so much for the PR!! I appreciate the time and effort you spent on making this possible!!!!" <bytesurfer>time to update mango for yall (or is someone working on PR?) <bytesurfer>Since we got a fix for ""Scratchpad default sizes not working"" <nmeum>should packages that provide python scripts in /bin depend on "python" or "python-minimal"? because if the former is the case, I end up with a lot of closures that have two python version ("python" and "python-minimial") <nmeum>which kind of defeats the purpose of python-minimal (reducing the closure size) <dariqq>id say it should be python-minimal but that is less discoverable than just python <dariqq>nmeum: there is a lint check to prefer minimal inputs, maybe python should be added <bytesurfer>question, does one need to bootstrap guix to use the build tools? or am i doing something silly? <bytesurfer>never mind... I need to learn to get into reading the damn manual <stampede_>bytesurfer: no, please do tell lol, I had the same question. <ieure>ryanprior, What are you trying to accomplish by running `guix --file=guix.scm` from the Guix git repo? <bytesurfer>stampede_: now this all hangs on if I understood this right... but the gist of it is to run some scripts, `./bootstrap` then `./configure` and finally `make` (then `make check` to make sure things are correct) <sham1>Seems that some package.el tests are failing <mra>trying to debug some issues with a ZFS install based on #8346. I've installed guix on top of a zpool with three datasets: zpool/root to be mounted at /, zpool/gnu to be mounted at /gnu, and /zpool/home to be mounted at /home <mra>I'm able to boot into grub, but trying to boot further gives me "error:commands/search.c:grub_search_label:371:no such device: zpool/gnu". I think it's trying to mount the zpool/gnu dataset because that's where the kernel is located, but I don't know why it's failing <bytesurfer>my laptop is so slow that I feel someone will write the PR before make finishes... dafuq <mra>actually, upon further thought, shouldn't the initrd at least be installed on my EFI boot partition by Grub? I'm looking around, and I don't see it installed anywhere <yarl>mra: it's on the / partition <mra>yarl: as in, the initrd is just in the guix store somewhere? <mra>hm, okay. I'm not sure what the issue is then. I guess grub just can't figure out how to mount the dataset which contains the store <bytesurfer>If this gets merged, then it's the very first , successful, pr xD <illybytes>anyone here know how you are supposed to delete a profile? <illybytes>while trying to get gram extensions to compile <Rutherther>illybytes: then delete it once you do not need it:) <illybytes>(they need rustup, which is isnt packaged anywhere i see x3) <illybytes>but would guix remove it from the --list-profiles <Rutherther>depends on where you put the profile - just rm on its generations should be enough <illybytes>guix package -p ~/.extra-profile/gram/gram -m paththatstoolongtotype.scm <Rutherther>illybytes: rm -rf ~/.extra-profile/gram should be fine then <illybytes>oh yeah, guix package --list-profiles 's entry for gram got removed x3 <Rutherther>yeah and it should be unrooted now, so "guix gc" would remove the packages that the profile held (no need to execute that now unless you're running out of space) <nmeum>Python itself sets GUIX_PYTHONPATH, right? so if anything in my package closure pulls in python and I run the standard 'wrap phase of pyproject-build-system, then I suddendly have a reference to and a dependency on python. correct (even if it is just a native dependency somewhere deep down in my dependency tree)? <nmeum>if so, that would explain why there are so many packages that pull in both python and python-minimal <nmeum>probably the 'wrap phase should just filter out the GUIX_PYTHONPATH for python/python-minimal. right? <dariqq>the default wrap phase also adds references to all inputs, so test only native-inputs keep being referenced even they they are not needed <nmeum>right that I am painfully aware of <nmeum>hmm, this 'wrap phase is really not ideal from a "closure size" point of view <dariqq>right so it is enough for any python (or nonpython) package in the transitive closure to use "the wrong" python to have it a runtime dependency on multiple <nmeum>yea, that's also my impression <RavenJoad>Oh that's new. sneek detects when a user returns now? <sneek>RavenJoad, you have 3 messages! <sneek>RavenJoad, ArneBab says: could you add your rust import script to guix import crate behind a --recursive flag? <sneek>RavenJoad, ArneBab says: or does import from lockfile already do that and I just didn’t understand? <sneek>RavenJoad, bytesurfer says: "Thank you so much for the PR!! I appreciate the time and effort you spent on making this possible!!!!" <RavenJoad>ArneBab: Importing from the lockfile is not *technically* recursive because the Cargo lockfile contains all dependencies (direct and transitive) already. So Guix's import with the lockfile is not actually doing any recursive work, just reading the lockfile. Putting everything behind one --recursive or --all flag would be doable. But the cookbook describes adding packages too. <dariqq>i am not sure but I think it only does that when you give it snacks <RavenJoad>dariqq: I gave sneek snacks, something like 18 hours ago, so IDK. <delitrem>hello. I've found several guile-based packages which are non-deterministic. cuirass and haunt are among them. is it a known problem? <RavenJoad>What is the right way to look up the target system in a build argument? <delitrem>dariqq: yes, the differences are in the guile bytecode and affected files are random each time. many thanks for the link. <dariqq>RavenJoad: shoudl be just the target argument (but i guess would depend on the build system whether that gets set) <RavenJoad>This is zig-build-system. It does not have a target passed to zig-build, but it does have #:zig-build-target. Thing is, I need to access the target in another argument, the #:zig-test-flags arg. <nckx>WDYM by ‘in a build argument’? (I'd say (%current-target-system) is always ‘the right way’ but that might conflict with what you want.) <RavenJoad>nckx: One of the keyed fields in the arguments slot. (package ... (arguments #:zig-test-flags ...)) <RavenJoad>Rather (arguments (list #:zig-test-flags #~(...))), but you know the idea. <nckx>Is #$(%current-target-system) not an option? <RavenJoad>It most certainly is. I just also need to call the zig-target function to get a target string that Zig expects. <RavenJoad>To give more context, I need to pass the -Dtarget=... flag to "zig build test" so that Zig links with the correct system libraries. There is a zig-target helper to convert Guix's target strings to Zig's format. I just need to get at the desired target. <RavenJoad>Doing #~(append (list (string-append "-Dtarget=" (zig-target #$(%current-target-system)))) ...) produces (zig-target #f), which errors out. <nckx>It's only set when cross-compiling. <RavenJoad>(guix build-system zig) uses #$(platform-target (lookup-platform-by-system system)). And that's the string I need. <nckx>OK? (Is this still a question?) <nckx>I don't know Zig but I'd assume that #$(string-append "-Dtarget" (lookup-platform-by-system (%current-system))) works fine only as long as you're not cross-compiling. But maybe that's not even supported and not an issue. <RavenJoad>Ideally, I would support cross-compilation the same as the rest of the build-system. <nckx>(or (%current-target-system) (%current-system))? Although I don't remember if they use the same ‘vocabulary’ of system names… <nckx>Ah: (lookup-platform-by-target-or-system (or …)) to the rescue! <RavenJoad>nckx: Awesome! Thanks for helping on that! I have ghostty building again and hopefully it compiles its test program correctly, ticking another FIXME off the list. <bytesurfer>what is guix's equivalent to treesit-grammars.with-all-grammars (nix) to install all ts grammars for emacs? <RavenJoad>bytesurfer: As far as I know, there is none. I have a script go through Guix whenever I remember to update my machines and add all of them myself. <RavenJoad>There's probably something goofy you could do with symbol->string conversion and string matching if you wanted something really automated. <RavenJoad>Not a huge ouch, just a copy-paste, but yes. Some friction there. Then again, I still have not pulled since, like, June. <RavenJoad>It's another horrendous shell pipeline, but it works well enough if you want to try it. <bytesurfer>Hmm, maybe symbol-> string is indeed a good idea <bytesurfer>I have not used this yet, but why package->manifest ? <jlicht>ah i thought you wanted something you could install, a la "guix install -m ts.scm" <jlicht>if "a list of packages" is fine, you can just leave that out :-) <bytesurfer>I do install and maintain everything through guix home and guix system reconfigures xD <jlicht>I do think this also captures the -js packages; not sure what those are, or if you want them <illybytes>hmmm, just noticed xdg-autostart straight doesnt work <bytesurfer>jlicht: hmmm, going to have a look. Tysm for the snippet! <illybytes>anyone know how to mend that (xdg autostart)? <jlicht>bytesurver; only reason I had it, was to quickly rebuild stuff when hacking on (node-)build system, so all I replaced is the 'tree-sitter ;-) <bytesurfer>interesting enough, I think manifest may be better suited here since I got clashing packages <bytesurfer>nope... tree-sitter-lua exists in two version interesting <bytesurfer>I wonder if adding a string comp would be sane lol <bytesurfer>hmmm, a true automated way would be having checks... I wonder if an upstream solution would be better <RavenJoad>You could concoct something where you take every package whose package-names match and do a package-version comparison on them to find the newest one. <bytesurfer>delete-duplicate could handle this I think, but the thing I had in mind was how to manage it when other setups install treesitter packages <Air4x>Hi guix, I'm trying to develop a program in Common Lisp. I set up a guix shell for the dependencies (sbcl-cl-sqlite). But when I try to load the system sbcl gives an error saying that "iterate" (from the package sbcl-iterate) is compiled for sbcl@2.5.8 instead of sbcl@2.6.4. Is there a fix? I tried to build sbcl-iterate with "guix build --no-substitutes", but the error remains. <Sneed1911>Air4x: in the short term you'll want to create your own package defintion for sbcl-iterate. The version in guix is out of date, looks like current version is 1.6.0 which might fix the issue. Easiest way would probably be for your custom sbcl-iterate definition to inherit the guix package and revise the version. <Air4x>Sneed1911: at this point I could also make a pull request to update it in the main channel <Sneed1911>Air4x: absolutely, if that bump in rev works for you I would submit a PR. <Air4x>Sneed1911: now I just need to remember how to make a PR for Guix <ieure>Air4x, What `guix shell' command are you running? I'm wondering if you use imperative package management (ex. `guix install ...') with an older version of sbcl in your per-user profile than your guix commit. <Air4x>ieure: I'm using plain `guix shell', which load a guix.scm where I defined a package using the asdf-build-system/sbcl. I followed the Guix Cookbook <Air4x>Is it normal that `guix download' default to the SWH project instead of cloning from the repository? <ieure>Air4x, Guix falls back to SWH when the declared origin is unavailable, it should mention this in its output. <ieure>Air4x, So if you run `sbcl --version' and `guix shell sbcl -- sbcl --version', do they show the same thing? <ieure>Air4x, I see. I'm struggling to understand how anything is complaining about SBCL 2.5.8. SBCL was updated to 2.6.4 in May of this year, nothing should be built against it. <ieure>Updating SBCL triggers rebuilds of anything that takes it as an input, which sbcl-iterate must. <Air4x>ieure: I also tried to force a recompile by `guix build --no-substitutes' it. It didn't change nothing. I could try to pass "--no-substitutes" to guix shell and see what happens. <Air4x>So if I pass the commit hash to `guix download' it downlaods from the swh archive, if I pass the tag "1.6.0" it says error: "Git: invalid content-type: 'text/html; charset=utf-8'" <ieure>Air4x, Sounds like the place hosting the code is broken, or has LLM DDoS mitigation which breaks cloning it. <ieure>I can't do anything but speculate. Happy to try reproducing your issue if you want to share what it takes to do that. <Air4x>ieure: the gitlab instance is behind Anubis. <ieure>Air4x, That is likely the issue. <Air4x>Is the fact that the code is available in the swh archive good enough for keeping the package in Guix? Because if it is, I should be able to make a PR <ieure>Air4x, That's not an issue, but I don't understand what you'd be changing in the pacakge.