IRC channel logs
2023-02-27.log
back to list of logs
<lechner>nckx / all the other issues were also fixed: #5555 #5555 #5555 #5555, plus i got in touch with the Mailman folks <mitchell>How do I get guix to evaluate a gexp from the geiser repl? <mirai>I haven't read past the first one yet <mirai>but given the memes, it looks instructive <lechner>mirai / you and i are too busy programming! <lechner>mitchell / we lounge a lot. please feel free repost your question after a reasonable amount of time. unfortunately i do not have an answer for you, but others will <mitchell>I feel my answer lies in the monad repl but I really do not understand monads enough to use it <bjc>mitchell: gexps are evaluated with ‘lower-object’ inside the store monad. i think there are convenience routines for this now, but i can't remember them <bjc>lowering an object creates a derivation, which can be built with ‘build-derivations’ <mitchell>How does that relate to ~gexp->derivation~? <mitchell>I can run that outside of the store monad <bjc>it's been a while since i looked at it, but as i recall, gexp->derivation is a low-level routine for arbitrary gexps that gets used by higher level stuff like ‘computed-file’ <apoorv569[m]>Well I am defining a variable named my-desktop-services which modifies the %desktop-services and configures guix-service-type, elogind-service-type and udev-service-type <vagrantc>heh. finally updated a system with the shiny new progress bars. nice. :) <bjc>and while you can call these procedures, i believe they return procedures themselves, which can only be used by the store monad to actually create the derivation <mitchell>That's the part that trips me up I suppose. Monads are tough to wrap my head around <bjc>you can basically ignore it as a concept, and just remember that this stuff has to be run in a store context <mitchell>Well the documentation says that every procedure run in the store repl needs to return a monadic value <mitchell>which i do not understand practically what that means <bjc>guix only has the store monad (there's also state, but i don't think that's used), so all monadic values have to be run through the store. iirc the docs are pretty good at saying what returns a monadic value <mitchell>So store items are monadic because they rely on the contents of the store. When I want guix to evaluate something and place it in the store it needs to be a monad because it modifies state? <bjc>but it's worth remembering that the store is there to sequence events as you compose them, but nothing actually happens until you run it, with either ‘build-derivations’ or ‘built-derivations’ <bjc>i have some sample code from when i was trying to figure out an issue with geiser's repl output, which uses the store monad here: http://ix.io/4pka <mitchell>I see. More like a list of lambdas that either all run and succeed or all fail <bjc>ignore the output-port stuff. the mlet/mbegin should still work, though <mitchell>you pass it around until everyone added what they want and then run it as a single action <bjc>it's not necessarily transactional just because it's a monad, since a monad can break in the middle. i think guix adds some extra logic to the monad fail state to ensure transactionality though, yes <bjc>the monad is there for easy composition of actions, though. so that part is correct <mitchell>I thought the magic of functional programming (with monads) was that there was no observable state <bjc>the state is observable inside the monad <mitchell>so if something fails doesn't that imply a clean up? <bjc>it's effectively just procedure arguments, so it's hidden the same way <mitchell>I guess if you cast into the memory management aspect you could say the underlying memory could still be mutated but the sematics of the program are not aware of that <bjc>the monad machinery is responsible for inspecting state and deciding how to handle it, and that will vary based on the monad. it's not generic <bjc>so guix can have machinery for a derivation building, which keeps track of what's been built, so that if it fails at some point, things can be rolled back, even if the individual derivations are only capable of signalling whether or not the've succeeded <mitchell>lechner: The M*rosoft one? Only while googling for the GNU one <bjc>although, tbh, i think guix just leaves all the garbage around, and is transactional just by way of not updating the profile and its generation symlink <mitchell>Mostly people I know go bare metal or FreeRTOS <lechner>mitchell / i know! i just read up on it but Zephyr seems to more event-driven and better for low-power applications. Plus, it's supported by a larger number of vendors rather than owned by one <lechner>is there a guide somewhere how i may try to build an image for my router, preferably using Guix? i have u-boot already and would prefer to keep it <mitchell>i'm working on the service definitions now <mirai>mitchell: That'd be a good thing <mirai>but compared to say, openwrt, we're quite away from there <lechner>mirai / i realize it's ambitious, but i bought two identical routers with plenty of headroom (512 MB flash, 1 GB and USB) and would open one like a can of sardines <mirai>as in service definitions and packages <mitchell>I think a big step in that direction would be packaging a smaller libc to accomodate lower end hardware <lechner>mitchell / Would arm-zephyr-eabi also cover Qualcomm Atheros Krait, which is two Cortex-A15 <mirai>idk if we'd see something like luc <lechner>i don't need luci. i need a config.scm <mirai>at best we're going to have a dashboard and a GUI-to-SCM <apteryx>nckx: answering your question about "what do you use that needs NAT", I think it's the dnsmasq-powered "Share your Internet" feature or similar <mirai>but there's lots of work to get there <mirai>talking about a plain x86_64 router <lechner>why so negative? i thought your bad day was on friday <mitchell>lechner: Not in it's current state. Right now it is compile with `--with-multilib-list=rmprofile` which includes only the cortex-m and cortex-r <mitchell>it's probably only a configure flag away though if you know which one <mirai>lechner: I'm not being negative here lol <lechner>i have had openwrt on it for two years or so <mirai>it's just that I kinda thought about it too before <apteryx>datefudge doesn't seem to help with the openssl certs expiring in April 2022 (openssl 1.1.1l) <mirai>and the list of deps/service-definitions to write was... not small <mirai>eventually we'll get there sure <apteryx>e.g, datefudge "2022-05-01 00:00" make test TESTS=test_ssl_new VERBOSE=1 still fails with # 140520156960576:error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1543:SSL alert number 45 <apteryx>well, replace that date by something like 2021-06-24 and it still fails <mirai>lechner: I've yet to write a series of long-reads (i.e. drafts) to guix-devel concerning about services, file-systems, etc. <haugh>Happy install to a new system, hangs on boot. Any pointers? Any required info? <oriansj>haugh: hangs where and did you do encrypted volume and what is your system configuration? <haugh>oriansj, did the bridge send my photo? the screenshot is the hung screen; can't switch tty, can't do anything but force shutdown with power button. yes LUKS, absolutely minimal system configuration. Have tried a few different configs, same result. No DE, no xorg, no wireless, etc. <oriansj>ok, you are at a luks prompt. just type in your luks password and hit enter <haugh>it's the auto-generated config with no additional services <haugh>it's not hung in the sense that the TTY is waiting; the cursor has stopped blinking and the system is completely nonresponsive <haugh>Appreciate the data. This is unresolved and I will continue to be receptive and polite to any and all assistance, thanks everyone :) <oriansj>as it is very minimal and explicit as possible (nothing implicit if I can do so) <apteryx>ACTION tries faketime instead of datefudge <apteryx>does the fail2ban service really work on guix? <apteryx>doesn't seem to stop SSH brute force attacks from 185.225.74.46 in its default configuration for sshd (the one in the manual example) <apteryx>why does adding libfaketime to openssl@1.1.1l cause a cycle? <apteryx>hm, or not. I put a libfaketime-minimal right above openssl-1.1 and it still cycles <apteryx>ah! maybe the git-minimal used by the git-fetch origin requires openssl as an input <vagrantc>apteryx: i've mostly been exposed to faketime and curious about the differences with datefudge <apteryx>openssl didn't mind datefudge, but with faketime it seems to be tricked <irajane>is there any meta package for compiling stuff (something like build-essential in ubuntu) <apteryx>it's not as wide as build-essential though <winter>ah, i assume i'm getting the grafted version <winter>so `--check --no-grafts` is what I want <apteryx>yep, the cycle was through git-fetch <apteryx>ACTION throws the towel on this effort <winter>what are you trying to do, apteryx? <lechner>winter / your best bet may be to look in the Guix source tree for examples <winter>that's what i'm doing lechner :) <winter>maybe it's worth writing documentation for, hm. will need to look into it some more. seems like it's conventional to be adapted by all build systems, but notably can be forgotten (see 9e4d8c75183c226d0cba2de3b40e6a9e603ae43b) <winter>note to self: actually do the git send-email dance next time i need to submit a cover letter, ugh. thought it would handle it with the in-reply-to header but guess i should have actually thought about it. sorry to whoever triages 61833 and 61834 :( <winter>not a good first impression i assume 😓 <lechner>winter / you can amend the bugs via email, and there is no shame in doing so in any event---but especially not with the strange patch submission system we have <winter>lechner: no, the issue was that i accidentally submitted 2 bugs for 1 patch <winter>because i didn't send the cover letter and then the patch to the #@ address as the manual says <winter>uhh i do want a response to the cover letter, so i'll keep both open until someone triages it, then they'll close borh <winter>in the future i'll make sure to not do that, and it'll be much easier since i'll get an issue number immediately <lechner>we could merge them, but i think in this case it's better to submit your patch to the cover letter and close the one that has only the patch <winter>sure thing. i won't be able to do that for at least 18 hours or so, though <winter>so maybe the best course of action in this case is to just let it be? <lechner>winter / #61833 is an unrelated 'guix style' question. it's been asked many times before (including by me). the answer is to mark the region in Emacs instead and hit TAB. may i please close that bug? <winter>lechner: what do you mean, isn't guix style supposed to achieve the same thing? <lilyp>lechner, winter: the proper way to deal with improperly split bugs is to instruct debbugs to merge them <lilyp>I will treat it as a cover letter, because that's what winter said <winter>It was intended to be a cover letter, yes. <lechner>you don't think it's inconsequential to the diff? <zacchae[m]>Trying to make a system service to spawn a login tmux, but inside the tmux, guix home fails to start because /run/users/1000 doesn't exist <winter>ah just saw your response, thanks lilyp -- that's unfortunate. maybe a manual revision is in order, to at least dissuade its use for formatting (as opposed to rewriting input styles or phase modifications) <zacchae[m]>Any idea how to force the creation of /run/users/1000? All the things that come up in search are systemd specific <lilyp>there are no formal requirements w.r.t. what can go in a cover letter <lilyp>zacchae[m]: check if it exists and create it in an activation/bash_profile hook? <lilyp>it needs to be early enough for guix home to work <zacchae[m]>Hmm. It doesn't need the contents, just the director? (current contents are on-first-login and shepherd) <apoorv569[m]>mfg: I can't find anything called `dconf-service-type` in the documentation. <zacchae[m]>Wow, even su -l doesn't do the job. Cant believe I lost that working config... <apoorv569[m]>Hmm.. I just noticed something. I have a keybind in DWM to "restart" it without quitting the session. <apoorv569[m]>My build of DWM works fine I have it installed on another machine which does not run Guix. <rdrg109_>[Q] My system have 92 generations, I have rolled back to the 74th generation. I want to delete the 75, 76, ..., 91, 92 generations. I have searched on the Internet, but only find information on deleting previous generations. <rdrg109_>^ Solved! => $ guix package --delete-generations=75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92 <= Now I have another question. Is it possible to simply that command in order to avoid having to write a sequence of numbers (a suitable task for computers)? <unwox>rdrg109_: "--delete-generations=75.." should work <apoorv569[m]>I think I have figured out the passmenu problem as well it specifies dmenu as one of its inputs so it installs it own dmenu <mfg[m]>apoorv569: I grepped the Guix source and there was a variable called dconf-service-type. It may be that this isn't supposed to be used directly, but I haven't looked that close 😅 <apoorv569[m]>What to install for rustfmt and rustdoc ? Also would like to know if there is any rust dev here what else do you install for rust development? <mfg[m]>when guix searching for rust you can also see the outputs. rust:rustfmt is one output of the rust package, but only up to a specific version afaik this is the one you are supposed to use in Guix <mfg[m]>So not the newest rust, but the newest that has the rustfmt output. But I don't use rust myself. <bumble[m]>hello unmatched-paren and unwox humble thank you. your config files have been incredibly useful for me to reference <apoorv569[m]>mfg: I see. So I have to use which latest version has output for rust:rustfmt. <mfg[m]>apoorv569: yeah, I don't know which version that is, I'd have to look it up. <apoorv569[m]>guix search rust shows that rust 1.60 has rustfmt as outputs. <apoorv569[m]>How to specify the version to install so it doesn't install the version without rustfmt? <michaelll>apoorv569[m]: If you want to customize Rust components, you might want to rely on `rustup` to install Rust, rather than any package manager <apoorv569[m]>Yea thats what I used to use. But there is no rustup package available. <michaelll>apoorv569[m]: Run `curl -L sh.rustup.rs | bash` to install `rustup` <zacchae[m]>lilyp: solution was a shepherd service with make-forkexec-constructor: tmux new-session -d "su [user] -l" <michaelll>it is not installed by package manager, you can find more useful information on rustup.rs <zacchae[m]>^ and for anyone else that wants a headless machine to launch guix home on startup <daviwil>hey Guix! I just pulled latest Guix and for some reason `specification->package` can no longer seem to resolve "glib:bin" to the "bin" output of the "glib" package, I receive this error: "error: glib:bin: unknown package" <daviwil>When I run `(specification->package "glib:bin")` in the guix repl, the error causes the REPL to exit immediately <apoorv569[m]><michaelll> "apoorv569: Run `curl -L sh...." <- it works on guix? <mfg[m]>Rustup doesn't directly work on guix <mfg[m]>You need to be in a guix shell --emulate-fhs --container afaik <mfg[m]>But then you also need to add all other packages you want to use to that environment otherwise it's going to be pretty empty 😅 <mfg[m]>Because rustup from rustup.rs expects the dynamic-loader to be under /lib and this doesn't exist on guix. So just running it would result in a No such file or directory iguess <apoorv569[m]>Yea. thats what I tried the first time. But I though maybe just install rust packages like cargo and all directly instead. <michaelll>apoorv569[m]: not really actually, mfg[m] makes a good point about that <mfg[m]>apoorv569: If all you need in that environment is rust via rustup you can use this: guix shell -N -F -C coreutils zsh curl nss-certs grep gcc:lib <mfg[m]>You don't need zsh though, this is just because i use it <mfg[m]>and also run it to install your rust components <mfg[m]>inside that environemnt you can install rustup just fine <mfg[m]>If this is the correct way to use rust on guix? i have no clue <michaelll>agreed :) `guix shell` is a good thing to try <apoorv569[m]>but those components also will only work inside that container right? <mfg[m]>let me just try to build some random rust project from github <apoorv569[m]>its not a bad idea. But initially I have to remember to change to that container to do rust development. <mfg[m]>Ah yeah, you only also must add zlib <mfg[m]>apoorv569: that sounds like a good idea <apoorv569[m]>depending on the project you also might need cmake make and all <mfg[m]>you can also put a guix.scm inside the root of your project and load that when you want to develop <apoorv569[m]>mfg: `guix.scm` ? How does that work? I didn't know about this. <mfg[m]>I also never used it, but i have seen this in some projects <mfg[m]>DOn't know any rust projects that use this though. <mfg[m]>Maybe i can find a project using this <michaelll>If those advices from mfg[m] do not fit your need(it is almostly comprehensive), your best next try would be: use QEMU to do a full OS virtualization, those which are more friendly for Rust components installation, like Debian or Fedora. That way, you can use Guix as usual and writing Rust on it :) <mfg[m]>Interesting rust also needs gcc-toolchain, because it's apparently using cc as the linker ... <mfg[m]>maybe the project i'm trying to build is strange shrug <mfg[m]>True, that's always a possibility <apoorv569[m]>mfg[m]: Yes alot of rust libs also need make and cmake to compile like the starship prompt <apoorv569[m]>michaelll: That is a option but that defeats the purpose of using Guix and learning new tools. <mfg[m]>i think guix environment is the old one and you practically always want to use guix shell nowadays <mfg[m]>other than that they are pretty similar <apoorv569[m]>BTW that guix.scm you shared.. looks like installing/returning a package? <apoorv569[m]>But it doesn't setup any shell to use or anything like that. <mfg[m]>There is a comment at the top that states which guix shell command you should execute for exactly that project to get a shell <apoorv569[m]>Ah! is it like installing a package inside the container? <mfg[m]>guix shell -C -D -f guix.scm sets up a containerized shell containing all development dependencies of the package that guix.scm evaluates to. <mfg[m]>So yes, it's like installing all packages necessary to develop the project inside that container <apoorv569[m]>But how does having guix.scm file differs than just plain running the command from terminal? The ability to install a custom package? <mfg[m]>you could of course just write a long shell alias for your projects and use that; with the correct command it may not make difference in the end <lain_>I believe the difference is that the guix.scm file is intended to be used to create a container in which *only* the programs and files described can be accessed, which makes it much easier for developers to define and keep track of all inputs used to compile their program <mfg[m]>but if someone wants to contribute it's way faster to type guix shell -C -D -f guix.scm :D <mfg[m]>lain_ you can certainly drop the -C then you don't have a container anymore, but a regular subshell. If you don't specify --pure this subshell will even inherit the env <lain_>mfg maybe it's if you were using 2 different versions of the same package for different projects and wanted to keep them explicitly separate too <mfg[m]>What i didn't know but read in the blog post is that you can even drop the -f guix.scm as guix shell will use a file with that name per default (if the directory is allowed in $HOME/.config/guix/shell-authorized-directories -- you don't want to eval arbitrary code) <mfg[m]>lain_ i don't understand what you mean by that. AFAIK guix.scm can;t evaluate to more than one package, so i don't see how you can define two different versions of the same package that way. <mfg[m]>pretty sure you can spawn multiple different environments with package transformations applied tho <lain_>mfg I was referring to containers in general <mfg[m]>if i read your message again it starts to make sense. I just didn't get it the frist time :( <cnx>how to use guix for incremental development/compilation? <cnx>I mean after droping into a manifest's shell equivalent to guix shell -D, then run the phases manually <haugh>Howdy folks. Having trouble with bootloader (I assume). error: failed to get canonical path of '/boot/efi'. http://ix.io/4plu <haugh>Oh I should mention this is running from an installer ISO mounted separately. <sneek>civodul, you have 1 message! <sneek>civodul, flatwhatson says: The libgc package uses the --disable-munmap configure flag as a workaround for this bug. That should be removed so libgc will actually release some memory. Testing locally, a libgc-8.2.2 build without --disable-munmap does pass test-out-of-memory, horay! Here's my hacked-up guile/guix.scm to reproduce that: https://paste.debian.net/1272261/ <civodul>flatwhatson: excellent, thanks for testing! <civodul>i guess i'll try that in Guix core-updates then <civodul>that sounds like a welcome improvement <nckx>daviwil: I don't think that has ever been expected to work (there's a ...+output variant for this; I won't bring up whether it should be the default). The REPL dying is, I think, new, though. Could you file a bug? Else I'll, but I might forget. <nckx>civodul: I'm half-way through Josselin's video. Thanks for the recommendation. <civodul>nckx: yw! i really enjoyed it, i think it has everything <civodul>ACTION runs "guix build ...-profile.drv" on berlin <cbaines>civodul, in relation to the openmpi change that happened a few days ago, I think there are some fixes required for the related packages <cbaines>looking at the failures that are cropping up on qa.guix.gnu.org, there are issues with java-openmpi, openmpi-c++ and openmpi-thread-multiple <cbaines>civodul, I've managed to get a working java-openmpi locally now, so I can probably push fixes for these <civodul>cbaines: yes, i see there are three instances of "inherit openmpi" <civodul>each one needs to be changed to gexps <civodul>plus, i'm not following best practices :-/ <cbaines>civodul, I've pushed what's hopefully a fix now <cbaines>at least this particular problem will go away when more/all packages use the new style <cbaines>I wonder if it would be helpful to try to raise these issues earlier though, as currently you can compute the derivation fine, but the builder is never going to work <cbaines>maybe it would be worth trying to spot that the builder is broken at the time the derivation is computed <daviwil>nckx: Thanks! `specification->package+output` fixes the issue for me, I was using `specification->package` incorrectly in my Guix Home config, a recent commit must have fixed the "bug" that enabled me to get away with it for over a year :) I'll file a bug later when I have a chance <flatwhatson>not sure if i should've CC'd a maintainer group for that? <mfg[m]>Can i add additional packages when running guix shell -f guix.scm? guix shell -f guix.scm package doesn't seem to work <civodul>cbaines: maybe we could prevent invalid serializations in the first place <civodul>serializing a thing that doesn't have a read syntax <civodul>flatwhatson: hey! i don't think there's a team for (gnu packages scheme), but i can take a look later today <mroh>Love, Peace & Guix! Good Morning! <fresas-con-nata>Exception: #<&compound-exception components: (#<&error> #<&origin origin: host-mismatch> #<&message message: #<x509-certificate 7fcda24437c0>> #<&irritants irritants: "hydra.gnu.org"> #<&exception-with-kind-and-args kind: tls-certificate-error args: (host-mismatch #<x509-certificate 7fcda24437c0> "hydra.gnu.org")>)> https://hydra.gnu.org <civodul>lain_: hydra.gnu.org was superseded by ci.guix.gnu.org several years ago <GuixAdmirer96>Has anyone heard of Aurae? https://aurae.io/ It has some pretty interesting ideas I think. What do some of the geeks here think? Have you seen the FOSDEM talk? :) <civodul>GuixAdmirer96: hi! hadn't heard of it before, but seeing "PID 1" and "distributed" on the same page makes me thing of Shepherd + Goblins! <GuixAdmirer96>civodul: I recently found out about Goblins and spent some time reading and watching videos about it :) I love it <florhizome[m]>can we upgrade to libgudev-237 on core-updates? It will be needed for iio-sensor proxy <apteryx>winter: I was trying to run the openssl test suite via datefudge or libfaketime, so that its certs would never expire on us <apteryx>it doesn't seems easy to convince openssl to be tricked <rdrg109_>[Q] What's the fastest and simplest package definition that you can think of? I'm asking this because I'm a newbie Guix user and I want to experiment with the => $ guix --package <= command and how it works in generation so I want my system to create generaations on the fly <civodul>apteryx: great that you persevered on #58650; i wonder why it doesn't work as expected <apteryx>civodul: I wonder too! perhaps the gmtime call is not faked, I haven't reviewed libfaketime internals <apteryx>datefudge only fakes 3 libc time calls <bjc>rdrg109_: ‘guix build -f’ may be what you're looking for <apoorv569[m]>I have this lightdm-service-type defined, it installs and configures fine, but the session list on top right shows empty even though I have multiple window managers installed. Am I doing something wrong? <apoorv569[m]>ATM I am using slim instead it can find all window managers I have installed fine. <winter>apteryx: where/when did you ever run into git-fetch cycles? <winter>Upstream seems to have moved to give very large expiry dates on their test certs (100 years), so perhaps we can simply remove this test and hope the problem doesn't come back to haunt us... <-- Wouldn't removing the tests neutralize the issue, or am I misunderstanding what the test you're mentioning does? (Assuming the cert expiry is +100 years, it <winter>nondeterministic order in the patch list, somehow? <civodul>it renders the thing kinda unusable in this particular case <civodul>i mean, i won't build ungoogled-chromium :-) <winter>wonder how such a thing even happens <apoorv569[m]>This example of guix.scm makes sense. Seems like guix.scm is being used as a build definition file, like CMakeLists.txt or meson.build specific for guix users. <apoorv569[m]>Now that I look at vcflib example it makes sense as well. <apoorv569[m]>Also if you authorise the directory you can just guix shell from the directory containing guix.scm and you will be dropped in the shellas defined inguix.scm` automatically. <lechner>civodul / Hi, 'guix shell -f guix.scm' also does not always build when needed. it think it's unrelated but i confirmed it with nckx, who says it's due to caching <apteryx>winter: the git-fetch cycles were understood; it's when attempting to use libfaketime as an input to openssl <apteryx>you need to fetch libfaketime from a tarball, not from git to avoid the cycle <sepi>Is there a facility that would create MD raids, luks containers and filesystems from operating-system definitions? Or is this left out intentionally? I'm wondering how I would replicate my current system which uses all these mechanisms <mirai>sepi: pretty sure no tools automatically do this from bare disks <lechner>sepi / with all due respect, i thin that would be a big, and potientially dangerous, step <mirai>you can use things like ansible <mirai>but that is half of automation <mirai>you still need to put in some manual effoirt <lechner>doesn't the installer do some of that? <sepi>I agree, it definitely sounds scary and I'm not sure I would want it without the system asking me to confirm <mirai>sure, but you still have to give some inputs <apteryx>winter: yes for the future the issue seems less bad, but it'd still would have been nice to have warranty that it wouldn't reappear <apteryx>winter: on the master branch for example, openssl 1.1.1l is grafted with 1.1.1t, but to get the grafted version, you still need to build 1.1.1l, which fails to build. So you can't build Guix from source anymore (you need a substitute) on master. <sepi>providing a an operating-system definition to the installer could be a way to go. In that case the installer would somehow try to initialize the disks and filesystems based on the config provided <apteryx>on core-updates the problematic test is already skipped <mirai>sepi: at that point you're no longer using the installer, you're using the cli <lechner>Hi, after a pull, i can't deploy anymore Throw to key `guile-ssh-error' with args `("write_to_channel_port" "Parent session is not connected" #<unknown channel (freed) 7f1e5e6e6ce0> #f)'. <sepi>mirai: but the installer does things like formatting and fs creation while the cli doesnt <sepi>I imagine the installer being pre-loaded with the definition provided. This would essentially make you say yes everywhere to replicate a system. <mirai>I think the real request here is for a cli auto-formatter <mirai>to have the format suggestion logic moved into its own module <mirai>and have installer/cli-tool use it <winter><apteryx> winter: on the master branch for example, openssl 1.1.1l is grafted with 1.1.1t, but to get the grafted version, you still need to build 1.1.1l, which fails to build. So you can't build Guix from source anymore (you need a substitute) on master. <-- ouch, that's a nasty side-effect. so you haven't been able to build Guix from source since <lechner>ACTION thinks anyone who formats that often should look for a better file system <winter>ACTION tries to look up how often core-updates is merged <sepi>mirai: I guess it's two different questions. One is about UI, the other about implementation. But anyways, good to know that I'll have to do this part myself and in case I want this functionality, I'll have to get my hands dirty :) <mirai>lechner: Non-volatile infinite capacity disks are yet to be invented <civodul>winter: between "infrequently" and "seldom" <winter>that's a long time to not be able to build Guix from source, ow <winter>(not that i'd be doing that any time soon, but still unfortunate) <lechner>we are working on speeding that up, but you are right <winter>i suppose in the meantime, people can just apply that patch from core-updates <winter>as it wouldn't break anything else <mirai>civodul: regarding the file-system 'title' subject, did this used to be a field from <file-system> record-type? <mroh>lechner: I can confirm that deploy error. I had the same problem yesterday. <lechner>mroh / did it go away, is it the same attila_lendvai has been having? <mirai>ok, I believe I just landed on the relevant commit, a5acc17a3c10a3779b5b8b1a2565ef130be77e51 <mirai>that's interesting, as the field was outright removed <lechner>about that bot message, i checked with the cgit folk. modern versions serve the commit message in the HTML <title> tag <mirai>civodul: good to know, thanks. <mirai>ah, it didn't quite break the API, the constructor was changed to deal with it <attila_lendvai>lechner, FYI, i just ran a guix deploy, and it went fine. still don't idea what it depends on, but i suspect it's some local ssh state <lechner>attila_lendvai / okay, thanks for tuning in! ^ mroh <mroh>ack. I'll try again, thx! <lechner>mroh / actually, it transmits a bunch and get interrupted, but there is progress <apteryx>how can I whitelist a site from the builtin tracking protection in IceCat? <apteryx>I don't see the same UI as it used to have (or that Firefox still have) <apteryx>I'm talking about the "Enhanced Tracking Protections" shield icon left of the URL bar <lechner>apteryx / anything in the settings menu that says privacy and then enhanced tracking protection and then manage exceptions? <apteryx>yes I see that one, but contrary to Firefox, it lacks the "Add Exception" button. <apteryx>So I can only remove entries, not insert new ones. <apteryx>I have a bank site that doesn't work without being on that list, so I can't access it from IceCat <lechner>apteryx / is there a shield near your address bar (on the left here)? <apteryx>oh, I wrote this in the past (3 years ago): <lechner>apteryx / in 'about:config' what are the values for pref.privacy.disable_button.tracking_protection_exceptions and pref.privacy.disable_button.cookie_exceptions please? <attila_lendvai>civodul, could it be that guile-fibers is not in the path when shepherd service start GEXP's are compiled? if yes, what's a shepherd user to do? <attila_lendvai>civodul, in general, i assume i should allow the dependencies to enter the module closure using my custom filter function, e.g. for guile-json... but i guess for fibers it should be the same version that shepherd was compiled with, no the one in my compile-time guile module path, right? <lechner>mroh / my deploy just completed but it took half a dozen or so attempts <attila_lendvai>civodul, and this might be related, although they are only warnings: ";;; Failed to autoload fork+exec-command in (shepherd service): no code for module (shepherd service)" <civodul>attila_lendvai: yes, that's expected: that module purposefully autoloads (shepherd service) <attila_lendvai>civodul, ok, that's good then. but what about fibers? (right now i'm looking for the spot in guix that compiles the shepherd start GEXPs) <attila_lendvai>i've found scm->go in (gnu services shepherd), but it does include fibers in shepherd&co <mirai>where/what should I start reading to understand how 'scheme macros' work? <attila_lendvai>civodul, but it lacks a (module-use! env (resolve-interface '(fibers))). i'm not sure it's relevant, but adding it breaks compiling other stuff. <mirai>in order to make sense how the sophisticated guix macromagic works <attila_lendvai>mirai, if by that you mean GEXP's, then they are a parallel system to scheme macros <mirai>attila_lendvai: more on the lines of define-record-type*, define-configuration, etc. <mroh>lechner: yes. worked on the 4th attempt over here. It seems to send ~360MB on every try, starting with ~1,5GB... <lechner>mroh / yeah, it seems like a timeout to me <apteryx>lechner: what does this pref.privacy.disable_button.tracking_protection_exceptions switch do? <lechner>apteryx / hand on my heart: i do not know---but i can read <lechner>apteryx / why not toggle it one time. maybe it shakes up something <apteryx>I tried many things, and there doesn't seem to be a success recipe, but out of luck I've managed to get the site to work twice so far <attila_lendvai>civodul, if i add (with-extensions (list (lookup-package-input shepherd "guile-fibers")) ...) around my service GEXP's, then i can make it compile with `guix system vm ...`, but i get "warning: call to primitive-fork while multiple threads are running;" and my code hangs somewhere. i'm not sure what i'm doing, and whether my expectations are valid... but i think that with-extensions shouldn't be needed. <mirai>what's this thing about 'closure size' and how do I measure it <AwesomeAdam54321>mirai: Closure size is the size of a package in question and all it's dependencies. It can be calculated using guix size <civodul>attila_lendvai: sorry i can't look into it today, but if you leave a message ;-) on bug-guix or something, i'll get to it eventually <civodul>speaking of which, i'm both amazed and frightened by the patch rate on guix-patches lately! <attila_lendvai>civodul, i'll sleep on it also, and if i'm still stuck tomorrow, i'll try to create a reproducer <sepi>Did I understand correctly that the wireguard service can both be used as "client" and as "server"? <civodul>yay "guix shell ungoogled-chromium" is back \o/ <mroh>lechner: I guess, its because of 128a55ad9fc727a630207baaf78c37eb9b8b0657. tests are disabled on libssh and I think, we dont have a system-test for deploy, right? <bjc>lechner: it'd be nice for the bot to show the first line of a commit message when it expands the hash; the page title isn't informative <nckx>> about that bot message, i checked with the cgit folk. modern versions serve the commit message in the HTML <title> tag <nckx>bjc: That was a quote from lechner above, not me. The ‘>’ alone probably wasn't very clear. <apteryx>lechner: seems the true underlying issue is a 'Cross-Origin Request Blocked' <apteryx>Is there anything I can do to get passed this as a user? <apteryx>moving the conversation to #firefox, as it's off-topic here <yewscion>Quick packaging question: If I define a new package as a variant, do I then need to redefine all packages that depend on that package so that they will build using the variant instead? Example: If package "foo" is dependent on package "bar", which is currently version 1.0.0, and I define a variant of the package that is version 2.0.0, will I then need to define a variant of foo that explicitly uses that input? <lechner>apteryx / i'm not sure how broad the FF definition is, but going across origins can be an extremely risky thing for phishing and cross-scripting atttacks <lechner>bjc / the bot does not clone any repos and does not have access to that data <yewscion>AwesomeAdam54321: If I don't, will the "foo" package default to the older version of "bar", or will it default to the newer one, or (hopefully) will it go off of the user's profile? <bjc>lechner: that makes sense. unfortunate <AwesomeAdam54321>yewscion: The "foo" package will refer to the bar variable, the default or whatever package you define to the variable bar <yewscion>AwesomeAdam54321: Copy, thant makes sense. Better to define a variant, then. Thanks! <apteryx>lechner: the server simply fails answering, even when the CORS passes <PotentialUser-34>Hi. Finally my Honeycomb Lx2 board arrived at my brothers shop. It will be assembled soon. micro usb access already works. Would be nice to have some guidance how to set up it as additional build machine for aarch64 <rekado>PotentialUser-34: the maintenance.git repo contains the Guix System configuration we use for our honeycombs <rekado>it does not, unfortunately, contain more information about what to put on the microsd card to get it to boot up at all. <tschilptschilp23>Have there been any changes to the derivation process? Pretty cool, I forgot to run 'guix weather' before checking, if ungoogled-chromium is available as a substitute, and my computer's RAM seems to be left in peace (other than a year ago)... <PotentialUser-34>rekado: fresas-con-nata: Nice pointers. I will try them as soon as I have physical access to the machine. <apoorv569[m]>lechner: but you said it does not always build. What did you mean by that? <elevenkb>hey there where do containers started by `guix system container` get their root file system from? <Kabouik>I was well inspired to run a guix package -u today before my meeting. 3h41 later, it's still 67% through building ungoogled-chromium. :< <dthompson>elevenkb: within it we mount various things depending on the container parameters. <dthompson>still quite proud of it after all these years <nckx>You should be. I wish I had more use cases for it, I'd choose it over VMs every time. <apteryx>civodul: re computed-file and %guile-for-build regression, oof! <apteryx>that must explain the lack of a ungoogled-chromium substitutes for the last week or so <elevenkb>ok, so if I want to persist the container `/home/` directory then I would have to do something like: <elevenkb>`mkdir -p $HOME/home && guix system container --share=$HOME/home=/home <system.scm>` <civodul>apteryx: it's worse: not all tools would compute the same derivation <apteryx>it affected only packages making use of computed-file though? <apteryx>OK. I wonder about Guix system services <lechner>mirai / for your upcoming patch, the debbugs control server has 'blocked by' <apteryx>is anyone using fail2ban with a sshd jail? <Arjanhehim[m]>is there any recommended way to start home shepherd services at system boot without logging in? <winter>is it possible to replace/override a package tree-wide a la Nixpkgs overlays? <winter>nothing in the manual stands out that would provide this functionality <lechner>apteryx / i'd like to use fail2ban, too <winter>do you have substitutes disabled tschilptschilp23, or did you just get unlucky with it not being patched? <tschilptschilp23>winter: I have substitutes on, but they are not ready yet -- I typically check the critical packages' substitute status with guix weather, but forgot about it today... <nckx>winter: There are no substitutes for it yet. <nckx>Not ‘yet’ as in ‘it's building’, but as in for the past week or more <dthompson>elevenkb: sorry for the delay but yes, you'd need to share a directory from the host if you want to retain any data. <nckx>Now, would the fix be picked up by Cuirass if it were the cause? It didn't appear to notice any u-c hash changes… <tschilptschilp23>nckx: thanks for the hint, this made me C-c C-c now. Actually a minute ago guix weather reported ungoogled-chromium as ready, but when I started my reconfigure, it wanted to build again. Pulling right now to see if changes have arrived, but speed's down at 26KiB/s (but that's been for a while now here). Let's see, maybe I can save some time anyway. <acrow>Noticed, and this may be well known, that guix package -u fails if the profile contains a package that no longer exists. In my case it now fails for me bc I have pandoc:static in my profile. <avocadoist>i keep wanting to use expressions to generate inputs for my flake. what am i missing concept-wise ? or is there a way to do that <nckx>tschilptschilp23: Well, I didn't actually mean that you had to do anything, C-c or otherwise… Just that this problem wasn't unique to you. <rdrg109_>ae_chep: Thanks! That's the one that I've been using, but it requires downloading something from the Internet, and I would rather downloads from external sources didn't occur. <nckx>tschilptschilp23: I think the fact that Guix reports seeing a substitute but then doesn't actually download it is the symptom of this bug. If .drvs differ between code paths, that could happen. In fact most bets are off at that point. <ae_chep>can a channel be served off of a filepath? <ae_chep>rdrg109_: You could copy the sources to a local directory, and edit the file description so it's url-fetch method and the uri is the absolute path to where the pkg is <nckx>lechner: My mother used to sing that to me when I was a wee insomniac nckx. I guess that explains things. <nckx>ae_chep: What's a filepath? <nckx>You can use file:// if that's an answer. <lechner>nckx / i'm glad you are getting some sleep these days <ae_chep>nckx: the path to a file/directory. And that's a satisfactory answer, yes <nckx>apteryx: I see congratulations on getting a Linux kernel patch merged are in order. <nckx>Here's a wrong one: 1f050e904dd6f2955eecbd22031d912ccb2e7683 <nckx>Oh, the bot is now clever. <nckx>I was just browsing my checkout; no link. <lechner>i noticed that earlier with winter's message <nckx>I thought it might be trying its own generated link first, and stopping if it 404'd. (Which would be nice!) <winter><nckx> Not ‘yet’ as in ‘it's building’, but as in for the past week or more <-- Why's that? Were they disabled? If I'm looking at Cuirass correctly, I don't see any queued (Chromium) builds. <nckx>The ones I saw were cancelled. <nckx>I don't know by whom (if human) or why. <tschilptschilp23>I can confirm that with commit 29a278f65c3 the ungoogled-chromium substitute actually gets downloaded (although still at 25KiB/s)! <lain_>can guix be thought of as a compiler of sorts? <lain_>could we perform diverse double compiling on guix as a hole <lain_>for example, on the bootstrap-tarballs derivative <lain_>for example, on the bootstrap-tarballs drv <lain_>the source code is the input packages <lain_>actually, the source code is all input <ae_chep>nckx: by the way, with this "filepath" pointed channel setup I was able to finally feel some calm after having spent hours trying to get the guix shell recognise my unpublished packages. So, genuinely, thank you for the answer and help. I feel so relieved now... <ae_chep>*packages whose changes have yet to be accepted upstream <nckx>Thank you! It's the same set-up I use myself. Just don't forget to commit, Guix still won't see uncommited files :) <ae_chep>they are committed alright! They just need a maintainer to accept the changes <lain_>PotentialU guix upgrade --do-not-upgrade[=REGEXP] <nckx>PotentialUser-66: For ‘guix upgrade’ and friends, there's ‘--do-not-upgrade=PACKAGE’. There is no configuration file. <PotentialUser-66>right, I saw the --do-not-upgrade, was just wondering if there's a better way <nckx>lain_ is right, it's a regexp. <lain_>is there a scm for upgrading in general nckx? <lain_>I'm sure you could add this to that? <nckx>I'm not sure what you mean by that. <nckx>I have to go, but I'll point out #bootstrappable before I do. You should ask there (too). <lain_>There is a scm file for default behavior when starting virtual machines (/etc/guix/machines.scm) for example, I was wondering if there was a scm that described default behavior when upgrading <rdrg109_>ae_chep: Ok, I'll try that. I can see that in the my-hello package example. The URL starts of the downloaded file is "mirror://gnu/hello/hello-2.10.tar.gz". Do you know how I can use "wget" on that URL? If I use it as it is, wget shows the following error => mirror:/gnu/hello/hello-2.10.tar.gz': Unsupported scheme: 'mirror'. <ae_chep>`guix download mirror://gnu/hell...` <ae_chep>If you refer to the guix cookbook, it should actually refer to this very case <ae_chep>*it should actually mention this very case <rdrg109_>ae_chep: Thanks! I'll read the guix cookbook more in-depth <rekado>FYI: there will be firewall maintenance between 08:00 - 08:30pm on Wednesday, March 1st, 2023; this means that *.guix.gnu.org may not be accessible for a while. <ae_chep>had small steps for mankind, but big steps for myself today. thanks for the helps. I'm done. Cheers~ <mirai>what's the purpose of dist_patch_DATA in gnu/local.mk? <apteryx>keeping the patch files in the source distribution <mirai>apteryx: what happens if you forget to "register" the patch? <unmatched-paren>go import paths look like this: <DOMAIN-NAME>/<PATH>[/v<API-VERSION>] <apteryx>mirai: it will, but 'make dist' will generate a source tarball lacking the file <apteryx>which will be caught when attempting to produce the next release <unmatched-paren>when you break a Go API, you're supposed to add a /v2 to the path, and it's treated as an entirely different package <unmatched-paren>there isn't always a -v2 suffix in the package name, but there *should* be. <winter>ah, right, i guess it'd be reflected in the import path <winter>unmatched-paren: would a patch to correct that inconsistency be accepted? i feel like that would probably be a good thing to have (as in, a 1:1 mapping of package name to canonical import path) <winter>even if we only ship the v2 for example <unmatched-paren>probably, as long as you make sure you update uses of the package too :) <winter>bouncing off of that: is there a way to get a list of (or even better, automatically build) the packages changed from one revision to another, other than spinning up Cuirass? <winter>i know guix refresh --list-dependents exists, but you can only do that one package at a time <winter>ACTION wonders why her QA job is taking a while to start <winter>queue doesn't look backed up or anything <lilyp>everyone's QA job is taking a while to start <surpador>winter: how do you check the queue? Been looking for how to do that :) <jlicht>has guix's tesseract-ocr worked to generate searchable pdf files for anyone? <jlicht>ACTION is thinking this is probably a severe case of PEBKAC :) <winter>lilyp: got it. btw: are QA jobs only started after someone hits the issue page (as that's what seems to make the Git commit on the QA repo), or is it automatic at least eventually? <winter>(oh also, are the QA jobs taking a while to start a normal thing, or just a current issue for whatever reason?) <cbaines>do you have a link to the relevant issue winter? <lilyp>AIUI patchwork is fully automated, but cbaines knows more than I do :) <cbaines>bordeaux.guix.gnu.org which does the builds for qa.guix.gnu.org has quite a big backlog, which is probably delaying the results on new issues <lilyp>yeah, I'd imagine that it's hard to keep up with our load <elevenkb>...very bare-bones like; however, even though `guix system container guix-server.scm` works, <elevenkb>`guix system container guix-server.scm --network` doesn't. When I try `sudo $(guix system container guix-server.scm --network)` I get an error: <elevenkb>eh, methinks this is best to file as a bug report tbqh. <elevenkb>issue is that i haven't paid my mail provider. <mitchell>I think the post office should provide email addresses <cbaines>winter, ah, that's just waiting on data.qa.guix.gnu.org at the moment. There's quite a backlog there too. <winter>ah, okay. so it has to wait for both a build and a QA report? (wonder what takes it so long to compute the QA report, you'd think the builds would be the intensive work.) <apteryx>nckx: haha! an info target in the kernel doc! how heretic <cbaines>winter, first the data service (at data.qa.guix.gnu.org) has to process the revision, that works out what's changed. Then if there are packages that have been changed, those need to be built to determine if any packages have been fixed/broken <cbaines>but it's all automatic at the moment <lechner>nckx / actually, the bot did get smarter with respect to commit hashes <winter>cbaines: huh! so was it just luck that the commit appeared right as I accessed the QA page for it? <winter>i'll poke you if i'm ever able to reproduce the phenomenon again :) <ellysone[m]>For anyone running guix in production, How often do you have to to think about cleaning the previous generations and all of that? Do you have some custom code to take care of that? <nckx>tux_life: ‘I don't think the ram is faulty’ is a big claim when something called ‘memtest’ fails 😉 Note that ‘bad RAM’ doesn't mean your stick is rubbish: multiple folks have suggested you take it out, give it a good dusting, and put it back securely. Have you? <nckx>(Including someone in #libreboot but you'd already left.) <nckx>I see Leah's there now. I suggest listening to her, this is not a Guix issue. <tux_life>@nckx The problem remains with 2 laptops... <nckx>The pam.d issue is not the same issue. <nckx>tux_life: Could you share your config.scm? Text would really be ideal now. <nckx>27 Feb 23:04:36<leah> tux_life: the version you used probably wasn't patched, and has errors because of that <nckx>27 Feb 23:04:52<leah> normal memtest86+ fills with wrong errors. use the coreboot one, provided by libreboot <nckx>tux_life: So this failure has *something* to do with your configuration: it happens on my machine as well! Pretty sure it's because your login-service-type, which duplicates the one already in %desktop-services. <tux_life>nckx Thank you!!! At least we're starting to understand something. <nckx>tux_life: Yes, that was it. Remove the (service login-service-type …) form, and instead add a corresponding entry to the modify-services you already have, like you did for sysctl. <nckx>We should package this libreboot-patched memtest. <tux_life>Thank you so much! It works.... I'll try too on my T400.. <civodul>would be nice to get feedback on this one <winter>they said earlier that the queue was very backed up, civodul