IRC channel logs

2022-01-30.log

back to list of logs

<mhj[m]>Hi all, hope fellow guix people are doing well. I am using Guix on a Intel NUC i3, 16 GB of RAM and so forth, basically I got it from System 76. Anyways, the gist of my problem is that I can't seem to boot into the newest point release kernel, 5.15.17. It hangs after I get past Grub. Note: I am also using BTRFS and full disk encryption. Just wondering if anyone else was experiencing anything similar and whether I should wait for the 5.15.18 release
<mhj[m]>or later before upgrading...
<mhj[m]>I can still boot into previous environments fine, just anything with that kernel causes it to hang lol
<lfam>mhj[m]: Hu
<lfam>Huh
<lfam>Is there any other information you can share?
<mhj[m]>I think it had to do with my graphics driver? I dunno. I wish I could get a log of it, but you know, it hangs lmao
<xelxebar>Hrm. Not getting past the splash screen, right? Might be worth disabling splash (how?) and increasing kernel log verbosity.
<lfam>Why do you think it has to do with your graphics driver?
<mhj[m]>Nah, I can get past the splash screen, it just won't boot into X
<vagrantc>with guix f8bfb2d85682dcabe56a4b1b0f25d566a0abbd2b on aarch64 ... Throw to key `match-error' with args `("match" "no matching pattern" #<package polkit-duktape@0.120 gnu/packages/polkit.scm:164 28796370>)'.
<lfam>Hm, I'm a bit confused. Does it boot, and then fail to start the graphical environment? Or does it fail to boot? Like, does it get to the Linux console with the login prompt?
<vagrantc>guix build guix works fine for me ...
<lfam>vagrantc: Another bit of confusion. Are you saying it builds? Or that it doesn't build?
<mhj[m]>It boots and fails to start the graphical environment and then hangs
<lfam>mhj[m]: Can you switch to another TTY with ctrl+alt+f2, log in, and investigate?
<mhj[m]>OK, I'll try do that :D
<lfam>You could also give more details about what happens when it "hangs". Like, what is shown on the screen?
<florhizome[m]>Bit off topic, but how do I answer to a thread in guile-devel? answer to the latest post in it -- not to everyone in it or the mailing list in general
<mhj[m]>Sure thing
<mhj[m]>BRB, gonna try it now
<lfam>The range of commits between 5.15.16 and 5.15.17 can be viewed like this: `git log fbb56b570e111d97fe8fc0e0efe138e13a55b1a8..aad96ed540702b301c380b83bd7d10bc93a27b51`. It might help someone with finding a cause, if we did indeed break something
<vagrantc>lfam: guix itself builds fine (e.g. the recent re-opening of #52943)
<vagrantc>lfam: but polkit-duktape apparently is very broken
<lfam>The guix package builds, but `guix pull` fails?
<vagrantc>lfam: guix build guix
<vagrantc>guix pull also works
<xelxebar>florhizome[m]: As long as the debbugs address is in the From or CC headers, issues.guix.gnu.org should see it. I generally just do a reply all.
<lfam>vagrantc: Please try to be more clear :)
<vagrantc>lfam: fair.
<lfam>What command did you run to produce this error?
<vagrantc>lfam: guix system reconfigure ... is what's tossing that error
<lfam>I see
<vagrantc>sorry for the confusion
<lfam>I actually saw somebody else mention this recently
<lfam>But, it was ignored, afaict
<vagrantc>honestly, i think for the next release aarch64 should probably be dropped unless we can get more people working on it :(
<lfam>It definitely needs a lot more attention before we should feel comfortable advertising it
<vagrantc>i know there are build machines in the works to get the substitutes improved
<lfam>It seems like are even bugs in Guile that slow down the effort
<vagrantc>but guix itself didn't build for a whole month and ... that really killed things
<lfam>The build machines have been installed but Guix / Guile doesn't work reliably so they can't be counted on
<lfam>It's frustrating because it's a regression from before
<xelxebar>Ouch. Is there a discussion thread on this?
<vagrantc>there are a few bug reports
*lfam looks
<vagrantc>i brought parts of it up over the last month
<lfam>E.g. https://lists.gnu.org/archive/html/bug-guile/2021-12/msg00011.html
<lfam>AFAICT, none of the most active contributors have aarch64 hardware, at least nothing that can really build. So it's hard to proceed
<lfam>And the market for usable hardware is very tight right now
<xelxebar>Thank, lfam.
*xelxebar reads thread.
<lfam>I raised the subject of ports in the "1.4.0 progress" tracker, vagrantc: https://issues.guix.gnu.org/53214#11
<lfam>I didn't mention aarch64, but it's worth discussing
<mhj[m]>OK, I took a picture of my screen
<mhj[m]>Any way I could get it to ya lfam ?
<lfam>Can you upload it to imgur.com?
<lfam>Or a similar site
<mhj[m]>I wasn't able to to get to any TTYs
<mhj[m]>Sure
<lfam>One notable change in Guix between 5.15.16 and 5.15.17 is the change to util-linux / libmount. Hopefully that didn't break anything...
<lfam>I'm starting a reconfigure now, to see if I can reproduce any of these issues
<florhizome[m]><xelxebar> "florhizome: As long as the..." <- For guile-devel?
<lfam>xelxebar: There are also discussions on the Guix lists, but I don't have links handy
<xelxebar>florhizome[m]: Oh, right. My brain read that as guix-devel.
<lfam>If you search for "cuirass" "aarch64" or messages from Mathieu Othacehe, you will probably find them
<lfam>Hopefully they are not on the private sysadmin list
<florhizome[m]>btw i tried to build a Hurd image from SCM file with the default stuff thete. which failed
<xelxebar>lfam: Cheers. Ludovic's comment is interesting. I was unaware of that POSIX hole.
*xelxebar searches lists
<lfam>Well, it will take some hours for me to reconfigure. We'll see if it works
<xelxebar>Hrm. Looks fork() on a multi-threaded process is specified? https://pubs.opengroup.org/onlinepubs/000095399/functions/fork.html
<xelxebar>> If a multi-threaded process calls fork(), the new process shall contain a replica of the calling thread and its entire address space, possibly including the states of mutexes and other resources.
<mhj[m]> https://upload.disroot.org/r/4es0Ddwd#+Mz1MP/PIJUQbA9mSluUQfC8yNHcN5pCII7LpLijdoA= You can download it here lol
<xelxebar>Maybe I'm just not grokking what Ludovic meant...
<lfam>vagrantc: I suppose something must go wrong with package inheritance and the recent polkit graft on systems that don't support polkit-mozjs
<lfam>vagrantc: You could see if the error occurs with --no-grafts
<vagrantc>lfam: i can apparently build it manually
<lfam>You can build polkit-duktape?
<vagrantc>and another reconfigure run seems to be proceeding merrily along
*vagrantc shrugs hard
<vagrantc>actually managed to get a substitute for the linux-libre-5.16.3 tarball! not so for whatever the latest 5.15.x is though
<lfam>It's so weird that that issue did not reoccur
<mhj[m]>Oh and I've not been turning on or off any knobs in regarding sysctls in my config dot scm file or anything related to changing the kernel itself, just stock Guix pretty much
<lfam>What kind of computer are you using mhj[m]?
<mhj[m]>Intel NUC customized by System 76 - https://system76.com/desktops/meerkat
<lfam>Oh right
<mhj[m]>i3, 16 GB of RAM, integrated Intel graphics stack etc
<lfam>Basically, the ideal system for linux
<lfam>Well, I'm reconfiguring my old thinkpad to update from 5.15.15 to 5.15.17 now
<lfam>However, I use a custom kernel so it will take several hours to build. Maybe the use of the custom kernel hurts the possibility of reproducing your bug. That system is also non-graphical, which also hurts chances of reproduction
<lfam>You know about rolling back from the GRUB menu, right mhj[m]?
<mhj[m]>Yeah
<mhj[m]>Wait, I think
<mhj[m]>Do you mean just selecting a different kernel in the GRUB menu?
<lfam>From the GRUB menu, you can choose old "generations" of the system to boot from
<mhj[m]>Er, I'm sorry, generation
<lfam>Yes, but it's not just the kernel. It's everything related to Guix
<mhj[m]>Yeah, I'm in an older generation right now
<lfam>Okay, just wanted to make sure you are able to keep using your computer for now
<mhj[m]>Oh yeah, no problem :D That's one reason why I continue to use Guix! Thanks to you guys for always developing it! I'm happy that I don't have to reinstall like if it were an Arch or Ubuntu system lol
<lfam>mhj[m]: If I can't reproduce the bug, I'm not sure that anyone will do anything about this unless more people report it, or unless there's a bug report sent to <bug-guix@gnu.org>
<lfam>I expect others have updated to 5.15.17 since we upgraded to it
<mhj[m]>That's fine! I understand. Hopefully it will work itself out if it can't be reproduced
<mhj[m]>Do you need my configuration or anything of that sort?
<lfam>Unless you have custom kernel modules, kernel arguments, initrd-modules, kernel variants, etc, then I don't think so
<lfam>Maybe it's related to your services, such as graphical services
<lfam>It's *always* helpful to share your config.scm when you are having trouble
<lfam>Others are more able to answer questions about graphical services than me
<mhj[m]>Ah, well, the only thing I've done regarding graphical services was choose both MATE and GNOME when I installed Guix, I've not enabled or disabled anything else related graphically and whatnot
<mhj[m]>But sure, I'll upload it
<lfam>Sure
<lfam>Maybe it's a problem only in the gnome service, for example. Those of us who don't use gnome wouldn't experienceit
<lfam>But, I'm sure you aren't the only one using gnome
<mhj[m]>Right
<mhj[m]> https://upload.disroot.org/r/c3EGHRMy#cTRFGT1QslkZwK4FxDvvLIvNnU5ZYyClkYLskCEA6U4= Okay, here is my config.scm
***breavyn_ is now known as breavyn
<lfam>Alright. I'll try to remember to tell you how my reconfiguration goes
<lfam>Somebody could also try using `guix system image` to build mhj[m]'s config.scm with a Guix revision that includes linux-libre 5.15.17
<lfam>That would help reproduce the problem
<lfam>I have to go afk for a while
<mhj[m]>Thanks for everything lfam !
<xelxebar>Holy cow. Profile got 918 grafts.
***sneek_ is now known as sneek
***Newfangled_ is now known as Newfangled
<Ribby>It's a silly idea, but it will be due anyways. I wonder if we can make custom wallpapers/logos for guix. I imagine the Doom's Icon of Sin picture to attempt association akin like the GNU mascot.
***aya is now known as gyara
<sneek>Yey! podiki[m] is back :D
<sneek>florhizome[m]: Greetings :)
<jeko>Hey Guixters !
<sneek>wb robin
<phf-1>Hello Guix! Let's say that I want to bump the version of pip like so: https://paste.debian.net/1228875/ should it be added like this to the Guix set of packages as is?
<phf-1>Running `guix git authenticate ...' as in the documentation[1] gives an error[2]. [1]: https://guix.gnu.org/manual/en/guix.html#Building-from-Git [2]: https://paste.debian.net/1228884/
<rekado_>xelxebar: the deeper the replacement in the package graph the more grafts.
<phf-1>Hello rekado_! is this expected? 'Running `guix git authenticate ...' as in the documentation[1] gives an error[2]. [1]: https://guix.gnu.org/manual/en/guix.html#Building-from-Git [2]: https://paste.debian.net/1228884/'
<m4t3>I would like to see a desktop setup with GNUstep defaults,and GNUstep Emacs on GUIX, is this possible?
<m4t3>How far is the Hurd 64bit port? On GUIX maybe.
<rekado_>m4t3: Guix would need to have more GNUstep packages. It currently has only one.
<AwesomeAdam54321>m4t3: I am interested in that setup too
<rekado_>m4t3: the 64bit port is still ongoing; you can ask for details on #hurd.
<efraim>phf-1: It worked for me, does `guix branch -vv` show that your copy of the keyring branch is behind?
<phf-1>efraim, `guix branch -vv` gives `guix: branch: command not found'
<phf-1>guix in foreign distro: Debian11
<phf-1>*on
<efraim>doh, I meant `git branch -vv`, sorry
<efraim>phf-1: ^
<phf-1>ok
<phf-1> https://paste.debian.net/1228885/
<efraim>sorry, i have to run
<phf-1>efraim, I just did `fetch origin keyring:keyring'
<phf-1>ok
<phf-1>bye!
<phf-1>Ho... ok... i've got it.
<phf-1>I took the habit of `git clone --depth 1 ...'
<AwesomeAdam54321>If a guix package is given an input, can it access all the files of the input?
<gordon1>so i can drop my package transformation in the manifest in the user profile for example, but how can i do package transformations on packages used in system config (for example stuff that gets pulled for services)?
<gordon1>also how can i find out why particular store entry exists?
<phf-1>gordon1, maybe: https://guix.gnu.org/manual/en/html_node/Invoking-guix-graph.html
<phf-1>in particular: ̀ guix graph --type=reverse-package ocaml'
<gordon1>guix graph -t reverse-* shows graph for all the possible packages, not only installed ones
<phf-1>gordon1, so, you are searching for a path from a store item `/gnu/store/...' to an item in a profile? `guix graph -t referrers' maybe?
<gordon1>hmm, maybe, let me try
<attila_lendvai>it looks like 'parameterize is not bound when i run my service through a channel. when i run it locally with `./pre-inst-env guix system vm ...` then it works. any ideas why? when i start guile, then 'parameterize is bound without including anything.
<gordon1>phf-1: yes, thank you
<phf-1>Great :)
<phf-1>gordon1, you are running Guix System, right?
<gordon1>not yet
<gordon1>i mean i do, in the VM
<gordon1>not yet ready to be run on my native machine
<gordon1>need to chop off all unnecessary bits first
<phf-1>Ok. I was asking because of the first part of your question about customizing system config packages.
<gnoo>gordon1: if you manage to do that, please share the config and ping me, i'll greatly appreciate that :-)
<gordon1>phf-1: and what difference does it make? just curious
<phf-1>Well, to see if we have identical setups or not: I have Guix on a foreign distro.
<phf-1>gordon1, Ok, I once built a custom kernel using Guix. I think I used this post: https://guix.gnu.org/en/blog/2019/creating-and-using-a-custom-linux-kernel-on-guix-system/
<phf-1>which involves customizing system packages.
<gordon1>well, i used the same article for my custom kernel, but that's a bit different with what i ask
<gordon1>i'm talking about something like mass input rewriting for everything that got installed by system config for example
<gordon1>not on package-by-package basis
<phf-1>Ok, then, I don't know.
<phf-1>How to configure PKG_CONFIG_PATH? context: https://paste.debian.net/1228898/
<fnstudio>sorry, not very guix specific, but anyone knows of what's the minimal setup to send a PDF to a network printer and have it printed? minimal as in less software to install as possible; cups comes to mind of course but i was wondering if there's any more minimal setup
<fnstudio>s/less/as little/
<trofi>Does '~/.config/guix/current/bin/guix build guix --check --no-grafts' work for you? For me it fails `nar` test.
<fnstudio>phf-1: i see this in my env, /home/<user>/.guix-profile/lib/pkgconfig:/home/<user>/.guix-profile/share/pkgconfig
<fnstudio>although i'm on a foreign distro, so ymmv i guess
<phf-1>fnstudio, Yes, I've installed `guix install pkg-config' to that end but I guess I've to set it manually. thx
<fnstudio>np
<phf-1>trofi, I'm trying
<attila_lendvai>could it be that when a module is use-module'd in a GEXP in the START code of a shepherd service, then the guile module's toplevel forms don't get evaluated? i get an unbound variable, but only when it gets there through a channel, not when i run it locally with ./pre-inst-env
<phf-1>trofi, still doing things... will tell you when it ends.
<pinoaffe>fnstudio: cups is the minimal setup that will be able to deal with a wide variety of printers
<fnstudio>pinoaffe: got it, thanks; i'm hopeful i may be able to go for a more minimal setup, that just works with my office printer
<fnstudio>i just found this https://git.2f30.org/prout/
<fnstudio>and also this https://blog.stigok.com/2019/12/14/print-on-network-printer-without-cups.html
<fnstudio>the netcat hello world example (echo hello | nc $PRINTER_IP $PRINTER_PORT) seems to work, which is promising i guess
<attila_lendvai>how much i hate it when (parameterize ((current-warning-port (%make-void-port "w"))) ...) hides warnings... the only thing worse is when errors are swallowed like this
<fnstudio>now trying to see if/where lprng is in guix
<fnstudio>oh... it might be in... cups :)
<phf-1>gordon1, https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html
<gordon1>yep, that's what i use in manifests for profiles, but still have no idea how to use it for system config
<gordon1>so i have this libudev-zero that i want to replace eudev with for every dependency
<gordon1>not sure how can i do that
<the_tubular>I want a custom motd to apply to a few config.scm, how would I achieve that ?
<phf-1>gordon1, curious to know if you manage to make it work. I think this would mean to find all packages that have eudev in their inputs and replace that with libudev-zero. These packages would have to be written to some .scm files and then used through GUIX_PACKAGE_PATH or a channel.
<phf-1>trofi, this is how it ended for me: https://paste.debian.net/1228903/
<phf-1>I mean: `$ guix build guix --check --no-grafts'
<jpoiret>gordon1: the unfortunate thing is that there's no centralized list of packages for guix system configurations (also applicable to guix home)
<jpoiret>some system services offer to replace the package used by the serivce with another, in which case you're able to use package rewriting easily, but i'm not sure that's the case for all (and you'd need to do that everywhere in your config which is kind of messy)
<trofi>phf-1: thank you! looks like it at least passes test phase for you.
<gordon1>right, so that means possibly that i need to make bunch of my own services with replaced packages
<the_tubular>Anyone know how would I achieve this ?
<gordon1>the_tubular: not sure if i understand your question, but i think you can specify custom motd in config.scm like that https://github.com/alezost/guix-config/blob/master/system-config/os-main.scm#L207-L210
<the_tubular>Yes, but I'd like it to apply to multiple config.scm
<the_tubular>So I guess I should define a variable like this somewhere
<gordon1>define this custom login-configuration in some module and the use it in multiple configs as (service login-service-type %login-with-custom-motd)
<gordon1>something like that
<the_tubular>Umm, I'll try something like that
<phf-1>This is surprising: guix shell: warning: variable 'PKG_CONFIG_PATH' is missing from shell environment. yet: echo $PKG_CONFIG_PATH gives: /home/phf/.guix-profile/lib/pkgconfig
<phf-1> https://paste.debian.net/1228907/
<phf-1>Anyone knows why?
<AwesomeAdam54321>phf-1: Since you set --pure it unsets all environment variables prior to making the guix shell
<phf-1>AwesomeAdam54321, Ok. Then, why is `guix shell --pure --check -D guix' gives `guix shell: warning: variable 'PKG_CONFIG_PATH' is missing from shell environment'
<phf-1>How is 'PKG_CONFIG_PATH' supposed to be set?
<AwesomeAdam54321>phf-1: You set the environment variable after you do 'guix shell'
<phf-1>Ho ok... --preserve= option
<phf-1>ok
<phf-1>not preserve, after shell
<phf-1>I'm trying to follow https://guix.gnu.org/manual/en/guix.html#Building-from-Git but it does not work so far: https://paste.debian.net/1228915/
<phf-1>Anyone had these problems?
<attila_lendvai>when i do a guix pull, it does all kinds of scheme compilation locally. is there a way to see its output?
*attila_lendvai tries guix pull --debug=10000
<phf-1>apparently, `guix shell --pure -D guix --search-paths' prints what's needed. https://paste.debian.net/1228917/
<attila_lendvai>where is the code that makes sure that compiled .go files become available for shephard after a guix pull?
<jpoiret>no go files are available to shepherd after a guix pull, that would be after a guix system reconfigure
<attila_lendvai>jpoiret, right, that's what i mean, thanks!
<attila_lendvai>for some reason my service doesn't work when i guix pull it, but works when i `./pre-inst-env guix system vm ...` it
<attila_lendvai>and the error is that a global variable is unbound that is initialized on the toplevel in a my-service-utils module.
<attila_lendvai>i suspect that the module is not available, not loaded when shephard starts the service, and something swallows the error
<jpoiret>attila_lendvai: you need to look into gnu/local.mk I think, or something similar
<jpoiret>although now that i think about it, that may only used by the guix package, which is not how guix pull operates
<jpoiret>maybe build-aux/build-self.scm
<jonsger>efraim: do you know how to properly use qtwayland? I added it to my config.scm but `QT_QPA_PLATFORM=wayland keepassxc` still doesnt work as its not finding wayland...
<attila_lendvai>random sidequest: guix pull --debug=10000 behaves differently than without --debug (guix pull: error: | | | bind mounting `/dev/full' to `/gnu/store/q58473nfv4nsmzs01qpw12ijsm6zsayw-inferior-script.scm.drv.chroot/dev/full'
<attila_lendvai>)
<attila_lendvai>jpoiret, i think the key to the issue i to go backwards from the shepherd.conf file, and stare at the code in gnu/services/shpherd.scm... but i need to do something else now. thanks, though!
<jpoiret>jonsger: you need to add it to your profile instead
<jpoiret>at least that's what I think
<jpoiret>jonsger: you need to check the value of QT_PLUGIN_PATH
<jonsger>jpoiret: hm, but keepassxc is also installed via config.scm
<jpoiret>the issue is that I think it only takes one directory, and so if you have a package that extends qt in your profile, sourcing the profile will overwrite the variable and it will point only to the current profile
<jpoiret>yes, but sourcing another profile that sets QT_PLUGIN_PATH will overwrite that
<jpoiret>personal opinion ahead: I don't think keepassxc should be system-wide, if that's what you're saying
<jonsger>I don't really use user profiles, I install almost everything into the "global profile" via config.scm, apart from programs like firefox or icedove which I often locally build...
<jpoiret>well, while it would be great if it could work interchangeably, there are some unfortunate side-effects such as single-valued search-paths being overwritten
<jonsger>but does it mean I need for every QT program an own profile?
<jpoiret>no, you can have all of them in the same profile?
<jpoiret>but yes, if you do `guix shell some-qt-program`, inside that shell I don't think you'll have the wayland backend, you'd need `guix shell qtwayland some-qt-program` instead
<jpoiret>for the exact same reason
<jonsger>ah that works :)
<phf-1>Running `make check' from a Guix source checkout gives: https://paste.debian.net/1228924/ is `# XFAIL: 1' considered OK or should it be reported?
<dcunit3d>does anyone use emacs-guix? if i have a bunch of guix system operating-system definitions in a directory, how do i start a repl with the load path specified? i.e. in emacs-guix how do i set the -L parameter before i start the guix repl?
<dcunit3d>i try to add to the load-path using geiser, but that doesn't seem to work
<dcunit3d>i've also tried starting the guix repl on the commandline and connecting to it via emacs, but it causes my emacs to hang
<phf-1>So, I've added the following package definition to ~python-xyz.scm~ https://paste.debian.net/1228935/. Then, I try to test this definition against Guix devel: https://paste.debian.net/1228936/. Yet, I have this error: https://paste.debian.net/1228937/
<phf-1>`guix build ...' works fine but not `guix search ...'
<jonsger>does VLC crash with HW acceleration crash for other Radeon users as well?
<eonn>If anyone was following my fiddling with packaging that python module yesterday, I just got it to build correctly! Very excited.
<lil_mida_xyz>Hi everybody. Just installed GNU Guix. how do I get exwm to recognize the GUIX_ENVIRONMENT environment variable?
<jpoiret>lil_mida_xyz: what do you mean by getting exwm to recognize that env var?
<jpoiret>GUIX_ENVIRONMENT is set when you use `guix shell` or `guix environment`
<phf-1>Good, an other package sent :) https://debbugs.gnu.org/cgi/bugreport.cgi?bug=53637
<attila_lendvai>jpoiret, FYI, i think this is simply not handled in guix. the shepherd-configuration-file builder does (let ((files (map shepherd-service-file services)) ...), i.e. it creates one file for each service, and doesn't seem to deal with the transitive closure of its dependencies (or i don't see where it is).
<attila_lendvai>i just don't understand why it works in the other, `guix system vm ...` use-case.
<jpoiret>are you using (with-imported-modules)?
<jpoiret>start/stop actions are gexps, you should be able to use it for those
<attila_lendvai>jpoiret, yes. that's a GEXP thingy, but something somewhere should grab what's collected by it, and add it to the shepherd config file (i think)
<jpoiret>well, when the gexp is lowered, it should add the necessary imported modules at the beginning of the scheme script
<jpoiret>and those modules can be specified with (with-imported-modules ...)
<attila_lendvai>jpoiret, AFAICS, shepherd is started as a standalone process with a single, generated config file. i assume no scheme code is availabel there besides the standard guile libs, and what's in the config file.
<jpoiret>each shepherd service has its own file, and each one is just a gexp that will eventually be lowered
<lil_mida_xyz>jpoiret: I usually code in rust with the emacs rustic package. In my old Debian I installed cargo using rustup, which adds a ~/.cargo folder to the $PATH variable, so that it was readily available to the rustic emacs package. Now I have the following: gnu guix starts -> exwm starts -> I run the guix environment rust -> but emacs's rustic still cannot find cargo even when the bin path is $GUIX_PROFILE/bin/cargo
<attila_lendvai>jpoiret, hrm, right. shepherd-service-file emits a gexp with a first (use-modules ...) form.
<attila_lendvai>jpoiret, but who and how will tell the shepherd guile where to find those modules? just by the virtue of being in a pulled channel makes it available for guile?
<jpoiret>so you could try (with-imported-modules `(,@(source-module-closure '((whatever module you want)))) #~(the starting gexp))
<jpoiret>yes, pulled in channels are part of guix
<attila_lendvai>jpoiret, but part of guile, too?
<jpoiret>if you look at .config/guix/current, you'll see that guix code and channels code are merged
<jpoiret>well, if guix can resolve those modules, with-imported-modules will work
<attila_lendvai>jpoiret, shpherd is started by /gnu/store/[hash]-guile-3.0.7/bin/guile --no-auto-compile /gnu/store/[hash]-shepherd-0.8.1/bin/shepherd --config /gnu/store/[hash]-shepherd.conf
<jpoiret>(with-imported-modules ...) will add the needed modules to the load-path of the gexp
<jpoiret>ie it will add scheme code at the beginning to extend the load path with the modules that you asked for
<jpoiret>lil_mida_xyz: when you do `guix environment rust` (by the way, `guix shell` is the newer command now, guix env is deprecated), it creates a new profile completely isolated from your default one and sources it. If you start a program outside of the shell in which you did `guix environment`, it won't be able to see it
<jpoiret>you can start emacs from within that shell, it should work then (hopefully)
<lil_mida_xyz>jpoiret: thanks=
<jpoiret>I have no experience with rust+emacs on Guix though, so someone else could help you if it still doesn't work
<jpoiret>attila_lendvai: if you want an example (that I'm more used to), you can take a look at gnu/installer.scm, at the very end at `installer-builder`
<jpoiret>the code inside the gexp will need a lot of modules (mostly (gnu installer *)), which are added via a with-imported-modules
<attila_lendvai>jpoiret, thanks, i'll study that!
<jpoiret>when the gexp is lowered (and so what ends up in the store), you'll have additional code at the beginning adding the modules to the load path
<jpoiret>if you want to look at the output, simply do `guix build -e "((@ (gnu installer) installer-program))"
<jpoiret>there's a simple wrapper (unrelated to what I'm talking about) around the installer-builder, just open the wrapper and find the actual code it loads
<jpoiret>look for (set! %load-path (prepend (cons "/gnu/store/nnnn-module-import")))
*attila_lendvai sees that
<attila_lendvai>jpoiret, hrm. do you think it's an issue that shepherd-service-file adds a (use-modules #$@(shepherd-service-modules service)) in the resulting gexp, but it wraps it with a (with-imported-modules %default-imported-modules ...), i.e. does not include the serivce's modules
<jpoiret>you can add your own (with-imported-modules '((the modules you want))) around the gexp that will use them
<jpoiret>imported modules should be merged when gexps are inserted into one another
<jpoiret>imported modules only add the load-path code at the very end, when the whole gexp is lowered to something in the store iirc
<attila_lendvai>after a long struggle, i've managed to verify that the .scm file, from which the shepherd service .go file is compiled from, looks ok, and contains the code i need that binds the variable that is reported as unbound. back to square one.
<attila_lendvai>for prosperity: use guix system --verbosity=1000 to see more log output that will print enough to recover the store path for the generated .scm file
<lfam>mhj[m]: I had problems similiar to what you described
<lfam>mhj[m]: It works for me with 5.15.17 but otherwise using Guix from commit 73d775f518e8bf9c658cb0a161b22209c71e75aa, which predates recent changes to polkit and libmount (util-linux)
<lfam>Many other changes since then, too, but polkit is suspicious
<lfam>mhj[m] reported that their system is unresponsive after finishing boot with Guix revisions that include linux-libre 5.15.17
<lfam>Does anyone else have similar issues?
<attila_lendvai>jpoiret, this is getting strange. i'm looking at the service .scm file (https://paste.debian.net/1228960/). it does seem to set up the load path as expected, and does have a (use-modules (nongnu services swarm-utils)), and yet, the global variable *log-directory* is not bound. maybe use-modules doesn't actually load the modules, only imports their exported symbols?
*attila_lendvai reads up on use-modules
<attila_lendvai>and if i edit that file, and throw away all the other stuff, and just guile -s foo.scm, then it works. aaaargh!
<ajarara>Is there.. CI for guix? I'm looking for a stable branch to base changes off of. Is master the stable branch?
<sneek>ajarara, you have 1 message!
<sneek>ajarara, notmaximed says: ^ https://logs.guix.gnu.org/guix/2021-11-28.log#230623
<attila_lendvai>oh, wait! it's captured into a lambda, and who knows when shepherd executes it... but there's no unloading happening, i guess. or is there? maybe start gexp's are loaded into a throwaway module? and then the extracted closures run later, after the module is deleted?
<lfam>ajarara: Guix doesn't offer a stable branch
<lfam>ajarara: The master branch is the default branch that is used by Guix users
<ajarara>kk. thanks!
<attila_lendvai>jpoiret, daaamn, i think this is it: shepherd loads its config using load-in-user-module, into a freshly made module. then the config file captures the service start code into a closure, and the closure is invoked after this dance: (save-module-excursion (lambda () (set-current-module user-module) (primitive-load file))). i.e. the definition is sideeffected into a different "current-module"
<ajarara>sneek: later tell notmaximed: thanks for https://logs.guix.gnu.org/guix/2021-11-28.log#230623 !
<sneek>Got it.
<csantosb>Ey, #guix ! Funny thing here. I have a remote cluster where I deploy tmux with help of guix pack
<csantosb>I'm doing 'guix pack -R -S /.guix-profile/lib=/lib -S /.guix-profile/bin=/bin -S /.guix-profile/etc=/etc -S /.guix-profile/share=/share -S /.guix-profile/include=/include tmux ...'
<csantosb>I send the .tar.gz to the cluster, decompress it.
<csantosb>At this point, I have the native /usr/bin/tmux along with the new $HOME/.guix-profile/bin/tmux
<csantosb>It's funny because the second one acts as if the $HOME/.tmux.conf file was present in the cluster. It's not.
<csantosb>/usr/bin/tmux behaves normally.
<csantosb>Any reason why the local $HOME/.tmux.conf gets packed along with the tmux binary or similar ?
<csantosb>It's a bit annoying not being able to alter the tmux config file in the cluster.
<lfam>csantosb: Presumably, there is an example tmux.conf created when building tmux
<lfam>Is that what's being added to the pack?
<lfam>Oh, I looked and it's not
<lfam>Huh, I don't know
<csantosb>Thing is the behaviour in the cluster corresponds to the one in my local pc, where I build the pack.
<lfam>Can you unpack the thing and confirm if it includes tmux.conf?
<csantosb>At some point, it sends the whole thing, tmux binary ... and config ?
<lfam>What is going on with this matrix stuff
<lfam>It keeps flooding the channel
<drakonis>the bridge is melting down
<lfam>Can we just turn it off for now?
<drakonis>there's 20000 matrix clients right now
<lfam>Who controls it?
<johnhamelink>Hi, I'm trying to build the elixir package a dependency to a "package of packages" I'm trying to build to contain all of the build tools for a project (all within guix shell). The exact error I get was briefly mentioned here https://issues.guix.gnu.org/42760 . If I "guix install elixir", I can install fine. I'm not sure what to do from here :/
<maxzor>Hello, did not have the courage to hop on guix. I even gave in last month to packaging ROCm for Debian: do you have opinions on cmake GNUInstallDirs? Trying to help ROCm move forward: https://lists.debian.org/debian-ai/2022/01/msg00103.html
<csantosb>lfam: under /gnu/store I have a couple of tmux related folders. No tmux.conf inside.
<maxzor>s/to hop on guix/to hop on guix _yet_
<lfam>csantosb: It's hard to understand how it could "remember" the old configuration
<drakonis>i think the bridge is run by libera? i think?
<lfam>csantosb: Could it be that it's actually just using the tmux defaults?
<lfam>johnhamelink: Please share the output of `guix describe` on <https://paste.debian.net>
<csantosb>lfam: yeah, it's crazy. Tmux defaults are loaded when I use /usr/bin/tmux, but not with $HOME/.guix-profile/bin/tmux.
<csantosb>Tmux defaults and my personal config are quite different, by the way.
<lfam>csantosb: Like I said, it's hard to understand how it could "remember" the old configuration
<lfam>It's not a case of new defaults in a new version of tmux, compared to what comes from the host distro?
<johnhamelink>lfam certainly; http://paste.debian.net/plain/1228975
<csantosb>lfam: Even worts. When I '$HOME/.guix-profile/bin/tmux -f $HOME/.tmux.conf' ...
<csantosb>lfam: ... it still respects my local config, not the one in .tmux.conf
<csantosb>What the ... ?
<csantosb>I have rebooted the whole thing twice (not the cluster!) to avoid any caching around or something. Nothing helps.
<lfam>csantosb: I'm a little confused. You talk about a local config. Can you clarify what you mean by local?
<csantosb>lfam: yes, sorry. In my laptop I'm using a local .tmux.conf, which I have customised.
<csantosb>This is what I refer by my personal, local configuration.
<florhizome[m]><lfam> "However, I use a custom kernel..." <- Oh, what do you use?
<lfam>Okay johnhamelink. So, you should have that bug fix in your version of the elixir package
<csantosb>lfam: When I deploy a guix packed tmux, I don't expect this local, personal config to be there.
<lfam>csantosb: Okay, that's what I thought. And, you are saying that the personal config is *not* in fact there, on the cluster to which you are deploying?
<csantosb>lfam: No. Just the binary.
<lfam>csantosb: Your `guix pack` invocation includes many other directories. Are you totally sure that your config is not in the pack?
<lfam>johnhamelink: Are you getting an error when you run a particular Guix command? I can try to reproduce the problem
<johnhamelink>lfam: indeed. I'm not sure how I should go about debugging this. I looked at the source of the package in /gnu/packages/elixir.scm and I see that there is a part of the code which refers to "sh". It looks to me like its doing some patching? Perhaps the patches don't apply cleanly now? Could that be it?
<drakonis>lfam: the bridge is run by matrix people
<drakonis>not libera
<lfam>Are you talking to them drakonis?
<drakonis>i'm talking to one of the libera admins
<lfam>Ah
<drakonis>it isn't their responsability.
<lfam>I wish these matrix people would just shut it down until this problem is fixed
<drakonis>responsibility
<csantosb>lfam: Yes. Why the $HOME/.tmux.conf would end in the pack, anyway ?
<johnhamelink>I have this in my .envrc lfam https://0x0.st/oHed.txt
<lfam>csantosb: I don't know. But I'm trying to understand how this behaviour could occur, and I can't imagine any other possibility. Can you?
<drakonis>the bridge is very bad.
<johnhamelink>I'm trying to learn using https://git.sr.ht/~abcdw/guix-clojure/tree as a template lfam - I thought I'd try to create a similar environment for erlang & elixir
<lfam>I think we need to zoom out here johnhamelink. Specifically, did you run a command get an error message? If so, what command did you run?
<johnhamelink>But as soon as I try to compile elixir in particular (erlang is fine), I come up against this issue
<lfam>Is the problem that the elixir package fails to build?
<johnhamelink>lfam: yes, it fails to build
<lfam>Okay, now we get to it :)
<lfam> https://ci.guix.gnu.org/search?query=spec%3Amaster+system%3Ax86_64-linux+elixir
<csantosb>lfam: No, not at all. But there is something else going on here.
<csantosb>lfam: I have also noticed something else: I manage to run 'singularity shell 'e image.xz.squashfs' out of tmux.
<johnhamelink>lfam: oh, ok this is interesting - so it looks like it's failing on CI?
<lfam>johnhamelink: Something changed between Guix Git commits b45bbe561a18f and d024a21fbe557247, which caused the package to fail to build
<csantosb>lfam: No problem to run same command under /usr/bin/tmux
<csantosb>lfam: Howver, under $HOME/.guix-profile/bin/tmux a get a setuid error.
<nckx>Hullo Guix.
<drakonis>hullo nckx.
<lfam>csantosb: Do you understand that error?
<nckx>drakonis: Matrix issues?
<csantosb>lfam: The singularity related one ? Not at all. It complains about not a setuid install found.
<johnhamelink>lfam: hmm Just trying to figure out how you got the git hashes from the ci page you sent me!
<drakonis>the bridge exploded and now the bridge users keep getting kicked off
<lfam>We stopped getting flooded by matrix join / leave right after I said the bridge should be turned off, nckx ;)
<johnhamelink>lfam: (as in how you found them, not as in whether they are correct)
<drakonis>that seems to be matrix's endgame
<drakonis>get as many people in matrix and then start burning them all
<drakonis>all the bridges
<lfam>johnhamelink: Click on an "ID" that is interesting. For example, the last succeeding build ID, and first failing ID. From there, click on the evaluation number. The evaluation is the batch of jobs built from a particular Git commit. Then you will get the commit
<lfam>I'm sure it's just a bug they'd like to fix drakonis :)
<drakonis>ha
<drakonis>maybe.
<drakonis>it looks like this is a common occurrence even back when freenode still existed
<lfam>johnhamelink: This range of commits is 204 commits long. So, not very long for a bisection
<johnhamelink>lfam: aha! OK thank you :) Just trying to understand how I might fix this myself next time
<lfam>Indeed! We love to help people learn
<johnhamelink>lfam: exactly, I'm going to try and do a git bisect and see if I can figure it out from here :)
<lfam>Hm, I see two commits in that range that touch the elixir package. They are good candidates
<lfam>Well, bisection will tell you for sure
<lfam>We look forward to the bug report
<lfam>csantosb: I'd guess that something (tmux? singularity? idk) expects to be setuid, but is not
<lfam>csantosb: With Guix, there is only one way to make executables setuid: Add them to setuid-programs in your config.scm. If you aren't using Guix System, then you can't make Guix packages setuid
<jpoiret>lfam: well, you can, manually, just like guix does it. Copy the executables out, and chmod them
<lfam>Well, yeah :)
<johnhamelink>lfam: thanks it'll take me a bit of time but I'm sure I'll figure it out with a bit of patience. Thanks for the pointer!
<lfam>Okay johnhamelink. Please don't hesitate to ask more questions if you get stuck
<johnhamelink>lfam: will do
<lfam>That commit 3da297997d "gnu: elixir: Use G-expressions." is a very likely candidate
<char[m]>I found that in guix shell, $GUIX_ENVIRONMENT and $CMAKE_PREFIX_PATH are the same and are both a single directory. In guix build, there is no $GUIX_ENVIRONMENT, and $CMAKE_PREFIX_PATH, is a "list" of directories.
<johnhamelink>lfam: yep that's where my head was at. I was literally about to start reading on what a G-expression is :)
<lfam>Alright :)
<mhj[m]>Ahhh
<mhj[m]>Thanks for the investigation lfam
<lfam>char[m]: Yes, that's as expected
<mhj[m]>lfam: Would running one of the system generations in a vm help if I could maybe get a log file somehow from it? Or am I misunderstanding how guix system vm works?
<lfam>mhj[m]: I'm currently building 5.15.18, but I'm not optimistic it's a kernel bug
<lfam>mhj[m]: You can't run a generation in a VM. At least, not easily
<lfam>If you already know how to do it, then go for it :) But I hardly have an idea of where to begin
<csantosb>lfam: Ok, thanks anyway, I'll try to figure out whats going on here.
<lfam>csantosb: Okay, let us know! It's really spooky
<nckx>lfam: Ah OK :) They are not logged by my ZNC playback, I see them only ‘live’.
<lfam>nckx: Just curious, have you updated any Guix Systems since the polkit graft?
<civodul>char[m]: see https://guix.gnu.org/manual/devel/en/html_node/Search-Paths.html and the 'set-paths' build phase too
<lfam>mhj[m] and I have unresponsive systems after it. Not immediately after it, just after it. Trying to see if it's widespread before starting to debug
<nckx>‘Polkit was grafted?’ should answer that.
<lfam>Heh, okay
<nckx>I've been A from all the Ks lately.
<lfam>No worries then
<lfam>Most people don't update as quickly as me, I've noticed
<nckx>I update frequently but only when I'm relatively sure I'm able to deal with any fallout.
<nckx>It sounds like there was fallout.
<lfam>I think so
<lfam>It's surprising that only two of us have noticed a problem so far, since the problem is that the system is completely unresponsive after it completes booting
<civodul>lfam: something wrong with the polkit update?
<civodul>oh
<lfam>Dunno yet civodul!
<lfam>We haven't narrowed it down to a particular change
<lfam>But, it seems likely
<lfam>Just a hunch
<civodul>ok, i have yet to update my laptop
<lfam>It doesn't help me that I didn't used to use --save-provenance, so I can't easily understand my old system generations
<lfam>My last good generation was created on January 26, but I don't remember if I used current Git or not
<civodul>--save-provenance is the default for "reconfigure"
<civodul>so "guix system describe" should show all the info
<lfam>I probably used ./pre-inst-env
<civodul>ah, could be
<lfam>Now I'm using time-machine instead, so that I get provenance
<nckx>Oy, OK, and the systems I would update this week are headless, so I'll cowardly pass.
<lfam>mhj[m]: Can you do `guix system list-generations`, and share the "commit" (or whatever the field is called) of your last working generation?
<lfam>nckx: Yeah, I recommend you wait
<nckx>Thanks.
<civodul>nckx: headless systems probably don't have polkit though
<civodul>i just checked a server that has unattended upgrades and it looks fine
<civodul>(without polkit)
<lfam>Okay
<lfam>Is it using version 5.15.17 of the kernel, civodul?
<civodul>i didn't reboot it so it's on an older version
<lfam>Ah
<mhj[m]>Lfam sure, but right now I am playing dungeons and dragons with friends, so I won’t have access to my pc till about 3 hours from now lol
<lfam>Okay, whenever you can, ping me with that info
<lfam>You can use the sneek bot to send me a message if I'm not here
<lfam>Like this:
<lfam>sneek: later tell mhj[m]: Howdy
<sneek>Got it.
<gordon1>so usually bunch of stuff that is build by guix is regular autohell ./configure && make && make install stuff, and usually configure part is smart enough to detect some dependencies on their own and compile it only if it's available
<nckx>civodul: The one I happen to be logged in now does (if guix size current-system is to be believed).
<nckx>But it runs CUPS and such.
<gordon1>is my assumption correct in general that if i just delete some input from the package it will build it w/o this dependency or are inputs explicitly specified in configure call?
<nckx>It's a (remote) office server, not in some DC somewhere.
<gordon1>it==guix
<char[m]>lfam: It seems to make sense to me, but stupid cmake does not seem like like it.
<johnhamelink>lfam: OK, so it seems I was able to get builds to work again, by re-using the previous method of finding "sh", but while still keeping the rest of the g-expression patch. I tested by running guix build elixir -f gnu/packages/elixir.scm and adding "elixir" to the bottom of the file. Is that a sufficient test?
<lfam>Yes johnhamelink. Can you send your patch to <guix-patches@gnu.org>?
<johnhamelink>lfam: I'd be delighted to :)
<lfam>Great!
<civodul>gordon1: it depends on whether that package has custom #:configure-flags, see https://guix.gnu.org/manual/devel/en/html_node/Build-Systems.html#index-gnu_002dbuild_002dsystem
<johnhamelink>lfam: should the patch include the addition of "elixir" at the bottom of the file? Is that only necessary when trying to refer to it as I did above, or is that needed all the time?
<lfam>johnhamelink: No, that part doesn't need to be included
<lfam>It's only used for `guix build -f`
<gordon1>civodul: yeah i saw that, i just wonder what is the general apporach in making gnu-build packages, are dependencies usually specified in configure flags or implicitly assumed?
<johnhamelink>Ok, I thought as much but thought I'd check :) Will send a patch once I've made sure my system is setup correctly
<civodul>gordon1: usually it's implicit
<gordon1>awesome
<mhj[m]>Will do lfam
<sneek>Welcome back mhj[m], you have 1 message!
<sneek>mhj[m], lfam says: Howdy
<char[m]>How do I debug "RUNPATH validation failed"?
<jeko>Yo Guixters
<char[m]>welcome jeko
<civodul>hey jeko :-)
<civodul>char[m]: usually there are details right above as to what's wrong with RUNPATH
<char[m]>civodul: I saw that. It is missing some .so such as libavcodec, but I have ffmpeg in the inputs
<civodul>char[m]: so it could be that at link time it fails to pass the right -l or -L flags
<char[m]>and by "it" you mean guix or the project
<civodul>i mean the project's build system (makefiles, etc.)
<char[m]>civodul: is seems to have linked something properly, but not other
<gordon1>so there is this "package-input-rewritting/spec" that replaces one input to the other, but how can i delete an input in the same way?
<gordon1>do i have to do it through package-mapping?
<civodul>gordon1: maybe modify-inputs? https://guix.gnu.org/manual/devel/en/html_node/Defining-Package-Variants.html
<civodul>or yes, package-mapping is you need to do it on the whole graph
<gordon1>yes, i do
<gordon1>so package-mapping + modify-inputs
<gordon1>it's not really clear from the doc, does package-mapping go over the whole graph down to bottom or only 1 level deep?
<gordon1>oh, i see, package-input-rewriting/spec uses package-mapping, so i guess it goes over the whole graph
<civodul>yes
<sailorCat>I remember there is a simple way to get a list of files for a package, but I forgot how to do it. please remind me it.
<rekado_>sailorCat: find $(guix build the-package)?
<nckx>tree $(guix build PACKAGE) ?
<nckx>Heh.
<nckx>find is actually what I meant.
<sailorCat>Yep, thanks a lot. I'll better to write it somewhere.
<vldn> https://www.phoronix.com/scan.php?page=news_item&px=Rust-Coreutils-Jan-2022
<vldn>Rust-Written Replacement To GNU Coreutils Progressing, Some Binaries Now Faster