IRC channel logs

2023-02-11.log

back to list of logs

<rekado>is this new? https://simfish.dev/projects/gix/
<rekado>Gix: Literate Programming with Emacs org-mode & GNU/Guix
<ofosos>Well the title says Jan 2022
<rekado>if only I could read grey on beige!
<ofosos>:D
<ofosos>But archive.org didn't pick it up until this month, so it maybe new.
<civodul>rekado: this looks nice, no?
<rekado>yes, I’m surprised I hadn’t seen this before
<civodul>yes, same here
<civodul>also, colleagues of mine are head-down on Org + Guix
<civodul>and apparently they didn't know about it either
<the_tubular>rekado that definetly looks interresting, but what a terrible name ...
<johnabs[m]>Anyone here successfully using clack with sbcl-guix?
<johnabs[m]>*sbcl-clack
<johnabs[m]>Actually, even a step up, it seems that sbcl-coleslaw is broken :/
<Lumine>johnabs[m]: SBCL package coupled with quicklisp(not the one from repo) works well for me, it needed some tinkering like setting up .sbclrc with ASDF, quicklisp and CFFI to make coleslaw work without errors. I couldn't for the life of me figure out SBCL-coleslaw.
<johnabs[m]><Lumine> "johnabs: SBCL package coupled..." <- Hey Lumine (sorry for the late response, was running a system upgrade) did you mean for clack or coleslaw?
<johnabs[m]>SBCL-coleslaw throws loads of "read-only-filesystem" errors when I try to use it, and when I get the quicklisp variant, clack seems to fail (I suspect because it requires roswell as a dependency, which currently isn't packaged for guix). Any advice?
<yewscion>Hello all, I have a question about packaging libraries for Agda, which (generally) expects the user to download all libraries they want to use to a directory of their own and then point to them in a specific file in their home directory (~/.agda/libraries). One can override this behaviour through the AGDA_DIR environment variable, which defaults to $HOME/.agda when unset. How could I specify a directory in a store for this variable
<yewscion>without preventing the user from customizing that variable as they see fit?
<yewscion>Related docs concerning libraries in Agda: https://agda.readthedocs.io/en/latest/tools/package-system.html
<johnabs[m]><Lumine> "johnabs: SBCL package coupled..." <- Edit: my bad, I saw that last bit about coleslaw, I'll see what I can figure out, but if you have any suggestions on how you configured those pieces, that would be a huge help
<Lumine>johnabs[m]: I mean specifically coleslaw yes, hold on I can show you my .sbclrc
<Lumine>johnabs[m]: here's the relevant bits - https://paste.opensuse.org/pastes/26afb4d02e29
<johnabs[m]>Lumine: Thank you so much! 😁
<Lumine>The quicklisp part is for the non-repo quicklisp I got from the official site, and the CFFI makes sure clack doesn't fail on SSL foreign libraries
<johnabs[m]>Okay, perfect, I will try it out! Did you happen to see any strange behavior with the (coleslaw-cli:preview) or is that clack related?
<johnabs[m]>Because I got this persistent "Not found" issue, which I'm hoping this will address! I'll try it out shortly, but I just wanted to see if you saw it too, lol
<Lumine>Yes, it was related to something I forget now, but I took off sbcl-coleslaw and used just the regular sbcl
<johnabs[m]>Okay, I'll give it a shot and report back, thank you again for all your help! :D
<Lumine>I'm a complete CL noob though so this is as far as I went but at least it works now :)
<Lumine>No problem
<Lumine>Remember to adjust the paths in the .sbclrc if you don't use `guix home`
<johnabs[m]>Same here, but I want to learn for my startup and thesis because of the legendary debugger, seems like a pretty killer feature IMO (and yup, I think I already caught that, but we'll see if it explodes xD)
<Lumine>I see, hope it helps!
<johnabs[m]>Crud :(
<johnabs[m]>No dice yet
<johnabs[m]>Oh, are those paths supposed to be guix-profile if I'm not using home, I may have missed that part, lol
<Lumine>Yes
<johnabs[m]>I changed the username lmao
<johnabs[m]>"looks good to me!" *breaks immediately*
<johnabs[m]>Okay, still no..hmmmmm\
<Lumine>You may have to look up what the actual path to the /lib is on .guix-profile
<johnabs[m]>I think it's just .guix-profile/lib/ right? It has a list of stuff like common-lisp/ emacs/ etc. right?
<Lumine>Iirc it lacks the /profile like .guix-home has
<johnabs[m]>Oh crud, gimme a sec then
<johnabs[m]>If you don't mind, could you give me a quick example of what your profile looks like? Mine shows a bunch of symlinks to libraries and folders (which I think also contain libraries, including things like common-lisp/sbcl/ssl+sbcl etc.)
<johnabs[m]>Also, do you happen to have roswell installed?
<johnabs[m]>I know fukamachi said it was a dependency of clack, which may(?) be causing my issue?
<Lumine>No I don't have roswell installed
<johnabs[m]>Hmmm, wack, let's see what else I can find lol
<Lumine>Where is your quicklisp currently residing?
<johnabs[m]>IIRC, it's just ~/.quicklisp
<Lumine>With a dot?
<johnabs[m]>Oh, no
<johnabs[m]>I was thinking of something else, no dot.
<Lumine>Well then I'm puzzled
<johnabs[m]>But I just saw, that running the "Hello Clack" template from clack's github works, which seems strange that it functions but (coleslaw-cli:preview) fails, if it's a clack problem...
<johnabs[m]>Yeah, same lol
<Lumine>What does the actual error say?
<johnabs[m]>The weird thing is, there's no "error" per se. It runs, and it registers my browser trying to access the link
<johnabs[m]>But the link only returns "Not Found" regardless of the path, even though there are entries in the /tmp/coleslaw directory which I can sort of view
<johnabs[m]>Were you also running yours through sly on emacs, per chance?
<Lumine>Actually I was, but I also tested it on bare SBCl run through terminal, and it worked
<Lumine>After I setup the config
<johnabs[m]>Hmm, lemme try that, maybe sly is getting in the way somehow
<johnabs[m]>.....
<johnabs[m]>It worked
<johnabs[m]>What the heck
<Lumine>:D
<Lumine>So something with Sly
<johnabs[m]>Now I just need it to work in emacs, lmao
<johnabs[m]>Exactly
<Lumine>I have sly-macrostep installed
<johnabs[m]>I saw something "pending" in sly, but I wasn't sure how to make it go through, I'll have to tinker with it
<Lumine>It was a missing piece
<johnabs[m]>Hmm, lemme try that
<johnabs[m]>Also, thank you a TON for your patience and help :3
<Lumine>Sure, my pleasure
<johnabs[m]>Ah, so when I run the command in sly, I see a "1" show up in the [sly sbcl/*/-/-] as [sly sbcl/*/1/-], where it's a "pending outgoing event", which I suspect is the web-server trying to do stuff, but sly not letting it.
<Lumine>Do you have any special configuring with sly?
<Lumine>I think this more now an #emacs or maybe #lisp issue
<johnabs[m]>Yeah, probably, I'll see what I can find out there, but thank you for helping me make sure it was no longer a guix problem, because that sbcl-coleslaw package is wack
<Lumine>Good luck :)
<johnabs[m]>Thanks, I'll need it xD
<apteryx>jpoiret: hi! yes I'm hacking on icedove at the moment
<apteryx>mostly trying to add support for language packs
<apteryx>jpoiret: what version are you updating it to?
<apteryx>hm, I installed my Guix-built icedove language pack to test, it installs fine, but the language stays unchanged
<apteryx>oh wait, I'm testing an older version of icedove
<apteryx>yay! the language packs appear to work in both IceCat and Icedove
<apteryx>I just need to ponder about the integration now
<atuin>hi
<vhallac>Hello. I've found a system to play around with guix system installation. I've downloaded 1.4 iso image, installed from it, etc.
<vhallac>The first "guix system reconfigure /etc/config.scm" is failing with an error
<vhallac>Complaining that a commit is not a descendant of 989a391...
<vhallac>Where do I go from here?
<PurpleSym>vhallac: Try --allow-downgrades.
<PurpleSym>But then, this should not happen in the first place…
<vhallac>Trying now. And I agree. :)
<vhallac>Looks like it will work. It is taking its time, but I am past the error. Thanks.
<PurpleSym>Ping me if it does not.
<brendyn>in a guix shell --container --network, pings are not allowed. 'ping: unknown protocol icmp.'. Is this a bug? How can I allow them?
<elais[m]>Does file-system support bcachefs?
<mfg[m]>How do i specify CTest labels to exclude the corresponding tests from the tests with the cmake-build-system?
<gabber>mfg[m]: are you building a package and want to not run certain test during the `check` target?
<mfg[m]>gabber: yes exactly
<gabber>this is usually done by patching the sources in an extra build phase where you either delete the relevant files or patch the callers to not run certain lines of code
<gabber>but i have no idea on how that's done with CMake or CTest
<monaho>mfg[m], check the openshadinglanguage package definition
<mfg[m]>thx gabber and monaho :)
<mfg[m]>would be nice if this was abstracted with a keyword argument #:exclude-tests regex :D
<gabber>mfg[m]: well, the goal should be to package software with all the upstream tests running right, no?
<xd1le>Hi, I'm getting some SSL certificate errors when trying to curl or guix pull/system reconfigure on a new guix system install. How can go about debugging this? I already checked that SSL_CERT_* and GIT_SSL_CAINFO env vars are set and have installed nss-certs globally and in local user profile.
<xd1le>Unfortunately don't think I can even upload any pastes since curl also gives certificate verification error when trying to.
<xd1le>But guix package still seems to work.
<xd1le>But my os config is small and barebones anyway.
<gabber>xd1le: are date and time set up correctly?
<xd1le>ahh
<gabber>(:
<xd1le>my date is set to jan 1 2012
<xd1le>how do I fix it?
<gabber>well, this explains SSL not working
<xd1le>yes thank you
<xd1le>havent had this type of error in over a decade lol
<xd1le>I usually use that online time sync service
<xd1le>on everything
<xd1le>completely forgot to check time
<gabber>we have the ntp service in guix
<xd1le>yes that one, thx
<gabber>happy to help :)
<xd1le>:)
<xd1le>I have to leave irc unfortunately, but if I don't come back asking for help again, I probably figured it out. o/
<mirai_>brendyn: it's not a bug
<mirai>you need to give some kind of capabilities to the container for icmp
<mirai>search for "qemu ping icmp permission" (or something along those lines)
<mirai>icmp is privileged
<mfg[m]>gabber: That's true. In this particular case upstream says: "We know these tests are flaky, you can just disable them" :D
<brendyn>mirai, not sure how to pass those options to guix shell
<irfus>Hello!
<irfus>I'm still struggling to understand why my guix home broke without warning earlier this week
<mirai>brendyn: can't help you there sorry
<mirai>I don't use the containers much
<irfus>Running the activate script errors out like so https://paste.debian.net/1270368
<footlong>"debian Pastezone" https://paste.debian.net/1270368
<brendyn>mirai, i dont need a container per se, i just want --emulate-fhs
<irfus>Any help debugging this would be appreciated. Thanks.
<gabber>irfus: not sure which `activate` script you're referring to. but the error log says: "Unbound variable: scandi", so maybe look for that string?
<irfus>Sorry the paste truncated a final 'r' from 'scandir'. This is the activate script that guix home runs automatically upon a reconfigure.
<gabber>irfus: did you `guix pull` in between?
<irfus>Reconfiguring throws up the same error. Seems to happen as it's trying to update the fontconfig cache, but I don't know how to begin debugging this.
<irfus>Yes
<irfus>Well, not in between the reconfigure, but this started happening after what used to be a routine once-in-a-while pull and reconfigure I used to stay up to date.
<gabber>`scandir` is not defined in (my) guix either, so if you refer to that anywhere this is where your error emerges
<irfus>I am not referring to scandir anywhere in my own configuration.
<jlicht>hey guix!
<gabber>\o
<gabber>are there any tricks/hints/hacks/scripts that help me figure out why my personal channel is broken? guix pull fails with not much insight in the log..
<csepp>gabber: add it to GUILE_LOAD_PATH and try to load each module file with guile
<csepp>that's what I do at least
<mfg[m]>Is there a guix graph backend that just prints out the actual package names line by line? it's kind of hard to read through the dot source
<gabber>csepp: thanks!
<irfus>Have there been any breaking changes to `guix home` recently that I missed news of maybe?
<csepp>mfg[m]: not as far as I know but there are lots of libraries for dot, Python's networkx makes it very easy to run graph queries on it.
<csepp>or you could do some grep+sed+sort --unique magic
<mfg[m]>Hm okay, thanks csepp
<mfg[m]>Is it possible to use a particular commit in the channel dependency specification? I haven't seen in it in the docs
<irfus>This is how reconfiguring errors out. https://paste.debian.net/1270373
<footlong>"debian Pastezone" https://paste.debian.net/1270373
<irfus>This error does not take place if I reconfigure after removing the .guix-home symlink, and it seems to be successful except that the new home profile is never activated.
<PotentialUser-79>Hello! I'm trying to get bluetooth working and I'm following the cookbook guide here: https://guix.gnu.org/cookbook/en/html_node/Music-Server-with-Bluetooth-Audio.html
<PotentialUser-79>I get the error `error: dbus-service: unbound variable` with the line `(dbus-service #:services (list bluez-alsa))`
<footlong>"Music Server with Bluetooth Audio (GNU Guix Cookbook)" https://guix.gnu.org/cookbook/en/html_node/Music-Server-with-Bluetooth-Audio.html
<PotentialUser-79>`(use-service-modules cups networking ssh xorg audio sound desktop)` is my service modules line, if I add `dbus` to this it says that it conflicts with `desktop`
<PotentialUser-79> Also is there a canonical way to install termprofiles system wide? I want to use the kitty terminal but if I try something like `sudo nano` I get a segfault because root doesn't know the kitty terminfo
<Maya[m]12>@[PotentialUser-79] that’s because desktop already provides dbus, you should write an service extension
<PotentialUser-79>Maya[m]12 Could you elaborate on that a bit? The cookbook doesn't say anything about that (unless I missed it!)
<Maya[m]12>PotentialUser-79: there is an etc-service-type for that
<Maya[m]12>@[PotentialUser-79] well each service can be provided only once, but services can be extended, that’s how most services are, you can create a service that extends dbus to add your desired modules, you extend it by creating a service (you can use simple-service if you just extend one service)
<Maya[m]12>(simple-service ‘add-bluetooth dbus-root-service-type <dbus modules>)
<Maya[m]12>
<Maya[m]12>i missed after the service type, add the list of modules
<Maya[m]12>and ‘your-name instrad of add-bluetooth
<PotentialUser-79>mm okay I think I get it, I will give it a go!
<PotentialUser-79>hmm ok so I tried adding `(simple-service ‘add-bluetooth dbus-root-service-type bluez-alsa)` into my services block but I get the error `error: #{\x2018;add-bluetooth}#: unbound variable`
<PotentialUser-79>did I misunderstand
<apoorv569[m]>What do I need to setup luks encryption on my laptop's SSD? I have been using Arch and I used to use cryptsetup to setup full disk encryption so I have enter a passphrase when I turn on my laptop.
<PotentialUser-79>apoorv569[m] the liveiso has a guided mode for setting up disk encryption, did you try that?
<apoorv569[m]>I was currently writing a base-system.scm by looking at other peoples configuration online.. I have very limited knowledge of lisp ATM.
<apoorv569[m]>I have the ISO ready let me see the guided mode.
<PotentialUser-79>If you install from the livecd, the graphical installer gives you an option to set up full disk encryption when you get to the partitioning stage
<apoorv569[m]>Will that write the method in the config file as well?
<PotentialUser-79>yes
<PotentialUser-79>the config file will contain the entire system configuration
<apoorv569[m]>OK, let me try that.
<PotentialUser-79>I only installed guix yesterday so I don't know much, but I did set up an encrypted home partition using the installer so I know that that works at the very least :')
<PotentialUser-79>`(mapped-devices (list (mapped-device
<PotentialUser-79>                          (source (uuid
<PotentialUser-79>                                   my-drive-uuid))
<PotentialUser-79>                          (target "home")
<PotentialUser-79>                          (type luks-device-mapping))))`
<PotentialUser-79>my config.scm contains this section for the luks mapping
<apoorv569[m]>I see. Does the installer support btrfs filesystem with subvolumes?
<apoorv569[m]>UUID for the entire drive or partition?
<futurile>apoorv569[m]: https://guix.gnu.org/manual/en/html_node/Btrfs-file-system.html
<footlong>"Btrfs file system (GNU Guix Reference Manual)" https://guix.gnu.org/manual/en/html_node/Btrfs-file-system.html
<PotentialUser-79>Ah okay, I had copied the message from libera and I had the wrong type of quote in my config. Now I get the error `error: dbus-root-service-type: unbound variable`
<Arjanhehim[m]>apoorv569: here is an example of my LVM on LUKS encrypted root and swap configuration... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/b08d2a22b8344c175bdce5a5bdec0909a5c6da98>)
<Maya[m]12>@[PotentialUser-79] first, it has to be a list, and second you need to have bluez-alza defined somewhere (but if you wan bluetooth there is already bluetooth-service-type)
<futurile>PotentialUser-79: are you based in Swansea Wales then? I just saw your domain when your client dropped. (My Nan lived in Swansea so it just made me chuckle)
<PotentialUser-79>Yeah more or less. Visiting my alma mater :)
<futurile>PotentialUser-79: ah heh heh - cool - it's been a long time since I've been there, but I have fond memories. Been in London most of my adult life so it must be completely different now =-)
<PurpleSym>Trying to use --system=armhf-linux I get this error despite setting up binfmt: while setting up the build environment: executing `/gnu/store/rsxyxd2f9jrc6gszbjf3rfzbhwazyrgh-guile-3.0.7/bin/guile': No such file or directory
<PurpleSym>That guile exists and I can run it.
<PotentialUser-79>futurile: It's spooky being back
<ngz>PurpleSym: Are you using guix with ./pre-inst-env?
<PurpleSym>ngz: No, seems that it’s a problem with binfmt on foreign systems as laid out here: https://lists.gnu.org/archive/html/guix-devel/2019-11/msg00423.html
<footlong>"Re: Qemu binfmt on foreign distro" https://lists.gnu.org/archive/html/guix-devel/2019-11/msg00423.html
<apoorv569[m]>I think I'm gonna do the guided install and generate my config then copy that somewhere I can edit that then do a install again with the edited config.
<apoorv569[m]>Probably will take multiple tries before I can get the initial config right.
<ngz>PurpleSym: OK. I was asking because I regularly encounter this error when using ./pre-inst-env guix after a GC. But you're experiencing a different issue, so I cannot help.
<irfus>Hello, again. I did some more testing and am still stuck with a broken guix home.
<irfus>I created a new user, did a guix pull with only the default channel, and did a home reconfigure using the simple example config from the manual.
<apoorv569[m]>The installer is not showing correct resolution it is stretched and both left and right side are overflowing the screen
<irfus>This finished with no errors, but the home state is unchanged. No shell profile or other symlinks.
<ngz>In what module could go a hashtable C library? "cpp.scm" seems C++-only.
<ngz>Ah! datastructures.scm
<nckx>Ello errybody.
<gabber>\o
<gabber>irfus: i just pulled and reconfigured my `guix home` successfully
<irfus>gabber: in the new user, the reconfigure does complete successfully (with no errors). But there is no visible change. list-generation shows the new profile, but the bash shell configuration has not been touched (that is one of only two services in the example config) and my path has not changed either
<gabber>and pull works, too? maybe there's an error in your home-config?
<jgart[m]>hi, if anyone finds the time to review an update to qbe. I think it will be an easy one to review: https://issues.guix.gnu.org/61390
<footlong>"[PATCH] gnu: qbe: Update to 1.1." https://issues.guix.gnu.org/61390
<jgart[m]>qa is passing
<irfus>gabber: can you add the (simple-service 'test-config...) from the manual's example to your home configuration and see if that works?
<irfus>The home config I'm using is verbatim copied from the info manual (section 13.1)
<irfus>I've been using guix home since it was first introduced, and this week is the first time it's broken. 'guix system' and 'guix package' are working as normal
<apoorv569[m]>fixed.. in the grub prompt I did set gfxpayload=1920x1080 now shows correct resolution
<nckx>irfus: Could you time-machine to an older generation (‘guix pull --list-generations’) that you know worked in the past? I suspect it won't work now, i.e., no new bug was added to Guix, but I'm not certain.
<nckx>Is there a convenient way to test Guix Home without touching my real home, and without having to boot a full and clunky VM?
<irfus>nckx: thanks to an overzealous gc run while trying to fix it, I no longer have any older working generations. :(
<apoorv569[m]>Ok. I'm in the point of the installer where it shows the generated config file
<apoorv569[m]>how can I copy this to a USB drive for example?
<irfus>btw, testing the home configuration with a container does work, I believe.
<nckx>IC, thanks.
<irfus>nckx: I added a 'testing' user to my system configuration to test with
<nckx>apoorv569[m]: This is a hacky answer, but if you switch to a console with C-M-F3, does ‘/mnt/etc/config.scm’ already exist at this point? It's what the installer uses for the final installation.
<unmatched-paren>hello guix :)
<unmatched-paren>could somebody please review #61214? :)
<footlong>"[PATCH guix-artwork] website: posts: Add Dissecting Guix, Part 2: The Store Monad." https://issues.guix.gnu.org/61214
<nckx>Nobody has? For shame.
<nckx>Oh, there are replies; by review you mean commit? :)
<irfus>nckx: thanks for looking into this. I would report this more formally if I had anything but "it's just not working" to say and I do not understand the guix internals well enough to say anything better
<nckx>To be clear, I've never used Guix Home and this is my first time looking at it :) To me, at first sight, this looks like a straightforward missing (ice-9 ftw) import but I'm a bit sceptical: why would that trigger now…
<nckx>…I suspected that your dirty user profile had changed but a pristine testing user makes that less likely.
<nckx>Anyway.
<apoorv569[m]>nckx: I found the file.. can't copy.. it keeps saying read only filesytem/
<nckx>Copy to?
<nckx>You can't use the Guix installer ISO as a general-purpose storage fundrive.
<apoorv569[m]>ok tried a different USB drive it worked
<nckx>Yup.
<irfus>I was wrong, running 'guix home container path/to/config.scm' does yield a shell, bit it doesn't seem like the configuration took
<irfus>The configuration is verbatim from the manual, but I can reshare it here if somebody wants to try
<irfus>home config for testing https://paste.debian.net/1270392
<footlong>"debian Pastezone" https://paste.debian.net/1270392
<nckx>irfus: OK, but you don't get the undefined variable error, correct?
<irfus>nckx: yup, no error. But the home container remains bare.
<irfus>That error was only with my original user
<GNUtoo>hi, I've a patch that was never reviewed but that is easy to review: https://issues.guix.gnu.org/60289
<footlong>"[PATCH v1] gnu: Add u-boot-qemu-arm" https://issues.guix.gnu.org/60289
<GNUtoo>*two patches
<GNUtoo>It just adds 2 u-boot packages
<GNUtoo>They can easily be tested on x86 with qemu-system-<arm|aarch64> -machine virt -bios /path-to/u-boot.bin
<GNUtoo>*qemu-system-<arm|aarch64> -machine virt -nographic -bios /path-to/u-boot.bin
<apoorv569[m]>Ah! Installation failed in the end. Error is something about `grub` installing for `x86_64 platform` `/gnu/store/LONG_HASH-efibootmgr-17/sbin/efibootmgr: option required an argument -- 'd'`... Error efibootmgr failed to register the boot entry Operation not permitted..... Command ("guix" "system" "init" "--fallback" "/mnt/etc/config.scm" "/mnt") exited with value 1... Press enter to continue.
<gabber>irfus: you don't get the package `htop` in your container?
<gabber>(sorry, was afk)
<irfus>gabber: yes, the path isn't set. The .profile isn't created, and the test-file from the simple-service is not there. There are just three empty directories.
<GNUtoo>apoorv569[m]: how did you try to install Guix? With the usb installer? with guix system init?
<gabber>irfus: i'm so sorry, but your test-file works for me (i had to append two closing parens but otherwise it's unchanged). i tested with `guix home container path/to/your/paste` and am thrown into a container with package `htop` installed, .bash_profile with the HISTFILE var exported and ~/.config/test.conf in place
<irfus>gabber: ah, cool
<apoorv569[m]>GNUtoo: Yes I downloaded the iso flle from the official site and installed using the ncurses installer.
<irfus>So it is my system, then. Does anybody have pointers to fix/look into this?
<GNUtoo>apoorv569[m]: do you have UEFI secure boot disabled?
<gabber>irfus: i also use simple-service in my own home-config and have not had problems so far (i'm setting PATH and GUILE_LOAD_PATH among others)
<GNUtoo>It may or may not be the cause but anyway Guix system doesn't support UEFI secure boot as far as I know
<apoorv569[m]>Yes. Secure boot is disabled.
<GNUtoo>ok
<gabber>irfus: how old is your system? have you tried reconfiguring your system?
<irfus>The only other source of "dirty state" I can imagine is the /var/guix directory where all the profiles are generated, but I have never touched anything but my own home
<gabber>WDYM "touched" your home in /var/guix?
<irfus>meaning I never touched anything in /var. Only my homedir, and even that's been managed with guix home
<GNUtoo>apoorv569[m]: I'm out of ideas here but maybe someone knows that stuff better than me (I'm not used to UEFI stuff)
<GNUtoo>ACTION needs to learn more about UEFI
<GNUtoo>Anyway efibootmgr is used to add a boot entry in the UEFI
<irfus>gabber: System generation number 75, so a fair few months
<GNUtoo>And for some reasons it fails (and in your error message you have 2 different suspicious things: (1) option required an argument -- 'd'` and (2) "Error efibootmgr failed to register the boot entry Operation not permitted"
<GNUtoo>so I'm unsure what could be the cause)
<GNUtoo>Maybe your UEFI has some bugs and it works on other systems?
<GNUtoo>In that case it is possible to not install the bootloader and do things manually, people using Libreboot typically do that: they generate a grub.cfg but don't install any bootloader
<irfus>I reconfigured home and system multiple times over the last few days trying to figure this out (especially after an ill-thought-out gc run trashed my last working home setup). Last pull was a few hours ago.
<gabber>irfus: your Generation Number only depends on how often you (re-)configured your system -- it has nothing to do with age :)
<GNUtoo>Example: (bootloader (bootloader-configuration (bootloader (bootloader (inherit grub-bootloader) (installer #~(const #t))))))
<GNUtoo>But maybe it's better to wait until someone with more experience with uefi shows up
<gabber>irfus: how old is your latest pull?
<irfus>Earlier today. The issue showed up after a pull and reconfigure a few days ago (I had reconfigured for kernel 6.10)
<irfus>I had work at the time, so I just switched to a working home generation but I'd like to get to the bottom of this now
<gabber>i'd try pulling and reconfiguring again (first the system, then the home config) -- but i'm spit-balling here
<apoorv569[m]>Well I restarted the installer.. hopefully this time it won't fail.
<apoorv569[m]>Otherwise I will try DOS partition.
<apoorv569[m]>What is a graft BTW? when it says applying grafts..
<irfus>I reconfigured the system and home when I pulled earlier (to create the testing user account)
<gabber>the "See Debbugs User Guide" Link is broken (manual 22.7.2) ?
<gabber>irfus: so your current system generation is *brand new* and not a few months old?
<irfus>Is it okay to nuke /var and try that again? As long as I don't touch the store, guix should be able to regenerate everything it needs, no?
<irfus>gabber: yes, sorry, I misunderstood earlier
<irfus>sorry for the ambiguity.
<unmatched-paren>apoorv569[m]: https://guix.gnu.org/manual/devel/en/guix.html#Security-Updates
<footlong>"GNU Guix Reference Manual" https://guix.gnu.org/manual/devel/en/guix.html#Security-Updates
<gabber>irfus: i don't think nuking /var is an option
<gabber>but i dimly recall having somewhat similar issues? i misconfigured something (i guess i changed some links in /var/) and stuff didn't work anymore... so what did you change there exactly?
<irfus>I did not touch /var directly.
<irfus>At all.
<gabber>sorry - i misunderstood
<nckx>apoorv569[m]: https://guix.gnu.org/en/blog/2020/grafts-continued/ (the first hyperlink is to the manual section on grafts).
<nckx>irfus: Sorry, I went away for dinner without saying anything. Everything's downloaded now; I'll retry later.
<irfus>(My wording has been all over the place, sorry i'm a bit flustered and unclear)
<irfus>nckx: sure. gabber tried and couldn't replicate, so it seems likely that it's something broken on my system only. But I cannot imagine what, :(
<apoorv569[m]>Hmm so they are security updates basically.
<nckx>They are used exclusively for security updates, yes!
<nckx>If you think of functional builds as a tree (with a node change triggering a rebuild of its entire subtree), the ‘graft’ analogy really is apt.
<nckx>irfus: If it is what I think it is, your system isn't broken as much as it's entered a state that triggers a code path in Guix that never actually worked. But that's a big finger to point and I'm not sure yet, hence my attempts to reproduce it.
<nckx>ACTION away.
<irfus>:o I ran "guix gc --verify=repair,contents" and it fixed a bunch of missing and corrupted items in the store, and it's all working now!
<irfus>gabber, nckx: thanks so much for helping out! Seems like the first thing I should have tried, /facepalm
<gabber>irfus: \o/
<gabber>soooo... guix broke itself and fixed itself again!?
<irfus>gabber: well, I'm inclined to blame btrfs for this debacle, if only I had something that would self-heal and report on the state of the rest of my data!
<nckx>irfus: 😃 I was just about to report my failure to reproduce any obvious bug in that code. That is… a very interesting failure mode! Glad you fixed it.
<nckx>irfus: Might've been a joke, but: didn't btrfs scrub catch this?
<irfus>Nope. I run a scrub every other day, definitely more than once since this began.
<nckx>I'm not 100% convinced [because we can never be certain] that Guix is entirely innocent here. Or the [very old fork of the] Nix daemon. It seems plausible that we don't always fsync etc. when we strictly should.
<irfus>I think it might be worthwhile to set up a scheduled run for the gc repair. There were way more corrupt items than seems normal or healthy.
<mfg[m]>Is there a specific reason why python2 installs a python executable but python3 not?
<mfg[m]>in case of python3 it's python3 i know, but many scripts seem to assume python == python3 and patch-shebangs doesn't replace it if it's not exactly the same name
<nckx>python-wrapper does this.
<nckx>irfus: Yes, it seems more common than it should be.
<mfg[m]>ahhhh, that's what it's for i always wondered :D
<nckx>It could have been called ‘python3-as-python’ or so to be a tad more self-documenting, but that shed has already been painted.
<mfg[m]>Yeah, well, i also could've guix searched it; the description is absolutely helpful...
<apoorv569[m]>Ok installed successfully.. I was trying to encrypt the EFI partition as well but looks like there is some problem with that.. this time I only encrypted the root partition and it worked.
<antipode>nckx: The Guix daemon _never_ fsync's.
<nckx>That'd do it.
<antipode>The nix daemon appears to do the right thing, but it's disabled in Guix: https://issues.guix.gnu.org/58035
<footlong>"sync-before-registering is false, possibly the cause of empty files in the store" https://issues.guix.gnu.org/58035
<nckx>oof.flac
<antipode>The basic "just enable it, then" solution was rejected, apparently for making things 3 times slower. There is an alternative proposal, but it entails some fiddly replumbings.
<nckx>apoorv569[m]: You can never encrypt the ESP; the firmware needs a FAT32 file system in the clear. (Same applies to the MBR+early bootloader stage[s] on non-UEFI systems; if you want a completely encrypted drive you'll need to flash custom firmware like {core,libre,…}boot, Heads, …)
<apoorv569[m]>I see.
<antipode>apoorv569: Does it need to be LUKS? Some hard drives have built-in encryption support, with integration with the boot firmware to show a (pre-Linux & pre-GRUB) passphrase prompt. Requires trusting the hard drive & boot firmware, though.
<nckx>‘Secure’ Boot is meant to solve [some] of this [and other concerns] but Guix System does not currently support it, nor is it terribly popular around these hippie parts. Don't expect support soon. And the TSA will still trivially know you run an illegal hacker OS.
<apoorv569[m]>Well I am getting a pre GRUB prompt right now without encrypted EFI partition as well also 1 more after GRUB
<gabber>what's an easy way to test whether my (personal) substitute server works? my laptop always tries to rebuild stuff
<mfg[m]>guix weather?
<mfg[m]>this should answer if your substitute server has substitutes for a given package
<nckx>And make sure your server's key is authorised (the two are somewhat orthogonal).
<KarlJoad>How can I get Cuirass to build an os-config? I have the file it is defined in written as a module, with the (define desktop (operating-system ...)) exported from the module. Do I need to make an image using the config for it to be built?
<rekado>I have a couple of system services that depend on a user account’s dbus session; i.e. there will be a service to launch dbus, and all the other services need to run with DBUS_SESSION_BUS_ADDRESS set to that dbus session’s socket.
<rekado>I haven’t been able to just use dbus-service globally
<jpoiret>rekado: that seems fishy, why would those services need a session bus
<rekado>JACK 2
<jpoiret>can't you run jack 2 as user?
<rekado>one service launches the synth (that causes JACK 2 to be started via dbus), another one-shot service connects the MIDI device with jack_connect, yet another launches jack_midi_dump with a filter, etc.
<rekado>they all need to be able to talk to JACK
<rekado>and they all discover JACK over dbus
<rekado>so they need to be able to connect to the same dbus session.
<rekado>I’m running all of these services as a separate user, not as root
<jpoiret>can't all of those run under your own user?
<rekado>I prefer not to do that
<rekado>I don’t ever want to log in on the machine
<jpoiret>right
<jpoiret>then yeah, you'd need a service to start the user's dbus session, and somehow make shepherd pass that information to its dependents
<rekado>it’s a headless server thing that should also give me a sampler when it boots up
<jpoiret>that's been on my wishlist for a while, it would be useful for things like DISPLAY with user shepherd
<rekado>right, … my idea was rather crude: write the env vars to a file and then have the other services read that file
<rekado>it feels all sorts of wrong
<jpoiret>i agree. shepherd would need a new feature tbh
<rekado>if the dependent services could get the dbus service’s pid they could probably just read from /proc/pid/environ
<jpoiret>but that'd probably require callbacks and whatnot
<jpoiret>the dbus service could run something like `dbus-run-session -- herd callback $CALLBACK_ID` and the herd callback would be able to exfiltrate the right env var
<rekado>also uncomfortable: running commands as a different user without make-forkexec-constructor involves using setgid and setuid.
<tex_milan>what does #, #$, #~ mean in scm / guile? any link to documentation to this?
<rekado>tex_milan: these are Guix specific: G-expressions
<rekado>tex_milan: they are described in the manual
<tex_milan>thanks
<rekado>they are very similar to quasiquotation
<jpoiret># is a special character that says "look at the next character and use the corresponding reader extension". Thus #$/#~ are Guix-specific reader extensions for G-Exps
<rekado>#~ is like quasiquote, #$ is an unquote
<jpoiret>but Guile also has #\ for raw characters, #' for syntax, etc.
<tex_milan>Why this (string-append #$(file-append (specification->package "pinentry-tty") "/bin/pinentry-tty")) throws error error: ungexp: unbound variable
<tex_milan>if I remove the #$ (unquote) I get this error: In procedure string-append: Wrong type (expecting string): #<file-append #<package pinentry-tty@1.2.1 gnu/packages/gnupg.scm:827 7f5da343c630> "/bin/pinentry-tty">
<KarlJoad>tex_milan: You get the ungexp error because your ungexp (#$) is not inside a gexp. You probably meant to wrap the string-append sexp like so: #~(string-append #$(file-append ...))
<tex_milan>KarlJoad: that's it! thanks!
<gabber>i see (authorized-keys) in guix-service-type's configuration, but what's the equivalent in guix-publish-service-type? which key am i supposed to put in authorized-keys?
<nckx>gabber: There is no such field. ‘guix publish’ doesn't authorise keys. NAR signing is done using /etc/guix/signing-key.sec on the serving machine; you can generate this keypair using ‘guix archive --generate-key’. The matching .pub file is what clients will need to authorise.
<nckx>I think Guix does this generation automatically though.
<nckx>So my last sentence is all you need to care about.
<gabber>nckx: thanks!