IRC channel logs

2024-12-29.log

back to list of logs

<homo>graywolf "sudo guix gc --delete-generations", however every time I get unbound variable error, nothing is corrupted in store, it means I mistyped variable, forgot to define it or forgot to import some module
<homo>the problem is this error message is so unclear you cannot know which variable is unbound
<graywolf>The problem is that the corrupted entry in in use
<graywolf>When I try to delete it I get: cannot delete path `/gnu/store/miwzsy04b4ryvr2y1hqghixi2riz4v0n-grub-locales' since it is still alive
<graywolf>So I am not sure how to repair it :/
<graywolf>home: guix gc --verify=contents tells me the entry is corrupted though
<homo>alright, I am not familiar with dealing with that part, I'm new to guix and use it month already
<cancername>graywolf: try --verify=contents,repair
<cancername>I had a similar issue recently
<cancername>it needs sudo
<graywolf>Yeah I already tried, but no luck :/
<cancername>oof! no clue then, sorry, I am new
<meaty>I want to use a session manager other than GDM. However, despite not using %desktop-services, GDM is still used. How can I find what in my config is responsible for using the gdm service?
<cancername>you could use modify-services to remove gdm, but I unfortunately don't know how to find that out
<meaty>sailorCat: Actually, it seems like gdm-service-type isn't even running? I have its filesystem service running but not the thing itself
<meaty>Does anyone have any example configs of using a non-gdm session manager?
<homo>meaty: this is confusing, but the reason gdm is used is because "set-xorg-configuration" uses gdm on x86_64 and sddm on other arches
<homo>so the short answer is remove set-xorg-configuration from your config
<lilyp>set-xorg-configuration was a mistake
<cancername>what should I replace local-file/plain-file/whatever with in home-files-service-type? I tried url-fetch from (guix download) which gave me a type error and url-fetch from (guix build download) downloads to a fixed path instead of to the store.
<cancername>to download a url with a known hash to the store*
<meaty>homo: so if I'm using wayland I just remove that entry entirely and insert the session mgr service of my choice, and it will "just work"?
<homo>yep
<homo>and if you decide to use %desktop-services, don't forget to remove gdm-service-type from the list
<homo>one of the reasons to prefer %desktop-services is because they setup elogind, pulseaudio and networkmanager
<graywolf>Maybe a stupid question, but if I want to have a shepherd service that is just a setup/teardown script, I cannot use one-shot? (since I need a stop action). Should I just set (respawn? #f)? Are there any downsides I am missing?
<homo>graywolf pulseaudio-service-type from gnu/services/sound.scm might be an example how to do that
<Googulator>gcc-4.9 builds fine during bootstrapping even in the affected revisions; it's only when we try to build a final, non-bootstrap gcc-4.9 that the issue appears
<lilyp>pulseaudio-service-type has no shepherd service iiuc
<graywolf>Yeah does not look like it
<lilyp>graywolf: what's the use case here? would two separate one-shot services foot the bill? would a one-shot service with multiple actions?
<graywolf>lilyp: #:start will create a network namespace, some interface and move them into the netns. #:stop should clean that up.
<freakingpenguin>graywolf: file-system-shepherd-service might be an example
<freakingpenguin>in (gnu services base)
<graywolf>freakingpenguin: Hm right. So the idea is to not use make-forkexec-constructor, and instead just return some constant intead of <process> record.
<graywolf>So basically I need to switch to system* instead of make-forkexec-... . I can work with that, thanks for the nudge.
<graywolf>lilyp: Reason why I want to use the #:start and #:stop instead of separate action or two services it to get `herd restart' working. It seems handy.
<cancername>I apologize for the repeated question, but is there a better way to get a file-like object for an URL than to make a dummy package for it?
<singpolyma>You could make a source in some contexts
<cancername>singpolyma: how could I do that?
<singpolyma>Same as the (source) section of a package
<cancername>just (source ..)
<singpolyma>But not package around it
<singpolyma>I use sources directly as inputs sometimes for example
<unmush`>(origin ...)
<cancername>thanks for your help singpolyma, unmush`! when I tried to evaluate (source ...), it gave #f, but just (origin ...) produces a file-like object ^_^
<meaty>anyone know why some bluetooth audio devices like to thrash back and forth dis/connecting?
<meaty>I suspect it's something to do with the session manager and the wayland compositor fighting over it but I have no way of knowing... is there some way I can "observe" what's actually going on
<cancername>meaty: since bluez uses D-Bus, you might be able to use dbus-monitor.
<freakingpenguin>Hey all, I'm trying to write a python package and am getting a circular import error during the check phase. I'd appreciate a set of eyes in case I'm making a simple mistake. https://paste.debian.net/1341581/
<the_tubular>How is guix on arm ?
<oriansj>the_tubular: a little slow and some packages are broken.
<the_tubular>How many packages? I'm planning on deploying guix on Graviton
<oriansj>the_tubular: well if you are expecting gnome desktop; enough to be a problem but if you are doing a server, not enough to break the basics.
<the_tubular>Server, probably docker or podman on it
<oriansj>you'll be fine (until something new breaks) but the package maintainers don't tend to test on ARM.
<the_tubular>And is there a way to limit the size of /gnu/store ?
<the_tubular>I don't fully understand why it takes a lot more space than a regular distro, with only 1 user, and barely no packages
<the_tubular>I don't have a lot of packages install and : du reports : 78G     /gnu/
<oriansj>the_tubular: because you have all of the build dependencies too
<the_tubular>Or can I mount /gnu/store so multiple machines refers to the same store ?
<oriansj>the_tubular: well, you'll run into the fact that all "installed" packages are just links to files in /gnu/store
<oriansj>and how would you mount that path without any installed programs or a kernel?
<the_tubular>Umm, good point
<oriansj>the_tubular: guix gc should shrink that number a good bit
<the_tubular>I just ran guix gc
<the_tubular>and sudo guix gc, idk, if I need both
<the_tubular>note: currently hard linking saves 78586.73 MiB
<the_tubular>guix gc: freed 8,330.89 MiBs
<homo>without sudo it won't touth packages rooted by other others
<homo>s/others/users/
<the_tubular>That makes sense
<the_tubular>But still 80gb without much installed
<the_tubular>Haa I think I have %desktop-services in my system.scm on this machine
<the_tubular>Without that it probably drops a bit I guess
<homo>8,330.89 MiBs is not 80 GB
<the_tubular>78G     /gnu/
<the_tubular>This is
<homo>ah
<the_tubular>Gc free about 8gb
<the_tubular>Still 78 taken
<homo>you need sudo guix system delete-generations
<homo>and then run guix gc
<the_tubular>Ohh let me try that, is there a switch to keep only the 5 last one ?
<homo>you want 5 last generations?
<the_tubular>Yeah, the latest 5 one
<the_tubular>I have close to 400 generations
<homo>you will need to know their age
<homo>"sudo guix system delete-generations 2m" will delete all generations older than 2 months
<the_tubular>Umm, that would be a great switch to add!
<homo>still, 78G for 400 generations is surprisingly light
<the_tubular>I guess I also need to run it without sudo correct ?
<homo>not like you will notice any different unless other users have their own generations
<homo>s/different/difference/
<homo>so if you want to delete generations for other users, you will need "sudo guix gc --delete-generations=2m" which will remove all users' generations older than 2 months
<the_tubular>guix gc: freed 32,888.04 MiBs
<the_tubular>:D
<the_tubular>60G     /gnu/
<homo>I have only 1 generation and it takes 17GB, how comes your 400 generations took 78GB?
<the_tubular>Idk, but 78 - 32 != 60g ?
<the_tubular>My generation were very small changes I guess ?
<homo>maybe
<homo>it's funny when math goes so wrong
<homo>maybe it makes sense if there are a lot of small files, like "echo hello world > hello && du -h hello" will show 4.0K, even though "hello world\n" is 12 bytes long
<homo>which means when it says how much space is freed, it doesn't count sizes of blocks
<homo>and "du -h" is silly enough to sum up blocks
<the_tubular>This is what I used
<the_tubular>-sh
<homo>yeah, and it summarized extra 16 GB of empty blocks
<homo>4 000 000 files * 4K blocks = 16GB
<homo>what number do you get by running "find /gnu/store | wc -l"?
<the_tubular>2312264
<homo>yeah, block sizes betrayed your math
<the_tubular>What would be a better way of knowing how big my store is ?
<homo>no idea
<homo>but those blocks are occupied for real, you literally have 60GB occupied by store
<the_tubular>Umm, not too sure I'm following
<the_tubular>Is my math wrong or no ?
<homo>when guix told you that almost 33 GB are freed, it didn't calculate block sizes, only how long they are inside
<homo>actually never mind
<homo>I myself am confused
<homo>searching tells that MB means megabyte and MiB means megabit
<homo>1 MB is 8 MiB
<the_tubular>Isn't there megibyte too or something like that ?
<homo>so, 32 000 MiB / 8 = 4 000 MB = 4 GB
<homo>but that again gives inconsistent math
<homo>because 78 - 4 != 60
<the_tubular>Mebibyte **
<homo>what happenned, why I get https error running git pull
<homo>"$ git pull" gives "git: 'remote-https' is not a git command. See 'git --help'. fatal: remote helper 'https' aborted session"
<the_tubular>Umm, let me try
<the_tubular>Git on which repo ?
<the_tubular>I originaly read guix pull lol
<the_tubular>Can you curl the repo ?
<homo>I solved this problem differently: "guix pull", "guix shell git", "git pull"
<homo>git on official guix repo yes
<cancername>How can I get the path of a file-like object?
<homo>just now I have learnt why plan9 and inferno fonts don't have source - "9 man tweak"
<homo>they were most likely painted with that tool, so they are in their source form
<unmush`>homo: MiB = "mebibyte", it exists because the physical sciences people kept getting annoyed that the computer scientests would use "kilo" to mean 1024 and "mega" to mean 1024^2. So 1 MiB = 1024 KiB = 2^10 KiB = 2^10 * 2^10 bytes
<unmush`>s/scientests/scientists/
<unmush`>"megabit" is written Mb, and "mebibit" (if anyone ever used it) would be written Mib
<cancername>surely, this is a really bad way of doing this? (define (file->path file) (lowered-gexp-sexp (run-with-store (open-connection) (lower-gexp #~#$file))))
<unmush`>what does (with-store store (run-with-store store (lower file))) do for you?
<unmush`>er, s/lower/lower-object/
<cancername>unmush`: #<derivation ...>
<cancername>so I guess I derivation->output-path that?
<unmush`>that will get you the output path that will exist once the derivation is built
<cancername>unmush`: thanks!
<homo>is there example config for guix home that appends custom bin directory to PATH?
<meaty>Does anyone else use SDDM in wayland mode? I'm having issues getting it to work
<meaty>i would like a config example
<homo>meaty if it is related to absense of proprietary firmware, you need to rebuild linux-libre with simple direct rendering manager driver https://issues.guix.gnu.org/74778#2
<meaty>Actually, there seems to be an issue: /var/log/sddm.log says "The theme at "/run/current-system/profile/share/sddm/themes/maldives" requires missing "/gnu/store/1pvjn3hqlzdqvq757667p2gghzkmqpgk-sddm-0.21.0/bin/sddm-greeter" . Using fallback theme." However, that store directory instead contains ...sddm.../bin/sddm-greeter-qt6
<meaty>It also says "Failed to take control of "/dev/tty1" ("root"): Operation not permitted"
<homo>because tty1 is occupied
<homo>by default sddm-service-type uses tty7
<meaty>and I am using the defaults
<homo>also in sddm-configuration you need to set display-server to "wayland"
<meaty>I did
<meaty>I'm going to try using sddm-qt5, that has the correctly named greeter binary
<meaty>brb
<homo>meaty I'm not sddm user, but following this documentation https://guix.gnu.org/manual/devel/en/html_node/X-Window.html and reading some source code of guix, this is the conclusion I would come to https://paste.debian.net/1341592/
<meaty>ok am back. It's still broken, the first error is gone but it still complains about not being able to take VT1
<homo>set-xorg-configuration must be removed as it assumes you use gdm
<meaty>yes, I did remove it
<meaty>I'll try adding an xorg config to the service settings, maybe that does something
<meaty>there's also a mention of PAM in the logs... let me paste it
<homo>minimum-vt variable is a trap
<homo>reading gnu/services/sddm.scm minimum-vt is not used on wayland
<meaty> https://paste.debian.net/1341595/
<meaty>This is just three seconds of it, it repeats this cycle very fast
<homo> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/sddm.scm#n143
<homo>this is the trouble - it doesn't use minimum-vt for wayland, so it tries to capture tty1
<homo>this is a dirty hack https://paste.debian.net/1341596/
<homo>I don't know enough of guile to delete mingetty-service-type that sits on tty1, this is why it is dirty - you won't be able to use any vt other than tty1
<meaty>or-- what if I just inserted a newline into an argument to the 'sessions-directory' command and got the line in that way
<homo>ideally you would clone guix repo, modify gnu/services/sddm.scm and then user pre-inst-env guix system reconfigure
<homo>s/user/use/
<meaty>true, or just send in a patch
<meaty>oh wait we can do that?
<homo>yes
<homo>I'm not familiar with how to configure sddm as I use gdm and gnome
<meaty>well im about to try my first idea, if that works I'll just fix it and send a patch
<homo> https://paste.debian.net/1341599/
<homo>is this patch good enough?
<homo>it is not
<homo>I just checked man page for sddm.conf
<homo>sddm doesn't have minimum vt for wayland
<cancername>hmmm.... this takes an eternity, then returns a nonexistant path: (use-modules (guix gexp) (guix packages) (guix) (gnu packages video)) (define (file->path file) (derivation->output-path (with-store store (run-with-store store (lower-object file))))) (display (file->path mpv)). wat. could you help with any ideas, unmush`?
<meaty>homo: I just found out myself too, my way didn't work
<unmush`>cancername: yes, that is the result I described: the output path that will exist once the derivation is built
<cancername>ah, thanks
<homo>meaty try temporarily deleting mingetty-service-type and see if that works
<cancername>do you know why it seems to be quite slow?
<homo>like I showed in dirty hack above
<unmush`>nope, to my knowledge all that should be required is interning a bunch of derivtaions into the store
<unmush`>s/derivtaions/derivations/
<unmush`>how slow is "quite slow" here?
<cancername>some 5-10s
<unmush`>how long does 'guix build --derivations --dry-run --no-grafts mpv' take?
<unmush`>and does file->path take the same amount of time on subsequent runs?
<cancername>oops, those included other stuff, actual runtime is more like 2s
<cancername>yes, it takes the same amount of time on subsequent runs
<cancername>'guix build --derivations --dry-run --no-grafts mpv' takes a bit longer, about 6s
<unmush`>are these subsequent runs in different processes, or evaluating file->path once again in the same process?
<cancername>new process
<meaty>homo: well, doing that also requires removing the console font service, which leads to "guix system: error: error parsing derivation `/gnu/store/mbcdjqhw3pv9mhwdhq5qhgx5klpxf1zz-activate.scm.drv': expected string `Derive(['"
<unmush`>the issue is that a pretty big chunk of the derivation graph is transitively referenced by mpv, so even though you're only asking for one derivation, under the hood it needs to compute probably thousands
<cancername>I see
<unmush`>of course, within a single guix process, this is cached
<cancername>is it? it seems similarly slow in guile repl
<unmush`>although IIRC that cache might be associated with the store used
<unmush`>which is why it's usually good to, if you're going to be using store connections, define it somewhere once and reuse that everywhere
<cancername>I see
<homo>meaty oh, it is much more difficult than with greetd, in that case you need to figure out how to remove mingetty only from tty1
<cancername> https://pastebin.com/1xqtvQcR statprof output if curious
<cancername>hm, are 'guix build' and '(file->path)' supposed to give different paths?
<unmush`>I imagine they would give different paths depending on whether grafts are used
<cancername>'--no-grafts' gives a third different path
<unmush`>could it be that the mpv being selected by the (specification->package ...) that 'guix build' implicitly uses is different from the one bound to the symbol 'mpv'?
<cancername>nope
<homo>is there example config for guix home that appends custom bin directory to PATH? I want plan9port's plan9/bin to be at the end of PATH, not beginning, so that I don't get errors when most software expects posix or even gnu utils
<Ironsmith>hello, i have a patch i sent in not too long ago but it's gone through a few revisions and now i have another patch that depends on it. should i close the first patch and create a new one with the both patches in the [PATCH 0/2], [PATCH 1/2], [PATCH 2/2] format? or what's the best thing to do in this case? the first patch in question is
<Ironsmith> https://issues.guix.gnu.org/74900
<Rutherther>Ironsmith: no, it's better to send it to the same issue. You can use -v2 parameter when generating the emails, it will put v2 in subject: [PATCH v 2 0/2]..., the CI and people who would be merging it understand that
<bdju>does guix system have anything like `systemd-analyze` for checking how long booting took?
<Ironsmith>thanks Rutherther!
<robin>homo, are you trying to use the home-environment-variables service or similar for it? or just looking for the right incantation to add to the bash profile
<csantosb>Following with the new guix organization under codeberg, https://codeberg.org/guix, would it be a good idea to create a single point for all things guix channels (if it doesn't exist already) ? Some kind of index or similar for new users.
<csantosb>By the way, https://hpc.guix.info/channels seems down ...
<Rutherther>csantosb: see https://toys.whereis.social/
<csantosb>Rutherther: great, thanks !
<yarl>Hello
<yarl>Does anybody know how I can remove the "quiet" kernel argument from my operating-system configuration please?
<yarl>Oh
<yarl>my bad, just got it
<msavoritias>what is the cargo-build-system support for repositories with worktrees? I am trying to package https://gitlab.com/xmpp-rs/xmpp-rs
<msavoritias>it has a bunch of packages in the same repo and at the moment it fails after building https://paste.debian.net/hidden/68c14629/
<msavoritias>command "cargo" "package" "--no-metadata" "--no-verify" failed with status 101
<cluelessguixer>My wireguard on the outside of a shell container didn't pan out (iptables routing is annoying), so now I'm considering guix system container. I don't suppose there's a quick way to create a minimal image config like with "guix home import"?
<luca>afaik no, but the installer will make a config for you
<cluelessguixer>I guess I can just start with the "database container" example.
<cluelessguixer>"(use-service-modules networking)" isn't enough? "guix system: error: service 'wireguard-wg0' requires 'networking', which is not provided by any service". It's a dry run if it matters.
<gabber>cluelessguixer: (use-service-modules) only imports the module, it doesn't insert it into your configuration
<gabber>if you are extending %base-services or %desktop-services i think networking is already provided
<cluelessguixer>There is "(services (cons* (service wireg...) %base-services))". Trying to compare with my system's config I can't see anything... except "(modify-services %desktop-services...".
<gabber>i must have misremembered, then (:
<gabber>have a look at 11.10.4 "Networking Setup" in the manual
<gabber>depending on your use-case it may suffice to simply add a dhcp-client-service-type to your configuration
<cluelessguixer>gabber: Cheers!
<gabber>HTH
<cluelessguixer>Hmm... C-z just immediately stops the container and drops you back to the shell.
<cluelessguixer>Or maybe not? Uh..
<yarl>When using offload, if you want to build on the client too, do you need to specify it as a machine?
<yarl>I mean, do I need to add "localhost"?
<cluelessguixer>I see. "bg" was a command when dropped back into the shell. Neat.
<nested-virtio-vi>Hi all. I am running guix in a VM with Wayland/sway as WM. If I use virtio instead of qxl as display driver then the system often hangs for several seconds. Is this somewhat of a known issue?
<fnat>A couple of online talks starting in a few mins on https://meet.jit.si/london-guix-meetup
<whereiseveryone>if anyone is interested i am going to present on 5 rde features i like at the hour here: https://meet.jit.si/london-guix-meetup
<cluelessguixer>It seems dhcp-client-service-type wasn't enough. Although I got the container up and running, the networking service fails to start. I only have a loopback interface. How to you give a system container internet access?
<yarl>cluelessguixer: 11.16 Invoking ‘guix system’ : --network ?
<Googulator>Is the debbugs email gate down? I've submitted 2 comments today to https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74783 via email, but neither came through.
<cluelessguixer>yarl: Much appreciated! Didn't need the dhcp-client-service-type with that.
<yarl>cluelessguixer: :)
<dariqq>ekaitz: Re g-golf from friday: I think you were right with issues when 2 different glibs are present. g-golf gets grafted to a different glib than the normal grafted (hidden) glib package. If I manually adjust the PKG_CONFIG_PATH to point to the glib that g-golf is using and link with that things magically start working again
<ekaitz>dariqq: glad to see that it works!
<dariqq>This issue seems to be caused by glib having multiple outputs and one graft just grafts the out output and the other one all of them. Which I think is very weird
<ekaitz>yeah...
<jas>hi! sorry for really newbie question: are the substitution servers doing anything but serving static https files to serve 'guix install FOO'? i.e., can i setup a mirror using rsync of a mirror and apached?
<jas>i'm seeing this usage of a 'guix install FOO' session: real 9m48.280s, user 0m45.984s -- so i assume most of it is stuck in network I/O
<cluelessguixer>Man, I guess wireguard won't work inside a system container either... Could it be due to the --network option? "For the container action, allow containers to access the host network, that is, do not create a network namespace."
<luca>Hi, I want to build a tool which uses pkg-config, but it's telling me "Checking for pkg-config ... not found, exiting.". As far as I know, this should work https://git.lucamatei.com/guix-luca-repo.git/tree/luca-systool.scm?h=xbps#n117 Anyone got any tips?
<efraim>luca: you might need to patch the _which function in the configure script, or try adding which to the native-inputs
<luca>fun. Thanks for the tip!
<Rutherther>it seems that in upstream they already tried to solve the unnecessary dependency on which by moving to command, but the version 0.59.2 still doesn't have that
<homo>robin either one, I simply need example how others set up PATH in home config
<fnat>A friend seems to be having this problem where he installs Guix system with guix system init /mnt, then reboots and he gets an error "populating /etc from /gnu/store/... in procedure symlink: File exists".
<fnat>Any idea what could be causing this?
<luca>Is there an equivalent to /var on guix? For "localstatedir" (like where packages' database is stored and what not)
<luca>Actually probably %output/var
<Rutherther>luca: it can't be %output/var as the store is immutable, so it doesn't have any state
<Rutherther>system-wide state is usually kept in /var even on guix system
<dariqq>luca: It is usually /var (see eg the guix package) . You might need to adjust the variable for install phase . #$output/var wont work because that is readonly .
<luca>Can packages put something in /var?
<Rutherther>if you mean during build, no, builds output only to the store
<robin>homo, for appending, export PATH="$PATH${PATH:+:}/path/to/plan9/bin" should do it (the :+: expansion handles the improbable case where PATH is undefined)
<robin>(can duplicate PATH entries in nested shells but that's harmless unless you do very deep nesting)
<homo>bash scripting in home config?
<homo>never mind, this is what I was trying to avoid, I wanted to declare PATH in .scm file
<Rutherther>homo: if you wanted to set the env var in a scm file, you would need to start your shell from that file. But you don't have control over that from guix home (unless you launched a second sub shell every time in your normal shell). Otherwise you need to use ways to change environment of the shell the shell gives you - sourcing. And at that point, you use regular bash
<homo>hm, I noticed there are packages which define their own env variables after installation, but I didn't notice any that define PATH
<Rutherther>do you mean search paths?
<Rutherther>every profile has PATH export call to its bin and sbin folders (if they exist)
<homo>search paths doesn't include ~/guix-home/profile/plan9/bin
<Rutherther>I don't know what you mean by that. Search paths include whatever the one writing a package wants them to include
<Rutherther>so a search path can of course contain plan9/bin, though it's better practice to tell the package to output to bin folder rather than a custom one
<homo>that's not an option, there is name confict with gnu coreutils, they are incompatible
<whereiseveryone>hi, what's the latest on the rust antioxidant build system? ;()
<homo>Rutherther the problem is plan9port package installs in bin script "9" which sets plan9/bin to the beginning of the PATH, so when I develop with acme ide, I get a lot of errors because existing software expects behavior of gnu coreutils, not plan9 userspace, however on other distros where plan9/bin is by default set to the end of PATH, there are no errors
<homo>according to documentation, search paths are valid only when package is being built, they are not valid when package is already installed
<Rutherther>I don't know what you mean by valid. Search paths are important, and included, both when building and when installed
<Rutherther>that is how python packages, emacs packages, guile packages etc. even work, without search paths they don't
<homo>that's not what documentation says
<homo>also I grepped packages for GST_PLUGIN_PATH, it is not set after install by any package
<homo>so I can't even use another variable as example
<Rutherther>because you probably didn't understand what I said earlier
<Rutherther>you can't change environment of a running process, so just guix install is not going to give you any env vars
<Rutherther>you need the shell to source a script, only then env vars are added
<Rutherther>this is done automatically on login. Or you can do it manually
<Rutherther>so after adding any packages that will provide you with a new env var (from a search path) you need to either source manually or relog
<bobsuncle>Hey all, I'm having issues setting up a system with LVM on LUKS. I'm prompted for a LUKS passphrase on boot and the partition is unlocked, but when selecting an item from the menu I get the error `no such device: /store/rg...-linux-libre-6.19.9/bzImage`.
<homo>then why "guix shell v4l-utils --pure --search-paths" doesn't print export INCLUDE path?
<bobsuncle>It seems that GRUB is not mounting the LVM partitions needed for booting, so it can't find the kernel or initrd.
<bobsuncle>Here is a simplified version of my config: https://paste.debian.net/hidden/7493156a/ , and the the disk is partitioned like so: https://paste.debian.net/hidden/5da62a35/
<bobsuncle>This looks like the same issue described here: https://issues.guix.gnu.org/62140 Indeed I confirmed that adding `insmod lvm` manually to the GRUB entry boots the system, but I'm wondering if there's a proper fix for it.
<Rutherther>homo: v4l-utils doesn't have any search paths defined (apart from the regular PATH every package has)
<civodul>whereiseveryone: nobody’s working on antioxidant, AFAIK
<civodul>would still be interesting though
<Rutherther>bobsuncle: I don't think there is currently really a proper fix for it, I had the same issue and just went with luks without lvm, since I didn't need lvm at all
<Rutherther>bobsuncle: as a workaround if you want lvm it would be possible to sneak in insmod lvm into the grub config, it's not that hard. If you want I can give you the code for that
<bobsuncle>Rutherther: Cheers, I'd appreciate that. Just out of curiosity: how would you sub-partition the LUKS partition without LVM? Or you just use a single partition?
<bobsuncle>I see other approaches using btrfs, but I really don't want to use that.
<Rutherther>bobsuncle: yeah, I use just one partition, never can decide how to split well, so I don't :D
<bobsuncle>Rutherther: Ah, I find LVM super convenient and flexible. It's nice to be able to easily resize partitions if needed, and I couldn't live without partitions. I don't want something writing to e.g. /tmp filling up my disk :) Or /gnu/store now with Guix.
<homo>Rutherther ok, same problem with search path, I made this little patch https://paste.debian.net/1341709/ and it has same problem as script "9" installed by same package - plan9/bin is set to the beginning of PATH, not end of it
<Rutherther>bobsuncle: https://paste.debian.net/1341710/ you can try this. You can put it above your "(operating-system ...)" and then in your bootloader replace "grub-efi-removable-bootloader" with "grub-lvm-bootloader". Not 100 % sure it's going to work, haven't tested it yet
<bobsuncle>Rutherther: Uff that's hardcore. Much appreciated! I'm still getting my feet wet with Guile and couldn't have arrived at that solution. ':) I'll give it a try now.
<Rutherther>please at least verify the outgoing /boot/grub/grub.cfg that it contains what it should
<Rutherther>before rebooting
<bobsuncle>I'm testing all this in a VM, so no harm if it doesn't work. But sure, I'll look at grub.cfg.
<Rutherther>homo: right, the order is not guaranteed with search paths, so even if it worked once I wouldn't really rely on that. If your use case is to run all programs through that 9 script eventually, then maybe it would work for you to just modify that script - so it appends instead of prepends
<csantosb>Is it possible to get the list of packages in a guix module, so as to check for updates ?
<homo>also I wonder if some of plan9port functionality is broken because PLAN9 variable is unset
<homo>but that is unlikely
<bobsuncle>Rutherther: Dumb question, but where is `grub-lvm-bootloader` supposed to be defined? I'm getting an `unbound variable` error, which makes sense, but I'm not sure how to define it.
<Rutherther>csantosb: it definitely is possible. Is "guix refresh" what you are looking for?
<Rutherther>bobsuncle: put the whole thing I sent before your "(operating-system ...)"
<csantosb>Rutherther: sure, but I mean, how do I pass the list of packages in a module ?
<Rutherther>csantosb: read help of guix refresh. It shows you how to select one module
<bobsuncle>Ah, I didn't copy the grub-lvm-bootloader definition... Sorry, dumb and sleepy.
<Rutherther>bobsuncle: also "s/modified-old-entries/old-entries" in what I sent, I copied the most of it from my bootloader modification and forgot to change this
<bobsuncle>Rutherther: Yeah, I did that, and had to also import `(guix utils)`. It's building now...
<bobsuncle>ACTION crosses fingers
<bobsuncle>Rutherther: grub.cfg looks good, FWICT. Same as before, just with `insmod lvm` on top. Nice! Let me try booting...
<Rutherther>and another thing, store crypto devices and store directory prefix should be passed as they come, so: https://paste.debian.net/1341711/
<bobsuncle>Aha, OK, let me try again with that change.
<bobsuncle>Rutherther: Cheers, it boots now! Or at least it loads the kernel and initrd. Something is not right during boot though, but I have a separate issue with garbled text in QEMU, so can't really troubleshoot it now. `nomodeset` doesn't fix it, but I'll look into this tomorrow.
<bobsuncle>Thank you very much for the help! Have you considered posting this somewhere in the Guix documentation? That snippet would be very useful for many people, since I think LVM on LUKS is a very common setup.
<zeropoint>just when I was looking for how to denote a specific machine to deploy using guix deploy, noticed that an --expression flag has been added... nice :)
<civodul>heh :-)
<civodul>it appeared a couple of days ago