IRC channel logs
2024-08-24.log
back to list of logs
<mwette>kaij: Are you looking for static-networking-service-type (in guix manual), or you know about that and want to know how to use it for for more complex system? <mirai>kaij: you could do it with networkmanager perhaps? <kaij>I am using static-network-service-type but am unsure what a complex configuration is supposed to look like. seems like I could have one big service, with several configurations (it takes a list) or have many services, or only have one service AND one configuration, I have no idea. mainly how dependencies between routes are supposed to be expressed. <kaij>I don't want to use network manager as it's a daemon and I only need one-off configuration, and will be running a different daemon to further modify other devices & routes, so network manager seems like the wrong tool <mwette>I just use static-networking-service-type in my /etc/config.scm, but pretty vanilla like the example in the manual (under Services, Networking Setup). <kaij>The confusing bit to me is that it uses lists at every level. the configs are a list for some reason, routes are a list, and of course multiple services are also possible. <wizard>where's the source code for guix stored locally? i want to read some of the package definitions in emacs <apoorv569>I submitted this recently and would like it to be merged. <jaft_r>wizard: I'm not sure if it is; I usually just clone the repo. (and then pull, periodically, if I think I need the latest stuff). <bavier>wizard: you can use 'guix edit <package>' to view package definitions. <PuercoPop>Any kde user here? Since I updated to the latest kde version the media keys shortcut stopped working 🤔 <PuercoPop>For packages with multple outputs? How does one use multiple build systems? Looking at the guix repo I see most of the packages multiple use only one system and expose docs as a secondary output, or debug info <PuercoPop>ej. I want to build one output with the emacs-build-system and and the other one with the cargo-build-system <Rutherther>PuercoPop at that point, wouldn't it make sense to make it two packages instead of two outputs of a package? <Rutherther>is it possible to obtain environment from a guix shell that was set by "setenv"? I know there is --search-paths for the search paths, but what about other environment? <Ironsmith>how can i build findutils-boot0 (part of the bootstrap) ? <Ironsmith>but when i run guix build -f /path/to/commencement.scm findutils-boot0 <Rutherther>findutils-boot0 is not exported, you cannot reference it with a specification. To obtain it with a guile expression, use "(@@ (gnu packages commencement) findutils-boot0)" <Ironsmith>thanks Rutherther, so like this?: guix build "(@@ (gnu packages commencement) findutils-boot0)" <Ironsmith>i tried that but am now getting: guix build: error: (@: package not found for version (gnu packages commencement) findutils-boot0) <Rutherther>no, guix build doesn't take guile expressions like this <Rutherther>it expects specification when you don't specify another option <Ironsmith>great, guix build -e '(@@ (gnu packages commencement) findutils-boot0)' is doing something, thanks again Rutherther <Ironsmith>i guess i can't use `guix shell -D -e '(@@ (gnu packages commencement) findutils-boot0)'` eh? when i run it it tries to build findutils-boot0 while what i want to do is just setup the environment so i can run the build commands by hand <Rutherther>right, probably will be easiest to export it in a guile module, and put it to a load path, or just return a manifest out of the file with development-manifest for this package <nckx>PuercoPop: Outputs aren't launched as separate builds, they just allow splitting (installing) a single build into distinct parts (directories) at the end. However, you can manually intermingle build systems, and keep them logically confined to separate phases. <nckx>Quite a few upstream packages do this, although not to that extent (they usually snarf one or two phases, but you could snarf all of them). The pattern looks like grep 'build-system.* #:prefix' gnu/packages/*scm <nckx>If you don't want different foo/foo-doc/foo-lib packages (which I support, outputs are good!), you could still create separate hidden foo-* packages that each use a separate build system, and a single foo package that takes them all as inputs and uses the trivial build system to install them into separate outputs. <nikolar>nckx: one question, why do packages contain the documentation too <nikolar>That just brings in additional and silly dependencies <nckx>‘guix size pulseaudio | grep inkscape’ does not bear this out. <nckx>If you mean that you need inkscape to build pulse: that's fine. We don't optimise for minimal builds. <nikolar>Yeah but the dependency tree just grows ridiculously wide some of the most essential packages <nikolar>Not to mention that aarch64 builders are really struggling with those substitutes <nckx>Outputs were supposed to save (build) resources (not graph nodes but cycles), but they don't always. I wish there were a way to abstract the per-package tradeoffs without changing the user-facing package. ‘Oh, it's cheaper to build the docs separately now, use foo-documentation instead of foo-doc, but keep using foo:lib because that's cheaper, oh wait that changed—’ <nckx>I care less about what's happening behind the scenes than that we tend to mix the two in seemingly inconsintent ways. <nckx>s^graph nodes^build graph nodes^, they save on references just fine. <nckx>And s^foo-doc^foo:doc^ because ENOCOFFEE in the entire literal house. Sorry. <PuercoPop>Rutherther: Yeah, that is what I ended up doing, two packages but using (package-source $foo) use only one definition. Based myself from the emacs-protobuf package from guix. Thanks <faust700>how do you start xdg-desktop-portal & xdg-desktop-portal-wlr services? <Rutherther>faust700 assuming you import correct variables to dbus, you can let them start with dbus. Putting them to your profile should suffice <faust700>Rutherther: i have exec --no-startup-id dbus-update-activation-environment --all in sway conf <freedomforge>how do I locally build packages instead of pulling substitutes? Sorry I just installed guix coming from trisquel and starting to learn scheme. <Rutherther>right, so that should import everything that's needed, so you just need to put/use correct config and set XDG_DESKTOP_CURRENT accordingly to pick up the correct one <faust700>Rutherther: could you clarify please, which config i should use? <Rutherther>freedomforge if you want to not use substitutes most of the time, it would probably make sense to modify the guix-daemon service to not include any substitutes. For overrides per single command use --no-substitutes <faust700>Rutherther: man portals.conf - No manual entry for portals.conf <woshilapin>Hi there, I was wondering how to properly extend `PATH` when using `guix home`? <faust700>Rutherther: i have installed xdg-desktop-portal but man portals.conf - No manual entry for portals.conf <faust700>Rutherther: cat ~/.config/xdg-desktop-portal/portals.conf <Rutherther>faust700 yes, that is going to be used as fallback if config is missing for specific XDG_DESKTOP_CURRENT <faust700>Rutherther: so thats conf looks correct? <faust700>do i need start xdg-desktop-portal xdg-desktop-portal-wlr manually? <Rutherther>faust700 yes, that config looks correct. If you have both xdg-desktop-portal and xdg-desktop-portal-wlr installed via the same profile, you should not need to start them manually. Of course since something could've been already picked up before the configuration was in place by dbus, you might have to restart for it to take full effect, and temporarily you can just execute the portal manually <faust700>Rutherther: yes i have installed xdg-desktop-portal xdg-desktop-portal-wlr, but i am not able to start them by name, need to set full path like gnu/store/4yv90cqc9cvc0w9gyf2rfxcvmhfaq8px-xdg-desktop-portal-wlr-0.7.1/libexec/xdg-desktop-portal-wlr <Rutherther>of course that you cannot start them by name, since they don't have anything in bin <faust700>Rutherther: but Screensharing doesnt work <faust700>systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr <faust700>systemctl --user start pipewire-media-session <Rutherther>of course just ignore the stuff that's directly related to systemd... <faust700>Rutherther: but i have no idea how to do that with shepherd ) <Rutherther>also you do not need shepherd to take care of xdg-desktop-portal nor wlr portal, just left dbus handle it <Rutherther>systemd has this feature where it can "bind" dbus services to systemd ones <faust700>but could i run pipewire manually from cli? just to test everithing works <Rutherther>yes, sure, you can run everything from cli. Should be just a simple pipewire command, and you might also need to run wireplumber, but I am not sure about that one <Rutherther>and run xdg-desktop-portal -r as well then, not the wlr one directly <faust700>Rutherther xdg-desktop-portal not xdg-desktop-portal-wlr? <faust700>Rutherther: output froh xdg-desktop-portal <faust700>desktop-portal:16230): WARNING **: 16:52:06.769: No skeleton to export <faust700>XDP: Using wlr.portal for org.freedesktop.impl.portal.Screenshot in sway <faust700>XDP: Using wlr.portal for org.freedesktop.impl.portal.ScreenCast in sway <faust700>XDP: providing portal org.freedesktop.portal.ScreenCast <faust700>XDP: org.freedesktop.portal.Desktop acquired <faust700>XDP: screen cast session owned by ':1.6' created <nckx>faust700: You'll want to retry that using paste.debian.net or a similar paste service. Don't paste whole files/logs into the chatbox. <freedomforge>Rutherther: I used `sudo guix-daemon --build-users-group=guixbuild --no-substitutes --max-jobs=2` this command is just hangs not giving me a prompt back? did I do something wrong? <Rutherther>don't run guix-daemon directly, it's supposed to be ran by a service. Also it's correct that it "hangs", it's just a daemon. <Rutherther>I meant to say to use --no-substitutes for normal build/shell etc., commands, or just modify the service - to not include the --substitute-urls that it has by default. <Rutherther>faust700 that seems fine. For me the screensharing doesn't work in Firefox for example. But does in Librewolf. <faust700>Rutherther: thats interesting, will try librewolf <Rutherther>freedomforge then it's a service called guix-service-type. It comes from %base-services or %desktop-services. You can use "modify-services" to modify them, specifically you want to set "substitute-urls" inside of "guix-configuration" to an empty list "'()" <Rutherther>the manual even has example for modifying substitute-urls inside of "Using the Configuration System > System Services" section <Rutherther>faust700 also make sure to have one of the choosers wlr portal can use, ie. slurp. Or configure wlr portal to always just share the same output <fnat>How do I run a service's test suite? E.g. I tried 'make check TESTS="gnu/tests/file-sharing.scm"' but that seems to run no tests. <faust700>Rutherther: sorry thats not clear to me, could you clarify please? <faust700>"also make sure to have one of the choosers wlr portal can use, ie. slurp. Or configure wlr portal to always just share the same output" <Rutherther>faust700 wlr portal lets you choose the output to share with a chooser <faust700>Rutherther: can you please point me, which way i can do that? <Rutherther>the chooser will just pop up when you start sharing <fnat>Ha, ok, it's 'make check-system TESTS="transmission-daemon"' for instance. <faust700>Rutherther: i installed slurp, then i open google meet in librewolf, start screen share, the dialog pop up - allow google meet see your screen with only one option (use system settings) then i press allow, and screen sharing doesnt work ) <Rutherther>yes, there should be just one option. And after that slurp should pop up with a chooser, where you click on an output to share. If you have just one monitor I suppose it's not used <faust700>Rutherther: yes on that link screen sharing works, but does not work on google meet <Rutherther>alright. Then it means xdg desktop portal and wlr portal are configured properly. So I cannot further help you, I have no idea what meet does differently. <faust700>Rutherther: thank you very much for help ) <Rutherther>fyi for me google meet sharing works, in librewolf <faust700>Rutherther: one more question, after restart librewolf i need to signin to my google account again, what can be the reason? <nckx>freedomforge: If you do ever want or need to run the daemon by hand in some emergency situation (say, you broke your service :), that's a perfectly fine way to do it. It's not ‘hanging’, it's running. In bash, you can add a ‘&’ after the command to run it in the background and return to the shell prompt. <faust700>Rutherther: thank you for help! now it works also in google meet <faust700>Rutherther: i am sorry for bothering you, last question, dont you know how to make librewolf keep logins sessions through restarts? <ieure>faust700, See the LibreWolf FAQ. It defaults to deleting all cookies on exit, but you can add per-site exceptions. <Rutherther>yes, librewolf is heavily oriented on non-tracking so by default it removes all cookies on restarts. See settings > privacy & security. In there "Cookies and Site Data", should be clear enough to disable completely or exceptions <ieure>You can probably also change the default, but I like the default-deny / explicit allowlist behavior. <PotentialUser-30>Hello. Here is a use-case question for Guix: I would like to test some software, but I don't want $HOME to have extraneous files or conflicts. What approach should I take? (I cannot make guix shell -C to work with GUI apps). <PotentialUser-30>An example: I want to compare Spacemacs and Doom Emacs. I think I cannot keep them both "active" (I think there is a program that allows multiple Emacs configs simultaneously, but that works only for Emacs). <ieure>I'm not sure what you'd have to do to adapt that for a Wayland client, but that ought to at least point you in the right direction. <Rutherther>apart from using guix shell for this particular problem you can also manually pass --init-directory to emacs, so you can keep multiple separate configs that way <PotentialUser-30>Rutherther There is still so much I need to learn about Emacs!... Thank you. <PotentialUser-30>BTW, installing packages through Guix or through MEPLA: should I stick to only one of these? <Rutherther>I use combination, mostly (m)elpa, but also guix for stuff that needs compilation like vterm or treesitter languages <ieure>PotentialUser-30, You should install Emacs packages with Guix. <RavenJoad>Hey Guix! Is there a knob I can tweak in Cuirass for how many job channel evaluations I can do in parallel? This is a CI server for personal projects which do not change frequently, so those channel evaluations are typically small. <PotentialUser-30>ieure Found it! Why did I not see it there before!? I feel stupid. Thanks again. <PotentialUser-30>graywolf I'm sorry! I should *transform* packages for Emacs? Would you mind elaborating? I feel lost. <graywolf>Look at the bug report I linked. Due to packages being built against (usually) emacs-minimal, they sometimes work funny with emacs package. <PotentialUser-30>graywolf Where do the "recompiled" packages reside? Under the Guix /gnu/store or somewhere under $HOME? <graywolf>Yes, in the store. They are regular packages, just created by transforming another package. So the new package is built as usual and put into the store. <PotentialUser-30>graywolf If we apply a transformation, I suppose they will reside in the /gnu/store. But if called from within Emacs (I think there is some "recompile all packages" command), I suppose they may be more local to the user and Emacs cannot write to the Guix's store. <graywolf>I have never tried that, so I have no idea :) <PotentialUser-30>graywolf I read somewhere, a while ago, that Emacs came with an old version of Org, and we should install and use a newer one. Is that still true? <PotentialUser-30>Also, now that I think about it, Spacemacs and Doom Emacs come with their own "package installation system". I wonder now how things can interact... <graywolf>Seems so. I org-version shows 9.6.15, and there is emacs-org packaeg at 9.7.10. So probably yes? <graywolf>PotentialUser-30: But I personally am happy with the built-in version, so whatever suits you :) <graywolf>Uff, I misread your question. So I will try again: For my somewhat limited use, the version of org-mode that comes with 29.4 works fine. <freedomforge>is guix install package or is guix home the correct way to install and manage user packages? <nckx>Both. As is using a manifest. Not everyone uses Guix Home. ‘guix install’ is ‘less declarative’ than the other two, but not incorrect. <robin>ACTION uses guix install for their primary user environment, just out of habit probably <ieure>I think if you use `guix install', you have to manually upgrade things with `guix package -u' -- Guix Home will upgrade packages on every reconfigure. <ieure>I use Home, it's pretty nice, though it has some issues. <nckx>I don't want my user packages upgraded that way, because hello Firefox, but I admit that's probably a minority/specific desire. <PotentialUser-30>I am trying Guix on a laptop. What commands / packages do I need to suspend to RAM? Is it possible to suspend to disk / hibernate if I define a large enough swapfile inside my encrypted partition? <ieure>PotentialUser-30, I've never had to do anything to make sleep mode work. Close lid, laptop goes to sleep. <ieure>Haven't messed with hibernate/suspend-to-disk, I'm not sure if that works. <RavenJoad>I don't 100% trust hibernation to an encrypted partition, so I have not set it up. I have never gotten lid-closing to sleep my laptop, but I also do not want it to do that, so it works for me. <PotentialUser-30>ieure I typed "suspend" but it did not work. Closing the lid seems to have worked. Huh!... Curious. <Rutherther>if you want to configure what lid closing does, it's under elogind service config, and elogind is included with %desktop-services <PotentialUser-30>Rutherther I'm not into the "services" thing yet, but I should write it down for then. At the moment, the default behavior suits me. Thanks. <yelninei>hibernation works for me to a swapfile + luks without issue. <ieure>PotentialUser-30, Herd services in Guix are conceptually the same as systemd services on other distros. Except they get configured with Scheme in one file, instead of a bunch of .ini-style files in directories. <xFFFC0000>and whose idea was to add qttools-5 as `input` to building monero? <Rutherther>could also be a test or doc dependency, are you sure it's neither? <Rutherther>I find it easiest for blame to just have a local clone <xFFFC0000>anyway I can get rid of this locally? Don't want to wait until this gets merge. <ieure>Rutherther, You don't even need a separate clone, you can look in ~/.cache/guix/checkouts -- those are the repos for the channels you've configured. <ieure>xFFFC0000, Last change on that line was commit eef8e2ec46c4155980815e00a394428c0c3de075, from two years ago -- but the input was already there, that one just renames it from qttools to qttools-5. <ieure>Oh, this is some cryptocurrency bullshit? welp <xFFFC0000>Yes, it seems you are not familiar with monero, obviously! it is not bullshit and has quite a technical depth! <xFFFC0000>Rutherther: anyway to customize this locally? without waiting for the merge upstream? <ieure>I do not care how much "technical depth" it has, I would like every cryptocurrency to go away. <xFFFC0000>ieure: goodluck with future endeavours. You clearly has no idea what you are talking about :) <ieure>I know very well what I'm talking about. :) Please stop emitting carbon into my atmosphere for no good reason. <xFFFC0000>Of course you don't have any clue what you are talking about. By the way, no one asked for you opinion, please learn to utter your opinion when people are asking :) <ieure>It is very funny that you think anyone against crypto must be opposed due to ignorance, rather than due to a considered opinion of the value of the thing not being worth it. Might want to reflect on that bias. <ieure>This is very typical of crypto bros, in my experience. <xFFFC0000>Oh my God. what I have done today to meet a person like you. I don't give anything about your opinion. you started. I don't know. I don't care about your existence. Please go away if possible :) <xFFFC0000>Do this channel has moderator? Hopefully it has. <xFFFC0000>Thank god. Okay. actual serious business. anyway to customize the already available package? <Rutherther>of course, just inherit it, and modify what you need <xFFFC0000>Rutherther: thanks for your professional help :). Quick question, any non-intrusive way from CLI? or the only way is to inherit and modify it? I am fine with guile. Just want to keep it as non-intrusive as possible. <RavenJoad>You cannot change package inputs from the command-line. You will have to write this in Guile. <xFFFC0000>Thanks you both. In the meantime, where I can submit a issue for this package? anywhere like GCC's bugzilla or something? <Rutherther>xFFFC0000 the only possibility I can think of doing this through cli, is to have an empty package, and replace the inputs with --with-inputs. But it's a very hacky solution <xFFFC0000>Rutherther: I see. looks like a very hacky solution to me too. <RavenJoad>Ok, I lied, you can actually change a package input from the command-line (--with-input), but you cannot remove an input from the CLI. <robin>yeah, (info "(guix) Package Transformation Options") lists them all, but you probably want to use (info "(guix) Defining Package Variants") <robin>(in which you'd inherit from monero and delete qttools-5 from the inherited inputs) <robin>(define-public my-monero (package (inherit monero) (inputs (modify-inputs (package-inputs monero) (delete "qttools"))))) <RavenJoad>Is there a knob I can tweak in Cuirass for how many job channel evaluations I can do in parallel? This is a CI server for personal projects which do not change frequently, so those channel evaluations are typically small. <robin>(i might try --with-inputs=qttools=hello for a quick check, otoh the modified package is a one-liner) <xFFFC0000>robin: thanks a lot. I actually need that script since I use a lot of custom packages and have seen a lot of cases that I need to customize a package. Do you think for updating version of package, that is good approach too? For example, guix only has boost 1.85 (IIRC?), but 1.86 released last week, I hacked around it with some other way. <xFFFC0000>But is it good idea to inherit from boost package, and just the version and fields? <ieure>RavenJoad, There's a `threads' field in `cuirass-configuration', I think that does what you want? <Rutherther>yes, it's also good approach for updating dependent packages. But if you want to replace it in the whole tree, "package-input-rewriting" is going to take care of that better, and also can replace implicit inputs <RavenJoad>ieure: The documentation just says the number of kernel threads to use. I don't know what happens with the default #f value. <ieure>RavenJoad, #f is the default, it lets it pick a value "appropriate for most cases" -- I assume derived from the number of cores of the machine it's running on <robin>xFFFC0000, it generally works well, yes, and you can add new dependencies or whatnot before patching the upstream package <robin>i should probably set up a personal channel, but i often simple have my-foo.scm with the appropriate use-modules at the top and returning the package at the bottom, for use with guix build -f, guix install -f, etc. <xFFFC0000>robin Rutherther one last thing, when I define a package like that, can I feed that package (let's say my updated my_boost1.86) as dependency for my build environment? I use `guix shell --development --pure mymonero`, now assume remember the package I defined my_boost1.86, can I feed that package as dependency to `mymonero` dev environment? <RavenJoad>ieure: Ok, looking at a combination of the cuirass service-type and cuirass docs and cuirass source, I cannot change the number of parallel evaluations, but the default is 8 in parallel, and Cuirass uses 4 kernel threads by default. Perhaps I will bump threads to 8 and see what happens. <RavenJoad>I will also need to bump the VM up to 8 cores, but that is easy. <ieure>RavenJoad, What's your goal? It's not clear to me. <robin>xFFFC0000, kebab-case because lisp ;) but yes, i think that'd work, at worst you'd need a manifest file for loading the custom package <xFFFC0000>thanks. will give it a try ( will use kebab-case for sure ) <robin>xFFFC0000, also, i for one am happy to have a monero developer here; i'm very concious of all the problems with cryptocurrencies, but at the same time i used it just yesterday for a tiny bit of international mutual aid to a third-world country that would simply not be possible otherwise. so thank you :) <xFFFC0000>my (our) absolute pleasure, you are very welcome ;) <robin>xFFFC0000, oh wow! very exciting, and i do remember carl dong's work :) i'll have to dust off my github account to keep track <RavenJoad>ieure: I have a Cuirass spec set up for each of my projects. They get pulled every half-hour, but seem to get stuck on evaluating for longer than that. Each of these relies on Guix and itself (no third-party channels), so I wanted to evaluate more of them in parallel. <ieure>RavenJoad, Ah, hmm. Well, hopefully that setting helps. <RavenJoad>Building the spec takes almost no time in each of these. The majority of time is spent evaluating channels to figure out what is available/what to build. I will tweak it and see what happens. <ieure>RavenJoad, I have Cuirass set up, but only build two branches of my personal channel. It seems to work alright, though I have noticed that it gets wedged intermittently. I think that's mostly due to Guix infrastructure not being terribly reliable, and Cuirass not handling those outages well. <RavenJoad>I noticed that too when I used the local Cuirass setup. I moved to the remote-server and remote-worker one (still all on the same machine) and it has been a lot better. From looking at Cuirass' logs as they come in, it seems that eval is the bottlenet. <ieure>Yeah, I just have the one box building things. And basically the opposite problem, I have LibreWolf in my personal channel (usually so I can run the latest while waiting for patches to get accepted), so builds are sometimes 2-3 hours, depending on what all changes are needed. <RavenJoad>I guess evaluating the tens of thousands of packages in Guix is just slow to do for every pull. Oh well. <ieure>Yeah, probably. And while you can do concurrent evaluations, I don't think the individual evaluations are parallelized. <ieure>(Any given channel eval can't use more than 100% of one core) <RavenJoad>This instance builds small personal projects, so I have ~10 specs; so ~10 evals every ~30 minutes. More concurrent evaluations may improve the issue. <ieure>How are you storing those personal projects? I keep all mine in one channel, and have a Cuirass specification which builds every package in it. I've found that works well for me, but haven't explored other setups. Sounds like you have a different approach. <ieure>Cool, thank you, I'll give that a read. <ieure>Anyone else noticed that the Guix docs seem to take a really long time to load now? Was fast a few weeks back, now is very slow. <RavenJoad>Going quick for me. I have not extensively tested though. <ieure>Takes 44 seconds to load that linked page in the cookbook. 6700ms loading manual.css from www.gnu.org; 40,000ms(!!) loading some fonts. <robin>xFFFC0000, i think you can use a 'file' url, haven't tried it in a while though <ieure>attila_lendvai, Thank you for confirming. <ieure>This matches what I see -- the resources are highly cacheable (good), but very slow to load (bad). <ieure>Well, it loads lightning fast in eww, at least. :) <ieure>Since it's not bothering with CSS or favicons or fonts or any of that frippery. <nikolar>does it take 10s to download or to render <attila_lendvai>maybe it's generated, and the cpu is loaded on the server. but it's just speculation. <ieure>Seems unlikely that it'd be rendered serverside, but I don't really know how this stuff is built. <nikolar>so just downloading it takes forever <nikolar>must be generated on the fly and not cached at all <ieure>I have no idea why it wouldn't be a static resource. <ieure>I don't think it's generated, it has proper cache headers and reasonable Last-Modified timestamp. SSR'd stuff very very rarely bothers to do any of this. <ieure>Just stored in a mercury delay line, served by an IBM 704, connected to the internet with carrier pigeons. Or something. <nikolar>i see absolutely 0 reason for it to take so long :/ <RavenJoad>Guix's additional CSS is static. The main manual.css is from gnu.org/software/gnulib, and gnu.org is having troubles. <RavenJoad>Trying to fetch gnu.org/software/gnulib/manual.css by itself is taking a long time. On my system, 18s to load GNU's manual.css. Guix's manual takes ~18s to load, so my guess is a problem on GNU's side, not Guix's.