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.
<mwette>That's lisp. Does it work for you? Underneath are data structures. https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/base.scm#n2841
<wizard>where's the source code for guix stored locally? i want to read some of the package definitions in emacs
<apoorv569>Hello, has anyone here looked at this patch? https://issues.guix.gnu.org/72673
<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 🤔
<wizard>aha ty bavier
<sneek>nckx: Greetings :)
<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>hello!
<Ironsmith>how can i build findutils-boot0 (part of the bootstrap) ?
<Ironsmith>i see that it's in commencement.scm
<Ironsmith>but when i run guix build -f /path/to/commencement.scm findutils-boot0
<Ironsmith>i get the following error message:
<Ironsmith>error: findutils-boot0: unknown package
<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
<Ironsmith>ah ok
<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
<nikolar>Like pulse depending on inkscape
<nikolar>(transitively)
<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>Inconsintent pselling.
<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.
<nikolar>Lol i got the jist, no worries
<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
<fnat>ENOCOFFEE, lol. :)
<faust700>Hi Guix!
<Franciman>\o
<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
<Rutherther>faust700 it's all in "man portals.conf"
<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
<faust700>[preferred]
<faust700>default=wlr
<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>Rutherther: do i need pipewire ?
<Rutherther> https://github.com/emersion/xdg-desktop-portal-wlr/wiki/%22It-doesn't-work%22-Troubleshooting-Checklist
<Rutherther>yes, pipewire is a dependency of the wlr portal
<faust700>Rutherther: i that manual they run:
<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...
<Rutherther>use the shepherd equivalent...
<faust700>Rutherther: but i have no idea how to do that with shepherd )
<Rutherther> https://www.gnu.org/software/shepherd/manual/html_node/Invoking-herd.html https://guix.gnu.org/manual/devel/en/html_node/Sound-Home-Services.html#PipeWire-Home-Service
<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>Rutherther: thank you, for help!
<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.
<nckx>It is for chats.
<faust700>nckx: yes sorry
<nckx>No problemo.
<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.
<faust700>Rutherther: that how my  xdg-desktop-portal logs looks https://pastes.dev/RSUEzoOx3c
<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.
<freedomforge>oh, how do I modify the service?
<Rutherther>are you on Guix System?
<freedomforge>yes
<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.
<freedomforge>is the `=>` a special function used in guile?
<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>one solution is to install slurp
<Rutherther>the chooser will just pop up when you start sharing
<faust700>thats interesting, let me try
<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
<Rutherther>have you tried this one? https://mozilla.github.io/webrtc-landing/gum_test.html
<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>i will try to restart system
<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
<Rutherther>faust700 great to hear! happy to help
<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.
<faust700>cool, thanks!
<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>PotentialUser-30, The "Invoking guix shell" section in the Guix manual has the invocation you need to run X clients in a container: https://guix.gnu.org/en/manual/devel/en/html_node/Invoking-guix-shell.html
<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.
<PotentialUser-30>ieure Oh, I'm using Xorg. Thank you very much. I'll take another look.
<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.
<graywolf>But do not forget to transform them :)
<graywolf> https://issues.guix.gnu.org/72333
<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?
<char>Has anyone tried to package something that uses https://github.com/corrosion-rs/corrosion? It seems like it tries to fetch rust packages without looking for them locally first.
<graywolf>PotentialUser-30: But I personally am happy with the built-in version, so whatever suits you :)
<PotentialUser-30>graywolf Thank you. I will try stuff.
<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
<nckx>Samesies.
<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>PotentialUser-30 use "loginctl suspend"
<PotentialUser-30>Rutherther I will try next. Thank you.
<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>I don't know where to find git-blame here. but can any body check this: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/finance.scm#n716
<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>Yes, I am sure. I work as active maintainer of monero code base FWIW. It is only dependency for `monero-gui` which is totally different pacakge. https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/finance.scm#n792
<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.
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=eef8e2ec46c4155980815e00a394428c0c3de075
<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?
<xFFFC0000>s/anyway/are you aware of anyway/
<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>Thank you :)
<ieure>No, thank you.
<nikolar>well that escalated quickly
<xFFFC0000>Do this channel has moderator? Hopefully it has.
<weary-traveler>times like this i miss rudybot
<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
<Rutherther>xFFFC0000 you can submit via email, see here https://issues.guix.gnu.org/
<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.
<xFFFC0000>Rutherther: thanks. will send an email.
<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
<xFFFC0000>Rutherther: appreciate it.
<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.
<robin>simply*
<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?
<xFFFC0000>s/assume//
<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 ;)
<xFFFC0000>( Between you and me, I have high hopes using GUIX more and more in Monero project, this is just the beginning: https://github.com/monero-project/monero/pull/8929 )
<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.
<RavenJoad>s#bottlenet#bottleneck#
<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.
<RavenJoad>Each project is in a separate repo and publishes its own channel, which Cuirass then pulls from. This was taken from the blog post that inspired this: https://guix.gnu.org/cookbook/en/html_node/Software-Development.html.
<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.
<xFFFC0000>Anyway to use local folder (repo) as origin when defining a package? https://guix.gnu.org/manual/en/html_node/origin-Reference.html
<robin>xFFFC0000, i think you can use a 'file' url, haven't tried it in a while though
<xFFFC0000>robin: thanks, will give it a try
<attila_lendvai>ieure, the manual loads very slow for me, too. (central europe)
<ieure>attila_lendvai, Thank you for confirming.
<attila_lendvai>subsequent reloads are quick, but a ctrl+shift+r is slow again.
<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.
<attila_lendvai>style.css takes 10 secs to load
<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.
<attila_lendvai>10 secs to load (accoring to chromium's network debug panel)
<ieure>Seems unlikely that it'd be rendered serverside, but I don't really know how this stuff is built.
<nikolar>(by render i meant by your browser)
<nikolar>what web page have you tested again
<attila_lendvai>nikolar, render is fast, because a normal page rerload is quick
<ieure>nikolar, https://guix.gnu.org/cookbook/en/html_node/Software-Development.html -- the actual download is very slow
<attila_lendvai>i clicked the link just above in this discussion
<attila_lendvai>ACTION needs to go
<ieure>$ time curl -o /dev/null https://www.gnu.org/software/gnulib/manual.css
<ieure>real 0m15.626s
<ieure>The file is less than 2KiB.
<nikolar>so just downloading it takes forever
<ieure>Yes.
<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.
<nikolar>no clue
<nikolar>that's just silly
<nikolar>2kb for 10s
<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.