IRC channel logs

2025-05-03.log

back to list of logs

<keinflue>identity I think that should be done already on the source derivation, because failure should invalidate it for all purposes. That's what origin snippets are for, right?
<luca>I think the idea is to verify that a new version is made by the same person who made the previous version
<luca>So for example that the same bagder released a new version of curl
<keinflue>yes, but failure to verify means that the downloaded sources can't be trusted at all, so I would prefer them to not even be available in the store
<keinflue>though I guess it doesn't make much of a difference in practice because the same source won't (usually?) be reused for another package
<attila_lendvai>guix system: error: exception thrown: #<&assertion-failure>: what an utterly useless error message... why is my backtrace taken from me?
<attila_lendvai>i know about --on-error=backtrace, but... why do i need to?
<attila_lendvai>the bt doesn't help one bit...
<RavenJoad>Guix, how can I get a subdirectory in a python package's source to be installed too? I have the sqlelf program which has sqlelf/tools, but the default pyproject install phase does not install the tools subdirectory.
<kjartanoli>RavenJoad: I am no expert but you could probably use modify-phases to add a build phase to install those files.
<ieure>Or patch the pyproject to do the right thing.
<RavenJoad>ieure: Given that this is just a single subdirectory, I think that is the smarter plan. I just don't understand the pyproject packaging idea at all. A wheel file or something that specifies what to install is exactly what I need.
<ieure>RavenJoad, I've been programming Python for 15+ years, generally like the language, and I have *no idea* how any of the pyproject stuff works. It's *so* bad.
<RavenJoad>ieure: I think I figured it out. Perhaps add something to the SOURCES.txt in the egg-info directory?
<ieure>RavenJoad, I have literally no idea.
<RavenJoad>I'm just surprised the build phase (which puts together the egg and wheel files) does not copy the contents of sqlelf/* recursively. It skips subdirs.
<RavenJoad>Maybe I'm just being silly, but this recursive behavior should be the default?
<adanska>with the gnu-build-system and cmake-build-system, is there a way to set the specific gcc or clang you want to use with it?
<AwesomeAdam54321>adanska: Adding it as a native input at the end of the `native-inputs` list should work
<adanska>okay, cool ill give that a go
<adanska>perfect, that worked for me!
<adanska>thanks AwesomeAdam54321
<pinoaffe>attila_lendvai: re: certbot multiple websites: you can't add several certbot services (I learned that the hard way). Instead, you can configure each of the websites to send requests to /.well-known/acme-challenge/* to the same directory, that way you can use a single certbot service to do the challenges for all of them
<pinoaffe>I would like it if it were possible to add several certbot services, that would be quite a bit cleaner IMO
<pinoaffe>and i've also encountered issues/fickleness/bugginess with the guix certbot service
<luca>Hi, is there a way to `guix import crate` a local repo/crate thing?
<identity>luca: it does not look like there is an obvious way to do that, apart from uploading your crate to crates.io
<ruther>luca: currently no, there is a patch for it that changes how rust packaging works. For now you can use cargo2guix
<ruther> https://git.sr.ht/~look/cargo2guix
<luca>Awesome! Thanks :D
<fnat>A 'guix deploy' command doesn't seem to terminate. It used to work fine until a few weeks ago. If I SSH into the remote machine and launch a 'guix system describe', I get this warning. https://paste.debian.net/1372961/
<fnat>Could the two things be related?
<fnat>'guix system describe' seems to say that the 'guix deploy' operation ran successfully, but if I run it again it still remains stuck and never returns.
<fnat>I was thinking of launching a guix pull / guix reconfigure from the remote machine itself, but I thought of asking here first.
<ray1729>A question about guix shell and GUILE_LOAD_PATH: if I run `guix shell some-guile-pkg` to run as shell with an extra guile package installed, should I expect this automatically to appear in the load path?
<ray1729>I'm trying to work out if something else in my setup is confoundfing `guix shell`, or if I'm expecting too much of it.
<pastor>Hello. When creating a new Guix package. Are we meant to add a shepherd service whenever the package provides a systemd service?
<ruther>pastor: you definitely don't have to, but if you do it's good definitely
<ruther>ray1729: no, you would expect it to show in load path only if both guile and some-guile-pkg were in the shell
<pastor>ruther: could you give me your opinion on this. We have the `kded' which provides a user/systemd service. Currently we don't start it but we relly should. Many features won't work in plasma without it. Other packages do not have this problem, for example the `kwallet-pam' package provides `etc/xdg/autostart/pam_kwallet_init.desktop' so the startup is handled at autostart. Since this is not the case for `kded' should I create a sheperd
<pastor>service for it?
<ruther>you need both the (1) package providing search path (2) package providing the path the search path points to. (1) is guile, (2) is some-guile-pkg
<ruther>(answer was to ray1729)
<hako>luca, ruther: The new Rust packaging can be used now too. https://ultrarare.space/en/posts/guix-rust-packaging-preview/
<ruther>hako: thanks for the blog post
<hako>There's also a new procedure (cargo-inputs-from-lockfile FILE) on rust-team that can be used in a Rust project's guix.scm.
<pastor>ruther: I didn't say anything. I understand now how is this supossed to be started. Since it's meant to be triggered by d-bus they provide a `share/dbus-1/services/org.kde.kded6.service' in the package. So I just need to register the package to the `plasma-dbus-service' package list.
<ruther>pastor: yep, d-bus services are better left to starting by dbus rather than shepherd
<cricri>hi there, I could use some advice running `guix home reconfigure`. Many packages fail with the error 'expected string `Derive(['. It did also run 'guix gc --verify=contents,repair' which indeed repaired some packages. But many others cannot be fixed.
<cricri>What would you suggest to do?
<ruther>cricri: depends on how many and what derivations got corrupted. Generally, remove them, with guix gc, you can -D to delete individuall paths or just without arguments to remove everything that is not gc rooted. If they are gc rooted, you will have to remove gc roots as well
<ruther>cricri: if you've got a lot of those corruptions, it might be easier to just completely remove gnu store and reinitialize it / reinitialize your system.
<cricri>ok, I will try. Thanks a lot!
<ph>hello everyone, I a small question concerning channels, so far i've been using them to create packages but I would like to use them more to extends guix. It's that possible for a channel to define a dependency on a guile library, which isn't in guix (i think). For context, I have a package providing a few yaml files, I would like to export a procedure that read them and creates records, I would like to use guile-libyaml or guile-yamlpp
<ph>for that.
<sham1>Why not create a package for the YAML libraries?
<sham1>Those could be useful in general as well
<ph>it already exist
<sham1>So what do you mean by "isn't in guix"
<sham1>A channel cannot declare a dependency on a library
<ph>yeah that the part I would like to have.
<ph>I guess I could do code generation to go around this.
<ray1729>ruther: thank you, that has done the trick!
<wolfdog>ptried installing Guix in a foreign distro using SELinux with the install script, but the SELinux stuff it apparently did seemed to not work, I had to apply the policy manually (as per https://guix.gnu.org/manual/devel/en/html_node/SELinux-Support.html)
<wolfdog>is this something that's known?
<ruther>wolfdog: doesn't existence of the page in manual imply that it's known?
<wolfdog>i was wondering because the guix-installer script does offer to install the SELinux policy, and I accepted to that but I had to do it myself a second time to get them setup
<ruther>oh, if you accepted it, that's strange then
<ruther>wolfdog: I can't find anything about that in issues, so it's possible it's not known
<ruther>I don't think many people use guix on distros with selinux, so it can get unnoticed for long time
<wolfdog>i see
<adanska>does anyone know of a guile equivilent to common lisp's `destructive-bind`? im looking a deconstructing a list and binding a known number of variables to each element of the list
<cobra>is there a reason ncmpcpp isnt built with --enable-visualizer
<ieure>cobra, Hard to say. Easy to change, give it a whirl and see what happens / send a patch if it seems to work.
<naran>Hi, I tried to create a database container as described at <https://guix.gnu.org/cookbook/en/html_node/A-Database-Container.html> and it worked except that I don't see any postgres processes inside the namespace.
<naran>guix describe commit: 8713e2038f44e66423ccb31c950587d9af9a213b
<attila_lendvai>pinoaffe, thanks for confirming the situation! i think the simplest solution is to bring the wwwroot field one level down from the service to the individual domain entries. i once wrote an email about that, but i was told it's good as it is, but... no matter how much i think, it just seems broken.
<attila_lendvai>pinoaffe, it feels very roundabout to configure the webserver to accommodate for the guix certbot service peculiarities...
<attila_lendvai>pinoaffe, i'll probably send a patch to fix this once i can convince myself that it's not futile to send patches to guix...
<naran>I also see `sh: line 1: locale: command not found` and `WARNING: no usable system locales were found`
<naran>Adding glibc-locales package did not make any difference.
<pinoaffe>attila_lendvai: it is kinda roundabout, but it's also not *that* weird in my opinion, it makes sense to me that you may need to configure nginx to resolve "normal" requests in one way and certbot .well-known challenge requests in another way
<attila_lendvai>pinoaffe, to me it's much more natural that i should be able to specify a wwwroot for each domain
<naran>It looks like the same as <https://issues.guix.gnu.org/56822>
<attila_lendvai>...or that the service automatically appends the domain name to the single wwwroot (which would be less flexible)
<pinoaffe>that wouldn't work since there's not necessarily one domain name per certificate
<pinoaffe>and you'd still have to do per-nginx-server configuration to point .well-known/challenges to the right path
<luca>Hi, anyone got any tips as to how to run GUI apps in a container?
<luca>What magical `guix shell --container` invokation would do the trick
<ieure>luca, See `(guix)Invoking guix shell'.
<ieure>It has the correct incantation.
<luca>It seems to only mention x11. I probably should have specified I'd like to run a wayland program if possible
<ieure>luca, Substitute whatever environment variables Wayland expects.
<ieure>WAYLAND_DISPLAY? I don't really know, I don't run it.
<attila_lendvai>pinoaffe, hrm, i'll need to think about that. thanks for the head's up! much appreciated!
<luca>Oh duh, thanks! The magical invokation was `guix shell --container --preserve='^WAYLAND_DISPLAY$' --preserve='^XDG_RUNTIME_DIR$' --expose=$XDG_RUNTIME_DIR`
<cluelessguixer>Looked at cookbook/Network-bridge-for-QEMU.html and manual/Networking-Setup.html, but I don't see any obvious way to make a bridge persist through reboots.
<cluelessguixer>Should I try making a shepherd service which runs an iproute2 command at startup?
<Tadhgmister>when I use `local-file` and guix puts a copy of that file in the store, does it get copied or hardlinked? There shouldn't be any significant disk overhead to using several local-files for really big files right?
<luca>It should be a hard copy
<Tadhgmister>yeah is a full copy, dang it
<Tadhgmister>oh right it would have to be if the file was on another drive
<sham1>Yeah, and half linking would be bad because then the file could be edited while it's in the store, and that's not good
<ieure>"half linking?"
<Tadhgmister>hard-linking, yes I forgot that is how hard linking works
<Tadhgmister>that would not work at all
<Tadhgmister>how do you get a derivation from a (local-file) object? I used to know it but I am not sure where it would even be defined or what the gexp wrapper thingies are connonically called in the source code
<Tadhgmister>oh is it just gexp->derivation?
<Tadhgmister>no that is for raw gexp, I'm not sure what I'm doing
<Tadhgmister>I may be misunderstanding what derivations are, how do you just go from having a `(local-file)` or (computed-file)` etc to building it and getting the path in the store
<ieure>Tadhgmister, `(guix)Using Guix Interactively' has a couple modules you have to use, then you can: ,build thing
<ieure>Or: ,lower thing
<Tadhgmister>is `(guix)Using Guix Interactively' a reference to a section in the manual or something I would run from a guile repl?
<ieure>Tadhgmister, It's a reference to the manual.
<Tadhgmister>ok yes I had forgotten `guix repl` was a thing, I have just been running `guile`. tyvm
<ruther>Tadhgmister: to build something, you need to open connection to the store and run a function with the store that will utilize the store, like lower-object: https://paste.debian.net/1373014/. But you don't typically have to use that, and usually even shouldn't
<ieure>It'll work in either.
<Tadhgmister>ahhhh it is the `(use-modules (guix))` that gives the repl the `,build` command, ok now I'm cooking thank you both
<zuki>a few months ago I installed gentoo from within my archinstall on another subvolume on the same partition, and then after setup it all up deleted my arch subvolume.
<zuki>I've been wondering if it would be possable to do the same thing again but with guix?
<Tadhgmister>don't see why not, you can definitely specify a btrfs subvolume to be the mount point
<Tadhgmister>just passing `(options "subvol=XYZ")` to the `(file-system)` in your os config and possibly specify gentoo as an extra grub entry
<zuki>thanks, any tips on how i would do the initial install?
<zuki>or is there just a option in the installer?
<Tadhgmister>I think the guided installer gives you an opportunity to edit the os definition by hand near the end, the last time I went to do an install without an already written up config file was ages ago