<tribals>Is there a way to get direct link to store item on substitute server? Like, throw it to someone and he can download it with browser?
<ieure>If I have a package which inherits from another one, and I need to change the arguments to the build system, how does that work? Manual says any package fields I don't specify are inherited, but I'm not sure if it does some deep merge of the argument list. Didn't see a modify-inputs type function that would change those arguments.
<tribals>Package arguments are just alists of #:keyword 'somevalue pairs, those are modifiable through alists-related procedures
<ieure>tribals, Is the alist of the parent package brought into scope by either package or inherit? Or do I have to go pull those out of the original package definition somehow?
<tribals>ieure: you can always pull it directly from inherited package, reffering it by variable name: (package-arguments inherited-package)
<tribals>There was this-package or something like, but I didn't remember and failed to use it myself.
<Kabouik>I can't figure out what the issue is with my package (https://0x0.st/HvDa.scm): it builds fine on my computer but fails on another device (aarch64, less RAM) witht this error (https://0x0.st/HvDm.txt). Yet the device is not OOM, and I know that manually building from sources on that device works, so the issue is with the package.
<Kabouik>I also noticed that the device kind of becomes unresponsive around 96-97%, even though it still has RAM. This does not happen wheq en manually building from sources with cmake and make -s.
<tribals>Try to do this: guix shell -D telegram-desktop; from that shell, try to build your package with make. It can spot differences in dependencies used to build locally and in guix
<lh>I have an extensive home-manager config that manages both these files, and I would prefer it continue to do so while I start by adding simple things like CLI packages to my guix home config
<lh>I can manually add what the guix home services write to .profile and fonts.conf to my home-manager config, and since what is written contains no store hashes, this should work fine. the part I’m missing is how to prevent guix home from clobbering these files
<ieure>lh, I'm mostly guessing here, but I believe that anything Guix Home does is expressed as a service -- so I think you need to remove the services that clash with your home-manager setup.
<ieure>And if you don't want Guix Home managing your startup files, I think you'll have to put some of the stuff it expects into your home-manager setup for them to coexist usefully.
<Kolev>adanska, doing well. Got Guix System on all my computers now. 😀
<adanska>nice!!! watching Guix download and set up a new computer is always so fun
<Kolev>adanska, it's so fast to recover from backup! Run `guix system reconfigure`, run `guix home reconfigure`, copy personal files over - done!
<adanska>yeah! thats the one thing i really appreciate about guix. if something goes wrong or my laptop dies etc... i can get back on my feet really quickly
<Kolev>Icedove shows the Thunderbird icon in the Activities Overview in GNOME.
<lh>it looks like the git-annex package installs no man pages? guix 2ab5e44
<sner>lh: looks like git-annex has some has some handler phases for man page generation that are probably failing (either build-manpages isn't generating them, or its putting them somewhere that isn't $#source ++ "/man" where install-manpages expects them to be)
<Franciman>is there a way to go to the definition of things like slim-service-type inside guix?
<Franciman>for packages you have guix edit package-name that shows you the definition. But what about guix core components?
<lilyp>You can define both packages and services in your config.scm, but the more things you need to add, the longer it gets.
<lilyp>Definitely consider upstreaming whatever you have :)
<Franciman>uhm sorry i mean is there a way to browse the definition of things?
<Franciman>like operating-system records, or discovering which services are defined
<lilyp>Oh, you mean like "guix edit"; sorry, I misunderstood
<lilyp>guix system has search/edit, which is likely what you're looking for
<lh>I pin the guix channel in channels.scm, but every time I pull, it uses a different commit. I am able to override it using --commit=hash --allow-downgrades, but without those arguments it will update again.
<lh>am I doing something wrong? I just want guix pull to use the commit I declaratively specify in channels.scm
<tribals>Could someone help me please with understanding of what guix-publish is capable for? For example, there is an URL handrler for `/nar/file/NAME/sha256/HASH` paths, which seems to what I'm searching for. But I can't figure out how to compose such an URL properly. In order to - what? In order to "just download file (fixed-point output) from store"
<tribals>I have a small server running Guix SD (which is too small to build outputs), but it is accessible publicly. So, I built my own installation media, then copied (`guix copy`) it to my server, then my logic is as follows: a file is already in place (in store), the server runs 'guix publish`, it has domain name, so I can just throw my friend an URL of
<tribals>such installation media and he will download it with browser and use to install Guix on his VM. Can I?
<tribals>cbaines: "they're looking for a file". What does that mean?
<Franciman>after a guix system reconfigure, shepherd gets stuck
<Franciman>how can I understand where it gets stuck? It both prevents the guix system reconfigure to finish
<Franciman>and it also hangs when i run "sudo herd help" lol
<attila_lendvai>Franciman, i'm also staring at that problem right now. i installed my own shepherd latest + my patches, and i thought it's only for me, but apparently it also manifests on latest master?
<attila_lendvai>i'm working on adding proper debug logging to shepherd to make these less hopeless to debug
<attila_lendvai>but i'd need to consult with civodul not to go too much against his ideas. currently the log-output-port is sometimes printed for the user who calls some herd commands, which is not something i would expect
<xelxebar>Oh! It's read backwards. Ha! Never realized. Cheers.
<Franciman>parinfer-rust has an rc/ directory containing scripts for kakoune text editor
<Franciman>if I run guix install parinfer-rust, it seems that these files are not direcyl accessible (i have to go to the store and find them, manually) is there a way to access them or should i just fix the package definition to also include those files?
<attila_lendvai>Franciman, i have a hypothesis: shepherd gets stuck when an error happens in a service's start of stop GEXP. are you using unusual services on that machine?
<attila_lendvai>i have all kinds of custom services that i wrote, some just inline stuff in my machine's config. stress testing shepherd's error handling
<mirai>is the generation before the reconfigure perhaps too old?
<attila_lendvai>mirai, when this happens the herd command becomes unresponsive (hangs). C-c breaks it, but i think shepherd stops responding on its socket
<attila_lendvai>what hangs the reconfigure is that at the end the service restart script hangs like herd does
<mirai>I recall seeing weird things when shepherd version last got bumped
<attila_lendvai>that a good point, though! i doubt such incompatibilities are handled.
<Kabouik>How can I make my package use a `make.sh` script provided with the sources of the program, instead of vanilla make? The reason is this `make.sh` script gracefully detects the number of cores and available RAM in a system to properly set `make -j<n>` the most optimal way. I would like the package to use that as well. This is the package: https://0x0.st/Hvnp.scm
<Kabouik>Alternatively, I'd be interested in how to hardcode `make -j1` in the package definition, but this would be unnecessarily slow on machines with many cores and much RAM.
<lechner>one of the many ways Guix tries to tame the zoo
<Kabouik>lechner, attila_lendvai, thanks. I'll try that! (setenv ""MAKEFLAGS" …) looks simpler to add to my package definition, I'll start with that.
<Kabouik>Using make.sh from the sources wouldn't be standard, right? I assume it contradicts the Guix paradigm to use an arbitrary build script, even if it comes from the tarball.
<attila_lendvai>Kabouik, there's plenty of precedent for that, but it's additional complexity in the package
<Kabouik>Good to know. Actually the benefit would be nice as it would significantly accelerate build time on machines with more RAM/cores, but let's try to make it work on low-memory machines first with -j1. If it works, then I can submit a patch, and I'll see later for a more complex way.
<lh>here is my .config/guix/channels.scm. I have guix pinned to a commit. despite this, guix pull seems to always pull latest. my understanding from (guix)Invoking guix pull is that the pin here should take precedence over the presumably unpinned guix in %default-channels, no?
<lh>sner: you mean XDG_CONFIG_HOME? it is set to /home/me/.config, so I would say sane. also, this still happens with guix pull -C ~/.config/guix/channels.scm. I also noticed it only happens with guix, not emacs
<lh>so it seems like somehow the default channel in the guix source code is taking precedence, but from reading the code I can’t find how that would be happening
<ieure>Hi folks! I'm having a problem where `guix repl' can't use modules in any channel other than the official guix one. the repl complains that there's "no code for module" when I try to use it; but `guix install' will install them. My assumption is that I should be able to use modules from any channel I have configured.
<sner>i totally missed that line in your first pastebin, i wasn't aware that function existed until now; thanks for giving me the chance to educate myself
<ieure>Okay. So when I `guix repl' and `,use (gnu packages base)', it adjusts %load-path to point to my channels. Great. But in the REPL started by emacs-guix, using that module *doesn't* change %load-path.
<ulfvonbelow>ieure: (gnu packages) modifies %load-path and %load-compiled-path based on GUIX_PACKAGE_PATH and the channels
<ieure>ulfvonbelow, Yeah, I got that. But how come it *doesn't* do that in the Geiser REPL?
<ulfvonbelow>it's a bit unintuitive and should probably be documented at some point
<sner>ieure: check the environment vars set for your emacs process
<lh>sner: I see, thanks. yeah I’m doing this with guix home so that should work
<ieure>ulfvonbelow, Looks like (current-channels) is the function. It shows only the Guix channel. `guix describe' in the shell shows all of them.
<ulfvonbelow>ieure: I believe I see the root of the problem - current-profile in (guix describe) has this: (and (string-suffix? "/bin/guix" program) ...)
<sner>lh: looks like you're good, but just for reference, if you wanted to do this from command-line, you would be out of luck. The specification->package function should probably be extended at some point to support specification of package location (repo)
<ulfvonbelow>basically, it uses the filename of the program by which the current process was started to try to figure out "which" guix it's running from, which is also how it finds out what its channels are
<ieure>ulfvonbelow, I see, and the emacs-guix repl starts Guile and loads the Guix modules, so it fails that test.
<lh>sner: good to know, thanks. coming from nix I don’t intend to use guix imperatively at all, fortunately
<sner>lh: also, for your own sanity, prefixing your imports of each channel (i.e. (use-modules ((gnu packages emacs-xyz) #:prefix guix:))) will make things a lot more readable
<ulfvonbelow>and the process of looking up that information involves many invocations of mlambda which will cache the result until explicitly invalidated
<lechner>Hi, is the --rebuild-cache option to 'guix shell' supposed to invalidate the entries in ~/.cache/guix/profiles?
<ieure>ulfvonbelow, Have a suggestion for a fix here? Seems unlikely that I'm the first person to hit this, and also bizarre that "the perfect setup" would make something like this so difficult.
<ulfvonbelow>personally I usually do packaging stuff from the command line (probably far from perfect), and hacking on guix itself from geiser
<lh>sner: wouldn’t that be #:prefix emacs- or something?
<ulfvonbelow>I think you can probably work around it by starting geiser, then loading only (guix describe) at first, then setting initial-program-arguments to a list with the first element being the full path to the guix command, then loading (gnu packages)
<sner>lh can you pastebin your whole home config.scm
<lh>actually I had commented out setup-environment, let me try restoring that and logging in again first
<lh>I don’t think I had realized that packages would add to the profile’s etc/profile and didn’t like that it hardcoded xdg vars
<sner>lh: gotcha, note that you can override those xdg values by extending home-xdg-base-directories-service-type
<sner>you can also override pretty much any default behavior of guix-home by changing the essential-services record parameter in your home-config.scm (though this is a fast-track to breakage if you're not careful)
<lh>yeah I had to do that yesterday to stop it from clobbering fontconfig lol. I’m not touching gui packages yet
<lh>ok I source setup-environment in .profile now, but have the same issue. setup-environment sources etc/profile and the variables in there are getting set
<lh>maybe no one has run into this because they have guile-gcrypt in their environment from emacs-guix or something else
<sner>lh: yeah it looks like this is something of an oversight for users of guix under another OS. In the guix system case, guile-gcrypt is always available in the load path due to the guix-service-type system service installing guix in the global profile
<sner>in your case, the guix executable is managed by nix, meaning that the guix package itself isn't present in any of the guix profiles for your user. as such, its dependencies aren't available either
<sner>alternatively, you could just add the guix package itself to your home config, though that might result in some weirdness during updates
<lh>or maybe I can try adding guix itself to my guix home
<sner>we are riding the same wavelength in real-time lol
<lh>yeah I really appreciate your help, my first weekend with guix would have been unmeasurably worse without this channel
<sner>glad we got things resolved! i've been through the wringer with guix enough times to know your pain, happy to help
<lh>can you think of what might happen if I use guix installed via guix home to guix pull and guix home reconfigure? for one it means there will be a version mismatch between the guix client and the guix daemon, I think. I will probably just add the guix deps to be safe
<lh>wait, command -v guix already reports /home/lh/.config/guix/current/bin/guix. so it must be designed to update in place, and adding the same package to my home config should be fine, I’d guess
<lh>I guess the guix client/daemon interface must be frozen in that case
<sner>lh: the guix command binary is generally designed for update in place on all systems, so you should be ok. If you want to avoid adding the guix package directly, you can use package->development-manifest from the (guix profiles) module to only add the packages needed to build guix
<lh>it does seem like there should be some kind of construct to install an interpreter with some packages without having to muck about with env vars you need to log out to reload. e.g. nix has python3.withPackages https://nixos.wiki/wiki/Python