IRC channel logs

2026-06-01.log

back to list of logs

<apteryx>hm, gdm doesn't seem to source .bash_profile on a logout/login?
<apteryx>maybe just on a fresh reboot? was there a setting ta alter this?
<acidbong>moin. when Guix scans a channel for packages, does it only look for those defined with `package`?
<acidbong>also how does Guix match specifications? by `name` field or the Guile binding?
<apteryx>the problem I have is that emacs packages installed to ~/.guix-profile are not discovered... but the 'guix package --search-paths -p $HOME/.config/guix/current -p $HOME/.guix-home/profile -p $HOME/.guix-profile -p /run/current-system/profile' command that is in my ~/.bash_profile seems to do the right thing w.r.t. to setting EMACSLOADPATH
<apteryx>acidbong: matches by the name field
<apteryx>I believe it'll look for all exported package variables
<apteryx>ah, I suppose Guix Home does not expect me to use a .bash_profile file, perhaps?
<acidbong>apteryx: you can use it: https://guix.gnu.org/manual/devel/en/html_node/Shells-Home-Services.html#Bash-Home-Service (`bash-profile` key)
<apteryx>yeah, saw that; it defaults to '(), which is odd since Guix System has a %default-bash-profile skeleton for it
<apteryx>actually, it default to just if [ -f ~/.profile ]; then . ~/.profile; fi and if [ -f ~/.bashrc ]; then . ~/.bashrc; fi, implicits you cannot remove
<apteryx>efraim: in 5ef5095ab101874e1ddee99fabb9c14e30888b9d you cleaned up the %default-zprofile skeleton; should the same be applied to %default-bash-profile ?
<apteryx>efraim: I wonder if the loop here https://codeberg.org/guix/guix/src/commit/090eb8c8d46ee6b78f8e103ecadeb582ab8c0743/gnu/system.scm#L1099 is truly equivalent to https://codeberg.org/guix/guix/src/commit/090eb8c8d46ee6b78f8e103ecadeb582ab8c0743/gnu/system/shadow.scm#L189 ? I think this is the assumption you used to simplify %default-zprofile, correct?
<efraim>apteryx: uh, I haven't had to look at that in 2.5 years but I believe the intention was to decrease duplicate code and to move toward turning the home skeleton into a home-profile
<apteryx>I'm not sure it's correct, especially for foreign distributions that won't have the Guix System provided /etc/profile
<apteryx>(the profile merging part I see as potentially missing for them)
<apteryx>maybe I'm missing something?
<efraim>I think at the time there was a lot more "here be dragons" surrounding guix-home on non-Guix System
<efraim>so I think you're right, we shouldn't assume that /etc/profile is provided by Guix
<apteryx>I think the default should work for all users, even foreign distribution users, with perhaps a guix-defaults? to toggle to #f until we better automate it to remove extra code, if desired?
<efraim>I still want to import gnu/home/... into gnu/system/shadow
<efraim>I think at least some of the fields have a guix-default? toggle
<apteryx>oh, I see, using guix home instead of skeletons?
<apteryx>that'd be nicer indeed
<apteryx>they need to be synced, currently skeletons do more than gui xhome
<apteryx>but it's a bit complicated
<efraim>It needs more plumbing from the services first, for example the gdm service, but that's one of my forgotten TODO items
<apteryx>for example we may want to splice user provided .bash_profile in the middle of %default-bash-profile, so that export PATH=/run/setuid-programs:$PATH gets set last
<apteryx>ACTION was trying to figure out why EMACSLOADPATH is messed up
<apteryx>(things from guix home are found, but not from the regular guix profile)
<apteryx>that looks like a good problem for 'guix home container '
<efraim>thinking out loud for a moment, %default-skeleton-home-config is specifically "for" Guix System, but there's nothing preventing people from using it on non-Guix System, and the home-<shell>-service-types at a minimum shouldn't break login on non-Guix System when used on non-Guix System
<apteryx>uh, 'guix home container' does not expose /etc/profile
<efraim> https://codeberg.org/efraim/guix-config/src/branch/master/efraim-home.scm#L1170-L1173
<efraim>I've definately noticed some inconsistencies between guix-home and the skeleton files, I just assumed I set something up wrong
<apteryx>nor does it expose .guix-profile, so debugging is limited
<apteryx>interesting
<apteryx>efraim: these are %default-bash-aliases
<apteryx>I also lost these
<efraim>we have gnu/system/shadow imported into gnu/home/services/shells, so I think it makes more sense to make that the canonical location and note it explicitly
<apteryx>looks like we should extend %default-bash-aliases instead of overriding it :-)
<apteryx>the doc could help getting this right
<efraim>unclear wording is unclear. make gnu/system/* the canonical location and then pull them into gnu/home/*
<apteryx>something like this: https://paste.guixotic.coop/magit_stow-7394-8474.html
<efraim>that looks like it should work
<apteryx>efraim: I think the guix package --search-paths is more powerful that just sourcing each profile; it seems to really merge the profiles
<apteryx>e.g. if I have emacs-some-lib in ~/.guix-profile and my emacs (consumer) in ~/.guix-home, it sets both in EMACSLOADPATH
<apteryx>so even on Guix System it's beneficial to have it
<efraim>that's a lot better than telling everyone the gotcha that it all needs to be sourced from the same profile
<efraim>`guix package --search-paths` sets the search-paths in the order that they are listed, but I assume it overrides the ones that might already be set, breaking guix-home on non-guix-system
<efraim>I think some of /etc/profile should be revisited, espeically the ones with an associated bug
<efraim>also, we've removed lsh and lsh-service-type, so we can remove all those workarounds
<apteryx>ideally we'd have a single thing to maintain ^^'
<apteryx>that every user could use
<apteryx>including the installer and guix home
<apteryx>now we have skeletons, guix system specifics, guix home and the installer
<apteryx>it looks like what happens in my case is that GDM profile only sources ~/.profile and doesn't care about ~/.bash_profile
<apteryx>if it did my EMACSLOADPATH would be set correctly
<apteryx>I'm not sure why I'm the only one having found that ~/.guix-profile becomes useless on GNOME following a migration to Guix Home
<apteryx>err, I just pushed two commits to master by mistake (forgejo)
<apteryx>ACTION thought they had issued pull, but apparently my shift key didn't register ^^'
<apteryx>(reverted)
<apteryx>the small doc improvement is in a809ff20a07
<yaircul>Gitopullo comitto merge conflicto
<apteryx>efraim: some prior work I should look into: https://codeberg.org/guix/guix/issues/3546#issuecomment-7744121
<apteryx>but to keep going for now I'll put everything in my home profile ^^'
<efraim> https://codeberg.org/guix/guix/pulls/2982#issuecomment-7439794
<efraim>it looks like we really do want 'guix package --search-paths' for all the things
<apteryx>by the way, if someone would like deploying their own forgejo instance, I'd be happy to have feedback on codeberg.org/guix/guix/pulls/9006
<apteryx>cbaines: you may be interested, since I think I saw you are running forgejo yourself ^
<efraim>apteryx: for `guix package --search-paths` check out guix/scripts/profile.scm:590, there's --search-paths={exact,prefix,suffix}
<efraim>TIL about home-xdg-data-files-service-type, time to put that into use
<csantosb>Hi Guix ! I have a server with a small root partition; and a large /home partition.
<csantosb>Is is possible to move /gnu/store under /home/me/gnu/store, creating a simlink to /gnu/store ?
<csantosb>Rather a bind mount ?
<efraim>csantosb: I think you can bind /home/gnu/store to /gnu/store but not /home/gnu to /gnu, but I'm not sure
<iyzsong>bind mount works, but symlink won't
<csantosb>iyzsong: gnu/sotre or just gnu ?
<csantosb>s/sotre/store
<iyzsong>csantosb: as i remember, both should work. you can try..
<csantosb>efraim: is home-xdg-data... documented somewhere ? just found 20645d84678
<efraim>yes, but I didn't realize it was there
<gabber>is arunisaac not in etc/teams.scm?
<ekaitz>gabber: no
<csantosb>Regarding the move of the store somewhere else, it's documented in "2.1.1 Installation with a pre-mounted store"
<csantosb>Works better if one reinstalls from scratch; cp of /gnu/store is problematic.
<civodul>hey there!
<civodul>pulls.ci was restarted and in doing so forgot everyone’s pull requests
<civodul>but you can trigger it by rebasing your pull request
<civodul>just so you know :-)
<civodul>context: https://codeberg.org/guix/maintenance/pulls/110
<yelninei>civodul: Is https://codeberg.org/guix/maintenance/pulls/100 already deployed? To restart https://ci.guix.gnu.org/build/20277509/details ?
<ghil>by setting (home-fish-service-type) in the home config, it doesn't set the user's shell (which is declared in system) right? I tried adding to the user in system, pointing it to /bin/fish, only to not be able to reconfigure. What's the best solution to have Guix manage fish?
<civodul>yelninei: good question; sorry for dropping the ball, lemme see
<civodul>yelninei: i checked one of the build nodes: it’s running 642382f87564a0959a95ebabd197842334751601 from March
<civodul>so i guess it has yet to be deployed, right?
<civodul>i can initiate that
<yelninei>thank you, I hope it can build commencement with that (i can on my system), although there is still the issue with the reboot timer
<civodul>alright, i started ‘guix deploy’ (which takes ages because it has to build those childhurd images)
<yelninei>civodul: When it is finished can you reschedule the gcc-boot0 as well?
<RavenJoad>Does Guix, Shepherd, or mcron have an alternative to schedule a command to run in the future?
<ieure>What do you mean by "an alternative?"
<rogerfarrell>What does generated code mean in the context of (gnu home services mpv)?
<waffles2>did they fix the allow downgrades thing for stable yet
<psycotica0>> Does Guix, Shepherd, or mcron have an alternative to schedule a command to run in the future?
<psycotica0>Do you mean a one-off command, rather than a recurring one?
<psycotica0>Like the `at` service (`atd`)?
<RavenJoad>ieure: I cannot seem to find a package that provides the 'at' command to run something at a future scheduled time.
<RavenJoad>psycotica0: Yes, that is the tool I was thinking of.
<ieure>RavenJoad, Indeed, it seems at is not packaged for Guix. Shepherd can do timers, but I don't think it has a convenient CLI for it like at does.
<yelninei> https://doc.guix.gnu.org/shepherd/latest/en/html_node/Timer-Service.html
<RavenJoad>That was what I was thinking. Ok. I am asking this because I want to schedule-send emails.
<cdegroot>mcron and scron are available.
<identity>what about macarons?
<RavenJoad>cdegroot: Right, but those are for well-known tasks that occur at periodic times. In my mind, if I could create a one-shot mcron job, that would fit the bill.
<cdegroot>Well, IIRC `at` was part of Vixie cron so i'd start looking at the cron packages that Guix bundles for similar functionality.
<RavenJoad>mcron does not have a system where you can schedule a task to run once in the future by submitting a one-shot job to the mcron daemon.
<RavenJoad>And the mcron manual says as such too. (mcron) AT commands
<RavenJoad>At this rate, I wonder just how hard it would be to add what I want to mcron...
<cdegroot>it's not hard to replicate at. Have a job that runs every minute that checks a directory that contains jobs. The easiest would be to name them the time they need to run (in seconds-since-epoch) and the contents to be any shell script.
<cdegroot>That's pretty much exactly what `at` does anyway :)
<RavenJoad>That was going to be my first cut at this with opensmtpd actually. Have a proc-exec filter, dump the info to disk, and leave an mcron job to check that every once in a while.
<RavenJoad>But for cleanliness's sake, I think it would be cool to have one-shot jobs too.
<RavenJoad>Then again, shepherd has timer services, which do pretty much what I want. (shepherd) Timer Service
<cdegroot>You'll find that if you want to extend Shepherd in a clean way, you'll pretty much end up doing what I sketched out above (and how at works on *nixen anyway).
<cdegroot>By the way, doesn't hurt the absence of cron and at (and batch!) Guix' POSIX-compliance? ;-)
<cdegroot>ouch, that sentence was malformed. Hope y'all understand it anyways.
<PotentialUser-80>Hi there! I have a question I hope someone could answer: I have download several cursors on an Openbox machine. However, they are only visible when using flatpaks. Anywhere else (i.e desktop) only the default cursor is visible. I have an  Xresources file that uses an `Xcursor.theme = <cursor-name>` ,but even that does not change things. I have
<PotentialUser-80>also tried installing the cursor globally in /usr/share/icons but no dice. Does anyone know a permanent fix for this issue? I know its not the cursors themselves since I tried several (from the pling store).