IRC channel logs
2025-03-25.log
back to list of logs
<meati>What's a quick way to check if a package definition has been updated/changed recently? <meati>Nyxt has stopped working and I think it has to do with webkit-for-gtk3 <ieure>meati, git log or git blame. <jakef>wonder if anyone has a yasnippet for a guix package? <dcunit3d>jakef: in guix source, there are snippets in ./etc <dcunit3d>jakef: the patch is for cmake 3.30.1, but `guix search cmake-3.30` shows 3.30.3 (& includes the cppdap as a native input) <dcunit3d>jakef: to check you can use `guix edit cmake` and jump to source with EDITOR. also, for the build system, in ./guix/build-system/cmake.scm, it adds a #:cmake keyword argument (implicitly in "lower" via "private-keywords"). <dcunit3d>instead of snippets, you can use `guix import` for some languages/systems <ulfvonbe`>hmmm, I recently upgraded my guix system and now I can't login over ssh. /var/log/messages says: error: PAM: pam_open_session(): Module is unknown <ulfvonbe`>I've tried running 'sudo herd restart ssh-daemon' but it still happens <ulfvonbe`>guix system: warning: exception caught while executing 'eval' on service 'root': <ulfvonbe`>no code for module (shepherd service system-log) <ulfvonbe`>which probably prevented the ssh service from being upgraded <nvaxplus>I'm trying to use guix to run some old code that uses python2 and pygame. I'm trying to start a guix shell with both, guix shell python2 python-pygame but the python executable in the shell can't find pygame. Do python2 packages in guix have a special designation? I'm using guix on ubunut <RavenJoad>This is just a weird thing, but how can python-numpy and python-pandas have incompatible versions of numpy inside the same Guix commit (5bf7d80535720077aec104a9904480d08b9b4f2b, I think)? <ulfvonbelow>(defined? 'process?) gives #t when run with 'herd eval root', but #f when run in a service's destructor <ulfvonbelow>ah, I see, it's because (current-module) has changed by the time the destructor is run <ulfvonbelow>gotta run the check inside the dynamic extent of the config file <lactose>Is it possible to use multiple branches of Guix channel at the same time? <futurile>lactose: I think you'll get undefined behaviour, I remember someone saying that the ordering of channels isn't guaranteed - so which version of the 'same' package won't be certain <Rutherther>lactose: what goal do you actually want to achieve? <lactose>I want to try out emacs from the emacs-team branch, but I suppose there are better ways of doing that <futurile>use time-machine with a guix shell is one way to do it <Deltafire>did something change on the issue tracker? i'm sure i used to be able to change the sort order from 'random' to 'newest first' <futurile>I'm unsure how helpful it will be - lets see if people respond to bugs since they see them here :-) <jakef>does guix build or guix shell check for hash mismatch? <jakef>i'm using a wrong hash and it builds/installs the package without complaining <jakef>does hashes only get checked during a guix pull? <futurile>jakef: guix build checks the hash, but it cache's the source - so if you didn't change the version but the source changed it can catch it out (I think) <futurile>jakef: anyway, you can do guix build --no-substitutes --no-grafts --source <package@version> <jakef>thanks futurile i'll give it a try <jakef>(i changed the version and not the hash) <futurile>hmm, if you change the version it should have caught it, as that causes it to download a new version of the source <futurile>and you're not doing something like building the wrong version of the package, something weird like that <futurile>yep, that's the expected output - telling you the hash is wrong and what it should be <jakef>note the appearance of version 11.1.3 there. not sure why that's invovlved <jakef>this is a bump from version 11.3.0 to 11.3.1 <futurile>of course, you used guix hash to independently check it <jakef>yeah that actual hash is the correct one. the problem is it accepts the hash for 11.3.0 without complaint <futurile>are you building this in a checkout of the guix source, or using a file or something? <futurile>you specified the specific version to build with geant@11.3.1 ? <jakef>i could specify it, but i also just see it building 11.3.1 <ulfvonbelow>a fixed-output derivation's filename is based on the name of the derivation and its output hash, among other things. If you don't change the derivation name or the hash, it will look for the same source in the store, see that it's already downloaded, and proceed <futurile>and how is the source defined, is it a version or a specific commit - I see the first line saying that it's moved HEAD to a commit which equals the tag (maybe?) 11.3.1 <futurile>yeah - that's what I was saying about it "caching" the source - if it thinks it's the correct one it won't re-check <jakef>ah so specifying (file-name (git-file-name name version)) would avoid this? <ulfvonbelow>if that name+version+hash combo hasn't been downloaded yet, it would try downloading it, and if what it gets from the specified url doesn't match, it will error out <ulfvonbelow>but in general, detecting upstream hash changes only happens when a download is actually warranted <ulfvonbelow>otherwise you'd redownload all the transitive sources for everything in the dependency graph every time you tried building something <futurile>so the --source switch to guix build will check this <ulfvonbelow>actually no, because --source works by replacing the origin with a "dynamic" one <ulfvonbelow>that is, source will cause guix to download it (on the client side) and then use whatever it gets as the actual source <jakef>is it normal for the --source to return a checkout of a different version? <jakef>guix build --source -L guix-channel geant4@11.3.1 -> /gnu/store/...-geant4-11.1.3-checkout <ulfvonbelow>--source will build the fixed-output derivation for the source of the specified package. If it's already built, it will just tell you the output path. <futurile>I guess you can do --source --check to ensure it actually does a new download <jakef>that failed successfully! i saw the line "warning: rewriting hashes in `/gnu/store/...-geant4-11.1.3-checkout'; cross fingers" <ulfvonbelow>that's a daemon message unrelated to the output hash mismatch <ulfvonbelow>it's there because it can't use the usual store path for the "test" build <ulfvonbelow>(technically it probably could inside the build container, but the hash-rewriting code probably predates the use of a build container) <Kabouik>I am getting a "guix: guix: command not found" error when running `guix time-machine -C channels.scm -- guix shell --container -m manifest.scm`. "guix" is not a package listed in the manifest. What am I doing wrong? <Rutherther>Kabouik: don't put guix after --, it already calls guix, so it should bejust arguments to guix, ie. "-- shell --container ..." <Kabouik>Yeah my bad, I'm (a bit) used to using guix shell, but not together with time-machine, and didn't see the redundancy here. <Kabouik>Actually my attempt at demonstrating how great time-machine can be are failing for now: gnu/packages.scm:578:4: In procedure specification->package+output: Throw to key `quit' with args `(1)'. My manifest.scm only contains r-core and r-ggplot2 as packages (it's just a demo). <Rutherther>time machine just builds different guix and executes it, it's similar to if you did pull to a transient profile, so I find it very unlikely that what you did have something to do with time machine itself <Rutherther>are you sure the error you sent is the actual error? did you look at the lines prior to it? <Rutherther>I am getting r-core not found for your manifest. And even when searching in guix, I don't see a package with that name <Kabouik>Oh, I guess r-core is actually not in the channel I put in the channels.scm. Good point. <Rutherther>this is what you got: guix shell: error: r-core: unknown package <futurile>lechner: yeah, does the bot know to rate limit - I think someone sent a number of patches to a bug and it got kicked out <Kabouik>I meant the third paste is all I got. But you made me realize that r-core is in the guix-cran channel (which I pruned from my demo channels.scm), it must be named differently in guix. <Kabouik>(It's actually not in the Guix channel I think, just guix-cran; didn't know that.) <FrenchNewbie>i switched from sway to swayfx and now my greeter just loops on the login screen <FrenchNewbie>i also have a question concerning guix system reconfigure <FrenchNewbie>it seems like it always have to download something even from to reconfigure that launched 5mins apart <ieure>FrenchNewbie, It depends on what changes you made in between reconfigures, if you added new packages or services, of course those will have to download things. <ieure>What did you remove, and what got downloaded? <FrenchNewbie>i removed sway and i got about a gig of packages downloaded <FrenchNewbie>and after that i changed something in my service declaration and got about a gig downloaded again <ieure>FrenchNewbie, Definitely sounds unexpected, but, can't really offer an explanation without seeing exactly what changes you made & what was downloaded as a result. <FrenchNewbie>from what i see its like he redownloads every packages i declared in my config every time <ieure>"changed something in my service declaration" is extremely vague, like, if your change was adding gnome-desktop-service-type, then yes, it's doing to download a bunch of stuff. <ieure>FrenchNewbie, Definitely not how the system works, substitutes are only downloaded if a copy doesn't exist in the store. <ieure>I've reconfigured with smallish changes (like adding a group to a user) many times, and it downloads nothing. <FrenchNewbie>i removed the line (sway swayfx) in my greetd-wlgreet-sway-session <FrenchNewbie>rn its still reconfiguring and i see a VSCodium download, package i didn't touch from day one <ieure>FrenchNewbie, Removing that line will change it to the default `sway' package defined in the configuration, which will have to be downloaded, along with any of its dependencies. <FrenchNewbie>i don't have the sway package declared, only swayfx, and no trace of original sway download <ieure>FrenchNewbie, If you've run `guix pull' in that month, vscodium may have been updated or rebuilt due to a dep changing. Guix is a rolling distro, stuff changes every day. <ieure>Yes, but you've changed thing in between, presumably. <ieure>Yes, but VSCodium itself may have changed, is what I'm saying. <futurile>maybe you installed it by hand, and it's in your current profile somehwere <ieure>FrenchNewbie, The `sway' package is the default if you don't specify an alternative, so if you removed (sway swayfx), `sway' will be used whether you explicitly say so or not. And if you don't have the current sway package, it will be downloaded. <futurile>I agree with the general point you're making - it often downloads things, and the Ux doesn't make it clear _why_ it's doing so. I personally haven't found a good way to figure out why it's doing it. <FrenchNewbie>so i can't test if my greeter loops without that line and only swayfx declared throught my config.scm ? <futurile>generally, any change to an input causes a new derivation, and there are lots of things that change within the dependency graph which cause this <ieure>FrenchNewbie, Honestly don't understand your question. <ieure>FrenchNewbie, What do you mean by "the greeter loops?" It crashes and restarts? You log in and the session crashes and you get kicked back to the login screen? <ieure>FrenchNewbie, FYI if you don't already know, if you had a working system configuration, you can use `sudo guix system switch-generations' to get back to it, or select it from the GRUB menu when the system boots. Very helpful if you have a non-working system, but a previous generation worked. <FrenchNewbie>as i switched from sway to swayfx, i encountered a weird behaviour that made my wlgreet loops on the login page without beiing able to launch sway, in my config i had removed sway declaration, added swayfx as a package and added (sway swayfx) in my wlgreet. <FrenchNewbie>switching to tty2 allowed me to login from simple CLI and launch swayfx with the sway command <FrenchNewbie>my config file has specific swayfx options that doesn't returns error so i confirm that the sway command launched swayfx and when doing ls -H on my /run/current-system/.../sway it is linked to the swayfx binary <FrenchNewbie>futurile only install packages from packages declaration in my config file <futurile>maybe the daemon just likes to download VSCodium then - in a world of AI, who knows ;-) <FrenchNewbie>i dont think gcc and clang update multiple times a day too <ieure>FrenchNewbie, Unless you share: `guix describe' and `guix system describe' output, your complete system config before and after changes, and the specific command you run / output you got, nobody will be able to give you an answer. <ieure>FrenchNewbie, If you feel that something's wrong, feel free to file a bug report containing that information and what you expected to happen instead. <futurile>do we have a swayfx service? I can see some requests to update the swayfx package itself on the bugtracker. <FrenchNewbie>swayfx has been updated to 0.4 if thats the version you're talking about <futurile>at the start you said you had some specific configuration for swayfx - I don't use either so have no clue here - I'm wondering if the default sway configuration, or however you're adding the configuration is clashing <FrenchNewbie>since i had an inode problem i took the habit to clean my store by running guix gc <FrenchNewbie>i would always make sure my generation was correct before cleaning the last generations and make guix gc <FrenchNewbie>this time i didn't gc to make the report ieure asked for <FrenchNewbie>question is now, shoudn't gc only remove what i don't need anymore and only keep whats in my generation / config ? <Rutherther>gc will collect everything that isn't gc rooted. The build inputs or your system aren't gc rooted by default. Also previous generations are kept unless you pass --delete-generations as they function as gc roots. <RavenJoad>I need the man pages for C signal handling. On another machine that already has these man-pages, they are in section 2 (Linux syscalls). Which package provides Linux manpages? I cannot seem to find a doc output from linux-libre/linux-libre-headers, and linux-libre-headers does not provide it. <RavenJoad>FrenchNewbie: It just means that you have specified a location external to the store that points into the store. <ieure>RavenJoad, I wouldn't; it's honestly way too difficult to figure out what Guix package provides a particular file. <FrenchNewbie>what is the good way to clean without to redownload everything again then ? <Rutherther>FrenchNewbie: it just means it's not a subject for gc collection as something was made (made by guix, you can't make them manually with just links to the store) to refer to it outside the store <ieure>RavenJoad, It seems obvious in retrospect, but to figure it out, I had to `dpkg -S' the file on a Debian machine, then `apt show' the package to find the source, then `guix search' that name. <RavenJoad>FrenchNewbie: For example, your system is rooted to somewhere in /run for the running system and is rooted in /var/guix/gcroots. This prevents guix gc from deleting your running system. <ieure>RavenJoad, This is a terribly poor UX. <RavenJoad>ieure: I'm used to it. I would usually do a 'find /gnu/store/ \( -name '*sigaction*' \)' to find what I want. I just always forget where to find things. <ieure>RavenJoad, Yeah, but that only works if you already have the package installed, which obviously doesn't work if you're trying to find out what package has a thing you want. <RavenJoad>FrenchNewbie: Many things built by Guix are not rooted (guix build & guix shell for instance). So doing a gc would remove anything pulled in by those commands. <RavenJoad>ieure: Agreed. But for something as common as sigaction, I would expect something to pull in man-pages somewhere. <Rutherther>FrenchNewbie: It depends on what you're actually 'redownloading', the most of it will probably be ungrafted packages. To prevent that you could gc root them with "guix system build --no-grafts -r ./my-system-root-no-grafts" and run that every time you update your config before/after reconfiguring <ulfvonbelow>note that the garbage collector does attempt to take into account things like open files and paths in environment variables for determining what is live <ulfvonbelow>so if you 'guix build' emacs and then run it, a gc will only collect it once it's no longer running <lechner>Rutherther / I don't use LUKS but have some bootloader patches you might find helpful <Rutherther>it doesn't 'try to', it just does, nothing that is running will get gc'd as guix daemon takes into account stuff in /proc as gc rooted <RavenJoad>ieure: Excellent. I saved all of that to a manifest, so I never have to remember or ask again. <Rutherther>anyone knows what makes "(operating-system (inherit other-os) (services (operating-system-services other-os)))" end up with an error that there is more than one service of type 'shepherd-root'? Why is shepherd-root added to the system again? Is there some hidden mechanism that somehow transforms the services? If I don't specify services field and just inherit, it's fine. <Rutherther>lechner: oh? what patches do you happen to have? <FrenchNewbie>i feel like i may just endup complicating things for me rn <FrenchNewbie>is it possible to declare root user profile settings in the config.scm ? <FrenchNewbie>searching this up online only gave me forums topic where everyone says it shouldn't be done <ieure>FrenchNewbie, What kind of settings? <lechner>Rutherther / I reorganized the bootloader data structures so it's easier to pass data back and forth. I am interested in improving my boot menus. It's not fully done yet but cleans up eighty percent of the mess or so <lechner>i have run them in production for a year to two <FrenchNewbie>i would like to use fish rather than bash when i log into root <Rutherther>lechner: oh, did you submit that to the guix patches already? Because I remember looking at patches that do that <FrenchNewbie>but i read that apparently guix relies a lot on the fact that bash is the default <FrenchNewbie>is there a way to make that change only when i sudo into root ? <ulfvonbelow>Rutherther: operating-system-services isn't a direct field accessor, it adds some other stuff too <ulfvonbelow>apparently it doesn't check whether said other stuff was already provided <ieure>FrenchNewbie, You'd have to write a procedure which maps over %base-user-accounts, comparing the username against "root" (and/or uid = 0), then returns a new user-account inheriting the one it found, with the shell field changed. <Rutherther>ulfvonbelow: ooh that explains it, I haven't realized it might not be a field accessor, thanks <Rutherther>gc will collect everything that isn't gc rooted. The build inputs or your system aren't gc rooted by default. Also previous generations are kept unless you pass --delete-generations as they function as gc roots. <Rutherther>the accessor is called operating-system-user-services, using that works <lechner>Rutherther / maybe, but I have updated them since then. I'd be interested in cooperating to bring that effort further and maybe even to a successful conclusion <ieure>FrenchNewbie, You could make a shell alias that expands to `sudo -sHE fish' <FrenchNewbie>i guess modifying %base-user-accounts and adding the command i use as sudo to be launchable from my user would be a nicer solution <lechner>Rutherther / it's a reasonably long series so there is great reluctance to accept it unless several sets of eyes have been over them. i too would love to explain to someone what I did there <FrenchNewbie>i only sudo to guix pull, reconfigure and updatedb for mlocate <ieure>tschilp, Can you paste your whole home config (or the part referencing the service)? <FrenchNewbie>my channels aren't synced between the system ones and my user <Rutherther>so you switch to root and then reconfigure, or what exactly? sudo guix reconfigure will use your user's channels, not root's <Rutherther>so if you aren't using root except for reconfiguring I don't really see a point in pulling as root <ulfvonbelow>one useful side effect is that one can freely tinker with their user's guix without having to worry about accidentally making it so that the next time you try adding a user you have to rebuild the kernel or something <ulfvonbelow>that is, it's an extra guix pull profile for a dedicated task <FrenchNewbie>Rutherther because even sudo guix system reconfigure doesn't get my extra channels <Rutherther>ulfvonbelow: but for that you don't need root's guix, you just use different guix to reconfigure <Rutherther>FrenchNewbie: it definitely does if you don't use -i flag <ulfvonbelow>right, but not everyone knows that, plus writing out the path to another guix is more to remember than switching to root, which you'd be doing anyway <ieure>Most Guix users don't do it this way, but I've gotten the best results by configuring all my channels in the system configuration and omitting channel config from my user account entirely. <FrenchNewbie>from my user, using only 'sudo guix system reconfigure <path to config file>' or 'sudo guix pull' throws me errors. to avoid those errors i log into root with sudo -i and then run the pull and reconfigure commands as root <ieure>Substitutes *have* to be configured in the operating-system, and it feels super weird to me to configure substitutes for channel X in there, but not the channel itself; and the channel in my user configuration, but not the substitutes. <Rutherther>FrenchNewbie: then it seems something is wrong with your setup, possibly non-default sudo configuration, or that you're relying on guile load paths env variable rather than on the guix channels for example <ieure>So I keep all channel stuff in my operating-system and everything works consistently everywhere. I like that. <FrenchNewbie>i have the same channels.scm in my /etc/guix and in my /home/<user>/.config/guix <FrenchNewbie>however it feels like my /home/<user>/.config/guix/channels.scm doesn't get used by default as my user <ieure>Right. I don't have any channel configuration ~/.config/guix, is what I'm saying. Only the system. <futurile>lactose: ah cool you found a solution :-) ... I've never used them (need to check it out!) <Rutherther>anyone knows what makes "(operating-system (inherit other-os) (services (operating-system-services other-os)))" end up with an error that there is more than one service of type 'shepherd-root'? Why is shepherd-root added to the system again? Is there some hidden mechanism that somehow transforms the services? If I don't specify services field and just inherit, it's fine. <lactose>FrenchNewbie: I'm still fairly fresh at Guix, but I don't have a separate channels.scm for system and user. The only one I use is in my .config <ieure>Rutherther, Yes, operating-system-services is a procedure that computes some base services not explicitly listed in the configuration, it gets called when reconfiguring, so adds the same things twice. operating-system-user-services is the actual field accessor for the operating-system record. <ieure>FrenchNewbie, There isn't, as far as I know. Are you looking for alternate sources of substitutes for the Guix channel, or substitutes for other channels? <ieure>Other channels usually will give the URLs in their Git repos. <ieure>ci and bordeaux are the official Guix channel substitute servers, they're in the configuration by default. <FrenchNewbie>must have decided to use the only channels that don't have substitutes then <ieure>Far as I know, the only other source for Guix substitutes is cuirass.genenetwork.org. <FrenchNewbie>from my user, using only 'sudo guix system reconfigure <path to config file>' or 'sudo guix pull' throws me errors. to avoid those errors i log into root with sudo -i and then run the pull and reconfigure commands as root <FrenchNewbie>errors are tied to extra channels i use in my config.scm <FrenchNewbie>i have the same channels.scm in my /etc/guix and in my /home/<user>/.config/guix <FrenchNewbie>however it feels like my /home/<user>/.config/guix/channels.scm doesn't get used by default as my user <Rutherther>so you switch to root and then reconfigure, or what exactly? sudo guix reconfigure will use your user's channels, not root's <Rutherther>so if you aren't using root except for reconfiguring I don't really see a point in pulling as root <ieure>Rutherther, They said that gives errors. <ieure>I would be interested to know what the errors are. <FrenchNewbie>when reconfiguring : no code for module (saayix packages terminals) <Rutherther>and my bridge has started reposting messages again:( <ieure>FrenchNewbie, Have you ever run `guix pull' as your user? <FrenchNewbie>when pulling: "can't connect to /var/guix/daemon-socket/socket" <identity>the only thing you need sudo for is system reconfigure i think <FrenchNewbie>i'll check on the channel logs for answers if you found one and post the results when i can next week <tschilp>ieure: there's still my mcron definition in there as well <Rutherther>and my bridge has started reposting messages again:( <ieure>tschilp, I'm not familiar with how Shepherd timers are implemented, but since your home service doesn't start a shepherd service, it won't be in `herd status' output. Same as stuff like the home-bash-configuration. <df>ooh, shepherd timers look cool <df>I should add the shepherd manual to my reading list, so far I've only really learned about it from guix docs <tschilp>ieure: thanks for looking into this. I wouldn't really care about my service not being listed in ~herd status~, but it would be nice to replace the mcron ;) <ieure>tschilp, Yeah. You'll have to figure out a bit more about shepherd times and how to inspect their status. <ieure>Hard to say right now whether the problem is the timer not working, or it is working, but the script isn't. <df>lol, that was actually a pure coincidence, I just discovered shepherd timers myself and didn't notice you were already discussing them <meati>is `pasystray` broken for anyone else? I get an instant segfault <df>in case it's any help, in the course of my debugging I noticed that the details of failed shepherd timers are logged to syslog <tschilp>ieure: i somehow think I have to understand how to build a gexp that runs a shell command -- this is totally trial and error here :) <ieure>tschilp, Lots of good stuff in there to rip off. :) <Rutherther>what would be an idiomatic way to add a path to drv file to gc-root-service-type? Something like "(derivation-file-name (with-store %store (run-with-store %store (package->derivation bash))))" seems to be working, but I think it introduces an unnecessary step where first this derivation is calculated and only then next derivations are built <tschilp>ieure: looks like it... ~file-append~ looks promising... <lechner>tschilp / are you good with timers, or do you still have questions? <df>do shepherd timers behave the same way as mcron jobs if they're missed while the machine is suspended (ie run the missed ones when it wakes up)? <ieure>Not sure. I think whether you want that or not highly depends on the thing being run. <df>this is for updating my locate databases, so I really want anacron-style 'run once a day, whenever' <ieure>Yep. No idea! Maybe the Shepherd manual covers that. <df>I haven't been able to find anything <df>the mcron manual explicitly states that it will run jobs on wake-up <df>I suppose I could just try it, and/or read the code <df>and in fact, if it's running daily it hardly matters if it skips a day or two <tschilp>lechner: let's say, my home-timer-service doesn't work yet, but mcron does the job for. But I won't have the time to fiddle further today... Maybe I manage to catch you another day, if you have time too then! <attila_lendvai>where should i set SSH_AUTH_SOCK? now it's set in my ~/.profile, but it's unset in emacs and in a gnome console, also. <meati>found another instant segfault regression. would it be possible to add a CI step to catch these errors? <lechner>df / i don't think timers run any missed events, but my equipment never shuts down <attila_lendvai>hrm... the (config home services ssh) service i have configured the other day i supposed to set SSH_AUTH_SOCK... <ieure>attila_lendvai, It depends. Are you using Guix Home? <attila_lendvai>ieure, yes, and i also added home-gcr-ssh-agent-config-service-type, which should set that var... but something is wrong. i'm home reconfiguring to double check <ieure>attila_lendvai, I've noticed that GNOME (at least, as of ~6-8 months ago) was ill-behaved and would mess up my the SSH_AUTH_SOCK carefully set in my shell dotfiles. <lechner>attila_lendvai / Hi, does the server set those variables, or would it be beneficial to use PAM? <attila_lendvai>lechner, isn't it me who is supposed to set SSH_AUTH_SOCK on the client? <ieure>lechner, They need to be set on both the client (to whatever's acting as the SSH agent), and also to a different value on remote hosts, to enable agent forwarding. <ieure>This is broken in Guix and has been for years. I filed #72248 about it, but never got a reply. <ieure>The report outlines the problem, but I don't have a good idea for a solution. <attila_lendvai>i don't use home-gpg-agent, but i do have a gpg-agent process running. but if i (setenv "SSH_AUTH_SOCK" "/run/user/1000/keyring/ssh") in emacs, then it works as expected, so my only problem is the env var <ngz>Uh oh. The texlive importer seems broken. <Rutherther>ieure: I think that a working solution; not necessarily a good one, would be to extend the home profile service type with a line or a few to accomodate the conditional logic necessary and set of the variable <Rutherther>s/home-profile-service-type/home-shell-profile-service-type <ieure>Rutherther, Yeah, I think I agree with you. I understand service extension better now than when I wrote the bug report. <ieure>Maybe I'll take a stab at that. <Rutherther>ieure: note that it would be the first service extending home-shell-profile-service-type in guix channel <ieure>Sigh... Also just found out that I can't use `set-xorg-configuration' more than once to separately define different pieces of the Xorg configuration, because neither gdm-service-type nor sddm-service-type are extensible. <ieure>It doesn't cause an error, but it doesn't work. <ieure>Oh wait, it should work. But doesn't. <ieure>But neither does calling ex. (simple-service 'set-xorg-keyboard-layout gdm-service-type (xorg-configuration ...)) -- then (simple-service 'set-xorg-video-intel gdm-service-type (xorg-configuration ...)) <Rutherther>ieure: I don't think it can work with set-xorg-configuration, because that way you're adding multiple services with the same name to your operating system services <Rutherther>and I don't think gdm has extend field defined, so it's not extensible at all <ieure>Rutherther, All the display manager service-types use `handle-xorg-configuration' for compose/extend. <ieure>Rutherther, Yes, agreed that multiple services with the same name shouldn't work, but shouldn't their method of not working be for the reconfigure to fail due to multiple identically named services? That doesn't happen; the reconfigure succeeds, but some of the configuration is ignored. <ieure>Will have to investigate more to figure out exactly what's going wrong with this. <Rutherther>ieure: oh right I missed that line with handle-xorg-configuration <Rutherther>but its extend seems strange to me, it seems to override xorg-configuration rather than merging them <acimpta>Hello dudes, I want to jump in GUIX, so I have some questions about it (I think they are a bit dumb), is it ok to ask them here? <ieure>Rutherther, Yeah, I think you're right. <ieure>acimpta, You're welcome to ask, but definitely not just dudes in here. <lechner>ieure / Rutherther / instead of home-gpg-service-type, we could probably also use Guile-PAM <lechner>but it does seem like a bug in the home service <acimpta>Thanks! So, my main question what is the big differences with the NIX? I read on the wiki that its basically GNU Guile based realization of the same concept or something like it. I heard something about Nix be kind a overcomplicated and rapidly developed, so how Guile way is better? Is the interfaces more stable or something like that? + I heard <acimpta>something about "seed" idea which is to build the complete system from bare start, that is wondering! Is it related to GUIX community somehow? <ieure>lechner, Haven't looked at Guile-PAM, but I'm not sure how that'd help, since PAM isn't involved in any of the agent stuff. <ieure>acimpta, Yes, Guix is derived from Nix, but using Guile instead of inventing a new language. It's a matter of taste which you prefer, though many folks heavily into Nix don't like Nix Language. <Rutherther>acimpta: I don't want to say if nix or guix is better, but there certainly are differences. For example, Nix has their own language that isn't as capable as Guile, which means that packages are then built using bash, Guix on the other hand uses Guile for most of the stuff. <Rutherther>NixOS has a concept of modules where each module has its own options you set, they may reference each other, but there aren't 'exact rules', Guix System instead has something called services where each service has a configuration defined and can extend other services, so you get a tree of services that define your system. <ieure>I've never used Nix, so I don't have a great idea what the differences are. <acimpta>Ok, thanks all! One more: Is there exist any extensive step-by-step guide (or something like that) how to start use Guix CLI stuff? I barely understand a concept of how it organizes the packages, but there is so much options so I loosing the clue how to do the simple things. <acimpta>Context: I just installed the base system on a virtual machine (I was pleasantly surprised that everything worked right away with the luks2), so that's all I know how to do at the moment. <ieure>acimpta, You installed Guix System? <Tadhgmister>is there a way to get guix system to use an externally compiled linux kernel? I'm trying to get guix running on an arm device and recompiling the whole kernel from scratch every time I change one kernel flag is getting old <RavenJoad>Well you're changing a compilation flag, so you have to recompile the kernel, since you have changed its inputs. But there are ways to set up a more powerful external machine to do the build. <Tadhgmister>yes but if I was in a development environment it could reuse a lot of the already compiled stuff and much faster recompute the parts that changed, once I have a version that works I would go back to doing it as a reproducable guix definition but while I'm trying stuff it'd be nice to not have to wait as long between tests <Tadhgmister>I assume the answer is "no using a kernel that is not managed by guix goes against everything guix stands for" but figured it was worth asking <ieure>Tadhgmister, You can package a kernel that compiled outside Guix, but this is not The Guix Way. <ieure>Tadhgmister, You'd put the precompiled kernel into your package source and use copy-build-system to copy that to the package's output. <ieure>Tadhgmister, Such a thing would never be accepted upstream, all Guix packages must build from source. But I get what you're saying, I've definitely felt the same pain here. <ieure>Tadhgmister, Especially when, say, the whole 1h+ compilation succeeds, but some phase copying files around blows up. I would love to checkpoint and resume, reuse unmodified earlier build phases, or... something. <Rutherther>Tadhgmister: I think the easiest would be to just modify the grub bootloader, to put full path to your kernel, and then put the kernel on the disk yourself (if it's not there already). It can get a bit complicated, but nothing non-manageable <Rutherther>Tadhgmister: see gnu/bootloader/grub.scm, I think that what concerns you is the line 329, inside make-grub-configuration that defines the linux kernel path. If you want to make it easy you can just copy this file and change module name / contents of it and just replace this one line, then use grub bootloader out of this module instead of the default from guix <futurile>#oci #networking #linux #somehashthatpeoplesee ... oops sorry wrong window <RavenJoad>Tadhgmister: I've faced those exact problems before, and they are annoying, I agree. I've just learned to accept them. I do hardware development, so a 1 hour time-to-failure is a nice thing to see on my end. <Tadhgmister>ieure this would not be going anywhere near upstream, again once I figure out a config that gets past the bootloader I am going right back to the way guix is intended <Tadhgmister>the gnu.load and gnu.system parameters that specifies the guix profile stuff, is that handled by standard linux? I assumed guix did some editing to kernel to help support the boot process <Rutherther>Tadhgmister: I am not completely sure, but I think those parameters are passed to the initrd, so the kernel itself may not be so important <Tadhgmister>alright, I tried subbing in a kernel image from a nixos config I know can boot and it got me to a guile repl from some module not matching what guix was expecting <Tadhgmister>so I can totally compile kernels outside guix until I figure out the config that lets it totally work and then figure out how to specify that config as a guix package, amazing. Thanks again Rutherther :D <ieure>Okay, I have this xorg extension thing fixed, I think. What's a good way to test this kind of system service before I send the patch? <Deltafire>is there a way to check and correct corruption of the store? <Deltafire>not sure what happened, but somehow the filesystem became corrupt <identity>Deltafire: there was a recent bug with filesystems not being unmounted cleanly on shutdown