IRC channel logs

2022-09-25.log

back to list of logs

<Kabouik>Oh. But how do you guys know that? Just by habit?
<Kabouik>Or does emacs suggest things?
*TopExpert gathers bits and pieces from all over the place for my treasure trove
<TopExpert>but I find myself using "grep" all the time on the guix repository
<Kabouik>Yeah I should do that indeed
<TopExpert>it seems that eventually one gets past a point where you've seen it all before, and have a general idea "oh that's a service method so it's in services" etc
<Luk6655>Kabouik: there is autocomplete for emacs I use, but its usefulness is not that great (ac-geiser)
<Luk6655>This site describes the setup I have (plus other things) https://jeko.frama.io/en/emacs.html
<Luk6655>it helps with simple stuff like modifying existing packages that already have all the use-module statements etc
<Kabouik>Nice, thanks. I have not been able to transition to emacs yet (I'm using kakoune and I like it, but emacs is appealing too), but that sure will be useful if I get to use emacs more
<TopExpert>doom emacs and spacemacs helped me a lot to get started with emacs, it just looked like notepad before, now my entire desktop is emacs
<Luk6655>I never used emacs before, I wanted to try it mainly for guile editing and I have to say I now prefer it over anything else for guile(especially in paredit mode). Paredit takes some getting used to, but I think that is one thing that made writing guile much easier for me. It keeps track of all the parentheses.
<Luk6655>Also, as a new user I definitely suggest swapping one's keyboard keys for convenience. I've put super/win key where ctrl was, alt where win/super was, and ctrl where alt was(on the left), on the right I've alt and ctrl swapped. This is much better than the standard layout. You can of course do all that by configuring emacs if you prefer to keep keyboard intact
*Luk6655 going Zzz
<Kabouik>Would that look right to you? https://0x0.st/oWpv.scm There's just the kernel-arguments and the swap-devices (and I also removed the snipped that corresponded to my swap partition when I had one)
<Kabouik>snippet*
<Kabouik>Wrong link TopExpert, sorry, here's the right one: https://0x0.st/oWpx.scm
<TopExpert>Kabouik: looks like it should work
<TopExpert>Kabouik: it should error out when you do guix system reconfigure, and if something's missing or so
<podiki[m]>(in a build phase) command failing with status 255 means...?
<Kabouik>I cannot test it right now because I'm already reconfiguring (I was testing my specificiations-packages rewrite) and there's a kernel update apparently, still working
<TopExpert>Kabouik: you forgot to add the kernel-arguments
<Kabouik>I was unsure if the new kernel-arguments were properly combined with the pre-existing I already had, and if (swap-devices) was the only extra bit I needed
<Kabouik>It should be in the second link
<TopExpert>Kabouik: yeah you should add them
<Kabouik>Did you see that link TopExpert? https://0x0.st/oWpx.scm
<Kabouik>They're there
<TopExpert>the (cons* "one" "two" "three" %default-kernel-arguments) constructs a list
<TopExpert>Kabouik: no wait not like that
<Kabouik>Inside cons* then?
<unmatched-paren>maybe we should patch our rust-openssl to refer to a hard-coded openssl.so path?
<TopExpert>Kabouik: you know https://pastebin.com/1KN7bFYB
<unmatched-paren>it's kinda annoying having to write (inputs (list openssl)) (native-inputs (list pkg-config)) for every dependency
<Kabouik>Great TopExpert
<TopExpert>unmatched-paren: people may want to use a different version of openssl idk, I'm trying to build the latest rust now
<jorge[m]1>Hello, please help me to pick up an office package for my Guix system.
<TopExpert>jorge[m]1: google docs, outlook
<unmatched-paren>Jorge[m]: ``guix install libreoffice''
<jorge[m]1>Spreadsheet
<unmatched-paren>libreoffice includes a spreadsheet program
<jorge[m]1>if libreoffice, how do i find it in guix ?
<unmatched-paren>Jorge[m]: guix has a package called ``libreoffice'' for libreoffice...
<Kabouik>What do you mean? You can just `guix search office` and then `guix install xxx` with xxx being the package of your choice. I'd recommend libreoffice too.
<jorge[m]1>nks i found it
<rekado>unmatched-paren: it is annoying. Same with xz for liblzma and zlib, etc.
<jorge[m]1>thanks i found it
<unmatched-paren>rekado: hopefully we can implement changes like that in antiox
<unmatched-paren>the antiox branch, i mean
<csepp>TopExpert: please don't automatically recommend closed source SaaS stuff
<TopExpert>csepp: fair enough
<TopExpert>my knee-jerk reaction to office suits is "just let someone else handle it"
<csepp>there are libre SaaS office suites
<Kabouik>Do you know which import swap-devices requires TopExpert?
<TopExpert>Kabouik: it doesn't need an import
<TopExpert>Kabouik: it is part of the (operating-system) structure
<TopExpert>(operating-system) is a "GOOPS" class in Guile, and it has a (swap-devices) field
<Kabouik>Thanks, I fixed it thanks to your remark
<Kabouik>Turns out my commented lines in the config file break the parenthesis highlighting, makes it real hard to debug
<TopExpert>heh yeah very few people use these things right now so the tools aren't there yet
<Kabouik>I'll reboot, see if the swapfile/hibernation work
<podiki[m]>woop, think I found the problem with emacs-pdf-tools failing when building with emacs-native-comp (rather than emacs-minimal)
<podiki[m]>along with emacs-libgit while I'm at it (not spotting any others that manually call emacs phases in emacs-xyz)
<Kabouik>Hibernation works TopExpert! Thanks a ton.
<TopExpert>yay nice
<Kabouik>I had to retype my encryption passphrase, which actually makes sense but it surprised me to be back at the tty
<TopExpert>that was a major roadblock for me too as I couldn't lock my computer, so I went through all the trouble myself :)
<Kabouik>Also the Grub menu showed up again too, which was even more surprising, and then I had to type the passphrase a second time (just like when I boot normally)
<TopExpert>you'd still need to type the encryption password to decrypt a swap partition
<Kabouik>Yeah I have no idea how one could sort this out without the help you provided me. Even the swapfile creation was like 10 commands (though I'm sure those are not Guix-specific, so probably easier to find documentation on them)
<Kabouik>So the two passphrases I type at boot are (i) for / (before Grub), and (ii) for the swap partition/file (after Grub)?
<Kabouik>Pretty cool to have hibernation working right before my trip tomorrow, this will be handy. Even though some sort of lower security sleep without the encryption passphrase prompt would be handy. I suppose that'd be regular sleep, but since I'm stuck with s2idle on my machine, that's not great.
<TopExpert>yeah, grub just reads its own configs from the encrypted partition, then when it loads the kernel it doesn't hand over the password, I think this will be solved later as other distros do it, we need to bear with it for a while until more people start using guix
<TopExpert>actually, not other distribution encrypts grub like that
<TopExpert>that should be more secure because /boot is usually left unencrypted, so people can replace your kernels to hack it
<Kabouik>Yeah that is something I remember reading about, and I thought Guix did encrypt boot; good to get that confirmed now
<TopExpert>the idea with guix seems to be, that all the files in /boot are also symlinks into /gnu/store
<Kabouik>So I sized my swapfile at exactly how much RAM I have. If I decide to enlarge it later, will that change that magic number I got from the compiled btrfs thngie?
<TopExpert>Kabouik: you may want to just run "fallocate" on that same file, so it remains at the same inode and all
<TopExpert>I haven't checked if that offset remains, it sounds like the file should remain at the same offset if you write to the same file
<Kabouik>I think fallocate is the command I used to size it to 16G in the first place
<TopExpert>but if you delete it, creating a new one ends up at a different offset
<Kabouik>Note that the compression none bit failed, so I guess my swap is compressed when I hibernate?
<TopExpert>I don't know how that works
<TopExpert>if anything is compressed then the hibernation image ends up being corrupt, idk, maybe the kernel reads it differently as swap, hence the offset
<Kabouik>That thing you wrote is precious, even though I didn't need all he config at the end, but just the kernel-arguments and swap-devices: https://pastebin.com/hJtikL0W
<Kabouik>Now at some point I will need to clean my /gnu/store, I noticed it's already taking half (HALF) of my 1TB SSD, after just a few weeks of use.
<Kabouik>I did run some guix gc a few times, but that's not enough. I think I need to delete generations as well, but I need to read more about what are generations before I wipe them.
<TopExpert>you also need to delete old generations that hold on to references
<TopExpert>I use a script to do that, first I delete system generations "sudo guix system delete-generations"
<TopExpert>then "guix package --list-profiles | while read -r line; do guix package -p $line --delete-generations; done"
<TopExpert>then guix gc removes half a terabyte
<Kabouik>In Layman's terms, generations are the entries available to rollback to?
<TopExpert>yeah, the system generations are the ones you see as boot entries in grub
<TopExpert>but guix allows you to create several profiles, those also have generations
<Kabouik>Can I delete all but like the last three?
<TopExpert>exactly
<TopExpert>the last ones are the only ones active
<Kabouik>How can I decide how many to keep before deleting?
<TopExpert>but one wants to make sure the system boots before deleting system generations, so you can boot back
<TopExpert>I just keep the last generations, then they pile up again as I tweak my configs
<Kabouik>I just booted so that should be fine, but I would still feel more comfortable with like 3 or 4 generations
<TopExpert>so my guix-home creates a script for the shell that cleans up more easily
<TopExpert>even 3-4 generations may be risky, because you do "guix system reconfigure" many times during testing
<TopExpert>so it creates maybe 10 generations before you reboot
<Kabouik>Yes but I am not automating the delete here, I would just want to clean my SSD now
<Kabouik>I currently have 32 :<
<TopExpert>sudo guix package --list-profiles, shows multiple profiles, they all have generations
<TopExpert>they all hold on to references in /gnu/store so they don't get deleted by "guix gc"
<Kabouik>I only have one user, so I only see myuser/current-guix and myuser/guix-profile in --list-profiles
<TopExpert>I create a profile for like firefox, one for rust, just so they always remain working, so I have many profiles,
<Kabouik>So how do I tell sudo guix system delete-generatioins to keep n generations?
<TopExpert>I don't know, I see that "guix package --delete-generations=<PATTERN>" has a pattern parameter, but not system
<Kabouik>I won't rush that before I understand it better then, I still have some space left; but I am hoping to recover 300-400GB when I do it
<Kabouik>Time to get some sleep for now. Thanks for all your time TopExpert.
<TopExpert>gl and gn
<arescorpio> https://guix.gnu.org/en/packages/libreoffice-7.1.4.2/ | libreoffice 7.1.4.2. LibreOffice is a comprehensive office suite. It contains a number of components: Writer, a word processor; Calc, a spreadsheet application; Impress, a presentation engine; Draw, a drawing and flowcharting application; Base, a database and database frontend; Math for editing mathematics. Builds: x86_64-linux, aarch64-linux
<the_tubular>Hey TopExpert, how are you ?
<TopExpert>the_tubular: I'm fine thanks how about you?
<the_tubular>Pretty good
<the_tubular>Haven't have time to work on my WSL machine either
<TopExpert>I guess it should work if others managed to get it working
<the_tubular>But I checked guix's git logs today and there was a few commits related to WSL
<the_tubular>Not sure exactly what they do though
<the_tubular> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=233cf9f0367e78562f07ac9885ed2cc6defe17e1
<the_tubular>And this one : https://git.savannah.gnu.org/cgit/guix.git/commit/?id=c8112f3bd95269ce4aca12dedbfe61bb6b37acae
<TopExpert>cool it looks like they added support for creating a WSL2 image
<TopExpert>the_tubular: you need an (operating-system) definition, check out how to create virtul machines and containers, that should allow you to create one for WSL2
<TopExpert>the_tubular: yeah if you do "guix system image --list-image-types" you can see there's one for WSL2
<the_tubular>Ohhh, cool!
<the_tubular>Which format will that be ?
<TopExpert>no idea
<TopExpert>you'd have to create one and see, that should be directly bootable by WSL2 later
***MarxWilliameodri is now known as iudrix[m]
<mala>does anyone know who managed the Guix Workflow Language website, http://guixwl.org/ ? Because it's showing a bad gateway error message on its homepage right now
<PurpleSym>mala: Perhaps rekado can fix guixwl.org?
<TopExpert>yay made rust 1.64 released a few days ago, build https://github.com/paulalesius/guix-rust
<jeko>Yo !
<jeko>running `ssh-agent` does not seem to do anything…
<jeko>Do I have to do something in order to ?
<minima>hi, i've been trying to define a guix home service like this https://paste.debian.net/1254938/ but i must be doing something wrong
<minima>the end goal would be to be able to copy a bash script over to my path (eg ./local/bin)
<minima>the error i get with the above attempt is: 'no code for module (gcrypt hash)'
<unmatched-paren>minima: maybe try s/(source-module-closure '((gnu packages bash)))/'((gnu packages bash))/?
<unmatched-paren>Oh, wait, you don't even need that with-imported-modules
<unmatched-paren>nor the (use-modules (gnu packages bash))
<minima>unmatched-paren: hey, thanks - dont'i?
<unmatched-paren>nope
<minima>let me try
<unmatched-paren>also, that substitute* will not do what you think it does
<minima>oh
<unmatched-paren>it will attempt to modify sway/my-status-bar in place (and might fail? idk)
<minima>ok, so should i pass it a (local-file ...) object instead of the path to the real file?
<unmatched-paren>minima: have a look at my config, i do some modification of dotfiles in it: https://git.sr.ht/~unmatched-paren/conf/tree/root/item/home.scm#L168
<unmatched-paren>also, you don't thunk the input to home-files-service-type
<unmatched-paren>nor for home-xdg-configuration-files-service-type
<minima>super, thanks, let me have a look at your home.scm
<unmatched-paren>minima: fyi config-file is just a wrapper around local-file
<unmatched-paren>so just imagine it's local-file to understand
***Dynom_ is now known as Guest6688
<minima>"you don't thunk" as in no need for the lambda wrapper?
<unmatched-paren>yeah
<minima>oh cool
<unmatched-paren>it's only (in imaginary type notation) an ``(assoc-list string file-like-object)''
<nckx>Kabouik: Swap can't be compressed. The hibernation image is always compressed (using LZO) unless you go out of your way to disable that, but not by your file system.
<minima>unmatched-paren: what does normalize-config do
<minima>does it simply transform '"aerc/aerc.conf"' to '("aerc/aerc.conf" . "aerc/aerc.conf")'?
<unmatched-paren>minima: it changes "aerc/aerc.conf" to `("aerc/aerc.conf" . ,(config-file "aerc.conf"))
<minima>oh i see ok, thanks
<unmatched-paren>and `("sway.conf" . "sway/config") to `("sway/config" . "sway.conf")
<minima>(the latter also with local-file, i assume?)
<unmatched-paren>oh, wait, the other way round
<minima>(config-file, sorry, not local-file)
<unmatched-paren>`("sway/config" . "sway.conf") to `("sway/config" . ,(config-file "sway.conf"))
<minima>right, understood, thanks!
<pkill9>anyone have a method for managing scripts?
<unmatched-paren>pkill9: i use fish, which allows you to just drop things in ~/.config/fish/conf.d
<unmatched-paren>so i combine that with guix home
<pkill9>normally I use ~/.local/bin but
<pkill9>it becomes aconvoluted mess quickly
<pkill9>also what I want to do is make scripts that call packages
<pkill9>instead of relying on them being present in the environment
<pkill9>i'm just wondering if someone has done that in an elegant way
<unmatched-paren>well, you'll have to use computed-files or something
<unmatched-paren>to do something like (substitute* #$output (("@grep@") #$(file-append grep "/bin/grep")))
<pkill9>yeh
<unmatched-paren>hmm, or better:
<unmatched-paren>no, wait
<unmatched-paren>that would only work for packages...
<unmatched-paren>Actually, you could write a ``my-scripts'' package that uses (source (local-file "scripts" #:recursive? #t))
<unmatched-paren>then list all the required programs in inputs
<unmatched-paren>and use trivial-build-system to first do a substitute* like this:
<unmatched-paren>(substitute* (find-files (getcwd)) (("@(.*)@" _ program) (search-input-files inputs (string-append "bin/" program))))
<unmatched-paren>hmm, maybe not trivial-build-system
<unmatched-paren>Actually, I bet you could probably use #$(package-inputs this-package)?
<pkill9>yeah pobably
<pkill9>probably*
<unmatched-paren>Try that, and if it doesn't work, use copy-build-system
<unmatched-paren>and you'd also need to do (for-each (cute install-file <> (string-append #$output "/bin")) (find-files (getcwd)))
<Luk6655>could someone on guix system run echo $GUILE_LOAD_PATH and let me know the result, please? I'm trying to get my guile work as guix repl on a foreign distro
<Luk6655>also echo $GUILE_LOAD_COMPILED_PATH
<unmatched-paren>Luk6655: GUILE_LOAD_PATH=/home/paren/.guix-home/profile/share/guile/site/3.0 /run/current-system/profile/share/guile/site/3.0
<unmatched-paren>GUILE_LOAD_COMPILED_PATH=/home/paren/.guix-home/profile/lib/guile/3.0/site-ccache /home/paren/.guix-home/profile/share/guile/site/3.0 /run/current-system/profile/lib/guile/3.0/site-ccache /run/current-system/profile/share/guile/site/3.0
<Luk6655>thank you :-)
<unmatched-paren>surely ``guix repl'' should just work on a foreign distro?
<minima>unmatched-paren: if i use this https://paste.debian.net/1254942/ then it complains that 'no code for module (gnu packages bash)'
<minima>so i think i have to reinstate 'with-imported-modules'?
<Luk6655>yes, but there are problems with it, for example arrow keys don't work (it displays ^[[A for example) as a consequence readline doesn't work
<unmatched-paren>minima: you don't need that
<unmatched-paren>Luk6655: Hmm, pretty sure no-readline is the default
<minima>oh, the import altogether you mean
<unmatched-paren>you have a .guile file?
<Luk6655>I do
<Luk6655>in guile it works fine. The file gets loaded in guix repl, but I suspect due to the issue with arrow keys I can't use readline
<unmatched-paren>minima: #$(file-append bash-minimal "/bin/bash") is preferred over (string-append #$bash-minimal "/bin/bash"), i think
<unmatched-paren>Luk6655: Other way round
<unmatched-paren>readline makes arrow keys work
<Luk6655>even left/right ?
<unmatched-paren>you need to do (use-modules (ice-9 readline)) (activate-readline)
<unmatched-paren>yes
<Luk6655>let me try that
<unmatched-paren>if you think about it, it makes sense: when you do ``cat'' and type left arrow, it doesn't move the input
<pkill9>has anyone attempted porting gnome software centre to Guix? I suppose we'd also need another database for desktop software
<unmatched-paren>s/input/cursor/
<unmatched-paren>it's just doing a ``read'' without readline
<pkill9>I wanted to do that a while back
<unmatched-paren>pkill9: nope
<pkill9>I'd like guix to have a software centre :)
<Luk6655>yes, hmm it comes back with no code for module (ice-9 readline), but it does load in guile, probably I need to add the load path to system modules or install readline with guix install?
<unmatched-paren>there's an old issue for it though
<unmatched-paren>although, it seems like guix would be *far* better served by a hand-written ``guix gui'' program
<unmatched-paren>s/program/extension/
<unmatched-paren>since guix is nothing like your average package manager
<pkill9>and because of it's statelessness, it could let you run an application without 'installing' it
<pkill9>yea
<unmatched-paren>yes
<pkill9>but if a preexisting one could be patched then that would save some work and add some consistency
<unmatched-paren>Luk6655: can you echo your own load paths?
<Luk6655>yes: $1 = ("/gnu/store/jragfly5ljpf20p42abyrj8z6zjyk2rv-guix-module-union/share/guile/site/3.0" "/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/share/guile/3.0" "/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/share/guile/3.0" "/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/share/guile/site/3.0" "/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/share/guile/site" "/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x493
<Luk6655>5dfb-guile-3.0.8/share/guile")
<Luk6655>on system guile it is just:
<Luk6655>$1 = ("/usr/share/guile/2.2" "/usr/share/guile/site/2.2" "/usr/share/guile/site" "/usr/share/guile")
<unmatched-paren>Luk6655: your system guile appears to be a different version
<unmatched-paren>not sure whether that's relevant
<unmatched-paren>could you ``ls /gnu/store/jragfly5ljpf20p42abyrj8z6zjyk2rv-guix-module-union/share/guile/site/3.0''?
<unmatched-paren>actually, ``ls /gnu/store/jragfly5ljpf20p42abyrj8z6zjyk2rv-guix-module-union/share/guile/site/3.0/ice-9''?
<Luk6655>no ice-9 in the directory
<Luk6655>let me search in other folders in the load-path I use ice-9 modules routinely in packages
<unmatched-paren>wut
<unmatched-paren>ah
<unmatched-paren>nope, never mind
<unmatched-paren>ls (guix build guile)/share/guile/3.0 -> (bunch of modules including ice-9)
<unmatched-paren>Hmm, wait, no ice-9/readline.scm
<Luk6655>I have lots of ice-9 modules here: /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/share/guile/3.0/ice-9 , but no readline as you said
<unmatched-paren>hmm, well, my ``guix repl'' uses readline fine
<minima>unmatched-paren: new iteration, now it says it doesn't know where 'substitute*' comes from - although i do import '(guix build utils)'...
<minima> https://paste.debian.net/1254943/
<unmatched-paren>minima: i don't see any use-modules there
<Luk6655>I just run guix install guile-readline, but it didn't make a difference, perhaps some path needs adding to the load path by logging out/in
<unmatched-paren>Luk6655: Hmm, looks like (ice-9 readline) actually requires ``guile-readline''
<unmatched-paren>yes
<unmatched-paren>that's exactly it
<minima>ok, so i understand that has to go there as opposed to the file header...
<unmatched-paren>you need to reload the search paths
<unmatched-paren>or just source the profile...
<unmatched-paren>minima: you *will* need to (with-imported-modules '((guix build utils)) ...) too
<rekado>looks like we’re not using the latest version of the system config on ci.guix.gnu.org
<rekado>that’s why the web interface of guix workflow doesn’t start up
<Luk6655>ok it works now
<Luk6655>I needed to install guile-readline, then use add-to-load-path its share/guile/site/3.0 subfolder
<Luk6655>now I can do ,use(ice-9 readline)
<Luk6655>this is much more usable, thanks
<unmatched-paren>Luk6655: if you source ~/.guix-home/profile/etc/profile you can reload search paths without relogging in
<Luk6655>I don;t have ~/.guix-home
<unmatched-paren>okay, replace ~/.guix-home/profile with ~/.guix-profile
<Luk6655>ok
<unmatched-paren>the former is for ``guix home'' users
<Luk6655>it doesn't seem to have added the folder to the load path
<Luk6655>do you (or anyone else) know where are the load-paths defined?
<unmatched-paren>hmm
<jpoiret>you need to have guile installed in the profile
<unmatched-paren>they should be automatically added to that profile file
<unmatched-paren>ah, yeah
<Luk6655>I can add the path with add-to-load-path, but I would prefer it to be added the same it gets all the other paths
<Luk6655>the profile file only sets the PATH
<nckx>rekado: ci.guix.gnu.org is still running the configuration from July.
<jpoiret>yeah, if you want the GUILE_LOAD_PATH to be set, you need guile explicitely installed in your profile
<Luk6655>this is ~/.guix-profile/etc/profile I'm looking at
<jpoiret>that's the same with all search paths
<nckx>apteryx was working on hacking together a working /boot.
<nckx>Is it safe to reconfigure in the mean time? I don't know.
<nckx>I mean, it'll work, but it might inconvenience them.
<minima>ok, https://paste.debian.net/1254945/, now it says 'ice-9/eval.scm:619:8: Throw to key `match-error' with args'
<jpoiret>minima: would you mind posting the whole backtrace to paste.debian.net?
<Luk6655>is there some variable one can read to check if guile code is running in repl, perhaps? I could add the load path in .guile conditionally if we're running in repl
<minima>hey jpoiret sure: https://paste.debian.net/1254946/
<nashdidan[m]>Sorry for cross posting, wasn't sure where best to do it.... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/b825cf6c50aefe56a355c35590b78a6a31e6ae66>)
<jpoiret>minima: i'm pretty sure substitute* doesn't take a file port but simply a string denoting the file name
<jpoiret>ie you won't have to open the file yourself. I suggest copying the file and then substituting it
<Luk6655>unmatched-paren: I installed guix guile and it seems to work now with no extra stuff required
<Luk6655>I'm not sure how it chooses which guile to run as I have system guile in /usr/bin/guile and guix guile in /gnu/store, but when I run guile I indeed get guile 3.0 which is guix's
<jpoiret>you can use copy-file for that
<Luk6655>I can't really remove the system's guile because other stuff requires it
<minima>jpoiret: ok, thanks, will try that
<jpoiret>Luk6655: just look at the PATH order
<Luk6655>I see, good, thanks
<jpoiret>you most likely have the guix profile paths in front of the system paths
<Luk6655>yes, very likely
<unmatched-paren>Luk6655: don't ``guix install guix'', btw
<minima>do i still need the 'call-with-input-file' bit?
<unmatched-paren>it kind of looks like you did that?
<nckx>nashdidan[m]: Cross-posted from where? Seems like it's a separate project not yet packaged in Guix: https://github.com/manisandro/gtkspellmm
<nckx>(Our ‘gtkspell’ package is also incorrectly named ‘gtkspell3’, grr, wasted some time on that.)
<Luk6655>sure :-)
<unmatched-paren>nashdidan[m]: try ``ls (guix build gtkspellmm)/share/pkgconfig''
<unmatched-paren>oh, hmm, no gtkspellmm in guix yet.
<nckx>Or $() in a user-friendly shell.
<unmatched-paren>never mind then
<unmatched-paren>Agh, yes, (...) is fish.
<nckx>:()
<nckx>(What is the canonical meaning of that smiley anyway? I see it once in a while, but all I can see is ‘muppet’.)
<unmatched-paren>"I'm about to bite down on an apple"? :P
<nckx>:(o) yum.
<oriansj>nckx: :( )p
<nckx>Soup?
<oriansj>so shocked, tongue fell out of mouth
<oriansj>soup would be :() D
<nckx>You eat soup from a D with a p.
<nckx>:-|∋
*nckx enough.
<oriansj>^_^ sides
<oriansj>I guess that conversation is less crazy than RISC-V wasting 3/4 of their opcode space on a handful of "compact" instructions
<nckx>(Muricans do eat soup with spoons, right? Or do you just quaff straight from the D.)
<pkill9>i wanna erase the concept of 'installing' an application
<nckx>Apply to Google. :)
<oriansj>nckx: depends if I am in Akagi and drinking Miso
<nckx>I(vaguely)R them wanting to do the same.
<nashdidan[m]><unmatched-paren> "nashdidan: try ``ls (guix..." <- Ok I see. I guess that’s why gimagereader is only offering a qt ui… will play around if see if it builds 10x
<oriansj>pkill9: that would be called a "web application" or just webshite for short
<singpolyma>pkill9: 0install
<singpolyma>guix shell could do the same things as 0install I think there days
<oriansj> https://xkcd.com/1367/
<minima>jpoiret: if i try '(copy-file "sway/my-status-bar" out)' it says out needs to be a string
<pkill9>not quite
<nckx>Should not be too hard to make Guix run ‘$ whatever --help’ in a guix shell… all we're missing is the good ol' command-not-found Achilles' heel.
<pkill9>guix shell is what i'm meaning
<pkill9>specifically for desktop applications
<nckx>Once you have that, the first ‘$ soffice’ automatically downloading & running it is only a few hours away.
<nckx>Not sure how GUI's would handle $all_the_things though. You can't have a .desktop for every single potential programme. But text-based launchers would work.
<singpolyma>And caching built in sort of. Could be cool to have gc that considers "recently used" and doesn't delete
<nckx>Yeah.
<nckx>Making the daemon delete store items in LRU (well, LBU) order would be nice for anyone who considers C++ nice.
<jpoiret>minima: yes, i suggest using (copy-file #$(local-file "...") #$output)
<jeko>Yo Guixters !
<nckx>o/
<nckx>:()
<minima>ok, super, will try that, thanks
<jpoiret>and you can get rid of call-with-{input,output}-file
<jeko>I tried to follow instructions provided here https://guix.gnu.org/fr/blog/2018/customize-guixsd-use-stock-ssh-agent-everywhere/ but after creating the ~/.xsession on reboot I can't log in.
<jeko>I'm not sure but `ssh-agent` returns nothing… seems weird
<jeko>I'm running Guix (operating system with gnome)
<jeko>The issue I want to resolve is I can't, for example, git clonefrom repo using ssh keys :(
<minima>omg it works i can't believe it :)
<minima>thank you so much for your massive help jpoiret and unmatched-paren
<oriansj>singpolyma: that is an interesting question. If Guix had tagged toolsets; then you could just do guix toolset foo (get all the programs assocated with that workflow) and then guix would know not to garbage collect those programs, despite them not being part of your default program set.
<jpoiret>oriansj, singpolyma: or, you could use gc roots to keep some things around :)
<singpolyma>jpoiret: but then you're installing again
<singpolyma>And managing installations
<jpoiret>the daemon can't possibly know that something is needed by Guix without being registered as a gc root
<jpoiret>and whenever you use `guix shell` to use the software you need, you'll be updating it
<jpoiret>(guix shell has an argument to set up a gc root)
<nckx>It's not about roots, it's that it would be convenient to ‘guix gc -F 1G’ more intelligently, without changing the live/dead semantics.
<nckx>Well, mine was anyway.
<jpoiret>oh, for sure. I was just replying to the "don't gc toolsets please" suggestion
<Luk6655>signpolyma: jpoiret: guix shell does keep its environments/profiles when you run it again it does its thing much quicker
<jpoiret>if you don't want something to be gc'd at all, use gc roots
<nckx>Oh totes.
<jpoiret>Luk6655: the cache is not guaranteed to not be gc'd
<jpoiret>if you want it to actually stick around longer, add a gc root
<Luk6655>I see
<minima>still speaking of guix home services, what do you think of these two versions of a sway config? https://paste.debian.net/1254947/
<minima>the former is less verbose - but i'm not sure it's as flexible as the latter
<minima>oh, and the latter doesn't work the way it is now though, it seems to need a 'lambda (config)' after 'home-xdg-configuration-files-service-type'
<pkill9>wrt to erasing concept of installation, guix already does this
<pkill9>but brings it back with profiles
<unmatched-paren>minima: there's no reason to use the latter
<pkill9>it's like the horseless carriage
<unmatched-paren>unless you want to write an actual sway configuration service that's configured with scheme ;)
<pkill9>like how they put a holder for your whip in the first cars that came out
<pkill9>just a leftover concept to match how people thought before moving on
<singpolyma>jpoiret: yes of course. Obviously it would be gc'd in some cases, that's what makes it a cache :)
<jpoiret>pkill9: profiles aren't about installing
<jpoiret>guix shell uses profiles
<pkill9>packages are 'installed' to the profile
<minima>unmatched-paren: thanks, brilliant, but is it possible to include multiple services (as in copying over multiple files) with the former version?
<singpolyma>jpoiret: I think pkill9 means rooted profiles. Ala guix install
<pkill9>yep
<unmatched-paren>minima: yeah
<pkill9>im mostly being dramatic about removing hte concept of installation
<unmatched-paren>just add a new (...) to `((...) ...)
<jpoiret>you could consider using only `guix shell` and never any "installed profiles"
<pkill9>yea but i want to make it nicer than calling guix shell
<jpoiret>don't be surprised when something wants to be suddenly recompiled though :)
<pkill9>I was thinking of adding gcroots somewhere to cache the builds
<jpoiret>what's bad about calling guix shell? apart from the fact that you need a shell to do that
<pkill9>until guix is updated ofcourse, heh
<minima>unmatched-paren: ah super, ty!!
<pkill9>there's nothing wrong with it, just.. less seamless than having a list of software
<jpoiret>you need to know in advance what software is provided by packages though
<pkill9>yeah
<pkill9>I had a few ideas about that
<pkill9>a whlie ago
<pkill9>e.g. guix data service providing lists of files that packages produce
<pkill9>that wasn't my idea
<singpolyma>pkill9: 0install also had a "feed" concept where you go to a url, and the browser can show a "run this app" button. Stuff like that. Honestly could have a browser extension that recognizes guix.scm files
<pkill9>but it came up while I was taling about it
<pkill9>and then maybe download all the .desktop files in every package, parse them, use them as a source of info about which packages can be considered desktop packages
<pkill9>there's also the appstream format I htink it's called
<minima>unmatched-paren: right, but what if they're services of different kinds, e.g. 'home-xdg-configuration-files-service-type' vs 'home-files-service-type'?
<unmatched-paren>Mewonders if we could have a ``guix ls'' command that fetches the aforementioned GDS data?
<unmatched-paren>Sorry, a ``guix find''...
<unmatched-paren>Hmm, no, this doesn't make sense. Never mind.
<unmatched-paren>It'd probably be easier to just generate a database locally...
<unmatched-paren>minima: then add another service to your (services (list ...))
<unmatched-paren>in your (home-environment ...)
<minima>perfect, i'll do that way, thanks
<minima>fwiw, to maintain some level of incapsulation, i created a '(define my/home-sway-services (list (service ...)))' and then appended that to the list of services in 'home-environment'
<jpoiret>heh
<jpoiret>i just have a long list in my system configuration
<Grimpper>Hello. Has anyone been able to make flameshot work on guix running wayland?
<Grimpper>I cannot seem to make it work even if qtwayland is installed
<Luk6655>Guix shell creates an environment/profile where all the packages specifed on the comand line are symlinked to, is it possible to create some sort of metapackage that consists of two packages combined in one folder (like guix shell does) and then use that combined package as an input to another package?
<singpolyma>Luk6655: sounds like a manifest
<singpolyma>Oh, but you can't use a manifest as an input
<singpolyma>"what are you really trying to do?"
<Luk6655>I'm trying to combine files from two packages while maintaining the dependencies etc (which would be lost if I simply copied the files during the build phase)
<Luk6655>There is a library that contains a "stub" library
<Luk6655>that stub is there for the build to succeed on machines that don't contain a driver that replaces that stub
<vivien>Today I had to run "which which" to find out how to get which in my native inputs. Drumroll, it is the "which" package.
<Luk6655>So on a "typical" linux you can have this library and a stub, or you can install the driver as well providing actual functionality overriding this stub(I guess)
<Luk6655>I wondered what would be the most guixy way to resolve it, and some sort of metapackage seems the best if there is such a thing
<Luk6655>Service-type extends works somewhat like this (based on my understanding from reasing the manual)
<pkill9>what password managers does everyone use?
<Luk6655>keepassxc
<vivien>pkill9, seahorse
<pkill9>can keepassxc export to other frmats for the future?
<pkill9>actually there are probably external tools for that
<singpolyma>Luk6655: why not just have both as inputs? I'm not clear on why you need a metapackage
<vivien>Luk6655, I didn’t understand the part with stubs and libraries, but if you want to merge two packages, you can use directory-union.
<Luk6655>vivien: because the package that needs those as inputs expects those two libraries to be in one folder and I don't know cmake well enough to modify dozens of files that specify that...
<Luk6655>directory-union? interesting, it sounds like something that might solve my problem
<Luk6655>I'll search for this
<Luk6655>I suppose I can create a new package, specify those two in inputs and simply copy all files, but that would be a rather ugly solution...
<Luk6655>and wasteful on disk space (although /gnu/store is deduplicated right?)
<vivien>Instead of copy the files, you can symlink them
<Luk6655>yes, true
<Luk6655>that is a better idea, can you have asymlink to a symlink?
<singpolyma>Yes
<vivien>Of course
<Luk6655>cool
<vivien>Guix is a collection of symlinks of symlinks of symlinks of…
<vivien>That’s why it’s so slow lol
<Luk6655>I'll do that if I don;t find anything better
<vivien>(or rather symlinks to symlinks to …)
<vivien>directory-union will not create a package, just a file-like (a directory actually) in the store
<Luk6655>in the manual it says about directory-union that it does pretty much exactly what I need, I just wonder how it does it
<singpolyma>Probably with syml
<vivien>If you use the gexp syntax for phases, you can just use $(directory-union "my-things" (list package package))
<vivien>(and remove the packages from the inputs)
<Luk6655>that's exactly what I'm thinking about, but without removing those two packages from inputs
<vivien>guix traces what’s in #$(…) and registers them as inputs automatically
<vivien>#+(…) for native inputs
<vivien>Oh sorry I forgot the # earlier
<Luk6655>I didn't know that, in this case I could remove them from inputs, however keeping them would make it more readable, is there any downside to keeping those two packages in inputs and using directory-union?
<vivien>Well, if someone wants to change the variable to package-xyz (for instance, to pin a version), then there will be 2 sites to change that: the #$(directory-union…) place and the inputs
<singpolyma>If you keep in inputs can probably even skip the gexp and just use normal code
<vivien>You mean, (inputs (list … (directory-union "things" (list package package…)) …))?
<Luk6655>my build phases section currently uses gexp and then if I need a package folder from inputs I use ungexp package (#$package)
<singpolyma>I think you need to use directory-union in a phase not in the input list
<pkill9>hmm I think password-store stores it in the most portable format but, the problem with password-store is that it uses gpg which is annoying
<pkill9>gpg is confusing
<singpolyma>pkill9: in what way?
<Luk6655>signpolyma: vivien: yes, I'll do that first.
<pkill9>having to manage the keyring and keys separately
<pkill9>basically idk how it works
<pkill9>and having to point to pinentry program
<pkill9>I suppose the pinentry thing could be mitigated with a package wrapping it
<pkill9>though that's more stuff to remember
<singpolyma>Yeah, I've never set up pinentry stuff. If you run agent it just works, and if you run the gnome settings stuff it always runs an agent
<pkill9>i think what's also confusing is how to migrate the keys
<singpolyma>And for pass I don't really "manage" a keyring. I made a key and that's about it, not much to manage
<pkill9>with keepass you just have a single databsae file
<Luk6655>pkill9: that's what I like about keepassxc, also browser integration
<singpolyma>Keepass doesn't put the encryption key in the db file. Though you may have it only in your head
<vivien>I like gpg because it can be used as a SSH agent, so you don’t have to manage an SSH key pair and use a GPG subkey instead
<singpolyma>Pass is easier to do with multi device for me because merging two folders there are many tools for that
<singpolyma>But keepass is fine if you like it. Just different trade-offs
<Luk6655>just playing with directory-union in repl it returns a gexp that creates the directory, by the way it looks perhaps it might work in the inputs as vivien said.
<pkill9>lol tbh i don't have problems with gpg, it's just the pinentry path
<pkill9>I just had to set it correctly
<pkill9>it's always just a hassle
<vivien>Maybe it will work, the inputs syntax has changed recently so maybe it’s not required to be a package
<pkill9>I think password store stores passwords in the most portable format
<singpolyma>inputs it definitely not required to be a package
<singpolyma>Can be a source, for example
<pkill9>individual gpg files with the password on the first line
<pkill9>named after the user, stored in the domain name
<vivien>Cool
<pkill9>think i will stick with password store then
<pkill9>keepassxc looks nice though
<podiki[m]>I like password store; just use it with git (synced on local server) and rofi-pass
<podiki[m]>(and with hardware key for unlocking)
<pkill9>it can be integrated with browser using an extension as well
<pkill9>it's very very flexible
<pkill9>or yea rofi-pass and just autotype
<pkill9>and can be browsed with any file manager
<nashdidan[m]>Any idea if guix has the support for gnome shell integration which makes it possible to install extensions from https://extensions.gnome.org ? The extensions available with guix do not seem to work at the moment (gnome 42.4), like gsconnect, clipboard and others.
<pkill9>actually idk how to manage gpg keys so hmm
<Luk6655>vivien: signpolyma: guix pull worked fine with directory-union in inputs... we'll see if the build works (It takes a long time)
<Luk6655>looks like cmake found the union-ized folder fine, nice :-)
*Luk6655 is afk
<pkill9>i suppose using gpg files for password storage means you could also use them for ssh keys, and on top of that any other credentials
<podiki[m]>yes, I use one main gpg key with subkeys, used for signing commits, ssh, password encryption
<podiki[m]>even if you don't use a hardware key this may be helpful https://github.com/drduh/YubiKey-Guide
<pkill9>are subkeys not associated with the main key?
<pkill9>from the outside
<pkill9>but inside they let you just use one key for many?
<podiki[m]>they are associated with main key but assigned to certain functions (like signing or encrypting)
<podiki[m]>so compartmentalized permissions I guess; and then you can revoke, renew etc just subkeys while main key remains
<podiki[m]>anyway, I don't know too much, but that's what I've been using
<podiki[m]>sneek: later tell lilyp I figured out the emacs pdf-tools build failing with native comp and sent a patch
<sneek>Will do.
*podiki[m] away for a bit
<Grimpper>Anyone knows a way to create a new wayland session on guix?
<Grimpper>a custom `sway.desktop` I mean
<nckx>Luk6655: …so I have no idea where your mails got stuck. I suspect the pub. At least they all seem to be accounted for now.
<lilyp>podiki[m]: looking at it, but I have to recompile the repo thanks to abi break
<sneek>Welcome back lilyp, you have 1 message!
<sneek>lilyp, podiki[m] says: I figured out the emacs pdf-tools build failing with native comp and sent a patch
<podiki[m]>lilyp: no rush. I think it was pretty simple and obvious, once I realized what was happening (trying to write compiled files to somewhere it can't, rather than install directory)
<podiki[m]>lilyp: thanks! now to finish migrating from my use-package with ensure to just my guix manifest for emacs :)
<jmc_fr>hello everyboy, I have just installed guix on a T430, with encrypted / and separate encrypted /home ; prblem : when I reboot, after the "slot 0 opened", I get a "failed to start srvice "user-processes" and nothing runs. (I have recently succeded in running guix with exwm, but totally reinstalled now whith wfce)
<nckx>jmc_fr: Can you share more? (If all else fails, a screenshot is fine.) user-processes is a synchronisation point, meaning that the real culprit likely failed before it.
<rekado>nckx: I started the gwl website process manually.
<rekado>when we reboot into a more recent version of the system this will not be needed.
<jeko>Yo o/
<jeko>Does anyone has a clue to explain why `ssh-agent` does not return anything ?
<jeko>when i'm logged as a regular user
<jeko>when i'm root, it does return SSH_AUTH_SOCK and SSH_AGENT_PID
<nckx>jeko: So it just exits without printing anything? Does it still fork? Can you strace it?
<nckx>Does it still fail if you temporarily move your ~/.ssh out of the way?
<jeko>straced https://paste.gnome.org/aeY8Chsa7
<jeko>same behaviour after $ mv ~/.ssh ~/.ssh.mv
<nckx>Wat.
<nckx>Is it a valid executable?
<nckx>An empty (corrupted) file with +x set will do exactly what you describe, since it's interpreted as an empty shell script.
<nckx>And your root user could have a different one in $PATH, that is actually an ELF.
<jeko>Interesting
<nckx>Yeah, ‘interesting’ failure mode for sure.
<nckx>‘0-length files’ have always been more common than they should be on Guix but there seems to be an(other) uptick in reports of them lately.
<nckx>I'm already assuming that's the problem, yes.
<jeko>Seems you're right
<nckx>Hate that.
<jeko>I can feel that hahaha
<jeko>so now, how can fix that ?
<jeko>x')
<pkill9>how small is the bootstrap binary now? also which parts depend on a binary?
<nckx>guix gc --verify=contents,repair is a start.
<nckx>It seems like (1) the guix-daemon stresses a particularly weak part of Linux fs consistency guarantees (unlikely, but who knows) or (2) there is simply a subtle bug somewhere. Or both.
<nckx>jeko: Did you hard reset/power off? Not to victim blame, just gathering anecdata :)
<jeko>nckx: no worry, I m not ashamed to say that sometimes the laptop goes out of battery and just brutaly shut down haha 😅️
<nckx>Right, that can lead to this.
<nckx>Still, Guix is clearly missing some fsync calls it could be making to make this less likely.
<nckx>Not really my area of expertise I'm afraid.
<jeko>could help but won't address the root cause haha
<jeko>I have a concrete reason to care about my battery gauge now
<nckx>Yeah, the official answer is ‘don't do that’, but it happens.
<nckx>Anyway, the above command will compare all known files in /gnu/store to a hash in the /var/guix/db, and ‘repair’ (re-download) ones that don't match.
<nckx>I don't remember if it re-builds from source or gives up if there are no substitutes for an item.
<jeko>Hope it will work as is
<jeko>nckx: thank you for your help ! I m far less lost now
<nckx>You're welcome. Good luck!
*nckx away.
<jorge[m]1>error TLS en el procedimiento 'read_from_session_record_port': Error decoding the received TLS packet.
<isf>hello, what is the kernel of the standar version of GNU guix?
<drakonis>linux
<pkill9>linux-libre
<isf>what version?
<isf>of the second GNU kernel
<lechner>isf: 5.19 https://github.com/guix-mirror/guix/blob/master/gnu/packages/linux.scm#L938
<sneek>lechner, you have 1 message!
<sneek>lechner, antipode says: Are you sure what you want to do is some kind of _redefinition_ of a module variable (my interpretation of 'global variable), and not just mutating the variable? For mutation, there is 'set!'.
<isf>thanks lechner
<lechner>Hi, the most recent version of linux-pam, which is not yet in Guix, ships with defective pkgconfig files. unfortunately, the issue is still unresolved upstream (and only affects Guix, and possibly Nix). can I prepend two lines after 'unpack' or do i have to patch? thanks! https://github.com/linux-pam/linux-pam/issues/466