IRC channel logs

2024-08-23.log

back to list of logs

<lain`>why is guix pull so slow? i was thinking about installing it on my (slow) laptop, but it already takes a long time on my much faster computer.
<lain`>is it possible to like cache whatever it does on a machine on the network and just have them pull from that?
<oriansj>lain`: I don't think the instructions are obvious but you can set /etc/guix/channels.scm or ~/.config/guix/channels.scm and delete the %default-channels but that'll be something not well tested and I don't know anyone who successfully went that route.
<lain`>oriansj: i see. thanks
<morte>so recently I was unable to use docker, I'm still getting this error when I try to add the service
<morte>guix system: error: service 'dockerd' requires 'containerd', which is not provided by any service
<mange>That was a change made recently. You'll need to add containerd to your system definition. guix pull --news tells me it was changed in commit 26638b8e8129aa755586d017677b4cf076bafda6
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=26638b8e8129aa755586d017677b4cf076bafda6
<mange>Here's the related issue: https://issues.guix.gnu.org/71324
<morte>oh thank you so much, for some reason I couldn't find anything related
<dckc>hm. what to make of tools such as https://docs.astral.sh/uv/ , a python project management tool written in rust?
<sneek>dckc, you have 2 messages!
<sneek>dckc, weary-traveler says: thanks for the monte reference. wouldn't control flow effects need to be handled as well, in addition to things like IO? it seems the requirements are for code to be functionally pure, and for side-effects to happen in some sense monadically
<sneek>dckc, weary-traveler says: oh and in guile, you'd also need to get rid of global variables and mutability in order for it to be capability-safe
<dckc>sneek, tell weary-traveler I'm not sure how control flow is relevant. OCap code doesn't have to be functionally pure.
<sneek>weary-traveler, dckc says: I'm not sure how control flow is relevant. OCap code doesn't have to be functionally pure.
<dckc>yes, you'd have to get rid of global mutable variables. but not mutability in general.
<attila_lendvai>a patch that fixes the build of ganeti (and with that `make check-system`): https://issues.guix.gnu.org/72207
<xFFFC0000>If I want to experiment with boost 1.86 ( a new version not included in guix ). What is the best way to do it in guix? Should copy paste 1.85 build description from guix and try to compile with that? Or any other way?
<Rutherther>xFFFC0000 couple of options. If you want to just quickly try from cli, you may try transformations --with-commit / --with-source, or just for the latest --with-latest. If in guile, transformations can be used as well through their interface, or you can always just make a new package and (inherit boost) the old one. Then just change the source, and additionally maybe also other dependencies if needed. No need to copy anything manually.
<Rutherther>the transformations may not work if there were dependency changes that would need to be added as well. If that's the case, inheriting and adapting might be okay. See modify-inputs procedure for adding/removing/replacing inputs. Also it might happen the phases will not work anymore - patches will not be relevant anymore, build commands changed etc.
<xFFFC0000>Rutherther: thanks for detailed explanation. that was very helpful. I suspect because sheer size of the project and different patches it uses. it is not going to be easy to work keep same script working. although I am going to give it a try. But good know there is `--with-commit / --with-source` available . Was not aware of it. Second question.
<xFFFC0000>Once I was successful in compiling custom version of boost, how I can use that as dependency of some other project I want to compile? for example I want to compile monero, with boost@1.86.
<Rutherther>for that there is --with-input transformation for cli, or in guile "package-input-rewriting" to obtain a procedure that will do the replacement of a dependency
<xFFFC0000>Great. I find this document very useful. thanks for giving me clue to where to look at: https://guix.gnu.org/manual/devel/en/html_node/Package-Transformation-Options.html
<xFFFC0000>Rutherther: one last thing, I load my dev env with `guix shell --pure --development ` , anyway to load custom built/installed package?
<xFFFC0000>( strangely building 1.86 with same script worked without issue. )
<Rutherther>I don't think it's possible to load installed packages in --pure directly. It's exactly what it's for, to isolate from the installed ones. If you wanted to put just some installed stuff there you can just append to PATH something like ~/.guix-profile/bin.
<Rutherther>as for custom built, you can of course load them, either expose those from modules, and use -L to add a path where your modules are, or if they are returned from files, then with -f
<xFFFC0000>If I want to keep the debug info, something like this would work: `guix build boost --with-source=boost@1.86.0=/home/alef/dev/boost --with-debug-info=boost@1.86.0` ?
<xFFFC0000>the goal is to debug build.
<Rutherther>I am not sure honestly. I have never checked the order the transformations are executed in. I would think it should be possible, but I am not sure if --with-debug-info should have only boost or boost@1.86.0.
<xFFFC0000>no worries at all. Thanks for helping :)
<nckx>lain`: Most of ‘guix pull’ is substitutable, meaning that you could download substitutes from a machine running ‘guix publish’ that has pulled the same version(s) of your channel(s).
<nckx>sneek: tell dckc that our beloved sneek is a little silly, and must be explicitly told to ‘later tell’ someone something for her not to do a silly thing.
<nckx>sneek: hello? botsnack?
<sneek>:)
<nckx>ur sily
<xFFFC0000>After installing boost with `guix build boost --with-source=boost@1.86.0=/home/alef/dev/boost --with-debug-info=boost@1.86.0`, successfully, how can I use `boost@1.86.0` in `inputs` expression of another package?
<Rutherther>you can't, for that you need to do this in guile, not in cli. If you want to keep with transformations, use "options->transformation", specify the transformations, and apply it onto boost. That will give you boost 1.86 with debug info
<xFFFC0000>Rutherther: thanks. one other thing, does `inputs` expression supports versions too? for example I can have something like `(inputs (list boost@1.86.0 cppzmq ...`
<xFFFC0000>Is this even possible: https://paste.debian.net/1327293/ I only have boost 1.86, but my .guix-profile/lib has boost@1.80 ?
<Rutherther>no, @1.86.0 is part of a "specification", specifications are not supported by guile syntax, you need to use stuff like specification->package. But there is no point here, just reference the package properly, ie. you do (define boost-1.86), and then use boost-1.86
<xFFFC0000>Rutherther: I see. thanks, I am not writing a manifest ( .scm ) for boost@1.86, I am just using `guix build boost --with-source=boost@1.86.0=/home/alef/dev/boost` , so I am not sure where should I write `(define boost-1.86)`
<Rutherther>with options->transformation, instead of cli options
<xFFFC0000>I see. I have to read about that options->transformations
<xFFFC0000>thanks
<rhuijzer>Is somebody doing guile / guix in vim? I'm can't seem to befriend emacs. I don't have time to spend hours and hours on the configuration, the default config isn't for me (I really want vi keybindings /evi) and all those emacs distributions like spacemacs are always getting really buggy for me after a couple of updates
<Franciman>i do it in kakoune fwiw
<Franciman>i use parinfer-rust for some sort of structural editing (and it works with vim too)
<rhuijzer>parinfer-rust looks like what i'm looking for. Will look into it, tnx
<Franciman>rhuijzer: bonus track, it's packaged for guix too!
<rhuijzer>Even betten!
<rhuijzer>*Better!
<podiki>efraim: i'm looking at updating mesa and seems to build fine with vanilla llvm-15. maybe we don't need llvm-for-mesa? or is it mostly due to a smaller closure?
<rynn>Does guix not support UTF-8 out of the box? I'm seeing a lot of character encoding boxes across pretty much all apps, regardless of font used.
<rhuijzer>Should work fine. What's the output of 'locale' ?
<rynn>Hmm, looks correct, and shows UTF-8 too: https://paste.debian.net/1327315
<rhuijzer>rynn: Hmm, then I don't know, sorry. I still suspect your font.
<llano>Is there general etiquette on asking for help building packages / troubleshooting build failures?
<llano><-- not a programmer by day
<ieure>llano, Only real etiquette is to use a pastebin service instead of pasting a bunch of code into IRC, and to be respectful.
<llano>Simple enough, thanks! I assume it would be helpful to have a git repo of some variety for something that involves mulitple package edits? So folks can pull exactly what I'm using rather than a giant pastebin of multiple packages?
<Rutherther>llano I also think it helps if people send real errors and commands they executed rather than just paraphrasing
<ieure>llano, Depends on the problem, use your judgement. If you have some package that's not building which depends on a bunch of custom code, then yeah, you won't get too far without sharing that.
<llano>Sounds good, thank you both.
<llano>I'm going to poke at this a bit more myself before throwing up the white flag for help
<ieure>Sounds good.
<lynn_sh>hello geeks, working on my own channel and running into a strange issue with guix git authenticate. my introduction commit auths fine, but any other commit fails. i have a pastebin showing the exact problem. any help is appreciated. https://pastebin.com/Jmfp1JPz
<lynn_sh>additional info: i just did a git verify-commit on the intro commit and it gives the exact same output (minus the date changed.) only thing i can think of is i switched from pinentry-gtk to pinentry-tty
<ieure>lynn_sh, What's the content of your .guix-authorizations file?
<ieure>I believe it's complaining that the key your commits are signed with aren't listed in that.
<lynn_sh>ieure https://pastebin.com/CQkiMR8X
<lynn_sh>all the commits are signed with the same key, one commit passes and the other fails
<ieure>lynn_sh, Can you link to the channel repo?
<lynn_sh>ieure https://codeberg.org/lynn_sh/artoria
<lynn_sh>the commit hashes in the first pastebin are local though. i reverted head all the way back to the intro to test
<ieure>lynn_sh, Hmm. I don't see anything obviously wrong with your channel setup.
<lynn_sh>ieure and yet.. lol. can you pull it and just guix git authenticate it yourself for my sanity?
<lynn_sh>im worried it somehow isn't talking to the herd service for gpg properly or something
<ieure>Sure.
<lynn_sh>thanks, it's driving me a bit insane.
<Rutherther>how does your channel introduction look like?
<lynn_sh>does my channels.scm matter for manually checking the auth?
<ieure>lynn_sh, I get the same error as you. "guix pull: error: commit 54d94fd607f2e7652a4ab42bf56fa2b022dfde50 not signed by an authorized key: FE30 E8F6 522D 0615 35E0 E449 55E7 97F6 31DD A03C"
<lynn_sh>ieure thanks. honestly not what i wanted to hear, lol
<lynn_sh>Rutherther https://pastebin.com/yqYVZ8TL channels.scm minus a few
<ieure>lynn_sh, I don't see any obvious differences, but here's my channel, which does auth properly: https://codeberg.org/ieure/atomized-guix
<ieure>Maybe you can see a difference that I'm missing.
<lynn_sh>thank you
<lynn_sh>im going to hang out and see if anyone has any ideas but probably just try to resign the whole thing with a new key in a few hours and see if that helps. not thrilled about tossing my key
<ieure>I'd try starting with a fresh repo rather than rotating the keey.
<ieure>*key
<lynn_sh>that is a good point. lol :) sorry im a bit frustrated
<llano>Well I finally figured out my issue. Apparently I need a newer version of CMake to build my package, as 3.27 was when FindOpenGL added GLES2 and the current version included is only 3.25. But at least I'm learning!
<ieure>lynn_sh, This might be a helpful course of action? Starting over from an empty repo and building it up -- you can force-push to your Codeberg repo after it's working.
<ieure>llano, Version bumps are a great way to get started contributing!
<llano>oh gosh, that makes me nervous! lol.
<lynn_sh>ieure just made a fresh git repo, added a keyring branch, did introductory commit, made another and it cant validate the second one
<ieure>Huh!
<ieure>lynn_sh, Okay, I think this might be your problem. I think this name field: https://codeberg.org/lynn_sh/artoria/src/branch/main/.guix-athorizations#L4 -- has to match a file named `value-of-name-field.key' in your keyring branch.
<ieure>That name does not match a file in your keyring branch.
<ieure>Is that also the case with your fresh, empty repo?
<lynn_sh>locally it's set to lynn not lynn@lynn
<ieure>If you look at my working channel, the .guix-authorizations names the committer "ieure" (https://codeberg.org/ieure/atomized-guix/src/branch/main/.guix-authorizations#L8), and I have an `ieure.key' in the keyring branch: https://codeberg.org/ieure/atomized-guix/src/branch/keyring/ieure.key
<lynn_sh>OH
<lynn_sh>i see what you mean
<lynn_sh>im pretty sure i did it right on my test repo but let me try here
<ieure>In your public repo, those don't match: https://codeberg.org/lynn_sh/artoria/src/branch/main/.guix-athorizations vs https://codeberg.org/lynn_sh/artoria/src/branch/keyring
<ieure>I suspect this is the issue.
<lynn_sh>yes i am making local changes
<lynn_sh>and authing there
<lynn_sh>no dice
<ieure>Hmph
<ieure>I'm stumped, then.
<yelninei>lynn_sh: I think you have missspelled the .guix-authorizations filename
<ieure>omg
<lynn_sh>i moved it to appropriate name and it is giving me the issue. going to rebuild a new repo again and test
<yelninei>i think the file needs to be correct at the introductory commit
<lynn_sh>ohhhh
<yelninei>(rather needs to correct from the introductory commit onwords, as there might be new people being authorized and other people being deauthorized)
<lynn_sh>that was it
<lynn_sh>thank you
<lynn_sh>that makes a lot of sense lol
<yelninei>there could be a better error when the file is not found though
<ieure>Definitely.
<lynn_sh>i agree lol :)
<lynn_sh>fwiw both you yelninei and my wife caught it at the same exact time lol. she called out as i was reading your message
<lynn_sh>dyslexia strikes again
<matijja>Does anyone accomplish to run G-Golf simple-paintable example?
<matijja>I'm not getting further than segfault: https://0x0.st/XyJV.txt
<lynn_sh>hello geeks, hopefully an easy question. I'm working on writing my home config, and have some variables i want to re-use. let's say they are in lynn/var.scm, with define-modules (lynn var) at the top. i want to address them in my config with use modules (lynn var). i get 'no code for module (lynn var). am i missing some load path thing?
<Rutherther>you for sure need to add it to load path, you can use "-L ." in the commands, assuming you are in the root folder
<lynn_sh>makes sense thank you. just like a linker then
<kaij>how would I make a more complex static networking config? ie I want to specify the IP, create a static route to the gateway (not on one subnet with IP) and create the default route. of course the default route cannot be created before both other rules are applied. Can I do all three as one? do I work with provision/requirement?