IRC channel logs

2026-02-28.log

back to list of logs

<redacted>Oh, hang on. The channels field of the unattended-upgrade service config *is* a gexp
<redacted>#$(local-file ...) might work
<redacted>yeah that worked
<bdunahu>what is the convention for packages starting with 'python-'?
<redacted>bdunahu, not sure which conventions you mean, but there's guidelines for python packages in the manual
<redacted>Contributing > Packaging Guidelines > Python Modules
<bdunahu>thanks! After reading I am still uncertain how to name this software: https://github.com/P403n1x87/austin. I don't think it should be prefixed with 'python-', specifically because it does not provide a library. And that probably means it should not live in python-check.scm, even though similar tools like line-profiler are there.
<muaddibb>If I update my system and it breaks, is it correct to reboot into a previous generation and then run 'guix system reconfigure' there?
<redacted>muaddibb, IIRC that works, but you can also do guix system roll-back to roll back the configuration without reconfiguring
<redacted>oh sorry
<redacted>you're talking about an unbootable system, right?
<redacted>(in which case you can't run `guix system roll-back`)
<bdunahu>I'll just try it in python-check.scm with the python prefix for now... there's a lot of profilers already in there
<ekaitz>muaddibb: yes, that's what you should do, basically
<muaddibb>redacted: no, but not very usable either. I did what I described, rebooted and 'guix list-generations' showed that the previous (damaged) generation was current. It fixed some things but not others.
<muaddibb>I guess I should have run 'roll-back' first. I ran 'guix system switch-generation XX' later and was able to fix everything, tho
<Ironsmith>hello guix! trying to load a custom EDID file via the kernel parameter `drm.edid_firmware`. according to the documentation for this parameter https://www.kernel.org/doc/html/v6.17/admin-guide/kernel-parameters.html the file specified should be present in `/lib/firmware` but on my guix there is no `/lib` folder. what's the 'guix way' loading a
<Ironsmith>custom edid or adding files to /lib/firmware? tried looking at the guix manual and cookbook but couldn't find any hits on `lib/firmware`
<guestin>anyone know why on guix x11 defaults to llvmpipe?
<guestin>with nouveau
<vagrantc>Ironsmith: sounds like something that might be taken out of linux-libre
<guestin>its not like it isnt loaded, just that it doesnt use it on x11, on wayland it does
<loquatdev>How can I use the path of an input in #:configure-flags in the arguments for a package?
<loquatdev>I need to set a cmake flag to the directory of another package.
<mange>Can you link us to a paste of what you've got? I think I know how to do it with a gexp, but I don't know if it can be done with the old-style arguments.
<Ironsmith>loquatdev i think you can use the package directly as if it was a string, for example if your (inputs) contains `esbuild`, you can do `(string-append esbuild "/some/path")`
<mange>I don't think that would work. string-append will complain that a package is not a string. You can do it with a gexp and file-append: #:configure-flags #~(list #$(file-append esbuild "/some/path"))
<Ironsmith>ah gotchya, thanks mange, i am able to use `(string-append)` but in a gexp. this is what i currently have in my greetd service: `(default-session-command #~(string-append #$cage "/bin/cage -ds -- " #$gtkgreet "/bin/gtkgreet --command ..."))`
<mange>Yeah, #$(file-append pkg "str") is roughly equivalent to (string-append #$pkg "str").
<loquatdev>Interesting. I can use a gexp in my arguments if arguments is a (list ...), but if I change it to `(#:test? ...etc) then I get an error about "Unbound variable: gexp"
<loquatdev>I'll double check my code.
<mange>Yeah, because ` suppresses evaluation. `(a b) is roughly (list `a `b). You can escape it with , to make something like `(#:configure-flags ,#~(...)) but I've never actually done that.
<loquatdev>Right. A bit silly of me to miss that.
<Ironsmith>thanks for your guess vagrantc, i looked around the source code and found similar files that get used in `/lib/firmware` that are provided via the `(operating-system (firmware))` field. i'll give that a try
<vagrantc>Ironsmith: you might want to check kernel logs for messages like "DEBLOBBED"
<Ironsmith>will do, thanks
<vagrantc>good luck
<vagrantc>ACTION waves
<Ironsmith>was able to load my custom vesa edid, needed to create a small package for it and then add it to the (firmware) field of (operating-system)
<Ironsmith>(firmware (append (list (package (name "dan-custom-edid") (version "1") (source (local-file "HDMI-A-1-custom.edid")) (build-system copy-build-system) (arguments (list #:install-plan #~(list (list "." "/lib/firmware/edid/" #:exclude (list "environment-variables")) ) )) (synopsis "") (description "") (license license:expat) (home-page "") ) )
<Ironsmith>%base-firmware ))
<Ironsmith>this doesn't include the linux parameter, i'm still testing around with the edid, but if anyone wanted to load the edid this way you need to add the parameter drm.edid_firmware=edid/HDMI-A-1-custom.edid
<folaht>Is there a way to search for multiple installed packages in one command? Like guix package -I dnsmasq & iptables
<folaht>guix package -I (dnsmasq & iptables & ..) <- something like that
<folaht>That doesn't work, but what would?
<folaht>Oh it's a regexp
<folaht>guix package -I (dnsmasq | iptables | ..) <- doesn't seem to work either
<jakef>folaht: quote it and drop the spaces? seems to work for me
<folaht>jakef, thanks. That works.
<folaht>New question, I want to run a certain program as root and I notice that installing a package doesn't necessarily make the command available to root.
<futurile>folaht: yeah this is one to get your head around. If you install a package as user 'folaht' (e.g guix package --install blah) you make that package available to that user only
<futurile>folaht: guix is designed to allow individual users to have their own packages; so it's like pip install --user or something
<futurile>folaht: if you're using 'guix system' and you define the package in the system definition then it will do what you expect - install the package for 'all users'
<futurile>folaht: are you using guix system or are you using guix on top of another distribution?
<folaht>futurile, I'm using the guix system.
<folaht>I'm just about to install emacs to see what that is all about.
<folaht>It seems to be very popular among guix users, correct?
<futurile>folaht: OK, so if you want a package to be available for all users, or root to use it. Put it into the system definition.
<futurile>folaht: most people will keep that pretty small. Then use guix-home or manifests to install all their user packages
<futurile>folaht: https://www.futurile.net/2022/12/12/guix-managing-apps-with-manifests/ <-- example of using manifests
<folaht>That looks great futurile!
<futurile>folaht: glad it's helpful =-)
<meaty>hmm... Lutris (a flatpak app) has stopped being able to download the files it needs, saying it can't find a suitable TLS CA certificate bundle
<meaty>invalid path: /run/current-system/profile/etc/ssl/certs/ca-certificates.crt
<meaty>which *is* a real path which holds a symlink as expected
<meaty>would anyone have any pointers as to what is happening here?
<meaty>is it on flatpak's end or guix's? or Lutris'?
<JohnDawson>I am writing an R package, jumpingapp, that is both an R library, to be used within R, and a Shiny application, to be run from the command line. If I understand correctly, `guix shell r-jumpingapp -- R` should not work: the user should run `guix shell r-minimal r-jumpingapp -- R` instead. On the other hand, `guix shell r-jumpingapp -- jumpingapp`
<JohnDawson>should work. Is the following the correct way to do that?
<JohnDawson>(package
<JohnDawson>  (name "r-jumpingapp")
<JohnDawson>  (version "1.0.0")
<JohnDawson>  (source (local-file "." "jumpingapp" #:recursive? #t))
<JohnDawson>  (properties '((upstream-name . "jumpingapp")))
<folaht>meaty, do you use the guix system or on top of another distrubution?
<futurile>JohnDawson: if you're cut-n-pasting things please can you use a paste service
<futurile>JohnDawson: see the channel header
<JohnDawson>futurile, sorry. I am writing an R package, jumpingapp, that is both an R library, to be used within R, and a Shiny application, to be run from the command line. If I understand correctly, `guix shell r-jumpingapp -- R` should not work: the user should run `guix shell r-minimal r-jumpingapp -- R` instead. On the other hand, `guix shell r-jumpingapp
<JohnDawson>-- jumpingapp` should work. Is the following the correct way to do that? https://paste.debian.net/hidden/274f1efa
<futurile>JohnDawson: no worries
<futurile>JohnDawson: I'm not very knowledgable about 'R'. Using it 'as a lib' looks right. Many of the dynamic languages (e.g. Python) have a special path that the library is added to. Check the manual for how this works for R
<futurile>JohnDawson: for Python, when you 'use something as an app' the user has to know they require to install Python. So the guix shell call would have required python as well (e.g. guix shell python python-blah). I'm not sure what will happen with R.
<futurile>JohnDawson: this is to do with the fact that we don't specify interpreters for the language in each package. It would be mad.
<futurile>JohnDawson: so "for your app" - it may work - if it doesn't there's a wrap-script function you could look at. But look in the manual for info on how R specifically works, because it's not my area
<JohnDawson>"for Python, when you 'use something as an app' the user has to know they require to install Python." I do not think that is correct.
<futurile>it depends whether there's a wrap-script call, so that Guix puts the correct interpreter in for you
<JohnDawson>`guix shell --container python-pylint -- pylint --version` works.
<futurile>fair enough, you know best
<JohnDawson>I guess Python is an input but not a propagated input of python-pylint, so it does not end up in the user's profile.
<futurile>check the output; you'll find a wrap-script or there was a call that embedded the link - it's normally the former
<JohnDawson>I think r-build-system does rewrite the script's shebang so it finds the correct interpreter.
<JohnDawson>My question is really about how to make sure Rscript has the correct value of R_LIBS_SITE.
<futurile>ok, so it's similar to Python - but as I say I don't really know R
<futurile>if it's the same as Python, then that will be associated with the interpreter. So individual libs don't have to do anything.
<futurile>you can look at the interpreter package to see how it's doing it
<JohnDawson>In the example I pasted if I leave out `(wrap-program ...)` R cannot find the package jumpingapp when I run `guix shell r-jumpingapp -- jumpingapp`.
<folaht>futurile, this manifest thing looks handy for creating lists of packages, but I just want to install one or two packages systemwide.
<futurile>folaht: you can use the `package` field of the system declaration.
<JohnDawson>But I made the `(wrap-program ...)` bit by little more than trial and error, so I am far from sure it is correct or best practice.
<meaty>folaht: no, i use guix system
<folaht>futurile, system definition, is that the same as /etc/config.scm?
<futurile>JohnDawson: if it works I would go for it - or you could ask on help-guix - theere's a lot of guix-science users on there and they use R for sure
<JohnDawson>Thank you.
<futurile>folaht: yeah, I don't have 'how-to' post for that - the manual has a good section: https://guix.gnu.org/manual/devel/en/html_node/Getting-Started-with-the-System.html
<futurile>folaht: you can specify packages in the 'config.scm' file - you'll copy that and use it (iterate it as you change your system) - the packages field does something like "(packages (cons vim %base-packages))"
<futurile>folaht: there's an example in the manual in that section
<mange>Is there a straightforward way to get a list of all the packages used in an operating-system definition? Not just the ones in (packages ...), but also the ones relevant to services, etc. I know I can use operating-system-derivation and get the input derivations, but I'm hoping to stay higher-level if I can.
<untrusem->ieure: did you not get a mail from futurile?
<yarl>Hi.
<yarl>I need some advice please :) :
<yarl>guix/import/elpa.scm : call-with-downloaded-file
<yarl>if http-fetch/cached success but proc throws, you get a "dowload failed" message. Which is misleading.
<yarl>I wonder what approach is best here.
<yarl>First, in guix/scripts/import/elpa.scm I would wrap the (spec) branch of match inside a (with-error-handling ...)
<yarl>(the function is guix-import-elpa)
<mange>call-with-downloaded-file is only ever used to call read-string as proc, right? In fetch-package-description? Is it that misleading to say "download failed" if we can't read from the downloaded file?
<yarl>mange, I'm working on elpa.scm and writing a new function.
<yarl>That need to do things on downloaded file too.
<yarl>I thought that if call-with-downloaded-file is here then I should use it.
<yarl>Either I do kind of what c-w-d-f does inside the function i'm writing because c-w-d-f is not very good or I change it so it's better.
<mange>You could do something like this: https://paste.debian.net/hidden/6afe4dcd
<mange>Or some other suitable encoding. This one preserves the ability for proc and error-thunk to return multiple values, but that probably isn't necessary.
<yarl>I thought of a simpler approach by simply change (catch #t (lambda () (proc ...)) to (proc (catch ...))
<yarl>But still, I think the message "download failed" is not very informative.
<futurile>probably going to set the user off on the wrong path
<yarl>futurile: ?
<futurile>yarl: I was thinking it might be an odd error message if it's not the actual problem. But, if it's internal then it's probably not worth the trouble.
<futurile>yarl: generally a lot of our user-facing error messages are confusing (to me!?) heh
<yarl>futurile: I don't understand.
<yarl>The function call-with-downloaded-file is supposed to be generic : proc + optional handler. I want to use it to write a function.
<yarl>I made a mistake in the function I wrote.
<yarl>The only message I got was "download error".
<yarl>That's why I think it should be improved.
<yarl>Not much trouble in changing (catch (proc)) to (proc (catch))
<yarl>WDYT?
<yarl>futurile: I agree, error messages are not always good, sometimes very bad : see gexp problem 1 : https://codeberg.org/guix/guix/issues/4416
<trev>futurile: did you happen to see the email response to my email? I could fill out the grant form if you want, but i might bother you for some info
<futurile>trev: I did see it thanks - I will go through it today and see if I can put something together - see if we can sneak something under the wire
<futurile>trev: otherwise I guess we will wait a month and try when they open again - amazing you got a response so quick
<futurile>trev: so be nice if I can put something in - just to get a response since they were so nice to respond immediately
<mcarmo>heya folks
<futurile>heya mcarmo
<trev>futurile: i think that's a great idea. they should be pretty responsive
<trev>fanquake: we are trying to get an opensats grant for the guix foundation. do you think any other grant programs would be interested in helping with funding?
<mcarmo>quick question fellas, does the help-guix mailing list support attachments?
<mcarmo>I'm not familiar with using mailing lists, but I thought it might be good to attach my config.scm?
<futurile>mcarmo: interesting question - you should probably cut-n-paste in the bit of your config you want help with.
<trev>mcarmo: you could use a pastebin as well
<mcarmo>hmm fair enough
<mcarmo>is it possible to do addendums in the list? xD
<futurile>mcarmo: heh. In general the list works well if you have a clear question, and an example - the more specific you can be the better. If you're looking for "help" rather than a general chat
<mcarmo>right right
<mcarmo>just in case, has anyone here had issues with KDE in guix where apps just never show up in the launcher?
<mcarmo>ever since I started using guix home kde has completely stopped updating the list. even reconfigure and restarting the machine. icons are broken too (even on standalone app launchers, though those at least show the apps)
<vknc>Hi, I'm new to guix. This may be a question that has been asked by many people but I couldn't find an answer. I would love to use the linux-libre kernel but my wifi card needs ath10k driver to work. I saw an option to replace the kernel to the normal linux kernel but is there any other way that I can keep using the libre-kernel and get wifi to
<vknc>working?
<graywolf>Hello :) So I am thinking about setting up Guix on our GitLab node at work, I went through the cookbook. Since I have just a single node, basically all I need to do is to mount /gnu/store (RO) and /var/guix (RW) into the GitLab runner container. After that, Guix should be usable inside the runner. Is that roughly correct?
<graywolf>I am curious what to do about Guix binary though. Should it also be mounted from the host? Or is it better to build special container image with it?
<futurile>vknc: you need to look at nonguix as that project provides the standard Linux kernel. There's a channel for questions about it #nonguix - if their repo documentation isn't clear
<mvkbed>hi
<mvkbed>I'm mvkbed. I am a cybersecurity student. I want to work on Guix/Hurd.
<futurile>hi hi mvkbed - nice - there's a few people on the channel that are into Hurd
<futurile>mvkbed: also there's our devel mailing list - lots of people read that
<futurile>mvkbed: any particular thing you'd like to work on?
<mvkbed>i actually want to document my workings I'll be posting on my site. I have spun up qemu for guix/hurd. I have figured quite a things and looking forward to distribute a qemu compatible image that isn't barebones.
<Hamled>nice
<FuncProgLinux>o/
<futurile>mvkbed: cool, well introduce yourself on the guix-devel list. It's a friendly group!
<meaty>vknc: maybe it might work if you use the nonfree firmware?
<meaty>i am having trouble with a flatpak app, lutris: it cannot download the data it needs because it can't find its CA certificates
<meaty>"Could not find a suitable TLS CA certificate bundle, invalid path: /run/current-system/profile/etc/ssl/certs/ca-certificates.crt"
<meaty>however, this path is valid and symlinked to a certificate bundle, and the permissions appear to be 777. does anyone know what is happening here?
<meaty>I have tried wiping my flatpak data and re-installing, no luck
<identity>maybe bad symbolic link handling?
<futurile>trev, fanquake: sent an application for funding Guix Foundation
<meaty>identity: is there an environment variable i can use to point it to a direct path?
<identity>no idea
<identity>actually, see the output of env|grep ssl
<trev>futurile: nice! keep me posted
<ieure>Okay, so: I want to build a leaf package locally, even though there are substitutes. But I don't want to build inputs up to the leaf package itself. `guix build package' uses substitues for everything; `guix build --no-substitutes package' uses them for nothing.
<ieure>Is there a reasonably way to use substitutes for all the inputs, but not the leaf package?
<ieure>I guess I can `guix build package', `guix gc -D /gnu/store/*-package-*', `guix build --no-substitutes package', but... gross.
<meaty>ieure: that's how i've been doing it... maybe you could copy the inputs from `guix edit` into a build command?
<meaty>identity: `SSL_CERT_FILE=$(readlink $SSL_CERT_FILE) flatpak run net.lutris.Lutris` doesn't fix it; it still searches the same location
<yarl>ieure: What about guix build --check?
<meaty>aha, the key was to give flatpak permission to read the directory: https://lepiller.eu/en/how-to-fix-the-issue-with-ca-certificates-in-guix.html
<meaty>`flatpak override --user --filesystem=$SSL_CERT_DIR:ro net.lutris.Lutris` for me
<emacsomancer>having difficulty updating. one thing that keeps coming up is:
<emacsomancer>guix offload: error: link: Bad message / guix system: error: build of `/gnu/store/1y34pi3n1qmla1xxhyh06ngd5nxvw3fv-bdb-6.2.32.drv' failed
<untrusem>meaty: you should use flatseal to manage permissions is flatseal
<emacsomancer>and ifI try with `sudo guix system reconfigure /etc/config.scm --no-offload --no-substitutes -v 10`
<emacsomancer>it builds for a while, and then fails with: `phase 'compress-documentation' succeeded after 0.0 seconds /
<emacsomancer>guix system: error: getting status of /gnu/store/.links/0zwy60i476512jnyj9bd5siv7i3gpmg8a0pni51hiv17d1ix3lxx: Bad message`
<fanquake> trev: send something to brink.dev as well
<folaht>Hey there, I'm missing sound on my guix system. What could be the issue?
<folaht>I still had it before I rebooted
<folaht>I also have an issue of not being able to run certain programs under sudo. It works for the user, it works for root, but not when I sudo.
<folaht>Command is then not found
<folaht>I think I've found the issue on the second one, because the commands it cannot find are aliases
<ieure>folaht, Did you change anything before rebooting?
<folaht>I added neovim as a global package. I don't think that would effect it though. I've had sound issues before though.
<folaht>And I've recently installed pipewire
<folaht>Ohhh... looks like there's issues there
<janneke>mvkbed: best way to get started is probably https://codeberg.org/guix/guix and look for team-hurd / hurd --
<mvkbed>okay thankss :⁠-⁠)
<loquatdev>I'm writing a service that will need to generate a .ini file. I'm guessing that there's several services that use an ini-like format. Is there a procedure somewhere in Guix that I can use for this purpose, or should I just write my own?
<futurile>people who don't put things in alphabetical order break my brain
<futurile>'you literally put it in the file yourself, and you didn't sort it, wtf!??'
<futurile>... and this is why I can't be around normal people