<roptat>lenny, something like (assoc-ref inputs "libc") in the build phases
<vivien>I see there are experts here, so let me ask a related question: I would like to create a local-or-plain-file that would take a file name and a fallback content, and either return a local-file encapsulating the file name or a plain-file containing the fallback content. How should I try to do that? I tried with an exception handler, but local-file will happily return something for a non-existing file.
<civodul>vivien: "local-file will happily return something for a non-existing file", WDYM?
<vivien>(local-file "qsdfqsfqfsqsdfqsdf") returns a #<<local-file> ...>
<rekado_>python-notebook has a few odd test failures, all related to deleting files that don’t exist…
<vagrantc>guix shell --pure --development guix glibc-locales guix git imagemagick perl -- locale -a ... only ever shows C and POSIX as valid locales
<vagrantc>if i drop the --development guix argument, it appears to show several locales...
<vagrantc>though not all of the locales in glibc-locales
<silicius[m]>I'm confused on why guix home adds a starting dot to paths in home files service
<silicius[m]>really, I wanted stuff to end up in ~/etc, but I wasn't seeing anything until I had the idea to check the hidden files, and there it was - ~/.etc
<roptat>yeah, I find that weird too, I ended up with a ..config directory with my custom home services ^^'
<silicius[m]>Also changing the XDG_CONFIG_HOME is broken too because there's an undocumented essential-services list that already defines an XDG service in guix home - you can delete it, but then fontconfig that's also included there assumes .config anyway
<silicius[m]>I wanted to try and make some patches once I sort out my dev environment, but I'm not sure how to test guix home. Can someone point me in the right direction?
<silicius[m]>I don't want to pollute my home rn since you can't easily remove guix home's files after it does its thing, you can't roll back before generation 1...
<vagrantc>log in as a different user and experiment?
<apteryx>building qemu seems to hang for me on core-update-frozen (drv: /gnu/store/8xh2ia91gm8g9n113kqd3j31a2nkrkj3-qemu-6.1.0.drv)
<raghavgururajan>apteryx: I haven't experimented anything like that. To my understanding GNOME 40 and 41 are like Win 8 and 8.1 releases. The first version has drastic changes and the second version provides fixes and improvement for those drastic changes.
<raghavgururajan>There should be no API/ABI issues between 40 and 41, but the latter will be smoother in operation.
<apteryx>that's reassuring; as i've been bumping a bunch of GNOME packages to 41 to get passed some issues
<abrenon>by the way (nothing to do with Java but while you seem to be around ^^)
<abrenon>thanks again for your help last time about the variables for IBUS
<abrenon>ok, can't be merely a matter of grabbing the keybindings: I focused another window which I can perfectly move around with my WM's config, but trying to swap it with the "evil java window", it didn't move
<abrenon>and it didn't move exactly once, by which I mean if I tried the same swap move once more it swapped place with the window immediately after the java window
<lilyp>in other words, java windows are simply ignored by your WM?
<abrenon>as if the WM had understood the command, passed what it needs to pass to windows for them to move, but nothing happened
<lilyp>or perhaps java windows ignore WM commands altogether
<abrenon>yeah, I'd say somehow it has a way to ignore the commands
<lilyp>though I don't quite understand what your WM means by "swap"
<abrenon>there's a keybinding in XMonad that makes two windows on the same workspace swap places
<lilyp>does your focused window go over (or under) the java window if the swap fails or is it an atomic operation?
<abrenon>and I think I should also fix the example on the guix environment manual page
<zamfofex>I see. Do you have Xorg installed on the system profile or on your user profile? Because I suppose it might differ depending on which you have. I have it on my user profile, and I needed basically none of that. Also: I think I’d try to prefer ‘--expose’ over ‘--share’ if possible.
<abrenon>I thought .X11-unix needed to be accessible RW
<abrenon>ahhh, I have Xorg installed in my system profile
<abrenon>so wait, you don't even need to preserve DISPLAY ? or to share anything ?
<abrenon>zamfofex: so you don't use a display manager ? you start guix from a tty after login ?
<zamfofex>abrenon: This is the full command I was able to use to start Chromium: ‘guix shell --container --network --no-cwd --preserve='^DISPLAY$' --expose=$HOME/.Xauthority ungoogled-chromium -- chromium’
<zamfofex>abrenon: Yes, basically I invoke ‘startx’ after I log into the VT. (Though I have made it automatic for tty1.)
<zamfofex>lilyp: I’m not suggesting the command I wrote is better, just saying it’s what I had written!
<abrenon>yeah, I had once a setup where I was using TTY1 as my DM ^^
<abrenon>ok, so there's nothing to fix, the command depends too much on the setup : (
<abrenon>(I'm struggling to find a way to have my graphical applications look reasonably good without having to start a whole desktop environment like XFCE or Gnome, so I'm very curious about your setup)
<zamfofex>abrenon: Basically all I did was install ‘adwaita-icon-theme’ and just accept letting the applications look whichever way they want.
<zamfofex>abrenon: I use the “start” profile for packages related to starting and setting up X, basically. (There are some simple scripts I wrote to set up the correct environment variables to use them.)
<vivien>Be careful, contrary to with nix, the local machine won’t build anything and will wait for a machine on the cluster to be online
<abrenon>I'll clearly have to spend some more time experimenting with profiles, system install vs user install of GUI packages and trimming down that environment
*M6piz7wk[m] did the guix installer and gets a screen full of `???` and rage quits
<zamfofex>abrenon: I appreciate you giving me an opportunity to talk about my setup! I always wanted to describe it more thoroughly as a post somewhere, so I’m glad to know some people might be interested!
<florhizome[m]>overall it would be nice to have something like temporary system editing to test such things without having to system reconfigure. Or, hardware configuration. Like, not to be used for constant changes but for working stuff out.
<M6piz7wk[m]>aaa how do i replace the session manager on guix this gdm is painful af
*M6piz7wk[m] is loosing his hugging mind trying to find a solution to his session manager failing without any helpful messages and people telling him to do `dpkg reconfigure`
<florhizome[m]><M6piz7wk[m]> "gdm failed again i hate my..." <- we really need the greetd patch ^^
<florhizome[m]>I just wanted to read up mail conventions, before ... does the „subject“ matter , or I just send to the address specific to the patch?
<florhizome[m]>Uhm sorry I figured I have (services (cons* (service...–service–type)... (remove...) %my–desktop–services)))... where my–desktop–services are defined before (operating–system) as I said.
<nckx>DynastyMic: There's nothing wrong with it, but it's not compatible with what you want to do: it does not ‘see’ packages defined above it. This is, er, a quick example of what works, although there might be a prettier way: https://paste.debian.net/plainh/22b55b65
<nckx>The whole map-compose-output complicates things and isn't needed if you don't use outputs, but it is ‘future proof’ if you later need to.
<vivien>But if I use it in a guix shell, it works.
<guixy>`malcontent-client`fails. `malcontent` is missing the `python-pygobject` input.
<tissevert>and people weren't bothered by the lack of notes ?
<tissevert>I mean tabs hide what is going on in term of harmony
<jgart>the harmony is still there. You just have to listen to it and know what it is doing and where/how it's going. Wes Montgomery knew what the harmony was better than most and he didn't even read music, for example
<jgart>knowing what the musical harmony is doing can also be captured in the mind without a musical score. Even on a very technical level with understanding of theory and all
<jgart>There's blind pianists who've had a "photographic memory" of harmony and didn't read braille at all
<jgart>I know one who could play anybody's solo from any jazz album by heart from the 1960s (pianist included with harmony). He could explain all the harmony theoretically also in terms on notes, chord qualities, and progressions verbally without score
<Christoph[m]>guix pull stores its result in the user's home and not in the store. Why is that? (I use guix on a foreign distro, and I have to update guix for root and for my user, so guix compiles itself twice. Were the result of guix pull in the store, then the second update could be a simple check if there already is a newest version of guix in the store.)
<lilyp>Christoph[m]: guix pull stores the result in the store and symlinks it in the home
<Christoph[m]><lilyp> "Christoph: guix pull stores..." <- Oh! Why does guix pull compile the same guix version twice? (I usually do 'sudo systemctl restart guix<tab>' before the second guix pull. That updates the demon in case it changed, but often it doesn't.)
<acrow>Maybe I am not the only one that gets a bunch of problems when I try to simply 'guix install guile-charting'. I happen to have a bunch of conflicting packages and rather than trying to unravel that I am trying to use guix shell guile guile-charting
<acrow>I'm missing it. size.png seems to say that fully 70% of the space savings is from the deduplication of files with sizes between 64 and 256B. Not the smallest files but also far from large files.
<civodul>acrow: no no, size.png is the distribution of entries in /gnu/store/.links by file size
<acrow>k. I think I see what you are saying and IIUC the space-saving-contribution graph doesn't really offer any great file-size sweet spot for savings. Unfortunately.
<acrow>the old school answer to the slow GC issue is simply to perform the garbage collection more frequently. If I don't run guix gc for a few days it, natually, takes longer to achieve the same outcome than if the prior gc was run an hour ago. I may still be mis-understanding the issue. Certainly faster gc is always nice.
<acrow>I am probably betraying my ignorance in saying that hasn't guix gc already achieved a sort of generational garbage collection in looking through diffs of the extant profiles?
<vivien>To me, a generational garbage collector is a thing that uses the fastest cache first, then once the fastest cache is full, it moves the things that are still alive to a slower cache and starts over
<acrow>profiles could (sadly) become block chains that would let you see the most recent changes to focus on only the things that have occurred since the last gc.
<acrow>Or, more simply, just have them in a revision control format.
<civodul>the analogy to a programming language GC is limited though
<civodul>e.g., we don't "allocate" files in the store
<acrow>vivien, absolutely. I'm just noodling about how to make gc faster and it seems to me to be linked to the time rate of change of profiles.
<civodul>when the GC is invoked, it deletes everything that's unreachable
<vivien>Large store programs like git use a scheme where it makes a handful of directories on the root, and then put actual content in them. For instance, guix could put /gnu/store/xyz-package to /gnu/store/xy/z-package, maybe that would relieve the disk operations?
<vivien>I’m not a fan of SSDs, because on my other machine I have a 250 GB SSD and it’s not large enough for all the guix stuff I want to put in
<jpoiret>when you start testing and packaging stuff, guix really starts to take a lot of space heh. I have ~110 gigs for my laptop install
<tissevert>it's the second time I get the "this GPT partition label doesn't contain any BIOS boot partition" during install in a VM and I have no idea why because I checked three times in cfdisk and it's really puzzling
<jpoiret>(110 gigs for the root partition containing store that is)
<vivien>Also, I made the mistake to include games in my profile, and the full texlive, because I couldn’t tell what packages I needed. Now it should be a bit better.
<KE0VVT>civodul: I use spinning disks for backups.
<nckx>Most people do. It's the (lack of) performance that's terrible, not spinning disks.
<vivien>I still think it would be most optimized to burn DVDs with store items
<vivien>Because ultimately you don’t need to re-write them.
<KE0VVT>vivien: Wow. I'm just imagining a giant DVD rack labeled /gnu/store/. xD
<vivien>Garbage collection would literally be "My DVD pile is too high, let’s get rid of the bottom half"
<nckx>You could get one of those fancy CD-ROM changers from yesteryore.
<nckx>I say we, I've contributed exactly zilch so far.
<acrow>On my system /gnu/store/.links contains >2.8e6 directories/files. It isn't surprising that it takes some time to access it. I wonder if dir_index is being used. My guess is that others have already well covered this ground.
<vivien>I’ve contributed a (real) error message, and I’m in for starting over once the "deleted unused links" phase is over…
<vivien>It’s one of my top 3 rated macros (match is #1, let/ec is #3)
<acrow>Well, looking again, ext2 still works but dir_index would be ignored.
<florhizome[m]>vivien: but does it also produce a link in the local directory, that’s what I wanted. actually I don’t really care about the store. I want the script in the build directory so I can install it when wayfire is installed and the other way around
<vivien>nckx, no problem, the extra verbose info might help others that would want to get into the challenge
<acrow>Since guix breaks dir_index I'm guessing that dir_index is a dead end.
<vivien>florhizome[m], Why would it produce a link in the local directory? I don’t get it.