IRC channel logs

2025-04-11.log

back to list of logs

<Kabouik>eikcaz, lilyp, Rutherther: it seems adding r-cairo to my manifest and adding "device = Cairo::CairoPNG" to my ggsave() functions helps. I just can't understand why this is necessary with Rscript and not with R, but that'll do for now.
<Kabouik>Spoke too fast. It creates a png but it's all white.
<cow_2001>i think these expansions run the same command once for each expansion
<cow_2001>touch aaaaa bbbbb ccccc; ls "$( echo moo 1>&2 )"/{aaaaa,bbbbb,ccccc} # would print 3 times "moo" into the stderr
<trannus_aran>happy to report I figured out a bizarre "it doesn't work on my machine" issue building a guix.scm on a foreign distro (fedora 41 workstation)
<Kabouik>Uh. I **think** the issue was due to a diacritic in the path of the git repository. Is that a bug?
<trannus_aran>moral of the story, if configure's not working, make sure to try guix shell -C or --pure to preclude the configure script grabbing the guile in your /usr/bin instead of the one in /gnu/store *taps forehead*
<Kabouik>Yeah, that was definitely the culprit eikcaz, Rutherther. I replicated the exact same path to the working directory, with or without the acute diacritic in the path: works just fine when the acute is not there.
<meaty>Why do the docs for `docker-service-type` say that you have to manually also add `containerd-service-type` to the system configuration? Why not have it "extend" the containerd service instead?
<gabber>futurile: i guess so - but somehow Guix profiles link the correstponding TERMINFO data so terminal emulators can use it.
<Rutherther>meaty: because it allows for alternatives. shepherd service containerd is required, but in the future it could be provided by different system service types. This is already utilized with elogind service for example. It is provided by both elogind-service-type and seatd-service-type
<Rutherther>Kabouik: definitely sounds like a bug. But from your description I am not sure if it's a Guix bug or R bug
<aitzkora>It is possible to retrieve the output of (invoke "grep" "-l" "pattern" "-R" ".") in a list of strings ? The output value is just #t ?
<sneek>Welcome back aitzkora, you have 1 message!
<sneek>aitzkora, ekaitz says: run `guix build -K` of your package, jump to the folder, find the files yourself and list them by hand if `patch-shebang` doesn't work with them. Your sources are always going to be the same, there's no need to search when the package is built. You can just search by hand beforehand.
<Rutherther>aitzkora: you need to open the output pipe, ie. open-output-pipe instead of invoke. Or alternatively you can use pipeline procedure that will just return the output directly
<Rutherther>with open input pipe would still have to read it from the pipe yourself
<Rutherther>s/open input pipe/open oputput pipe
<aitzkora>Rutherther: thx, I will test that
<aitzkora>Rutherther: open-output-pipe is guix or guile ? I grepped sources of guix but did not find it
<Rutherther>guile
<aitzkora>In (ice-9 popen) there's stuff concerning open-pipe
<Rutherther>yup
<aitzkora>\o/
<Kabouik>Rutherther: exactly, I'm not sure either. My thinking is, on the one hand, it _might_ be a Guix bug related to locales are missing in the Guix container, and running the script from my env would fix that. On the other hand, R was able to create subfolders so R itself was nt impacted, but ggplot2's ggsave() function was; so it could also be that ggsave() is unable to write files to paths containing diacritics even if R can in the same locale
<Kabouik>conditions.
<csantosb>sneek: later tell lilyp: is it worth sending emacs patches before merging the team branch ? I see many changes.
<sneek>Got it.
<aitzkora>ekaitz : Aupa! I read the message you left yesterday for me. The solution you propose is nice but if there are lots of file and if you want that the recipe adapts when source are evolvin is is better to select file by result of a grep
<ekaitz>hmmm
<ekaitz>aitzkora: look at how patch-shebangs phase does it
<aitzkora>ekaitz: in the definiton of patch-shebangs (gnu-build-system.scm:399), they loop over all files in binary sub-directories. Of course, I can do that, avoiding selecting files with grep. milesker
<ekaitz>aitzkora: :)
<woshilapin>Hi there, I'm having a problem to define a environment variable with `home-environment-variables-service-type`. I want to have something like `VAR=$'\033[2msomething\033'` (literally what is between backticks) but it seems that the produced output is `VAR="$'\033[2msomething\033'"` (note the additional double quotes). And I'm aware of
<woshilapin>`literal-string` but this doesn't solve the problem since it replaces the double quotes with single quotes (so it's not really "literal"). Anyone had to deal with this?
<Rutherther>woshilapin: single quoting a string is making it a literal string in shell, in other words, nothing inside of it gets expanded (env vars nor normal vars)
<Rutherther>woshilapin: I am afraid escape sequences are not supported by the service currently
<Rutherther>woshilapin: if you were setting PS1, imo it should go to the rc file anyway, it shouldn't be an env var
<aadcg>I'm packing some libraries and I'm getting "guix perform-download: error: refusing to run with elevated privileges (UID 0)". any idea?
<futurile>aadcg: new to me. Did you update recently? (thinking about the recent changes to the daemon, maybe having some impact)
<Rutherther>aadcg: are you using the guix-perform-command in a repl? or what exactly did you do to get this error?
<aadcg>I am issuing guix build from bash. running guix in a foreign distro. I did a guix pull recently
<woshilapin>Rutherther: Thanks for the answer. I'm actually trying to configure `direnv` so that it gets less flashy when loading (https://github.com/direnv/direnv/wiki/Quiet-or-Silence-direnv)
<aadcg>If I run guix download, it returns succesfully. Interesting...
<Rutherther>woshilapin: ah. I am afraid you will have to set it up with your profile shell script as a workaround for now. But it seems to me like an unnecessary limitation of the service. Probably should have something similar to the literal-string?, but escape-sequence?
<Rutherther>aadcg: and did you update the guix-daemon that is ran in the service as well recently?
<Rutherther>usually you sudo guix pull for that on foreign distros, but it depends on your exact setup
<woshilapin>Rutherther: I understand. At least, you've clarified the situation for me. Not sure that I have the skills to write something like `escape-sequence` though.
<aadcg>Rutherther: my guix service config points to ~/.config/guix/current/bin/guix-daemon, so I assume that it is configured correctly. am I missing something?
<Rutherther>aadcg: and ~ here you mean your user's home? if so, you updated it then
<aadcg>yes, I just replaced it by ~/ so that I didn't mention my user account
<Rutherther>aadcg: I suppose that due to how the guix daemon changed it's possible it now cannot be ran with root at all, though I am not sure about that. And that would mean you will have to (manually) change to rootless guix-daemon service
<aadcg>Rutherther: I see. One possibility is to issue guix pull --roll-back
<aadcg>Rutherther: do you have any idea when these daemon changes landed?
<Rutherther> https://hpc.guix.info/blog/2025/03/build-daemon-drops-its-privileges/
<aadcg>oh right, I actually remember that article. Thanks.
<aadcg>rolling back didn't solve the issue. something odd is happening here. I guess I'll grab my other machine that runs the Guix OS (instead of as a foreing distro) and investigate.
<Rutherther>aadcg: did you restart the daemon?
<Rutherther>woshilapin: I think it should be fairly easy, but it's a question which path should be taken, if the service should give full control to the user to change the quotes, or just have hardcoded wrapping with $' '. See here for the second variant https://paste.debian.net/1368855/ (untested). Also I am not sure if the naming is right - if this is actually called escape sequence
<aadcg>Rutherther: I ran "sudo systemctl restart guix-daemon.service". "guix describe" tells me that the generation is at a date prior to the guix daemon changes.
<aadcg>indeed, everything works fine on my Guix OS machine.
<cbaines>I'm going to have a go at reconfiguring my laptop with the changes on elogind-updates
<cbaines>if nothing goes wrong, I'll look at pushing the branch, as I think we need to try and avoid branches sitting around
<rovanion>I'm tring to set up a development environment for Elixir but am currently stuck with a latin1 locale which I think crashes Elixir. 1. Which package provides the locale command? and 2. how do I set the locale in an invocation of `guix shell --container`?
<cbaines>rovanion, I see locale as coming from gcc-toolchain
<cbaines>you probably want to set LANG or LC_ALL to the appropriate locale, potentially adding glibc-locales to the container to provide the relevant locale
<futurile>cbaines: sounds good!
<futurile>my poor laptop just cannot cope with python-team and all the rebuilds. I'm going to need a different set-up when I'm travelling *sigh*
<rovanion1>gcc-toolchain provided the locale command. But `locale -a` still only outputs "C POSIX" with glibc-locales in the container.
<cbaines>I used to know more about this locales stuff, but I seem to have forgotten
<cbaines>rovanion1, check what environment variables are set in the container, specifically LANG, LC_* and GUIX_LOCPATH
<cbaines>there's some information on locales here https://guix.gnu.org/manual/en/html_node/Application-Setup.html#Locales-1
<rovanion1>Seems like the mix command provided by the package Elixir has a undeclared runtime dependency on coreutils. Should that be added as a propagated input? The specific error is: /gnu/store/35vlyiqbsj7xbfq99yxx042nklfldix2-elixir-1.18.3/lib/elixir/bin/elixir: line 65: dirname: command not found
<cbaines>it would be preferable to replace the use of dirname with the full filename, e.g. /gnu/store/.../bin/dirname
<zilti>Can someone give me a hint for packaging a Go library? I am this far with the package: https://termbin.com/c3b8 but it complains that it cannot find the very package that I declared as dependency: https://termbin.com/o17d
<Rutherther>zilti: despite the package name being -v4 it actually has a v3 folder, not v4
<zilti>Rutherther: okay, but - how do I tell my package this?
<zilti>I think the package definition is actually wrong. According to the github page, it is supposed to be /v4.
<Rutherther>zilti: yes, it is wrong
<zilti>Alright, I'm gonna fix it and submit a patch
<zilti>Argh, now it complains *again* about not finding go files in a package where the import path is correct... https://termbin.com/r6e4
<Rutherther>zilti: are you sure you've set the unpack and import paths properly? I don't tihnk that /pkg/astral should be in the import path
<ngz>I would like to alter a specification definition on ci.guix.gnu.org but it is forbidden. Is it possible to get the rights for it or make the change for me?
<zilti>Rutherther: I actually ended up using cmd/astral, but I don't know all that much about Go and that was the only way I got it to compile and pass testing
<zilti>I don't know if I maybe have to use multiple outputs? I added "#:install-source? #t" to the astral package, but that did not fix things
<Rutherther>install-source #t is the default
<zilti>Ah...
<Rutherther>cmd/astral is completely different thing, it's a command for the astral package, the darkman package depends on pkg/astral as you can see here https://gitlab.com/search?search=astral&project_id=23104371&search_code=true&repository_ref=main
<Rutherther>zilti: since the build will fail with the correct input path - "github.com/sj14"
<Rutherther>sorry, missclicked sent
<Rutherther>zilti: since the build will fail with the correct input path - "github.com/sj14/astral", you will need to remoev the cmd folder
<ngz>On another topic, I have some trouble understanding the source of error in <https://bordeaux.guix.gnu.org/build/9b1cb885-0466-4ae1-829b-9edbe91064d7/log>. I see the ton of "undefined reference" reports and that it is related to Lua but that’s about it.
<futurile>Rutherther: what's your understanding of how often Nix 'releases'? I can see a reference to a 6 week cycle, but they also have a 'stable' release cyle as well right?
<Rutherther>futurile: Nix or nixpkgs?
<futurile>Rutherther: oh good question - I'm super hazy on Nix so bear with me - I guess NixOS as I'm trying to think about how Guix should 'release'
<futurile>currently reading this Wiki page: https://en.wikipedia.org/wiki/NixOS
<Rutherther>futurile: NixOS releases stable versions in May and November that's what the numbers 24.11, 24.05 come from (year.month). But those are different from Guix's concept of versions, they still update stable versions, just no major updates. Like what stable distros like Debian do
<Rutherther>futurile: apart from that they have unstable that is rolling. Then from this unstable branch they make the stable ones (after making sure everything is fine and they also try to fit in stuff like Gnome updates for those releases, and other 'large' sw)
<Rutherther>nixpkgs-version and nixos-version are basically the same branches, except that nixos has tests for NixOS services, so it can lack behind a few days. That is to say, 'nixpkgs' release is the same as 'NixOS' release
<zilti>Rutherther: I have been playing around a bit with import-path and unpack-path and did a "delete-file-recursively" for the "cmd" directory, and... NothingWorksTM.
<futurile>Rutherther: ah ok - nixpkgs-version<-->nixos-version is interesting - have to get my head around that
<futurile>Rutherther: do you know you get maintenance on a NixOS 'stable' release for?
<Rutherther>futurile: till next release (+ a month of security updates iirc)
<Rutherther>so only 6 months + month for security updates
<futurile>Rutherther: ah interesting, ok that's fast for end-users - nice
<zilti>I have the import-path "github.com/sj14/astral", but now, under "/tmp/guix-build-go-github-com-sj14-astral-0.2.2.drv-0/src/github.com/sj14/astral/pkg/astral/", I have the entire repository root again. I don't understand anything anymore
<snamellit>I tried yesterday to package zola, a Rust SSG, for my channel. To my surprise it worked this time. I ended up with 1 app package and 75 missing crate packages in a massive 2k+ file. Is it worthwhile to try upstream that? How to go about that?
<futurile>snamellit: you can try it against rust-team branch.
<futurile>snamellit: if the package is generally interesting to other guix users, it could be worth it.
<futurile>snamellit: but if you send like 200 packages it's unlikely to be reviewed - unless efraim has time (I personally can't handle more than about 20 at a time)
<futurile>snamellit: there is a transition happening at the moment, which should make the builds faster in a 'bit'
<snamellit>so then best try to distribute the crates over the right crate-XXX files and the app in rust-apps as separate patches?
<snamellit>and somehow communicate the dependencies?
<snamellit>Or wait till the builds are faster?
<futurile>snamellit: how many new crates is it?
<snamellit>75
<snamellit>rust dependencies are crazy.
<snamellit>I guess 50 new ones, 25 for a version which is currently missing.
<zilti>...Argh, eff this, I'm just gonna write my own tool... Will take less time than trying to package this stuff...
<Rutherther>zilti: I think the astral source is somehow strange. It will need to be installed 'from' /src/github.com/sj14/astral/pkg/astral into src/github.com/sj14/astral
<futurile>snamellit: even against rust-team?
<snamellit>I'll have to check, I build against main.
<Rutherther>zilti: no sorry, that's wrong, it's just that the go build needs to be executed with /pkg/astral appended
<futurile>snamellit: OK, 50 is kinda bearable. If it's less on #rust-team then great! If you send them in maybe 2 or 3 series it's a bit better. Otherwise, it feels like a massive grind.
<futurile>snamellit: one the other day was 120 updates and honestly I just closed the tab heh
<snamellit>futurile: thanks! I can imagine.
<Rutherther>zilti: alternative you could also just set #:skip-build? to #t as the package doesn't output anything
<Rutherther>it's just a library, so only the source is fine
<Rutherther>zilti: see https://paste.debian.net/1368898/. But you can just remove the #:phases and uncomment that skip-build, it will do the same thing
<Rutherther>s/do the same thing/produce the same output
<cbaines>I'm now running the changes from elogind-updates on my laptop, and it seems fine so far
<zilti>Rutherther: thanks, yes, I got basically as far, but now there seems to be no output at all? The software depending on it looks in /tmp/guix-build-darkman-2.0.1.drv-0/src/github.com/sj14/astral, but /tmp/guix-build-darkman-2.0.1.drv-0/src/github.com/sj14 does not even exist
<cbaines>I'm missing the connection between elogind and samba, and it's updating samba/pinned that causes the sssd build failure
<cbaines>but without this information, it's hard to know whether do drop the samba/pinned change from the branch
<Rutherther>zilti: I definitely do have that folder with the package I sent
<zilti>Rutherther: well, the astral package in the store does contain everything, though with the wrong subdirectory, but despite it being one of the propagated-inputs for darkman, it is the only input that does not show up in darkman's build folder. Anyways, thank you a lot, but I'm done with this. I don't have the patience to deal with quirky source organization decisions that screw over packaging.
<Rutherther>It does show up for me
<Rutherther>and I don't think the output folder is wrong
<zilti>Rutherther: This is what I have currently: https://termbin.com/qj21
<Tadhgmister>can I setup btrfs subvolumes in a system image?
<apteryx>there's no non-ext4 support as of yet for system images, IIRC
<sneek>Welcome back apteryx, you have 2 messages!
<sneek>apteryx, lechner says: / Thanks for the procedure idea in Shepherd's 'start'! Am I supposed to add a lambda to 'stop', as well?
<sneek>apteryx, lechner says: / Are those lambdas documented anywhere? They wreak havoc on my system
<PotentialUser-93>Hi !
<apteryx>lechner: usually these are abstracted by means of using make-forkexec-constructor and friends
<PotentialUser-93>I am trying to setup guix in a VM, but I get an error when setting up the %desktop-services, and I am not quite sure to understand where/what is the error
<PotentialUser-93>I get this: /mnt/etc/config.scm:29:2: error: (define %my-desktop-services (append (list (service gnome-desktop-service-type) (service openssh-service-type (openssh-configuration (port-number 2200))) (s
<PotentialUser-93>ervice cups-service-type) (set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout)))) %desktop-services)): invalid field specifier
<apteryx>lechner: it's covered in (info "(shepherd) Service De- and Constructors") by the mentions that these are procedures
<andreas-e>Hello apteryx! Where is the elogind-updates branch? Is sssd a stopping breakage?
<sneek>Welcome back andreas-e, you have 1 message!
<sneek>andreas-e, janneke says: re core-packages-team also see #77709
<peanuts>"Restoring the Hurd on core-packages-team branch" https://issues.guix.gnu.org/77709
<PotentialUser-93>the full config is this: https://paste.debian.net/1368909
<cbaines>andreas-e, apteryx I've just pushed the changes, hopefully sssd breaking isn't too disruptive
<ieure>PotentialUser-93, Thanks, I was just about to ask.
<apteryx>andreas-e: hey! I'm not sure why sssd would now fail
<Tadhgmister>PotentialUser-93 you are trying to use a `(define` in the middle of your operating system reference
<ieure>PotentialUser-93, You cannot define variables inside an operating-system record.
<Tadhgmister>put that define above the os
<apteryx>sneek: later tell civodul would our shepherd's make-systemd-constructor behave well for TLS handshakes/connections? I'm finding it causes problems for ngircd.
<sneek>Will do.
<apteryx>gnutls-cli would just hang for example, as other clients trying to connect to ngircd when it is started via 'make-systemd-constructor'.
<cbaines>the sssd failure relates to the samba/pinned update, there was a change a couple of years ago to get the package building by using an older version of samba https://issues.guix.gnu.org/63091
<andreas-e>cbaines: You mean you have pushed the elogind branch to master?
<cbaines>andreas-e, yep
<apteryx>thanks for pushing it! I'm deep down into troubleshooting a ngircd+pounce system test
<apteryx>our samba is already cve plagued, we should look into updating it soon
<andreas-e>Ah, good! Does it mean we should wait for it to be picked up by data.qa, then rebase the python-team branch? Or would it be better to let python-team be built on the current commit, so that the team sees what breaks?
<PotentialUser-93>oh well, now there is a "big" backtrace of errors xD https://paste.debian.net/1368912/ (I just moved the define before the operating-system definition)
<PotentialUser-93>oh its because the keyboard layout doesnt exist then ?
<ieure>PotentialUser-93, it's because keyboard-layout doesn't exist within the scope of your define.
<apteryx>lechner: with the elogind-updates branch merged, it means your udevadm use case should finally work
<ieure>PotentialUser-93, You can duplicate the (keyboard-layout "us"); or (define %keyboard-layout (keyboard-layout "us")) and reference %keyboard-layout in your services define and the operating-systme.
<cbaines>andreas-e, I'm not sure it makes too much difference. Next I was going to look to node-team and libnode on 32bit systems, so maybe if we can get node-team merged next, then python-team can be rebased after those changes are on master as well
<ieure>PotentialUser-93, Or inline your services in the operating-system instead of defining them.
<andreas-e>cbaines: I see. libnodes is a new package, no idea if it breaking is a problem or not.
<cbaines>andreas-e, I think libnode is an existing package, although the build looks a bit flaky
<PotentialUser-93>I will try to put all the "services" together, I think I start go understand that modify return a list, but I still get `guix system: warning: cannot determine provenance for current system`, is it bad or its alright ?
<ieure>PotentialUser-93, It's alright.
<ieure>cbaines, this thing? https://github.com/plenluno/libnode
<PotentialUser-93>I apologize for all the questions, just I dont easily find answers to those in the doc, all the "substitute: updating substitute from <url>..." it repeats the same url sometimes 100%, now its all 0%, but I am not sure what its doing, if its trying to fetch/update something shouldnt a url only appear once ?
<ieure>PotentialUser-93, It's getting different stuff each time. The messages could be better.
<cbaines>ieure, I'm unsure, I think it's just node built as a shared library https://packages.guix.gnu.org/packages/libnode/22.12.0/
<Tadhgmister>so when it checks for substitutes it isn't getting a master list it is just checking for the things it needs? Is that related to doing several stages of downloading stuff from substitutes?
<PotentialUser-93>I see, thank you !
<ieure>Tadhgmister, Yes.
<ieure>Tadhgmister, There is no complete list of substitutes for Guix like there is a complete list of packages for, say, Debian. Because of how Guix rebuilds dependent packages, there's massively more substitutes than there are prebuilt packages for other distros.
<PotentialUser-93>I used to have 100% each time but since I tried to add nonguix it shows 0% for all the substitute, the "channel/substitute" remains a bit confusing, especially why they cannot be defined in the same file and "simply" have a flag like "if binary available, go for it instead of building from scratch"
<old>can someone explain to me why when I do: --with-debug-info=package '--with-configure-flags=CFLAGS=-O0 -ggdb3', I still end up with stripped binaries
<ieure>PotentialUser-93, You can define both channels and substitutes in your operating-system config. And the system works the way you describe already, without a flag.
<andreas-e>PotentialUser-93: I do not know for non-guix, but if you add a new channel, maybe you also need to add a substitute server to the daemon, and enable its signing key.
<cbaines>old, --with-configure-flags also needs the package --with-configure-flag=PACKAGE=FLAG
<cbaines>I don't know if that'll fix your issue though
<ieure>PotentialUser-93, The flag is --no-substitutes, which makes everything build locally.
<andreas-e>Normally the guix packages should still be substituted, but non-guix is not part of the project (as the name indicates...).
<old>cbaines: right I forgot to put it in the example above but I do have it in my script
<old>I feel like I need to force it by adding a debug output
<Tadhgmister>PotentialUser-93 I find that I typically need to enable a channel in one reconfigure then enable the substitute server in a second step once the channel is setup works consistently but that may just be unfounded paranoia
<ieure>PotentialUser-93, andreas-e, You do have to set up substitutes for nonguix (or any other channel you want them for). And if you want to avoid compiling stuff, you need to 1. Set up the channels and substitutes in your cnofig. 2. `guix system reconfigure' 3. Add those channel packages to your config 4. `guix system reconfigure'.
<ieure>Tadhgmister, Yes, Guix cannot use substitutes it doesn't know about, and reconfigures are atomic, so you can't add substitutes *and use them* in the same operation.
<PotentialUser-93>ieure, my channels are currently in a channels.scm next to my config.scm, I thought that was a "forced" way of doing it, since the channels.scm is just a list of channel, somewhere it must "source" that file no ? in my operating system file how would I setup the channels I wanna use ? and if channels are just a list, why for the substitute its more
<PotentialUser-93>"difficult" to add them ?
<Rutherther>old: are you sure you're changing the package you actually want and not a newer version?
<Tadhgmister>ok actually it would make sense that adding the channel and sub-server in the same step would work, I know using anything before the system is reconfigured to actually know them makes sense
<ieure>PotentialUser-93, You can put them in the channels field of your guix-configuration: https://guix.gnu.org/manual/devel/en/html_node/Base-Services.html
<Rutherther>PotentialUser-93: channels.scm is used for building guix with the channels. Channels.scm is not 'sourced' when built, it was already used to produce the guix command that is doing the build
<PotentialUser-93>what did I do wrong to get "guix system: warning: cannot determine provenance for current system", because you say its alright but it still shouldnt be there right ?
<ieure>PotentialUser-93, There are several places you can define channels: the channels.scm file; the guix-configuration in the operating-system; and in your user account's ~/.config/guix/channels.scm.
<Tadhgmister>if `guix describe` doesn't list a channel you won't be able to use it that is the connonical place to see what is enabled for channels
<ieure>PotentialUser-93, Which you use is a matter of taste and usecase, but I personally like to have them in the operating-system, because it centralizes the configuration and minimizes surprising discontinuity in channels.
<Rutherther>PotentialUser-93: you do guix pull / guix time-machine to build guix with the channels you specify. If you wanted to use the channels file in your os config, you can modify the guix-service-type, but that will just build the /run/current-system/profile/bin/guix with those channels, it won't be building your current operating system with that channels definition
<old>Rutherther: I apply the following transformation to the package in question: --with-git-url=lttng-tools@dev="$SOURCES_ORIGIN/lttng-tools" --with-branch=lttng-tools@dev=stall-buffer --with-debug-info=lttng-tools@dev '--with-configure-flag=lttng-tools@dev=CFLAGS=-O0 -ggdb3' '--with-configure-flag=lttng-tools@dev=CXXFLAGS=-O0 -ggdb3'
<PotentialUser-93>I didnt install guix yet, I am still modifying the config to do the system init, but I dont stop having errors or issues, now it seems to loop forever having 0% on all the substitute
<Rutherther>PotentialUser-93: channels.scm is used for building guix with the channels. Channels.scm is not 'sourced' when built, it was already used to produce the guix command that is doing the build
<old>Other transformation like git-url and branch do work as intended. But I always ahve difficult with debug-info, not just here
<old>The most reliable way is to add a "debug" output to the package
<Rutherther>PotentialUser-93: you do guix pull / guix time-machine to build guix with the channels you specify. If you wanted to use the channels file in your os config, you can modify the guix-service-type, but that will just build the /run/current-system/profile/bin/guix with those channels, it won't be building your current operating system with that channels definition
<old>and since this package is from my channel, I will do just that and move on, but I found the state of debug-info on Guix to be not super compared to other distros that have debuginfod
<old>maybe we could have debuginfod also for guix in some way
<PotentialUser-93>I am so confused right now xD
<PotentialUser-93>guix pull is to update guix, guix system reconfigure is to update the OS, so if I add channels and substitute it will happen when doing guix system reconfigure right ?
<Tadhgmister>you put channels and sub-servers in the os definition, you `system reconfigure` which will put those channels in `guix describe` and then `guix pull` actually pulls data for those channels
<Tadhgmister>then you can `(use-modules (CHANNEL))` to use the channel
<PotentialUser-93>but now my `system reconfigure` is stuck pulling 0% from my substitute
<Tadhgmister>would be worth trying `guix system build` and then `guix system reconfigure --no-substitutes`
<PotentialUser-93>also https://guix.gnu.org/manual/en/html_node/Specifying-Additional-Channels.html doesnt show how to modify `guix-configuration` to add the channels there directly, it only shows channels.scm
<PotentialUser-93>I will try system build
<Tadhgmister>system build will setup pretty much everything except like the grub config that refers to previous system generations, if build is also failing you can try either with `--no-substitute` but your issue sounds similar to something I've faced where I setup a substitute server for a channel that wasn't setup yet hence my paranoia to do them in several
<Tadhgmister>steps
<Tadhgmister>either that or you just don't have internet connection and the only thing youve been trying is contacting the sub servers s oyou haven't noticed
<PotentialUser-93>even with system build it shows 0% T-T
<Rutherther>old: oh right, you're applying multiple transformations like that. I am afraid with-debug-info could be non-composable as it's making a replacement instead of modifying the package itself
<PotentialUser-93>thats maybe that silly issue, I added 8.8.8.8 to my /etc/resolv.conf just now to see
<PotentialUser-93>it works...jesus christ
<old>Rutherther: oh I see. So the order of transformation matter?
<PotentialUser-93>and it download linux instead of building it, finally xD
<old>This seems counter intuitive for composable transformations
<Rutherther>old: it matters for with-debug-info transformation
<Rutherther>old: it matters for with-debug-info transformation
<PotentialUser-93>is there a way to do this https://guix.gnu.org/manual/devel/en/html_node/Customizing-the-System_002dWide-Guix.html modifying the %desktop-service multiple time without repeating ? it seems that it only take 1 lambda, so if I wanna add substitute AND add channels, I need to repeat it ?
<Rutherther>PotentialUser-93: just put it both changes to guix-configuration, no need for modifying it two times
<PotentialUser-93>omg still errors xD
<PotentialUser-93>ice-9/eval.scm:142:16: In procedure compile-top-call:
<PotentialUser-93>error: channel: unbound variable
<PotentialUser-93>hint: Did you forget `(use-modules (guix channels))'?
<PotentialUser-93>easy to fix I guess
<PotentialUser-93>finally its installed xD
<ieure>PotentialUser-93, Congrats.
<PotentialUser-93>I will see how much it takes me to configure something usable to my taste, but currently it asks twice for my disk password when powering on, and it didnt propose to store the secret in the TPM module like my current distro does during the installation
<ieure>PotentialUser-93, Yes, asking for the password twice is a well-known thing.
<ieure>PotentialUser-93, It's because Guix encrypts everything except the ESP, so you have to unlock /boot; other Linuxen generally leave /boot unencrypted.
<ieure>PotentialUser-93, No idea about TPM support. How does that work, are you putting the passphrase in the TPM and using a fingerprint to unlock?
<Rutherther>not passphrase, the key, similar way that you would put it on a filesystem, but this time you put it on a safer place than that
<Tadhgmister>looks like `luks-device-mapping-with-options` to do a keyfile is in the works to have that fixed though
<Tadhgmister>ieure actually guix also leaves /boot unencrypted, but it points to the kernel in the `/gnu/store` which requires decryption and doesn't forward the secrets to the linux kernel so linux also has to decrypt the drive
<apteryx>sneek later tell civodul this problem ended up being caused by shepherd make-systemd-constructor: https://github.com/ngircd/ngircd/issues/330
<sneek>Got it.
<Rutherther>guix doesn't leave anything unencrypted/encrypted. You configure it. There is initial config from the tui, but that's it, a default, you can do whatever you want, including having unencrypted /boot and /gnu/store, then you will be asked for a password only after booting the system from grub
<ieure>Tadhgmister, The ESP (/boot/efi) is left unencrypted, nothing else is.
<ieure>Tadhgmister, I mean, you can set up Guix in a variety of ways, but that's what the graphical installer does if you set up LVM/LUKS.
<apteryx>ngircd has this odd peculiarity where the process that checks the systemd socket variables is a forked child of the main process, so they use a variant of sd_listen_fds, which doesn't cope with that. not sure if this could have a role in it.
<apteryx>anyway, pounce now connects to ngircd, phew.
<ieure>The only thing in the ESP is Grub. Debian (at least as of the most recent stable) leaves all of /boot unencrypted, so your kernel and initrd are exposed, which can reveal information about the system.
<Tadhgmister>I think we agree but the way you are phrasing it is confusing, by default the tui sets up guix with a seperate partition holding the EFI information and then a root partition for everything else, the EFI partition holds information about guix revisions and if the root partition is encrypted it also specifies the commands to decrypt it so that the
<Tadhgmister>initrd and kernel image which are referenced directly to the /gnu/store on the encrypted root partition are loaded by the bootloader
<Tadhgmister>whether the mount point is /boot such that the first partition has a EFI folder in it or the /boot folder is on the encrypted partition and /boot/EFI is the mount point for the other partition is irrelevent as guix doesn't copy any kernel or initrd stuff to the boot folder right?
<Rutherther>Tadhgmister: the default from the tui installer won't have guix revisions on an unencrypted partition. That is under /boot/grub. But default esp mount path is /boot/efi, that's the only place where unencrypted files will be
<ieure>Tadhgmister, /boot/efi is the ESP, "EFI System Partition," that's what the UEFI loads to boot the OS. The only thing in there is a grubx64.efi file, which is the Grub payload. The only system info it has is the UUID of the LUKS partition it needs to unlock to load the next stage.
<ieure>Tadhgmister, /boot has a bunch of stuff, including the Grub configuration. All that stuff does point into the store.
<Tadhgmister>oh right because the revision info is in the grub config which is written to /boot/grub, ok cool I didn't realize that was how it works
<ieure>On Debian at least, /boot has the Grub config, kernel image, and initrd, and is not encrypted.
<Tadhgmister>ooohhhh that is why `with-keyfile` doesn't work for me! the fact that the grub config doesn't try to mount the root partition wouldn't be a problem if it is baked into the efi entry
<ieure>The ESP can't be software encrypted, otherwise the UEFI wouldn't be able to access the bootloader. It can still be hardware encrypted ex. with a BIOS-level system password and OPAL SED.
<PotentialUser-93>is it expected that when doing `guix pull` the `indexing object` part takes ages ?
<Rutherther>the first one does, the next ones are going to be a lot quicker
<ieure>PotentialUser-93, Uh, I don't know about expected, but it definitely does take ages.
<ieure>And yeah, especially the first time.
<PotentialUser-93>it still count as first time after the installation ? the `guix pull` I did before the `sytem init` doesnt count ? xD
<Rutherther>no, it doesn't, it has different cache
<PotentialUser-93>I see, since I am still in the searching phase, can I ask why you are choosing Guix instead of Nix ? I dont have much experience with those kind of distro, I am currently using OpenSuse Aeon. I was also wondering, Nix users often say that Flakes is "experimental", does Guix has something similar to Flakes ?
<Tadhgmister>I use nix within guix to get just a few things that haven't been packaged for guix and can say that I significantly prefer guile as a configuration language than what nix uses
<ieure>PotentialUser-93, I've never used Nix, but I like Lisp and don't like what I've seen of the Nix language.
<lilyp>csantosb: emacs-team is scheduled for merging?!?
<sneek>lilyp, you have 1 message!
<sneek>lilyp, csantosb says: is it worth sending emacs patches before merging the team branch ? I see many changes.
<lilyp>since when?
<ieure>PotentialUser-93, I also really appreciate how Guix is hackable without feeling hacky. I don't know if Nix is similar.
<jackson-nick>Hi
<Rutherther>PotentialUser-93: there is a person trying to make something similar to flakes (https://gitlab.vulnix.sh/users/spacecadet/projects), but other than that, no, there isn't anything similar to flakes
<Rutherther>PotentialUser-93: not sure why you're mentioning flakes are experimental. Is that important for the question?
<identity>PotentialUser-93: i prefer Guile Scheme to the Nix language, especially with the fact that Guile, being a full-blown language, doesn't need any bash machinery/whatever Nix uses for builds. i also don't use / need any proprietary software or firmware, and prefer to not have any in the repos
<trevdev>PotentialUser-93: You could use the guix time-machine to "flake," probably the closest thing you're gonna get for now.
<trevdev>ieure: I have used Nix for longer than I've used Guix. I still use Nix for work/WSL2. The documentation is scattered and inconsistent. Once you find your way it does click.
<trevdev>I too prefer Guix/Scheme. There's lots of package holes to fill here too ;)
<PotentialUser-93>its not really important, just comparing, for example `guix home` is builtin and "official" unlike on NixOS
<trevdev>PotentialUser-93: Nix's home-manager also supports service/program configurations that are more robust than that of Guix's as well. Guix definitely feels less "do what I mean"
<trevdev>But I don't necessarily feel like that's a bad thing
<jackson-nick>Hi. Is there a reason why some very popular packages like KDE and Gnome are outdated on the Guix repo?
<trevdev>jackson-nick: Yes, it's because they haven't been updated.
<trevdev>Please help xD
<jackson-nick>trevdev: Can I compile them from source in latest version using Guix without learning scheme and editing their package definition to bump the version number?
<trevdev>jackson-nick: Guix does not use the Filesystem Hierarchy Standard (FHS) so you would at a minimum have to learn guix well enough to write a shell environment to build it with
<trevdev>So ideally, you would learn how to package it, maybe in your own channel or a branch of the Guix source code and contribute it
<ieure>Does the `sssd' package fail to build for anyone else? Tried to reconfigure my system and it seems to be broken.
<ieure>On Guix commit 1d845b8.
<trevdev>jackson-nick: Everything you may need to know for creating your own local guix build and test environment is here: https://guix.gnu.org/manual/devel/en/html_node/Contributing.html FYI
<old>ieure: trying to build it rn
<old>ieure: check phase failed
<old>2 test fails
<old>FAIL: ad_gpo_tests
<old>FAIL: ad_common_tests
<ieure>old, Thanks, that's what I'm getting as well.
<jackson-nick>I heard Guix is going to migrate to CodeBerg. Is there consideration for a Matrix channel? IRC is complicated and I believe a less secure protocol.
<Rutherther>"[sssd] [sss_sssd_user_uid_and_gid] (0x0020): failed to get sssd user (root) uid/gid, using root" will need to get disabled probably
<Rutherther>(unless that's not the cause of the fail)
<old>jackson-nick: what is there to secure on IRC? This is public discussion anyway?
<identity>your mailing lists are insecure, anyony can read the plaintext!
<identity>yes that's the intention
<ieure>jackson-nick, Moving to Matrix has not been discussed and is unlikely to happen IMO.
<identity>matrix also is far more complicated than IRC
<Tadhgmister>jackson-nick assuming no changes need to be made to the packages you want to update other than version bump `guix refresh` can do that operation for you and if the packages compile feel free to submit patches. If they don't just work out of the box then some scheme would be needed to update it
<ieure>I would not be in favor of moving #guix to Matrix, personally.
<Tadhgmister>you'd want to look at the contributing section of the info pages for how to clone guix and use the `./pre-inst-env` to do the refresh and builds
<jackson-nick>old: Private chats between users should be secure, I spoke of security in general not just this channel. And Matrix is more user friendly.
<Tadhgmister>when you say matrix is more user friendly, do you mean specifically the element chat client is better advertised than suitable irc clients?
<ieure>old, Rutherther, Thanks for confirming. sssd itself hasn't changed since December, so must be an input causing breakage. Will have to figure this out.
<old>jackson-nick: I see. But nothing prevent users from communicating on different mediums if privacy is required.
<ieure>I will admit that the ability to directly upload code/config/images is a nice feature IRC lacka.
<ieure>*lacks
<jackson-nick>Tadhgmister: I mean for Matrix all you need to know is the structure of decentralization. And all you need to do is create an account on a provider.
<ieure>But I loathe every Matrix client, and I really love my IRC client.
<ieure>For context, I selfhost my own Matrix homeserver. So I'm not unfamiliar with it.
<old>ieure: IRC lack emojis I guess, if that's your thing
<ieure>old, That's a feature.
<old>lool
<identity>old: does it?🤔
<old>identity: I mean sure you can paste any unicode and probably I will see it since I'm in a browser
<old>not so sure if I was in emacs on a terminal
<ieure>You can put emoji in messages, but there's no reactji.
<Tadhgmister>but you do see the issue with hosting a chat channel for a project grounded in libre software on a platform that requires registering an account with some provider right?
<old>right
<old>^ ieure
<old>is matrix not ban in some countries?
<ieure>I'd have no problem with emoji if people used them properly, as punctuation. But the unwashed masses insist on replacing words with hieroglyphics. I just can't cope, I feel like a Westworld robot, eyes slide right off it, "doesn't look like anything to me."
<ieure>2025 and we're back to hieroglyphics. sigh
<jackson-nick>A Matrix account is just a username and password, no need for email or phone number.
<jackson-nick>old: I don't think decentralized protocols can be banned.
<identity>old: i mean, it should display properly as long as the terminal supports it and you have the fonts installed, i think
<Tadhgmister>no it is a username and password *on a provider server*, and unless GNU wants to host peoples private conversations they'd have to rely on their users going to some other provider to access their own chat services
<Tadhgmister>where as IRC you give a display name and you can participate
<ieure>Weeeellllll
<ieure>This is not really true.
<ieure>You have to make a Libera account and deal with SASL stuff.
<ieure>At least, you have to do that if your IP has a bad reputation, which most public hosting services do.
<identity>matrix also has user experience issues, like the endless "couldn't decrypt message" if you actually try to use E2EE, and the main server implementation is a resource hog (though i think much more efficient alternative implementations have popped up)
<identity>it's supposedly decentralized but i don't personally know anybody whose homeserver isn't matrix.org
<ieure>identity, I selfhost my own.
<Rutherther>me too
<neox>Fyi, I don't know if people here are aware, there is a Guix channel on XMPP
<ieure>Been doing it since like uhhhh 2018? Been a while now.
<neox>(You can find it here: xmpp:guix@chat.disroot.org?join)
<identity>well, i don't know either of you *personally*, and i would imagine saying something about self-hosting in a free software chat would bring a non-zero amount of answers
<ieure>I originally set up Matrix as an iMessage replacement when I dumped my Apple hardware. I'd probably go with XMPP if I was making that decision today.
<old>Can't wait for the Guix Discord!
<old>joke aside, I'm not going to create a matrix account
<Rutherther>April fools was 10 days ago
<old>if Guix migrate to Matrix, I will stay on IRC
<ieure>Same.
<trevdev>old: LOL
<aidansw>Hi, I'm running `guix system reconfigure /etc/config.scm` and just nothing at all is being printed
<aidansw>Its been over an hour
<trevdev>aidansw: I feel like `sudo` powers are required for a system reconfigure, not that this is totally related to your problem.
<aidansw>Huh, usually I do run it as `sudo`, but didn't this time- but you're right.  That may be a good case for an error message XD
<dariqq>great webkitgtk is broken now as well on i686-linux. I already have to skip tests in gtk and gst-plugin-good but now there is a build error as well. Not a fan
<dariqq>ACTION tries to add a patch and does not like the increasingly complex workarounds to get a working 32bit desktop
<ieure>Good lord, `guix time-machine -c $(git rev-parse HEAD) -- build sssd' inside a `git bisect' takes forever.
<ieure>Especially for something that, 99% of the time, takes a few seconds to download a substitute.
<ieure>Glad it exists, but man, it is sloooooow
<dariqq>ieure: cbaines mentioned sssd failure before https://logs.guix.gnu.org/guix/2025-04-11.log#155516
<ieure>dariqq, Ah, huh, thank you.
<ieure>It is weird that sssd needs Samba.
<ieure>Hm, sssd has samba/pinned as an input, but also adcli, which has samba as an input.
<lilyp>dariqq, what are you doing rn?
<zilti>Wow... XFS is 31 years old? How come that it's still absolute garbage? Setting this laptop up with it was a mistake... 2 minutes to boot, most of it stuck producing "invalid xfs inode" errors that can't be fixed with xfs_repair. I can only warn against using it. A few days it even had to be xfs_repaired or it'd refuse to boot at all.
<ieure>zilti, I understand you're frustrated, but I don't think any of that is helpful. Your issue is most likely the Guix bug that's preventing cleanly unmounting filesystems on reboot, not XFS itself.
<ieure>I probably wouldn't pick XFS for a new install, but I've had machines that ran it without issue for ~8 years.
<ieure>I'm not saying "it has no problems," just that experiences can vary -- that I had no problems doesn't mean that nobody else will, same as you having problems doesn't mean that everyone else will.
<dariqq>lilyp: Building mate for i686-linux and many things are broken there currently. It previously was only some test issues in the dependecies for cantarell font but since gnome-team updates it is also gtk4, gst-plugins,... and now also webkitgtk that fail to build/fail some tests
<lilyp>ahh, okay
<dariqq>at least the webkit build error has already been fixed upstream and i can just add the patch to the ever growing list of workarounds in my options->transformation
<csantosb>sneek: later tell lilyp, no, sorry, what I meant is: changing things in master will later conflict with emacs branch ? Say #:tests #t in master, will need to remove it later on, when it becomes default; same with new #:lisp-dir
<sneek>Will do.
<lilyp>ahh
<sneek>Welcome back lilyp, you have 1 message!
<sneek>lilyp, csantosb says: no, sorry, what I meant is: changing things in master will later conflict with emacs branch ? Say #:tests #t in master, will need to remove it later on, when it becomes default; same with new #:lisp-dir
<lilyp>yeah it'd be nicer to just target the emacs-team branch if one can wait a little
<csantosb>Just thinking about the most efficient way to contribute, avoiding duplications, conflicts and the like
<Rutherther>are there any news on #72406?
<peanuts>"[PATCH emacs-team WIP 0/4] Simplify creation of emacs package variants" https://issues.guix.gnu.org/72406
<csantosb>lilyp, ok, all changes go to emacs-team
<ieure>Does that mean I should stop applying emacs patches to master?
<ieure>I saw there are several, and I typically sit down Saturday morning to work through those.
<csantosb>Problem commiting to master is we will need to tune them back again in emacs branch
<csantosb>All those "chdir lisp" will disappear, same with "#:test #t", etc.
<csantosb>If not a hot fix, I'd say better commit to team branch
<lilyp>for new packages hitting master, things are not that fun, since they will likely be broken once mandatory testing rolls around
<csantosb>That's it. Better comply with new standard in a single branch.
<csantosb>And avoid diverging too much
<ieure>I'm not reading a lot of clear direction in that, but in the interest of not breaking stuff, I won't commit Emacs packages to master until emacs-team merges.
<bdju>Is there a quick one-liner that could let me downgrade my transmission package from 4.0.6 to 4.0.5? like the --with-commit= type of thing
<bdju>looks like it grabs a .tar.xz in the recipe so I'm not sure
<csantosb>Not that sure
<csantosb>583d881884 * gnu: Transmission: Update to 4.0.6.
<csantosb>d263c49919 * gnu: Transmission: Update to 4.0.5.
<csantosb>The diff shows significant changes
<csantosb>bdju: rather check 5.9 Inferiors
<identity>bdju: guix install transmission@4.0.5
<identity>or something like that
<ieure>That assumes 4.0.5 is still in their Guix, which is not usually the case.
<bdju>guix install: error: transmission: package not found for version 4.0.5
<bdju>No worries, will just use another machine/distro for this then, but was wondering if it'd be easier to do on Guix System than Arch. (I need to downgrade in either case)
<ieure>bdju, Just curious, why do you want to downgrade?
<csantosb>In Guix, you need to create an inferior, more or less a copy paste of the example in the doc
<bdju>ieure: a lot of trackers have banned the latest stable release of transmission due to a bug and I've already waited like a year for a new release that fixes the bug but there still isn't one
<ieure>bdju, Oh, bummer.
<csantosb>Is there a flag for "guix refresh -s module:emacs-xyz" for a not master branch ?
<lilyp>we have a manifest with all packages that use emacs-build-system
<trevdev>old: people can say what they want about Matrix being "better" than IRC but at least you don't get spammed with CSAM content on the clearnet (IRC). Avoid your matrix channels for a bit guys, it's horrifying over there
<ieure>augh
<dstolfa>trevdev: +1, not a fan of matrix at all. moderation is terrible