IRC channel logs

2023-09-19.log

back to list of logs

<nckx>ACTION → 😴
<zimoun>mirai: thanks.
<zimoun>Hum, so I do not understand how Debbugs works. I specifically sent to 62202@debbugs.gnu.org. Why is it overwriting in this case? And Debbugs does not when having the string ’bug#NNNNN’ in the subject. Well, this behaviour appears to me confusing.
<zimoun>Especially when I have “git am” some patches, tweak a bit, and resent.
<zimoun>Anyway. :-)
<zimoun>nckx: I am using Bash. That’s just I was checking and wanted to avoid mistake on my side (I already sent a series with a missing patch in the middle of a series).
<sevan>guix pull on a system with 2GB RAM is painful (ARM SBC running armbian) . can just about squeeze it in, but it thrashes due to lack of ram. It's taken several goes but I'm almost updated :)
<bumble>Do you recommend any specific SBC? I'm thinking of getting an SBC to setup k3s and a little web service but have never done those before. Any recommendations?
<bumble>I think I want to get something that is fanless and low power
<bjc>i would suggest against running guix on something like that
<sevan>bjc: was that directed at me?
<bjc>at its heart, guix expects to compile updates, and a lot of them. substitutes help a bit, but that core assumption will always leak through. and on a low power sbc that will be pain
<bjc>sevan: more at bumble, but its general advice
<bumble>bjc: ok thanks :S
<bjc>i should say, rather, substitutes help a lot, not a bit. but it's not enough to be happy on a very low power device
<sevan>guile is chewing through ram and swap
<bjc>‘guix pull’ alone will likely make you regret your choices, even if substitutes are available for everything else
<sevan>:)
<bjc>you could make it work if you had your own substitute server set up that the sbc only pulls known 100% substitutable bits from
<bjc>and, for that matter, offloading can help. but, ime, offloading is flaky
<sevan>early days for me, only set this up recently for the first time and then went off for a few weeks to focus on something else, now back and restarting again. 1st step "update" :)
<ryan77627>Hey all, I have a question that I couldn't really get a clear answer for online. Right now, I define channels the usual way (using (list (channel... ), I would like to change to using channel-with-substitute available, but am unclear on a few things. 1) does this actually increase speed if I have other channels as well? eg. is the substitute used for the one channel or are derivations a sum of all
<ryan77627>your channels. 2) can i get a substitute of a specific commit or does it always go to the latest commit? I like pinning my channels bc I share some config among multiple computers
<rdrg109>[question] I want to define a macro that evaluate multiple (define* statements? What function should I use? I've been inspecting the source code of guix and I've noticed that define-syntax-rule is used multiple times, but I'm not sure if this is the way to go.
<lilyp>rdrg109: may I convert you to define-values?
<rdrg109>lilyp: I grepped the guix source code, but didn't find an example that could teach me how to execute multiple "define*"
<rdrg109>* multiple "define"
<lilyp>(define-values (foo bar) (values (lambda* (...) ...) (lambda* (...) ...)))
<rdrg109>lilyp: Thanks, do you know if it is possible to modify the symbol name? For example: (define-values ((string->symbol (string-append (symbol->string 'foo) "-bar"))) (values 1))
<rdrg109>I want to define a macro, such that given a symbol (e.g. 'foo), the macro creates two other symbols (e.g. 'foo-bar1 and 'foo-bar2)
<lilyp>Not without syntax-case and related procedures (datum->syntax) as far as I'm aware
<rdrg109>Ok, I'll look into that. Thanks for the help!
<janneke>ACTION created bug for "rewrite-url, without to-version" -- https://issues.guix.gnu.org/66097
<vivien>lilyp, I checked gnome-control-center in a virtual machine, unfortunately the VM fails early. It does not get to start gdm. /var/log/messages reports 2 failures to start: upower, and then NetworkManager.
<civodul>Hello Guix!
<janneke>hey civodul :)
<user_oreloznog>o/
<civodul>noticed something weird in Cuirass
<civodul>‘db-get-pending-build’ says: Return the pending build with no dependencies for SYSTEM that has the lowest priority and the highest timestamp.
<civodul>that’s exactly the opposite of how we’d want to schedule builds
<civodul>we’d want the build with the highest priority and the lower timestamp (= the oldest one)
<civodul>or am i missing something?
<cbaines>In Cuirass, high priorities are low numbers
<civodul>on really? :-)
<civodul>*oh
<civodul>ACTION feels silly
<cbaines>yeah, personally I'd do it the other way, but I think that matches up with the specifications on ci.guix.gnu.org
<civodul>then i’ve configured the build farm at work to do the opposite of what i wanted
<civodul>ok
<cbaines>master on ci.guix.gnu.org has a priority of 2, and r-updates as an example has a priority of 9
<civodul>yeah, cuirass.info concurs
<civodul>the other thing is: ‘db-get-pending-build’ picks the most recently queued build first
<civodul>i’d start with the least recently queued
<drewjose>i'm trying to package https://github.com/helix-editor/helix and for some godforsaken reason they don't publish their stuff on crates.io, their code is separated into different crates which all depend on each other. I looked at alacritty as an example, as they have a similar structure but alacritty actually does publish their stuff to crates.io
<drewjose>my question would be, where should I put all of the helix-* crates in the gnu packages hierarchy, filling up the text-editors.scm module doesn't seem nice
<janneke>ACTION pushes another self.scm tweak that really fixes `guix pull' on the Hurd
<janneke>err, when pulling from a local git worktree, that is; a plain `git pull' still fails for me
<civodul>janneke: fails due to OOM or something along these lines?
<janneke>civodul: no, a segfault
<civodul>oh, even better
<janneke>iirc, let me have another try (now that most everything else works...)
<janneke>yeah, no idea what to do with this, really https://paste.debian.net/1292449/
<janneke>git pull; guix pull $PWD; works, so /me sticks head in sand
<jpoiret>if core got dumped you could try to analyze it
<janneke>i could?
<jpoiret>you'll probably need debug symbols for all libraries used by guix
<jpoiret>see what backtrace you get
<janneke>yup, theres a core
<cbaines>we get segfaults in libgc during guix pull, so maybe that's happening on the hurd
<jpoiret>oof, even on linux?
<cbaines>yeah
<janneke>libgc, that's boehm?
<jpoiret>was that reported upstream? in bdwgc?
<janneke>cbaines: that's helpful, i'll see if debian has patches against libgc
<cbaines>in /var/log/messages it looks like GC-marker-3[1836]: segfault at 60 ip 00007ffff7e19a25 sp 00007ffff5ad4c70 error 4 in libgc.so.1.5.1[7ffff7e120
<cbaines>00+1c000]
<civodul>segfaults during ‘guix pull’ on Linux?
<cbaines>civodul, I think you've seen this when looking at data.qa.guix.gnu.org
<jpoiret>cbaines: does that happen under load or just normal circumstances?
<civodul>oh that, yes
<jpoiret>cause i've never seen it myself
<civodul>but that’s different: here the segfault janneke posted happens during Guile-Git activity
<cbaines>e.g. http://data.qa.guix.gnu.org/job/49184#bottom
<cbaines>ah, yeah, the ones I commonly see are during the various "guix pull" derivations
<jpoiret>can you analyze the guile stack with a core dump?
<civodul> https://issues.guix.gnu.org/64197
<janneke>ACTION doesn't see any hurd-specific stuff in debian's libgc
<janneke>yeah, without debugging symbols it's only ?? () ?? ()...
<cbaines>this reminds me, I did come up with a theory as to why I see segfaults in guile-gnutls https://gitlab.com/gnutls/guile/-/issues/23
<janneke>jpoiret: do you know how i install all necessary debugging symbols?
<janneke>ah, theres' guile:debug
<cbaines>(I'm also getting core dumps for these now at /var/lib/guix-build-coordinator/core)
<janneke>hmm; after doing: guix shell guile guile:debug libgc:debug
<janneke>there's still only question marks in the backtrace
<civodul>cbaines: i replied to https://gitlab.com/gnutls/guile/-/issues/23
<civodul>we need more data :-)
<cbaines>civodul, there are core dumps on bayfront, but I'm not sure they're useful as I don't know if guile-gnutls has debug info
<civodul>cbaines: an ugly backtrace is better than no backtrace :-)
<bovid-19>Hi guix!
<bovid-19>I've had a problem with the nextcloud client for a while: when I try and run `nextcloud', I get a segmentation fault. I've tried reinstalling it a couple of times after running `guix pull', but the problem remains. Any ideas?
<bovid-19>(over a couple of days/weeks, not one try after the other)
<avalenn>is there a list of software not-yet-packaged ? something a bit like RFP and ITP for Debian
<civodul>avalenn: no, though people occasionally submit work-in-progress patches
<bovid-19>I just tried `guix refresh -u nextcloud'. It would upgrade from 3.8.2 to 5.12.9, but I get an error: `mkstemp: Read-only file system'.
<avalenn>cidovul: do you think it could be useful?
<nckx>sneek: Later tell bovid-19: ‘guix refresh -u’ more or less (but mostly more) assumes you're running it as ‘./pre-inst-env guix refresh -u’ in a writable Git checkout. The error message could be clearer.
<sneek>Got it.
<nckx>sneek: botsnack party.
<sneek>:)
<janneke>Core was generated by `/gnu/store/7qcavd3q0rgzxr0xmka0pj3kjmh2p0s9-guix-1.4.0-13.a254916/libexec/guix/g'.
<janneke>yeah right
<nckx>avalenn: https://libreplanet.org/wiki/Group:Guix/Wishlist is such a list, but people tend to overestimate the value of such a list. The case of someone just itching to package… something, anything, give me a random package name, anyone! is rather unusual IME.
<nckx>(The occasional notes in that list can be useful though.)
<makads>I want to find a stopwatch timing program wIth libre,Can anyone send a URL thanks
<avalenn>nckx: it's more useful to understand what could have stopped a quick packaging when someone else already tried it
<avalenn>but as cidovul said "people occasionally submit work-in-progress patches"
<rrobin_>qq how do people usually troubleshoot sheperd? i have an issue where sheperd seems stuck, some services don't start, herd gets no response
<civodul>rrobin: hi! what version of shepherd are you running?
<rrobin>shepherd (GNU Shepherd) 0.10.2
<civodul>there’s an open bug but the conditions to reproduce it are unknown: https://issues.guix.gnu.org/65419
<civodul>interesting
<civodul>rrobin: so ‘herd status’ doesn’t respond, but ‘herd status nscd’ (say) does?
<rrobin>no, no herd command has any effect, just blocks
<civodul>you said ‘herd status’ blocks; does ‘herd status nscd’ block as well?
<rrobin>yes
<civodul>do you know if the problem occurred after some specific action or event?
<rrobin>it happend after boot/login
<rrobin>the system display manager started fine, but ssh-daemon did not (or was down)
<civodul>could you share the relevant part of /var/log/messages?
<rrobin>logs are not really helpfull, show a regular slim startup
<rrobin>but let me try and trigger it again
<rrobin>also system reconfigure seems to "fix" it in that the services are started then
<rrobin>ah wait it looks down again, would a grep shepherd from /var/log/messages work?
<civodul>possibly yes
<rrobin> https://pastebin.com/8U4zz9bg my last few hours of /var/log/messages, there was a reconfigure happening in there
<rrobin>now herd status is back but something still does not look right
<rrobin>ah nvm it is back up
<civodul>hmm
<civodul>ssh-daemon was running since it accepted a connection at 13:05
<civodul>well let us know if you see something fishy
<rrobin>yeah, i'll keep rebooting
<apteryx>would any ergodox keyboard user know how to use the keypad on the 3rd layer? using the original firmware (https://github.com/benblazak/ergodox-firmware)
<sneek>Welcome back apterryx, ye have 1 message, with a chest full of booty!
<sneek>apterrrrryx, haugh says: thanks fer yer bug report; skimmed right past it yesterrday and basically rehashed everythin' in it; kinda embarrrassin'.
<civodul>janneke: childhurd test is still failing on ci.guix: https://ci.guix.gnu.org/build/2024390/log/raw
<civodul>does it work for you since yesterday’s fix?
<civodul>(it did for me)
<apteryx>when i enable the numpad with the right hand top-leftmost key, xev registers keys such as KP_Begin, KB_Left and KB_Right instead on inputing digits as I'd expect; is this caused by numlock?
<apteryx>i confirmed that when pressing the num_lock key of a second keyboard, the ergodox now generates digits when using the keypad. not sure how to activate num_lock on the ergodox
<apteryx>i've commented on this old issue which appears related: https://github.com/benblazak/ergodox-firmware/issues/32
<janneke>civodul: when i start it by hand using qemu-system-x86_64 i no longer get "Bad ram pointer" that i do get when using .-i386: but how do would i run the childhurd test?
<civodul>janneke: make check-system TESTS=childhurd
<civodul>see https://guix.gnu.org/manual/devel/en/html_node/Running-the-Test-Suite.html
<janneke>civodul: thanks
<avalenn>is there any "dumb-level" tutorial for creating new home-services ? I just want one package and its configuration.
<janneke>civodul:
<janneke>PASS: service running
<janneke>PASS: childhurd SSH server replies
<janneke>PASS: SSH up and running
<janneke>PASS: guix-daemon up and running
<janneke># of expected passes 4
<janneke>but that's not in a container or something, and i first stopped my childhurd
<civodul>janneke: thanks for testing
<civodul>so i wonder what’s up on ci.guix
<janneke>yeah, np :)
<civodul>oh looks like libgit2 supports sha256 already: https://github.com/libgit2/libgit2/pull/6456
<msavoritias>heh. looks like libgit2 supports a lot of stuff we thought it didn't
<janneke>gc/prune?
<civodul>not really, but it has support for writing packfiles etc.
<jbnote>Hi there, i'm trying to use a nar-herder server which seems perfect to feed an air-gapped GUIX installation. However, I can't figure out how to bootstrap a nar-herder. The documentation only talks about mirroring *another* nar-herder, and trying to mirror a 'guix publish' fails when it tries to download a database. Would anyone know how to
<jbnote>bootstrap a nar-herder?
<cbaines>jbnote, you either need to use "nar-herder import ..." some narinfos/nars you've got locally, or mirror another nar-herder instance
<cbaines>jbnote, what do you mean by bootstrapping in this context and how are you looking at getting nars to this air-gapped Guix machine?
<somenickname>Getting tons of those "[    0.000949]  gran_size: 128M         chunk_size: 128M        num_reg: 7      lose cover RAM: 174M" at the start of the kernel ring buffer.  Someone knows what it means? I tested by RAM which is fine.  I assume it is something with the GPU
<jbnote>cbaines: thanks a lot for this tool by the way. I just saw nar-herder import, but do you know where to find those narinfos on a 'standard' guixSD setup?
<cbaines>jbnote, the narinfos are normally used when downloading nars. They're cached locally by guix, but not in a form that can be imported in to the nar-herder
<cbaines>jbnote, for the use of the nar-herder on bordeaux.guix.gnu.org, the nars and narinfos are being generated and imported
<jbnote>cbaines: currently i'm moving a guixSD disk between 'the internet' and the air-gapped network. I'm iterating  'guix --sources=transitive build' on all packages for a given guix SHA, and then expose the guixSD disk on the air-gapped network with 'guix publish'. It works, but is a bit tedious.
<jbnote>I was hoping to use nar-herder to dump the 'guix database of /gnu/store' from the GuixSD disk into a pure data disk with nar-herder --storage, so as to just move data, rather than a full system, between internet and the air-gapped network.
<cbaines>jbnote, so you're intending to build everything from source?
<jbnote>cbaines: i'm also pulling into the store pre-compiled binaries for commonly-used packages. For the rest, build-from-source will do.
<apteryx>t\
<jbnote>cbaines: so I take it bordeaux.guix.gnu.org is a nar-herder from which I could bootstrap.
<cbaines>jbnote, have you seen the guix archive command? It might work better for you?
<cbaines>maybe the nar-herder would be suitable if you were running a bunch of machines inside this air-gapped network, and want a way of providing substitutes internally
<jbnote>cbaines: indeed guix archive works for the sources -- the output of guix build --sources=transitive is fine. For the pre-built binaries, I'm a bit at a loss to know what to archive (but probably just the package name would work). For guix itself (what's generated by guix pull), I don't know how to 'call it' for guix archive to do its job. Maybe you
<jbnote>would know?
<cbaines>I think you can pass the store filename to guix archive, e.g. guix archive --export /gnu/store/5mqwac3zshjjn1ig82s12rbi7whqm4n8-hello-2.12.1
<jbnote>cbaines: you can, but my experience is if you do that for the whole store, the generated nars cannot be imported for some reason (guix import does not work) so I have to cherry-pick. I was trying to find a 'general' way to serialize the whole store without cherrypicking.
<cbaines>and for guix pull, you can look inside the profile to find the store item to copy:
<cbaines>→ guix package -p .config/guix/current -I
<cbaines>guix eeec837 out /gnu/store/qskrac4a8q45ar4cqhds2zy3lq1g7nr7-guix-eeec83718
<jbnote>cbaines: thanks a lot, this seems perfect.
<cbaines>jbnote, guix import is the wrong command, you want guix archive --import
<cbaines>and you'll want to call guix archive with --recursive, so guix archive --recursive --export ...
<jbnote>cbaines: yes, sorry, that's what i meant.
<cbaines>that should ensure you'll be able to import the nars
<cbaines>you'll also need to make sure you setup the authorisation so that the nars are accepted when importing
<jbnote>cbaines: thanks a lot for taking the time to understand my needs so thoroughly and coming up with super answers.
<jbnote>cbaines: yes, the authorization part is sorted out already -- the guixSD machine is serving the substitutes in the air-gapped network and it works. Your knowledgeable answers will help me streamline the setup.
<cbaines>jbnote, you're welcome
<jbnote>cbaines: I just explored guix package -I really was the missing piece to guix archive --export what i was missing. Thanks a bunch.
<jbnote>the output of guix package -I is tab-separated and works with cut! incredible :)
<efraim>I normally end up using awk, so: awk '{print $1 "@" $2}' when I need a package@version
<nckx>What isn't tab-separated and doesn't work with cut (without options) is the output of ‘guix size $(realpath ~/.guix-profile)’, but I still recommend considering it. It includes things like profile hook inputs that are missed by ‘guix package -I’.
<vivien>cbaines, for qa-frontpage, maybe it would be better to have record types for patches and patch series, instead of abusing assoc-ref, no? I’m thinking a <patch-series> would be: an ID, bug-number, feature-branch, revision, and a list of patches, while a <patch> would be an index and a mbox URI.
<jbnote>efraim: sadly it doesn't work for guix itself. strangely, going through the store seems to be the only way to name 'the version of guix you're currently using'
<lilyp>vivien: yeah in that case updating gnome-control-center takes no priority whatsoever
<cbaines>vivien, sure, I think using record types is good
<nckx>(This trick(?) works on all profiles, such as /run/current-system or ~/.config/guix/current.)
<nckx>jpoiret: It's not strange, guix is not installed into your default user profile.
<nckx>Dammit.
<nckx>* jbnote.
<jbnote>jb@imac ~/src/nar-herder/scripts$ guix size $(realpath ~/.config/guix/current)  | head -n-1 | tail +2 | awk '{print $1}'  | xargs guix archive --export --recursive > guix.nar
<jbnote>jb@imac ~/src/nar-herder/scripts$ guix package -p ~/.config/guix/current  -I | cut -f4 | xargs guix archive --recursive --export > guix_package.nar
<jbnote>jb@imac ~/src/nar-herder/scripts$ ls -al guix.nar guix_package.nar
<jbnote>-rw-r--r--    1 jb       users    921647304 Sep 19 18:59 guix.nar
<jbnote>-rw-r--r--    1 jb       users    912433480 Sep 19 19:00 guix_package.nar
<jbnote>so indeed, the guix size trick seems to do something slightly different and bigger.
<nckx>For that use case I think you might as well use ‘ guix archive --recursive --export $(realpath $PROFILE)’ directly, although I might be missing some subtlety.
<pastor>Hello. I'm trying to understand how `mesa' has been packaged. I cannot wrap my head arround how the mesa loader finds drivers.
<pastor>I see that for the 'vdpau' driver it seems to be relaying on an env var like so:
<pastor>(native-search-paths (list (search-path-specification (variable "VDPAU_DRIVER_PATH") (separator #f) (files '("lib/vdpau")))))
<pastor>But for other drivers it seems to apear from nowhere. For example, the 'zink_dri.so' tries to get loaded from.
<pastor>`MESA-LOADER: failed to open zink: /gnu/store/mpw1crqgzi11fvc0cgx6cs8pggj8anpm-mesa-23.1.4/lib/dri/zink_dri.so: cannot open shared object fil e: No such file or directory (search paths /gnu/store/mpw1crqgzi11fvc0cgx6cs8pggj8anpm-mesa-23.1.4/lib/dri, suffix _dri)`
<pastor>I was expecting to find in the package the tipical `substitute*' patern hardcoding the libraries with the `#$output` but I cannot find that.
<nckx>I think the answer here is simply ‘it doesn't find it, and it's not packaged to do so’, no? I'm not sure what you're asking beyond that.
<nckx>mesa ‘finds’ drivers that are part of mesa. It does not find (or look for) others.
<pastor>nckx: so, If I wanted to load it. What should I do?
<nckx>Look up if there's an environment variable that Mesa honours, then add it as a native-search-path. If there isn't such a variable & mechanism in upstream Mesa, package your own custom mesa ‘union’ package that adds your driver, I guess. Inelegant but the most straightforward.
<nckx>This is generic advice because I'm not familiar with Mesa internals.
<pastor>Yeah. Mesa honours certaing paths
<pastor>Okay. Will look into that. Thanks
<nckx>Godspeed.
<pastor>nckx: to ease debugging. Is it posible to get the sources after applying all the phases on a derivation?
<pastor>like `guix build xxxx --sources` but after applying phases
<nckx>Kind of. You can edit the package definition to fail after 'install or so.
<nckx>I conventionally insert a phase that calls ‘(punt)’ which is undefined.
<pastor>Alright. Sounds good
<nckx>Oh, I forgot to add the obvious, sorry: use --keep-failed when actually building, or Guix will clean up.
<ryan77627>Hey all, question about `guix pull` when using channel-with-substitutes-available. Right now I pull using the regular `(list (channel...` but I want to speed this up using substitutes. Not all my channels have substitutes available however. By using substitutes, can I even benefit from this or do my channels _need_ to be built by source since I use a combination of guix + others. Or can I use the
<ryan77627>guix substitute for the one channel and build the other ones manually?
<nckx>The latter, IIUUC. The implementation of c-w-s-a is a bit more… straightforward than your question implies you expect. See, e.g., the arguments passed to LATEST-BUILDS at <https://git.savannah.gnu.org/cgit/guix.git/tree/guix/ci.scm#n314>.
<nckx>Current c-w-s-a is not as generic as its name implies.
<geri>hey, so im using sway on guix system, and virt-manager uses default Adwaita theme, even though I've set it to mine using gsettings (it works in nicotine & icecat) and it's available if using GDK_DEBUG=interactive, and in virt-viewer the theme is mangled - it's mostly right except some places are just white with light font
<geri>it works fine on X, so might be a non-guix issue
<geri>but if you have ideas - poke me :D
<zamfofex>Hmm, I got to a point where I can try to cross‐build GNU Hello to Wasm, but it seems gnulib doesn’t work well with ‘wasi-libc’. Does anyone know whether there another simple GNU program akin to it that doesn’t use gnulib? (Or some non‐GNU package I could try?) The issue I ran into should be easy to patch, but I imagine I might run into more issues later too.
<euouae>Hello, how can I create an empty profile?
<zamfofex>The (current) issue is that ‘F_DUPFD’ and ‘F_GETFD’ are defined to the same value, and gnulib tries to use both of them as cases in a single ‘switch’.
<nckx>zamfofex: …lolcat?
<zamfofex>euouae: ‘guix shell’ (no arguments)
<euouae>Right now I can accomplish it via e.g. `guix package -p my-profiles/my-example-profile -i screen && guix package -p my-profiles/my-example-profile --roll-back`
<euouae>guix shell won't make it permanent though
<yziquel>any way to get the guix environment variables right in fish ?
<geri>using guix home's fish service maybe?
<yziquel>?
<euouae>does "guix lisp" have an interpreter?
<euouae>For example, how can I play around with #~ and #$?
<geri>lol
<geri>guile
<euouae>ah it's from guix gesp module
<geri>ye
<nckx>yziquel, geri: It uses the fish-foreign-env package to source the Guix good.
<geri>i recommend `geiser-guile' emacs plugin for playing around with stuff euouae
<euouae>Is #~ and #$ like ` and , in common lisp?
<geri>no
<geri>sec
<ryan77627>nckx: Gotcha, will look at that, thanks. One other question regarding c-w-s-a, can I sub in my own commit? I like to pin my channels since I run my config over multiple computers. From glancing over the source for c-w-s-a it seems it grabs the latest automatically, but im new to scheme and could be wrong
<geri>(info "(guix) G-Expressions")
<yziquel>nckx I tried using the bass plugin for fish. seems ok for now.
<geri>it's kind of like a quasiquote but not really
<nckx>euouae: Well, at a very high analogy level, yes. #~(code) is in a sense quoted. #$foo is somwhat unquoted.
<nckx>Which reminds me that I registered the channels #~gexp and #$ungexp and have found absolutely no use for them.
<nckx>yziquel: Ah, I don't use fish, but glad to hear that there are options.
<euouae>If I were to complain about something
<euouae>I'd say it was not at all obvious to me up to now that a lot of the scripts contain a top-level form that they evaluatae to
<euouae>e.g. `guix package --install-from-file=package.scm` works because there's a single (package ...), which is evaluated. I didn't realize!
<nckx>Skimming (guix)G-Expressions, the quasiquote analogy is used. I don't think there's a need to refer to Common Lisp, though, since ` and , are not particularly common lispy concepts at all.
<euouae>Does anyone know how to make emacs TRAMP work under guix? It's complaining about missing ls
<euouae>I'm trying to tramp into my guix vm
<nckx>It's like saying that ‘++ in C is like += 1 in JavaScript’.
<janneke>euouae: i'm using
<janneke>(when (require 'tramp-sh nil t)
<janneke> ;; Include the current path for the system to TRAMP's remote path.
<janneke> ;; This is necessary for Guix System, where the usual /usr/bin,
<janneke> ;; /usr/local/bin, etc. do not exist.
<janneke> (push 'tramp-own-remote-path tramp-remote-path))
<geri>nckx: thats a cool analogy, but i'd say its redundant cause guile actually has quasiquotes as well
<klm`>yziquel: I made a fish function `profile` that switches. It's ugly as I couldn't quite get fish-foreign-env to work. Let me know if you arrive at something better! https://github.com/kristianlm/.config/blob/guix/home.scm#L154-L159
<geri>well, i doubt any lisp doesnt have em
<nckx>euouae: How did you interpret help texts like ‘-f: install the package that the code within FILE evaluates to’, then? It's a rather fundamental concept, so I'm trying to find ways this could be explained without literally explaining it *everywhere*, which is impractical.
<nckx>geri: My point was to point out the redundancy 😉
<zamfofex>nckx: Took me a while to get a good‐looking screenshot, but it seems to have worked! https://usercontent.irccloud-cdn.com/file/uTrGnaMd/image.png
<nckx>Whoa, nice.
<euouae>nckx: it's easier to understand perhaps if one explains better that the guile scripts are without side effects?
<nckx>Glad I helped create that.
<euouae>In the guile cookbook on packages, the first package, it could have the comment ;; this PACKAGE form evaluates to a package to be fed into guix
<euouae>or something similar
<euouae>Perhaps I'm just slow or slowly getting it
<nckx>ACTION away, sorry that I didn't answer everyone yet :(
<zamfofex>nckx: Now I need to see if I can manage to make my changes upstream‐ready. Currently, it’s a bit messy. Though I want to publish them somewhere so people can take a look, at the very least.
<euouae>zamfofex: cool!
<euouae>janneke: thank you
<yziquel>klm` i don't know. I'm fairly new to guix...
<geri>are channels more like git remotes than package repositories?
<geri>well, or guile libraries?
<yziquel>I installed guix from ubuntu. It seems I get conflicting instructions to set GUIX_PROFILE. Both at ~/.config/guix/current and ~/.guix-profile. it's fairly annoying as the first seems to work, but the lib/locale exists only in the second and not the first...
<geri>point is, can i put helper functions into a personal channel and will they be available for elsewhere
<euouae>no they're git-versioned package lists geri
<geri>i just want to give guix module system another try and hardcoding path with an env var or using wrappers doesnt sound too pleasant here, so thinking if i can make it into a channel it might be better (or not)
<janneke>euouae: np:)
<yziquel>yes. conflicting.
<euouae>yziquel: did you follow <https://guix.gnu.org/en/manual/en/guix.html#Binary-Installation>?
<geri>doesnt guix put it into your .profile/.bash_profile upon install?
<yziquel>euouae i more or less did it on my own as i found no tutorial with ubuntu guix package
<yziquel>euouae but, ok. seems that link has info i lack.
<euouae>yziquel: great!
<yziquel>euouae i would not be so enthusiastic...
<euouae>yziquel: for me it was easier to test guix by installing the guix system (entire OS) in a virtual machine
<yziquel>euouae well, i'm getting fed up with vms docker and whatnot. fine for deployment in infrastructure. pure **** on a personal computer.
<euouae>the way I do it is quite enjoyable
<yziquel>hmmhhhh
<euouae>I make a qcow2 image with qemu.img and install with qemu-system-x86_64. I can then run with -nographic for no graphics; -net nic -net user,hostfwd=tcp::2222-:22 for ssh access
<geri>yziquel: debian has a guix package too but its really weird, so i recommend the script as well
<euouae>I connect to the VM via ssh and use GNU screen for multiple terminals
<yziquel>geri i'm using that package.
<yziquel>geri will see if i switch. for now, it's pain.
<euouae>If you'd like, I can provide a full example of QEMU invocations
<yziquel>no
<geri>i think you need to add a channel for it to be functional
<geri>the install script sets a channel up automatically
<geri>euouae: do you have sound in em
<geri>actually nvm, drop it in any case)
<yziquel>geri, well, with .config/guix/current as GUIX_PROFILE, I can download packages. I can run them only with GUIX_PROFILE set to .guix-profile...
<geri>xd
<euouae>sound? I don't know
<yziquel>geri: guix package: error: unsupported manifest format
<klm`>yziquel: me too. it feels like getting profile environment into fish should be a (properly) solved problem. I haven't found anything better than my `profile` function though.
<nckx>yziquel: You don't need to set GUIX_PROFILE to use Guix. Also, you should be using both of those profiles, not choosing one. This sounds like /etc/profile.d/zzz-guix.sh (or its Ubuntu/Debian equivalent) doesn't exist, or hasn't been sourced yet.
<nckx>ryan77627: Hmm, if you run your own Cuirass server you could try writing your own c-w-s-a equivalent (Guix's isn't flexible enough; you need to change the arguments to find-latest-commit-with-substitutes) with custom #:job-name, #:jobset, etc.
<nckx>Then, it's possible you'd hit another hard-coded assumption that I didn't spot in my skimming of the Web interface. But in theory this is doable.
<geri>yziquel: when?
<nckx>yziquel: That said, let me second the recommendation of https://guix-install.sh over distro packages. Not because we're against the latter (would be somewhat hypocritical), but that package is quite old IIRC.
<yziquel>nckx i can get it sourced when I set GUIX_PROFILE to .config/guix/current. But, then, I lose PATH access to commands such as hall.
<geri>it doesnt matter that it's old
<yziquel>klm` the fish issue seems solved.
<geri>you use it to install newer guix as a guix package
<yziquel>klm` with bass
<geri>problem is you need to set up more stuff
<geri>imo
<yziquel>geri I get this error when I set GUIX_PROFILE to .guix-profile (which allows me to run hall as it then is on the PATH)
<yziquel>I don't understand how I should be using both profiles.
<nckx>yziquel: If you look at ~/.config/guix/current/etc/profile, you should see that it appends to the beginning of PATH, it does not overwrite it, so there's something going unsaid here.
<yziquel>nckx I did guix pull. doesn't that solve the age issue ?
<nckx>No.
<nckx>‘guix pull’ updates ~/.config/guix/current.
<yziquel>nckx I looked at that file. It's just that hall is available with one GUIX_PROFILE and not the other.
<yziquel>nckx scheiße
<mirai>fun fact: embedding guix hashes/paths in the mail body triggers spamassassin PDS_BTC_ID rule
<nckx>To be clear, I run Guix System on all my machines but one, which runs Guix/Debian. On no machine is GUIX_PROFILE set.
<nckx>It is not some common configuration mechanism.
<yziquel>nckx then why i am being told all the time by any guix invocation that I should set it ?
<nckx>That's for the current shell, since there's no way for Guix to change the environment of its parent shell.
<nckx>I see that <https://packages.debian.org/sid/amd64/guix/filelist> has /etc/profile.d/guix.sh. Is it being sourced? Did you do something to ensure that it is, like log out & back in?
<yziquel>nckx this chat is the first time I hear about /etc/profile.d/guix.sh.
<geri>/etc/profile.d/*.sh get sourced by /etc/profile iirc
<nckx>And the hint that includes GUIX_PROFILE=/path/to/profile will actually work fine if you omit that part and only run the second ’source’ line, it will merely use a less flexible file name in /gnu/store.
<nckx>geri: Yes, on log-in.
<nckx>yziquel: Same.
<yziquel>this is nonsense. there is this file which is supposed to do the right thing, and guix always complains that GUIX_PROFILE is not set.
<nckx>So you've logged out and back in?
<yziquel>there is _GUIX_PROFILE and GUIX_PROFILE....
<yziquel>in /etc/profile.d/guix.sh
<yziquel>ahhhh !!! it is NOT sourced by fish !!!
<nckx>Play non-standard games, win non-standard prizes.
<yziquel>nckx i'm fine with that
<nckx>You don't sound it :)
<yziquel>nckx this is a world of illusion.
<nckx>🌈
<yziquel>ok. i'll try a full uninstall. with a bass source /etc/profile.d/guix.sh
<yziquel>(bass plugin for fish)
<nckx>I dunno if an uninstall is needed.
<nckx>Once you source /etc/profile, I hope everything will just work…
<yziquel>m'kay...
<yziquel>nckx "bass source /etc/profile.d/guix.sh" in config.fish did the trick.
<geri>nckx: you could say that thing about non-standard games about guix as well
<yziquel>nckx thanks
<yziquel>and thank you to all here.
<nckx>You're welcome. On to the next problem, I'm sure.
<yziquel>nckx yes: opencog.
<nckx>geri: Sure, that's why I didn't say stupid problems.
<nckx>Er, prizes.
<geri>)
<nckx>(
<nckx>Bracket levels where dangerously at -1.
<euouae>)'.'( elephant
<yziquel>nckx I'm trying to learn some guile to play with the atomspace, and I wanted hall to do some scaffolding. so I more or less needed guix.
<yziquel>opencog atomspace
<yziquel>I'm still unsure whether or not I can scaffold a guile project with hall that generates a command line executable. will see...
<nckx>Interesting project. Thanks.
<vivien>The more I try to understand the patchwork output, the less I actually understand it.
<nckx>ACTION away, again.
<vivien>It’s not a surprise QA fails so often, if it is fed garbage by patchwork.
<euouae>what's patchwork vivien ?
<vivien>It is a piece of software that collects your patches and try to put them together. There are multiple links in the chain, but this one is used by QA to get the patches (hopefully, all of them, and in the correct order), so that it can apply them in its git repository to start building.
<vivien>I don’t know much about it
<vivien>For instance, here is the output for an issue: https://patches.guix-patches.cbaines.net/api/patches/?series=19280
<vivien>If you are sending single patches to master, it works great.
<vivien>But if you are sending patches to be applied on top of another branch, then it’s hard to tell from the patchwork output.
<vivien>Also if you are sending a series, sometimes all your patches will be grouped in the "series" array, and sometimes something different happens
<vivien>In the manual, you are supposed to record the "base-commit" of your patch, but patchwork does not retain this information, so it is not respected.
<euouae>Um, I thought the git / email workflow is pretty good
<euouae>Where is patchwork necessary?
<euouae>e.g. single patches to master -- can't those just be applied via git-apply?
<vivien>It is necessary for QA, the service that builds your patches before they are merged in order to tell you if it broke a random package on aarch64
<euouae>QA = quality assurance?
<vivien>I guess so
<euouae>OK I understand
<euouae>It looks like patchwork code is difficult because it is VCS-independent
<euouae>For example from looking at <https://github.com/getpatchwork/patchwork/issues/462> which is called a "tricky" bug even though on first sight I thought it was an easy fix
<cbaines>what garbage have you seen from Patchwork vivien?
<vivien>cbaines, sometimes there is no [bug#nnn,…] prefix in the name of the patches
<cbaines>vivien, for what patch/series have you seen that?
<cbaines>QA uses that to get the issue number for each series, and I think the approach is reliable
<vivien>This one, https://patches.guix-patches.cbaines.net/api/patches/?series=19280 is mine, and I don’t understand why the top-level object is an array with 3 different patch series
<vivien>(instead of 1 series with 3 patches in it)
<vivien>So the "name" of each patch is irrelevant
<cbaines>that's /api/patches, so what you're getting back is the 3 patches for a particular series
<vivien>Oh
<cbaines>and the name of each patch looks right to me
<cbaines>they're not ordered, but that's because you're not looking at them through the series
<cbaines>if you request the series, then you'll get the ordered array of patches
<vivien>OK so I still have a lot to learn
<cbaines>on what I've been saying about ordering though, I see now that QA isn't actually ordering the patches through Patchwork
<cbaines>so maybe QA does need to either query Patchwork for the order, or order the patches itself
<cbaines>and I forget why it's the patches that are being queried for, rather than the series
<cbaines>maybe it was that the series didn't contain the check information, but that's irrelevent now
<cbaines>so, it might be possible for QA to start querying just the series vivien, which might simplify some of the code you're writing
<bumble>would anyone recommend an sbc that could be used with guix to setup web services?
<bumble>I'm a novice who has never owned an sbc and would probably get whatever is recommended here
<geri>what even is an sbc?
<bumble>single board computer
<bumble>like raspberry pi (I think that's how it is spelled)
<bumble>I found this https://guix.gnu.org/en/blog/2019/guix-on-an-arm-board/ but maybe there is something else people here would recommend
<geri>ah
<geri>i love the idea of having a tiny computer box i could just carry around with me but kinda no need cause i own a "proper" laptop
<euouae>Apparently I'm missing field initializers but guix only showed those as warnings
<euouae>guile says they're errors
<bumble>geri: I want to setup k3s, a slimmed down k8s... and want to setup things like this https://sive.rs/ti
<geri>k3s for playing around/learning or "production" purposes?
<bumble>short-term for playing around, but with turn-key ability to go production if wanted
<euouae>I managed to fix my issues after a bit of messing around with LOAD in guile
<geri>i recommend kind on a VM for playing around with kubernetes
<geri>its p simple to set up, but it's not meant for prod
<bumble>I;ve used k8s professionally for a few years so I mostly want to play around with setup and configuration, not defining Deployment and Service specs
<geri>oke
<geri>sbc sounds like a reasonable option for simpler self-hosting
<geri>its honestly an epic idea to have your whole server be pocketable
<euouae>In a define-public, where are variables like libssh2 defined? e.g. in (inputs (list libssh2 http-parser python-wrapper))
<bumble>yes! I knew someone several years ago who pull out his stick and serve images from places he travelled to, everything served from the stick --very cool
<geri>define-public is just `define' with automatic exporting
<euouae>geri, I figured I'd just mention it
<euouae>I'm not sure how to obtain the value of say libssh2
<geri>on the top of the file there's a "define-module" thing, with a bunch of #:use-module(s)
<euouae>Yes
<geri>one of those is where libssh2 is defined
<geri>i can find it rq
<euouae>rq?
<geri>real quick
<euouae>thank you
<geri>gnu/packages/ssh.scm lole
<bumble> https://toys.whereis.xn--q9jyb4c/?search=libssh2
<euouae>so gcc-toolchain is in (gnu packages gcc-toolchain)?
<geri>i grepped through my local checkout but you can do guix search libssh2 and there's a "location" field
<geri>euouae: location: gnu/packages/commencement.scm:3537:4
<geri>bumble: stick like raspberry pi nano?
<geri>s/nano/Zero
<bumble>yes they used something like that
<yziquel>some people here told me that ubuntu guix is old. is this why it doesn't give me a "guix shell" command ?
<geri>do a guix pull and it should update itself
<geri>or guix install guix
<geri>gtg sleep, afking for the next 8 hours :D
<bumble> https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ this looks cool but don't know if it is powerful enough to practically use guix with
<rekado>don’t do “guix install guix”
<bumble>4GB of ram seems small
<rekado>you’ll only ever get an older guix this way
<stikonas>bumble: well, I use it for building stuff
<rekado>I use the rockpro64.
<stikonas>the biggest problem is indeed RAM
<stikonas>so I try to build with 1 or 2 threads at most
<stikonas>and swap also helps
<rekado>mostly for xmpp, nginx, mpd
<yziquel>rekado too late...
<geri>whats the output if guix --version
<yziquel>rekado i do have a guix shell, though, now...
<rekado>yziquel: when in doubt always check the shell’s job of finding an executable for a given command name.
<rekado>it’s worth checking what executable corresponds to “guix”.
<euouae>gah I made it work for a bit but now it's not working again
<bumble>rakado: good to know --maybe I will try to get a rockpro64 :)
<euouae>argh I was passing the wrong path
<euouae>I believe in `guix show -L my-channel my-package`, it's more appropriate to error with "my-channel not found" instead of "my-package not found" if the former is missing
<euouae>wait what the heck
<euouae>It looks like I corrupted something
<euouae>or no nevermind me
<stikonas>bumble: dpm
<stikonas>bumble: don't bother with emmc or sdcards for rockpro64
<stikonas>bumble: these days NVMe is cheaper and faster
<stikonas>and having swap on NVMe will really help with low RAM
<stikonas>also zram is another trick that's useful on low RAM machine
<euouae>How can I git-fetch from a local repo?
<stikonas>euouae: first do git remote add
<stikonas>and then git fetch
<stikonas>local or remote doesn't matter