IRC channel logs

2023-09-09.log

back to list of logs

<lilyp>how do I get the bug log for a particular bug (to work on mumi)
<wone>podiki: that's interesting. i'll have to look into it then
<gnucode>hey
<luke-jr>rekado: ugh, and changing that affects hashes of everything :(
<distopico>Hi Guixers, someone know if there a way to add a service but disabled by default? for example I want to add `(service docker-service-type)` but disable so in that way I can enable it on-demand
<luke-jr>ACTION grumbles about guix looking for stuff in lib/ when it's in lib64/
<apteryx>that's a packaging problem
<apteryx>everything should be under lib
<apteryx>how can I configure guix built in my checkout to use a different Guile version?
<apteryx>./configure --localstatedir=/var --sysconfdir=/etc GUILE=/home/maxim/src/guile/meta/guile appears to work
<apteryx>I also needed to do: ln -s /home/maxim/src/guile/meta/guile guile
<apteryx>after moving the original 'guile' out of the way
<luke-jr>apteryx: hopefully when I'm to a normal guix setup it will self heal :|
<wone>Siril crashed on me today; wonder what it was
<lrustand>Hello, I have my GuixSD install up and running now, but I noticed I have only one cpu core. My cpu is a Ryzen 3900X and should have 12 cores and 24 threads, but lscpu shows only 1 core and 1 thread. I didn't think that CPUs could depend on nonfree stuff, so there must be some other problem right?
<minima>hi, here's a clumsy attempt at generating a config file from a template via a gexp: https://bpa.st/LYZFK
<minima>the build fails with error "In procedure copy-file: No such file or directory"
<minima>anything that immediately stands out as mistaken in the gexp?
<minima>and possibly, anything that looks redundant or overly complicated?
<nckx>minima: How is "template" getting into the build container?
<nckx>Maybe you should be using #$(local-file "template") here.
<nckx>sneek: later ask lrustand: Assuming this also happens on the installer live system (else things get interesting), does it also happen when booting (no need to install it) something like Trisquel that also uses Linux-Libre?
<sneek>Okay.
<minima>nckx: oh, thanks, yeah - i thought of that after posting the message above, my current attempts with local-file are still failing, but thanks for confirming that might be the right way to go
<minima>nckx: would it be something along the lines of `(install-file #$(local-file "template") #$output)' - if i do that, i get "In procedure stat: No such file or directory: "/gnu/store/...-example/template""
<Guest26>Do you have sound in virt-manager vms?  I use EXWM and wonder if I miss some package or if the virt-manager package itself is broken.
<nckx>minima: OK, so. Your problems aren't related to gexp staging (the local-file is probably working fine). (local-file "template") eventually creates /gnu/store/HASH-template. (install-file "foo/bar" "biz") looks at the basename & copies "foo/bar" to "biz/bar". Do you see the problem?
<nckx>You're creating /gnu/store/HASH2-example/HASH1-template.
<nckx>Since you're already assuming (in the let) that your output file is called "template", just use copy-file and enforce that assumption.
<nckx>(mkdir-p #$output) (copy-file input output) ; it even looks cleaner 😉
<nckx>("BAR") also looks wrong, should be "BAR".
<nckx>(substitute* "file" ("PATTERN") "REPLACEMENT")
<nckx>The () around "PATTERN" are there for reasons you need not yet care about.
<elevenkb_test>/msg NickServ IDENTIFY elevenkb E8LqpX4H$2Km5tUGZXhcN9YJPW#^bNJ
<elevenkb>OOPS, sorry about that.
<sneek>Welcome back elevenkb, you have 1 message!
<sneek>elevenkb, nckx says: Nothing. It's a monotonically increasing number. Start with (revision "0").
<nckx>elevenkb: Oh dear.
<elevenkb>Gotta change it.
<nckx>It's time to change your password.
<nckx>:)
<nckx>Hi Guest26. If nobody here uses virt-manager [desktops], try also sending your question to help-guix at gnu dot org.
<trofi>TOday's guix.git fails to build at least .de manpages. Anyone seeing it? contributing.de.texi:1448: @menu reference to nonexistent node `Sending a Patch Series'
<trofi>make[2]: *** [Makefile:4969: doc/guix.de.info] Error 1
<nckx>trofi: Make sure your build environment (so, ‘guix shell -D guix’ or manually installed packages) is up to date. This was fixed in the po4a package. https://git.savannah.gnu.org/cgit/guix.git/commit/?id=352c49e1a5c48eb76389ee384eb95fc2e4a6ab32
<nckx>Aside, I'd think this implies you can't ‘make’ guix using other-distro packages anymore.
<minima>nckx: **amazing** it works! tytyty
<nckx>Party hard.
<trofi>I use distribution's po4a to build initial binary of guix. Was the patch upstreamed by chance?
<nckx>So that's what I don't know.
<nckx>It's certainly an issue…
<nckx>apteryx: ☝
<nckx>trofi: Maybe removing $(TRANSLATED_INFO) from BUILT_SOURCES is enough to work around this if you don't care about dox.
<minima>so, i now have this gexp https://bpa.st/XRMV6 which works fine: it builds and it saves a file in the store that's generated from a template
<nckx>If only there was this thing called ‘configure’ that could test software features and construct appropriate make rules 😉
<minima>when i call `(example)' though, i get a "reference" to the store folder containing the file, as opposed to the file itseld
<minima>is that expected? is there a way to point at the file directly?
<nckx>minima: Do you mean #<<computed-file> name: "example" …> ?
<elevenkb>nckx: Phew! Done...
<trofi>Aha, I see https://github.com/mquinson/po4a/pull/437 is pending upstream inclusion. I'll try to backport it locally first.
<nckx>elevenkb: Oh, if you were having trouble doing it speedily I would have helped. Sorry if so.
<elevenkb>Main thing is that I'm using pass and so there was an issue with parsing my new password which might have had something to do with it having a `:` in it.
<nckx>trofi: Oh, that's good, but building Guix on ‘stable’ distributions like Debian^WTrisquel might still be a pain for years to come.
<elevenkb>nckx: BTW did you know that ASCII has delimiter characters: https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text.
<elevenkb_test>/query NickServ
<nckx>minima: If so, that's as by-design as it gets. You'll see the same if you try to ‘use’ a package variable in the same context. These are things to build, and they won't be built in the context where you're *describing* how to build them. That all happens later. That's exactly why gexps exists. You should be able to #$(example) just like you would #$package, though.
<nckx>elevenkb_test: 😃
<nckx>elevenkb_test: And no, I did not know that. Pity that actually trying to use them would break $everything because nobody uses them.
<elevenkb>Ok, it seems I have no idea how to identify an XMPP account with an IRC one... I wanted to do that because I wanted an IRC bouncer basically.
<nckx>There's no concept of ‘XMPP account’ across the IRC bridge, but it shouldn't matter. If your TCP connection identifies, you're identified, you shouldn't need to do anything more.
<nckx>It does need to happen on every (re)connection, though, so you'll want to automate it if only to avoid such typos in future.
<nckx>I don't use XMPP, though, so can't help you with that or setting up optional things like SASL.
<elevenkb>Thanks for the advice nckx.
<nckx>You'll probably find better advice in #libera.
<elevenkb>Yah, why didn't I think of that 🤣.
<nckx>ACTION .oO I think next time I see someone paste their *actual nickserv password* in live chat, I'll just immediately reset it and ask questions later.
<elevenkb>nckx: :D :D
<elevenkb>I think I've managed to do it. For some reason my XMPP client wasn't allowing me to talk to NickServ.
<elevenkb>So I changed them and now stuff is working.
<elevenkb>nckx: Surely, I'm the first person you've ever seen do that though.
<nckx>Yep :)
<nckx>Congrats.
<Guest26>well, there was hunter2
<nckx>Surely hunter2 implies the existence of hunter1.
<nckx>So I guess you're the third.
<nckx>ACTION used hunter3 as an actual password once, but it wasn't connected to a network.
<Guest26>nckx: Yea I guess I need to ask on the ML.  Kinda surprised that not so many people are using it.
<minima>nckx: you mean, the same way we have the pattern `(string-append #$(password-store) "/bin/pass")' and similar... i see
<nckx>Yes! In this case you wouldn't use (), because these aren't generally procedures, but they can be. I don't know why you made example a procedure?
<nckx>If you want to eventually take arguments, that's fine, but if you're not planning on that I'd drop the ()
<minima>in my particular case, this makes things less self-contained, as the caller needs to be aware of the internal file-name, but i totally understand that there are good reasons for this to be this way
<minima>no reason to have a procedure indeed - other than my lack of experience :)
<nckx>It's a lot to learn at once.
<janneke>how do i start a container and change the date?
<minima>yeah! :) thanks for all the help
<janneke>ACTION suspects a reproducibility problem with help2man
<nckx>minima: Oh, I didn't mean that string-append … "/some/file" was required or always best practice. Only the #$ part.
<minima>ah i see
<nckx>In fact, if you want the next exercise: you're writing a computed-*file*. #$output doesn't need to be a directory, it just needs to exist, and you can't write anywhere else in /gnu/store than there. It can be a file. See where I'm going? 😉
<minima>ahah i was just going to ask!! let me think
<nckx>Good luck!
<nckx>ACTION away.
<minima>i have the gexp to return `(string-append #$output "/template")' instead of `#$output'?
<minima>ah, no, it's simpler... i don't do `(mkdir-p #$output) etc...'; instead i treat `#$output' as a file to begin with...
<minima>ahah, it works, cool
<janneke>well, helpman listens to SOURCE_DATE_EPOCH but by default chooses to be non-reproducible
<janneke>ACTION wonders when this kind thinking will be rooted out
<jpoiret>Guest26: I guess most people (me included) just use bare qemu
<nckx>++
<nckx>minima: Yes! (I had an answer ready at https://paste.debian.net/plainh/3603e79b, pity.)
<nckx>You could easily turn this into a (define (example input) …) procedure that transforms any input file, e.g., (example (local-file "/etc/hosts")). At that point you're literally writing (copy-file #$input #$output). I hope that elucidates.
<Guest26>But isn't QEMU kinda a lot of work if you have some VMs since you need to configure all by yourself?
<nckx>minima: And while (example (local-file …)) might at first look like leaking abstraction into the caller again, it actually means your procedure takes any ‘file-like object’, which is a nice API.
<nckx>Calling #$(local-file input) in example would work but negate that.
<minima>lol, brilliant nckx and, re your example, to be honest i've always pronounce it guex anyway :D
<jpoiret>Guest26: watch me have a bunch of .scm files lying around just doing (system* "qemu" "all" "my" "options")
<jpoiret>you can't stop me
<jpoiret>i know most of the options by heart now so it's not too much work, and I found virt-manager to be a bit convoluted sometimes
<minima>joking, i'm now thinking of the `(define (example input) ...)' option
<nckx>Isn't virt-manager just that but s/scm/xml/
<nckx>ACTION runs away.
<jpoiret>i don't want XML
<jpoiret>nckx: right
<lilyp>pro tip: use sxml to get both
<nckx>(But seriously, virt-manager is nice, we're just a niche subset of users to ask about it.)
<lilyp>minima: how do you pronounce that according to the IPA?
<jpoiret>nckx: exactly
<nckx>I should have used (local-file (current-filename)) for the world's shittiest quine.
<minima>lilyp: i was just joking, as nckx's example replaces all vowels with `e'
<minima>:)
<Guest26>Well, virt-manager is basically just a frontend to QEMU.  Do you have sound in QEMU VMs?
<jpoiret>you probably can but I've never tried
<jpoiret>but by default i would doubt it
<minima>nckx: i suppose that one possible generalisation of our `example' function could be `(define (example input alist) ...)' where `alist' tells what to replace with what else? but i wonder if that'd allow me to replace executable names with their path in the store
<nckx>minima: Yes, it could be, and you can refer to package outputs as long as you supply the package(s). But I'll admit the code can easily become non-trivial very fast if you go that route and want to make something extremely generic. Probably not worth the trouble.
<nckx>I personally don't think it'll help you get a solid intution for gexps, you'll just get lost in the ()#$@ing forest.
<vivien>Why has qa started working on issue 65785 but not started on 65783?
<minima>yeah, i see, that makes sense, thanks nckx
<mirai>what's the criteria for deciding when and how much indentation to use with scheme-indent-function (emacs)?
<mirai>I'm thinking that (service …) could be set to have scheme-indent-function=1
<civodul>mirai: it’s quite subjective, with an attempt to follow established but often unwritten conventions
<civodul>for ‘service’, dunno, maybe you’ll need to start a poll :-)
<mirai>simple-service too, my config is starting to look a bit too wide 😅
<mirai>good idea
<minima>`substitute*' doesn't seem to cope well with unicode chars, is there any trivial work-around? MVE: https://bpa.st/3GB4E -> returns a file containing `??' instead of `λ'
<civodul>minima: each port has an encoding defined by the ‘%default-port-encoding’ fluid by default
<civodul>which itself defaults to the current locale’s encoding
<civodul>if you want to ensure, say, UTF-8 encoding, you can do:
<civodul>(with-fluids ((%default-port-encoding "UTF-8")) (substitute* …))
<nckx>minima: Does wrapping substitute* in (with-fluids ((%default-port-encoding "UTF-8")) …) help?
<nckx>ACTION sighs.
<civodul>that was more to-the-point :-)
<minima>ah! let me try that
<nckx>civodul: A charitable way to put it, thanks.
<minima>nckx civodul: that did it! :) ty!
<nckx>civodul: Could this be made the default without breaking the whole build-environment-set-in-stone-forever thing?
<nckx>UTF-8 is obviously available, I'm just not sure why it needs to be set manually where my regular user's Guile does so OOTB.
<nckx>Hm, thinking it through, it could be trickier than I thought.
<nckx>Well: uglier.
<nckx>minima's ransomware gexp that replaces your entire hard drive with lamdas can continue regardless.
<nckx>In my case, it would be an improvement.
<minima>nckx: now that you've made my plans public you can forget your share of bitcoins! :P
<nckx>Join us now and share the bitcoin, you'll be free, ancaps, you'll be free ♪
<xd1le>hahaha
<rdrg109>[Q] In Python, I can generate UUIDs by executing python3 -c 'import uuid; print(str(uuid.uuid4()))' Does Guix have an utility for generating UUIDs?
<rrobin>hi guix, i have a weird question. I'm trying to install debug symbols for an older glibc in my store. But i'm struggling to figure out the easiest way to do it. I know the the glibc store path and the corresponding glibc-debug store path (got it from drv file). How do i get it? e.g. find the guix channel commit in order to use time-machine; or any other way to get it?
<nckx>Uim goevghg goober
<minima>emacs doesn't seem to become aware of new packages that get installed via guix home; i tried with `guix-emacs-autoload-packages' while making sure that `EMACSLOADPATH' pointed to the right folders, which it does
<minima>anything else i should be doing?
<nckx>Uhm, sorry for butt IRC'ing.
<nckx>Maybe <https://issues.guix.gnu.org/65575>?
<minima>oh yeah, it smells like it
<minima>oh, freshly baked, just closed a few hours ago!
<nckx>But as merged to another branch. Not master.
<minima>yeah, emacs-team, correct?
<minima>that's ok, i can wait - glad to know this is a known (and fixed, almost merged) bug, instead of something i was doing wrong
<vivien>"almost merged" − famous last words
<minima>ahah
<vivien>Not to belittle the amazing work of people working on that, thank you!
<vivien>It’s just that the guix merging takes time.
<rdrg109>minima: whenever I have Emacs running and I install a package through guix package or guix home, I just evaluate this sexps (see below) and then I execute (require <<package-name>>) in Emacs.
<rdrg109>after installing packaage through guix home: (load "~/.guix-home/profile/share/emacs/site-lisp/subdirs.el")
<rdrg109>after installing packages through guix packaage -i: (load "~/.guix-profile/share/emacs/site-lisp/subdirs.el")
<minima>oh, that's a saver! thanks rdrg109
<civodul>nckx: in Guile proper, changing the default value of ‘%default-port-encoding’ would be a breaking change, so would have to wait for 3.2
<civodul>however, we could set it in gnu-build-system.scm for example
<civodul>that’s OK
<civodul>(the build-environment-set-in-stone-forever is implemented by guix-daemon)
<nckx>I didn't mean Guile proper. I'd personally love that, though, it being 2023.
<civodul>yeah, that would make sense
<rdrg109>[Q] Does guix have an utility for executing an external command and capture its oiutput? In Emacs, there's "shell-command-to-string" (shell-command-to-string "seq 1 3") => "1\n2\n3\n"
<vivien> Standard guile has the "pipeline" function
<vivien>It requires a bit of boilerplate though, maybe guix has something better?
<civodul>rdrg109: (open-input-pipe "seq 1 3") returns a pipe from which you can read
<civodul>and that you must close with ‘close-pipe’
<civodul>using it you could write ‘shell-command-to-string’
<nckx>A quick search returns command-output in build-aux/generate-authors.scm. This being Guix, I'm sure there are at least 2 similar procedures hiding elsewhere.
<nckx>I've written at least one, but TBH this one looks better if it doesn't have some weird limitation.
<vivien>I would search in (guix build utils) too just in case
<nckx>In general, yes. In this case, nah.
<vivien>I see open-pipe-with-stderr
<vivien>Also invoke/quiet
<nckx>If you're interested in writing your own, there's open-pipe-with-stderr that would help.
<nckx>(In (guix build utils).)
<vivien>Ah invoke/quiet seems to discard the output
<Guest96>is there a way to ensure arbitrary store files (data) are exempt from gc? Im thinking of just generating profiles that reference data in the store. How do I make sure the profiles (and thu ) aren't gc'd? I'm trying to develop a workflow to use guix kinda like git annex
<Guest96>s/thu/thus the data/
<nckx>Guix supports arbitrary GC roots in the form of symlinks. E.g., guix shell --root.
<civodul>ACTION reconfigures berlin to upgrade Cuirass
<civodul>which is kinda fun because direct access to berlin is blocked most of the time by the firewall for me
<civodul>soooo… the ci.guix.gnu.org front page disappeared behind an uncaught exception
<civodul>but worry not, it’s working well, apart from that
<civodul>janneke: http://localhost:8081/machine/berlin.guix.gnu.org
<civodul>ah well, ci.guix.gnu.org instead of localhost
<elevenkb>Has anyone tried to build rust from source? How long does that take?
<elevenkb>I'm considering to package a nightly version of rust for myself.
<lilyp>it might take a few nightlies
<elevenkb>lilyp :D
<mirai>gobs of memory perhaps
<mirai>the OOMs were the most troublesome parts when I was building some version of rust
<nckx>About an hour, I think? The answer shouldn't be (very) Guix-specific, because you're building only one rust more, not the entire chain.
<mirai>go have tea/walk the dog/something along these lines
<elevenkb>I have 7.7G and 11G swap (on an SSD).
<elevenkb>thanks mirai, will take your advice into account.
<mirai>How should I handle a package whose source is not one but various tarballs/files?
<nckx>Heya civodul, long time no ask silly question. Why does <https://git.savannah.gnu.org/cgit/guix.git/tree/guix/utils.scm#n260> use zlib bindings to decompress, then just punt to %gzip to compress?
<luke-jr>I got bootstrap-binaries built, but it's just linux-libre-headers and guile - what about tar/mkdir/bash/iforgetthelastone?
<luke-jr>also, the guile is 3.0.9, shouldn't it be some 2.x IIRC?
<lagash>What's the command to search Guix packages for their provided executables?
<lagash>Like Debian's apt-file, but Guix.
<lagash>OK, I found the package - it was already installed - but I recall some work on using SQLite to store installable executables..
<singpolyma>lagash: nothing like that for guix yet. Someone has to build it
<nckx>Well, ‘guix locate’ has landed, but it's still limited in several ways.
<singpolyma>Oh it has? Yay! Don't listen to me
<nckx>luke-jr: On x86_64, yes.
<nckx>It is not constant across architectures.
<nckx>Not even the major version.
<civodul>nckx: that (guix utils) code predates guile-zlib & co.
<civodul>that’s why
<civodul>perhaps it’s no longer useful and we can get rid of it, i’m not sure
<nckx>Ah, so it was using the (guix …) subset that eventually became guile-zlib. That makes sense.
<civodul>yeah
<civodul>in other news: https://ci.guix.gnu.org front page is back to life
<nckx>I made the (trivial) change and wanted to check TESTS="tests/utils.scm" but it seems not to use the (guix utils) from the checkout…
<civodul>hmm, it should definitely use the one from the checkout
<nckx>Inserting severe syntax error into guix/utils.scm doesn't make a difference (inserting them into tests/utils.scm does).
<nckx>Like a naughty child, I'll clean up my (le)gos and try again.
<nckx>Oh boy, ‘make clean-go’ really does just find -name '*.go' -delete :-/ There go my 5 .worktrees/.
<the_tubular>Oof, no backups ?
<nckx>Yes, but they are generated files after all. Mildly annoying is all.
<nckx>I did not mean that make deleted my worktrees. I would have used all caps.
<nckx>That said, it will take about an hour of CPU time to make them all again.
<nckx>Good thing I need sleep because I am definitely a real human.
<the_tubular>So as long as a guix pull /s
<the_tubular>You must be used to it :P
<luke-jr>guix build bootstrap-tarballs doesn't produce the bootstrap files guix requires -.-
<luke-jr>ACTION getting close to giving up on guix again -.-
<nckx>s/the /all &/
<nckx>E.g., guile-bootstrap: definitely a thing.
<luke-jr>nckx: but it generates the wrong guile version
<luke-jr>so not even that
<luke-jr>and uses GCC 7.5, while the bootstrap binaries are 4.7 or something
<nckx>Wrong guile version?
<nckx>Are you saying that Guix's guile-bootstrap package is what built 3.0?
<nckx>Maybe I should try bootstrapping one of these days, it sounds fun.
<nckx>%guile-static-3.0. Heh.
<nckx>I guess efraim knows best why this change was made.
<nckx>the_tubular: Faire pointe, but I can offload guix pulls, as sad as that sounds. Not this. 🤷
<luke-jr>nckx: fwiw, I have an open offer to pay someone to come up with step-by-step instructions to get guix going without running any bootstrap binaries (just what I can easily get on my system)
<luke-jr>I had hoped to use a non-standard guix to build bootstrap-tarballs that matched guix's provided ones - but that appears to be a deadend :(
<luke-jr>now trying to build GCC 4.7 and 4.8, to try to manually build them... but this feels like an uphill battle too
<luke-jr>not really sure how I'd build against an old glibc if it comes down to that :|
<luke-jr>ugh, GCC 10 can't build GCC 4.8
<rekado>luke-jr: are you using Guix to build the bootstrap stuff? How can we reproduce your problems?
<luke-jr>rekado: yes, master as of a couple of days ago
<luke-jr>modified to use my own compiled bootstrap blobs
<luke-jr>6113e0529d61df7...