IRC channel logs

2023-09-17.log

back to list of logs

<mirai>lilyp: thanks!
<lilyp>I don't intend to make gnome-team even bigger than it already is. The libxml2 update is only something I'd consider because a) it's widely used in GNOME afaik and b) there have been some API-visible changes in these minor releases that make life much easier
<lilyp>I do wonder whether libxml2 handles XML 1.1 now
<mirai>while I was working in the docbook cleanup series I considered upgrading libxml2 since I was already doing world-rebuilding changes
<mirai>ultimately decided to leave it for later since I didn't want to troubleshoot for an extra variable in the mix
<mirai>but I did take some notes regarding libxml2
<lilyp>yeah, it's definitely better to do things one by one
<mirai>when upgrading it, the build system should be switched to cmake (or meson?)
<mirai>and there's an optional (but good practice) component to package
<mirai>the XML conformation suite, used for testing libxml2
<lilyp>prefer meson for gnome stuff
<lilyp>and yeah, tests are always welcome
<lilyp>(I'd actually like to say prefer meson without qualifiers but that'd get some cmake folk mad)
<bumble_>geri: the file is succesfully generating lists used by home-xdg-configuration-files-service-type ...
<bumble_>but I'm not sure how you prefer the path-expansion behaviour
<bumble_>and am interested to implement it that way
<mirai>cmake is strange
<mirai>on the surface it looks like something cleaner than autotools (not hard)
<mirai>but honestly I've never managed to understand how the thing works
<mirai>it has documentation yeah but reading it still leaves you with no clue
<mirai>I've had better luck understanding and modifying autotools than cmake (despite having used neither)
<mirai>meson on the other hand is actually understandable
<mirai>managed to use it for a project and even wrote a wrap for one of its dependencies
<lilyp>(x) on "cleaner than autotools"
<jadams_>Hey there. I have an Asus G513Q laptop with an AMD Ryzen 9 5900HX with Radeon Graphics, which includes a Vega Mobile integrated GPU and an NVIDIA GeForce RTX 3070 discrete GPU. When I try to run the installer it hangs in the early console, mentions it can't load an hci0 driver due to non-free firmware. What do?
<lilyp>I don't suppose downgrading your hardware is an option? We sadly can't advise you on non-free firmware, you have to get that to work on your own.
<singpolyma>A ryzen with an nvidia GPU? Oof
<jadams_>i just had nixos on the thing and i wanted to use guix instead so i could be spending time on a timeless language
<singpolyma>lilyp: it should be possible to at least skip loading the driver rather than hanging, no?
<jadams_>i have read posts about migrating an ubuntu machine to a guix, in their case a digitalocean machine - presumably i can do something like that once it's set up
<singpolyma>jadams_: if you actually want the nonfree firmwares to load, the secret keyword for Google is nonguix
<jadams_>i just want to get enough guix under my belt that i can justify it driving my next hardware purchase parameters really
<jadams_>also i have a pinephone and i hope i can do stuff with guix there as well but :shrug:
<ulfvonbelow>there's also always the virtual machine route
<ulfvonbelow>I daresay your hardware sounds strong enough
<singpolyma>You can also use guiz on top of debian or similar with apt install guix
<singpolyma>Then debian manages the hardware part and you can use guiz for what it's good at in software land
<jadams_>at any rate, i am sorry to bring nonfree discussions in. thanks for being patient with me, carry on :)
<jadams_>i might just go with a vm atop nixos for now
<mirai>jadams_: the nonfree firmware can be a red herring
<mirai>its possible the issue is due to something else
<mirai>better post this to bug-guix and let others chime in
<lilyp>singpolyma: meh, depends on the hardware; I wouldn't count on getting a functioning screen even with commonly advised boot options
<ulfvonbelow>I remember reading somewhere benchmarks for what the overhead of each fiber spawned was, but I can't find it now
<ulfvonbelow>(overhead in bytes, that is)
<ulfvonbelow>anyone know where I might have read that?
<bumble>guix!
<apteryx>how can I modify preferred MIME applications on Guix System?
<sneek>Welcome back apteryx, you have 1 message!
<sneek>apteryx, janneke says: i found the newly added "rewrite-url, to-version specified" test to fail on the Hurd unless i do `guix shell -D guix nss-certs openssl'; does that mean guix is lacking those as dependencies/inputs?
<apteryx>janneke: the intention was for the calls to be mocked; maybe one is going through and failing? It'd be useful to see the backtrace
<mirai>I know you can change the app used in Gnome settings
<apteryx>mirai: OK!
<apteryx>I wonder what's the real issue here: https://ci.guix.gnu.org/build/2002037/details
<honey-apple>"Build 2002037" https://ci.guix.gnu.org/build/2002037/details
<apteryx>ah: cannot build missing derivation ‘/gnu/store/5c5hzfbn2ydw3civjvylmhc4jgfj2ahz-libmygpo-qt-1.1.0.drv’
<apteryx>ah, #54447
<honey-apple>"cuirass: missing derivation error" https://issues.guix.gnu.org/54447
<apteryx>ACTION keeps being bit by that issue
<vivien>ACTION too
<oriansj>nckx: governments are just people, flawed and messy as all people are. The only difference is they survive because they are very effective at 3 things: 1) protecting themselves from outside threats, 2) protecting themselves from internal threats and 3) collecting tax revenues needed to fund 1&2 . But as a techology, it is responsible for saving and ending more lives than any other techology ever invented. A human based, self-improving
<oriansj>(in regards to the 3 keys) artificial intelligence
<RavenJoad>I am proud to say that apcupsd has been packaged for Guix and allows for users to provide scripts for the various events that apcupsd recognizes!
<vivien>Oh, so Patchwork does not know the base commit when it receives a patch series??
<vivien>Now I understand why qa can’t apply the patches correctly
<lilyp>apteryx: unless you're using Guix Home, mime applications work the same way they would on foreign distros
<janneke>apteryx: backtrace (on the Hurd) for "rewrite-url, without to-version", without nss-certs installed https://paste.debian.net/1292204/
<honey-apple>"debian Pastezone" https://paste.debian.net/1292204
<janneke>thanks, honey-apple, how helpful
<janneke>(now that i've added nss-certs to %base-packages/hurd, which is probably a good thing to always have anyway, "guix" builds fine again)
<vivien>Mmh, I just sent a patch to guix-devel, but I did not indicate it was for qa-frontpage
<vivien>Did you receive it, or should I subscribe, or do something else?
<vivien>My patch does not show up :(
<vivien>I think I’ll have to subscribe
<vivien>Did you receive it now?
<janneke>vivien: if it's your first time posting to guix-devel, the mail will await human moderation
<vivien>Oh ok
<janneke>so, no worries :)
<vivien>Well, except it will be sent twice
<janneke>well, then don't worry about that either :)
<vivien>And both times I forgot to specify the target repository, so I’ll send a follow-up once they are received
<vivien>Email is hard
<janneke>:)
<rdrg109>[Question] I'm getting the following error "aborting reconfiguration because commit 0e6215ac72cf642b0bafc4e1ea3120535bd7245a of channel 'guix' is not a descendant of 30355c17d7b7eaeb16976c1432d660cb0783014a"
<honey-apple>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=0e6215ac72cf642b0bafc4e1ea3120535bd7245a
<rdrg109>How to fix this problem? Here's relevant information: http://0x0.st/HOAL.org (for those willing to help)
<nckx>Did you run ‘hash guix’?
<nckx>If so, what does ‘type guix’ say?
<rdrg109>nckx: Could you confirm this? The correct order of commands is the following: (1) guix pull (2) hash guix (3) sudo guix system reconfigure my-config.scm
<nckx>Correct. I just didn't see you run ‘hash’ guix in your paste.
<nckx>vivien: I can discard all 4 mails if you'd rather send a third version?
<nckx>Nobody need ever know.
<nckx>Meanwhile: rdrg109, the problem is almost certainly that you're invoking the system-wide guix (/run/current-system/profile/bin/guix) instead of the pulled one (~/.config/guix/current/bin/guix), meaning ‘guix system reconfigure’ would effectively downgrade the system, which Guix is guarding against and aborting.
<nckx>Make sure that ~/.config/guix/current/bin/guix is in $PATH.
<nckx>If it's not in PATH at all in this shell, let me know.
<nckx>oriansj: There you are!
<rdrg109>nckx: This time I did run "hash guix", but the same problem occured. Please see: http://0x0.st/HOAp.txt
<nckx>And ‘type guix’? Throw in an ‘echo $PATH’ whilst you're at it.
<rdrg109>nckx: please see http://0x0.st/HOAO.txt
<nckx>Hmph.
<nckx>> Make sure that ~/.config/guix/current/bin/guix is in $PATH.
<nckx>☝ it is not ☹
<nckx>Guix should take care of this. If you open a new shell, at least, does ‘type guix’ return ~/.config/guix/…?
<rdrg109>nckx: I logged in again in tty2, but "type guix" returns "guix is /run/current-system/profile/bin/guix", so I think I might have done something that affects the normal behavior of guix (since you stated that Guix takes care of this)
<rdrg109>Ok, I'll make sure that ~/.config/guix/current/bin/guix is in $PATH and try "guix system reconfigure" again
<nckx>This should probably not be conditional: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system.scm#n1043
<honey-apple>"system.scm\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system.scm#n1043
<nckx>I.e., Guix should add it even before it exists.
<nckx>However, once it exists, I'd expect new log-in shells to have it in PATH.
<nckx>rdrg109: Maybe it has something to do with whatever adds the duplicate ~/.local/bin entries? I'm not blaming you here, I'm just not sure what's going on so blaming some forgotten dotfile is the easy way out 😉
<nckx>rdrg109: OK, I hadn't had my morning coffee yet and missed the unconditional PATH= clause. So this shouldn't happen. After /etc/profile is sourced, $HOME/.config/guix/current should be in your PATH. Can you paste your /etc/profile?
<nckx>ACTION wanders off in search of bean juice.
<rdrg109>nckx: I added ~/.config/guix/current/bin/guix is in $PATH and now "guix system reconfigure" is being executed as expected
<nckx>Yes, but the root problem is that it wasn't there when it should have been.
<nckx>Unless you were overwriting it somewhere after /etc/profile ran.
<rdrg109>nckx: Here's /etc/profile: http://0x0.st/HOAW.txt
<nckx>OK, see, at the ‘# Prepend setuid programs.’ point, surely ‘$HOME/.config/guix/current’ must have been added to PATH no matter what?
<nckx>Am I missing something? Could there be an empty/bogus $HOME/.config/guix/current/etc/profile at some point, that when sourced doesn't set PATH?
<nckx>(I think it's more likely that a [forgotten?] dotfile of yours might have accidentally removed it, but we can't rule out Guix.)
<rdrg109>nckx: btw, I modify "PATH" in my home configuration. wait a sec. I'll share it with you
<nckx>Ah.
<rdrg109>nckx: http://0x0.st/HOA4.scm
<rdrg109>Could it be the root cause of the probem?
<rdrg109>nckx: When I log out, and I log in in tty2, "type guix" returns "guix is /run/current-system/profile/bin/guix". So, although "guix system reconfigure" exited successfully after I manually included ~/.config/guix/current/bin/guix in $PATH, the root problem hasn't been solved yet.
<nckx>Apart from that snippet running thrice (https://0x0.st/HOAO.txt) I don't see an obvious bug. It doesn't look like it could clobber or ‘revert’ $PATH, unless that literal "$PATH" is accidentally dereferenced early somehow.
<nckx>rdrg109: Indeed.
<rdrg109>nckx: By the way, don't feel obligated to help me. You can have your coffee :) I can wait a few hours
<nckx>I'll try to reproduce this with your guix home configuration (don't use GH myself).
<nckx>rdrg109: No obligation, but I will take care of other things first. I'll let you know what I find.
<rdrg109>nckx: Ok, thanks for the help!
<rdrg109>nckx: Solved! Now, whenever I log out and log in, "$ type guix" returns "guix is /home/rdrg/.config/guix/current/bin/guix". For the record, this is how I got rid of the error "aborting reconfiguration because commit <<commit>> of channel guix is not a descendant of <<commit>>": First, I executed => export PATH="$HOME/.config/guix/current/bin/guix:$PATH" <=. Afterwards, I ran => sudo guix system
<rdrg109>reconfigure my-config-system.scm <=. Finally, I ran => guix home reconfigure my-config-home.scm <=. I logged in again and "$ type guix" returns "guix is /home/rdrg/.config/guix/current/bin/guix"
<rdrg109>I think I know what's was the root cause of this problem (please let me know if it makes sense). After I did the system installation, for some reason which I don't know, the error "aborting reconfiguration because commit <<commit>> of channel guix is not a descendant of <<commit>>" was shown. I thought that the only solution was to use --allow-downgrades, so I executed => sudo guix system reconfigure
<rdrg109>--allow-downgrades <=. Afterrwards, I executed => guix home reconfigure my-config-home.scm <=. Because I was using a previous version of "guix" (since I used --allow-downgrades), so the home configuration exited successfully but resulted in faulty configuration.
<nckx>So with (a subset of) your home configuration in a VM, I still get PATH="/root/.local/bin:/root/.local/bin/npm-global-packages:/root/my/git-repos/guix-config/scripts:/root/.guix-home/profile/bin:/run/privileged/bin:/root/.config/guix/current/bin:/root/.guix-profile/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin". The correct "root/.config/guix/current/bin:/root/.guix-profile/bin" is there, so your home configuration doesn't appear
<nckx>directly at fault. I don't see how an old guix could result in ‘faulty configuration’ TBH, but if you consider this solved I'm happy to follow.
<nckx>Then again, your PATH was clearly being extended thrice, so who knows.
<nckx><for some reason which I don't know> Probably because you hadn't pulled yet, or if you had pulled, because you were still using the ‘old’ guix in /run/current-system/… (=the same problem you had above).
<nckx>Well hello. <https://superkamiguru.org/projects/msg> (Maybe this was .well-known inside the garden, but it's new to me.)
<honey-apple>"MacOS Subsystem for Guix" https://superkamiguru.org/projects/msg
<janneke>rekado: ^^
<geri>that's a hilarious way to put it
<geri>ello
<janneke>sneek: later tell rgrinberg: your quit message hammering finally convinced me, now i'll want to go buy a Mac too!!!
<sneek>Okay.
<janneke>sneek: botsnack
<sneek>:)
<geri>*cries in no good risc-v laptops*
<geri>i'd never buy a mac - why spend extra to get worse OS with unmaintainable hardware
<vivien>geri, I share your sorrow
<mfg>Hi, i'm currently trying to install guix system on a new machine and am wondering why i have the problem that i have: It seems that during `guix system init` the generated grub efi bootloader contains `search.fs_uuid <uuid>` where <uuid> is the uuid of the mounted luks volume. This seems wrong to me (and when rebooting i only get a grub rescue shell)
<mfg>Why is this?
<mfg>On another machine (also running guix system but installed a couple of years ago) there is actually not a single mention of `search.fs_uuid` in grubx64.efi
<mfg>the <uuid> that gets inserted is the uuid of the actual mapped device, and not the partition that needs to be mapped at boot, i tried manually changing the uuid, but that also doen't work
<mfg>ls /home
<rdrg109>[Question] I'm using sddm-service-type. I input my username and my password, but when I click "Login", nothing happens. I should mention that "Session" is aa dropbox with zero items, so this might be causing the issue. If so, how can AI make the dropbox have some entries?
<geri>mfg: i get grub shell when improperly configuring bootloader and partitions
<geri>let me copy that part from my config rq
<geri>example, hope it's useful mfg https://0x0.st/HOmj.scm
<mfg>geri: my config is: https://paste.debian.net/1292230/ which pretty much looks the same to me, sadly
<honey-apple>"debian Pastezone" https://paste.debian.net/1292230
<mfg>so the next thing may be an improper partition scheme
<mfg>but comparing it with a machine that works, it seems fine
<gerim>i only see that your boot partition is using 'fat instead of 'fat16
<mfg>because it's fat32, yes. this is what the guix manual says. Maybe i should also try fat16?
<gerim>i remember strugling with making the thing work too, maybe i forgot -F32 when formatting the boot partition or smth
<mfg>:D
<gerim>give it a try, it cant hurt
<nckx>FAT16 was always out of spec for UEFI, even if some (most?) firmware will read it.
<nckx>rdrg109: I think SDDM uses .desktop files (that's how I start Sway, anyway). So do you have a WM or compositor in your system's (packages …)?
<mfg>what wonders me the most is: the config is the same on two machines (modulo uuids of course) and on the other one it works :|
<nckx>🤔
<gerim>might be wrong uuid's
<nckx>Feels like a cop-out, but agreed, if everything else is truly identical.
<gerim>nckx: do you not use virt-manager at all?
<nckx>No.
<nckx>I mean, I do not use it.
<gerim>it doesnt detect my gtk theme, while icecat & nicotine do
<gerim>time to learn qemu fr
<mfg> https://paste.debian.net/1292234/ this is the uuids on the working machine. The ones that are used in the os config are for /dev/nvme0n1p1 and /dev/nvme0n1p2; so the vfat and the crypto_LUKS ones. This works, doing the same on the other machine does not. The grubx64.efi files under /boot/efi/EFI/Guix/grubx64.efi files are different in the sense, that the one that works does not do `search.fs_uuid`. Is this some grub auto detection
<mfg>magic?
<honey-apple>"debian Pastezone" https://paste.debian.net/1292234
<nckx>I don't think naked QEMU is ‘better’ to be clear. I mainly use it with the -nographic serial console, just to illustrate what my needs are.
<mfg>because the uuid that grub inserts there is not mentioned in my os config
<nckx>I think this is done by grub-probe, but don't quote me on that.
<nckx>(/sbin/grub-probe, not a Guix thing.)
<gerim>its better in that i get to close my eyes on missing gtk themes in virt-managee/viewer lole
<gerim>on sway at least
<gerim>but my bspwm setup makes me cry too
<nckx>I think I might switch to GNOME this week, as far as ‘sentences I'd never thought I'd say’ go.
<gerim>i was thinking of giving it a try but kinda forgetting all the time
<gerim>i like my custom stuffa tho
<mfg>Ah well, there is one difference i didn't see before, i followed th amnual and it creates a luks2 encrypted device, but the working machine has luks1; will try with luks1
<geri>oh, i remember something about that too
<geri>is there a way to partition a drive functionally? :D
<geri>like so if it works itll always work
<somenickname>Those Dell PowerEdge server run with coreboot?
<somenickname>on Berlin
<mfg>if this is th eproblem, then it's weird that the manual explicitly uses luks2
<mrvdb>clear
<nckx>Yes, and I think the manual is (f)actually wrong here, but I don't use LUKS myself so can't be 100% sure.
<nckx>I'd try straight LUKS1 to be safe.
<nckx>somenickname: No.
<nckx>Would be ideal, but when someone gifts you a stable full of racehorses, you say yes.
<nckx>s/use LUKS/use LUKS2/ — 1 was still the default when I created mine.
<somenickname>nckx:  Okay that means I remembered something wrong.  Would have been awesome
<mfg>i guess the same is true for my other machine. LUKS1 works
<nckx>You might be thinking of bayfront, which is a librebooted D16.
<mfg>FeelsBadMan, it took me 1.5 hours to realize :(
<nckx>(Bayfront is better known as bordeaux nowadays.)
<somenickname>nckx: https://www.asus.com/de/commercial-servers-workstations/z10prd16/ do you mean this with D16?
<honey-apple>"Z10PR-D16 | Server & Workstation | ASUS Deutschland" https://www.asus.com/de/commercial-servers-workstations/z10prd16
<nckx>Close. https://www.asus.com/commercial-servers-workstations/kgped16
<honey-apple>"KGPE-D16 | Servers & Workstations | ASUS Global" https://www.asus.com/commercial-servers-workstations/kgped16
<nckx>7 years old, wow.
<oriansj>nckx: well the x200 is from 2008; so one can comfortably use a 15 year old computer
<nckx>I'm typing this on an X230T and feeling comfortable as heck.
<somenickname>Wasn't AMD at this point trash?
<nckx>I mean that it makes *me* feel old.
<formbi>I have a W520
<formbi>btw, people recently figured out a way to coreboot a very modern mainboard: https://shop.3mdeb.com/shop/dasharo-supported-hardware/msi-pro-z790-p-wifi-ddr5-motherboard-with-dasharo-entry-subscription/
<nckx>somenickname: ‘Trash’ doesn't sound like something I can obejctively confirm or deny. By many metrics, both duopolists have been trash for ages, if not -ever.
<nckx>formbi: Noice.
<nckx>somenickname: The berlin build farm is all AMD all day every day, so heyo.
<oriansj>somenickname: well those were K8 architecture so no, they were great. The problem was that core2duo came out and was "cheating" a great deal (what hardware protection lolz)
<formbi>the «trash» probably meant that those CPUs were slow compared to others from that period
<nckx>Hey now I have fond memories of my AMD Athlon64™ X2.
<nckx>It had TWO CORES.
<somenickname>formbi: Your link isn't working.  Yes I meant that.
<nckx>Which was twice as many as any of my friends had, which was important.
<oriansj>formbi: define slow. as we are talking less than 8% performance difference
<formbi>oriansj: I don't know if that was the case, just what that person probably meant
<formbi>somenickname: hmm, it's working for me
<somenickname>Tried again, now it works for me too.  Was some connection issue
<nckx>Why do I feel like speculative execution mitigations hit far harder than 8% in some workloads.
<oriansj>also if one was doing virtual machines back in 2008, AMD K8s had a 15% advantage over core2duos
<oriansj>nckx: because fixing a bug in software costs a great deal more in terms of performance than the gain to the hardware itself
<oriansj>gates perform in the picosecond range and instructions in the nanosecond
<somenickname>Buys full price for a 4.5 GHz CPU but later it is a full throttled CPU because of all the bugs.  What a nice world we live in.
<nckx>Oh, I know. I was being rhetorical.
<somenickname>3.5"
<somenickname>I wish my CPU could reach 4.5
<nckx>Still the best inches.
<oriansj>somenickname: think of it this way. 15 years in IT used to mean the difference between a 386 and a K7
<oriansj>0.5MB and 512 MB
<oriansj>1024x improvement in every dimension
<oriansj>now it means 1.5x
<oriansj>at best
<somenickname>Sometimes I question myself if we are even ready for all that compute power.  Realistically it is more used for bad stuff than for good.  Smartphones are the best example.
<formbi>and for websites that make CPUs have a heart attack
<oriansj>as was said in the time of old: what moore gives, gates takes away
<somenickname>is this a joke as of MS Windows is bad SW?
<oriansj>somenickname: it is a reminder that software developers will waste every advantage hardware provides to cut their own development efforts.
<oriansj>Those who remember the first SSDs, know very well how big of a shock that change was.
<oriansj>now, things are even slower than when we had spinning disks.
<somenickname>Even on Guix
<oriansj>somenickname: depends on what you install
<nckx>For mainstream software, every gain in raw hardware performance will be consumed by abstraction.
<oriansj>or bad engineering choices
<somenickname>I wonder if by all that complexity a computer has nowadays, it is even understandable what happens
<nckx>Stop poking oriansj with lab-engineered perfect talking points. (☺)
<oriansj>somenickname: well yes, computers are by their nature understandable. The problem is the amount of time available and the ease of access to core materials (source code)
<somenickname>Are CPUs build in a micro arch? I doubt one person can understand the whole billions of transistors so I assume it is splitted kinda like hurd microkernel?
<formbi> http://ix.io/4GDv I packaged some Python things, but there are a few problems like tests or sanity checks not working
<oriansj>somenickname: modern CPUs are designed in software and the transistors are the compiled results
<formbi>would anyone with more experience in Python packages have some advice on how to fix the issues?
<formbi>the people on the mailing list will just tell me to frick off if I send it like this
<somenickname>oriansj:  so they basically don't care about this stuff.  SW would be like VHDL?
<oriansj>formbi: that sounds horrid, mailing lists should be enabling considerate and deep cooperation not cheap gate keeping behaviors.
<vivien>While my patch to qa-frontend is awaiting moderation, I’ll just tease you by claiming qa does not respect the feature branch for your patch series and will always apply it on top of master, making it pretty useless for any feature branch basically.
<oriansj>somenickname: if your business is to reduce costs and optimize for maximal return on investment. Why would you hand optimize anything beyond the bare minimal number of bits.
<formbi>i my experience it's always been like /why are you sending it like this, you have to do 20 more things which aren't documented anywhere/
<nckx>That's not good.
<oriansj>formbi: sounds like they skipped the first rule of community, help others find the information needed to become productive members of the community.
<somenickname>formbi: Is it the guix-devel ML?
<nckx>It's also not good that I have name(s) I think you mean.
<nckx>Even if you send raw WIPs to guix-patches@, a ‘thanks but this belongs on guix-devel@’ isn't that hard to write.
<formbi>somenickname: yeah
<nckx>Wait what. The whole point of sending patches there is that they're in no state to merge.
<formbi>or maybe guix-patches, I don't know…
<formbi>but but it's the same people anyway
<somenickname>Well, I guess those people will have fun if I start on contributing
<nckx>Same people, different intended content, but that can be explained concisely and politely.
<nckx>formbi: Which of those packages would trigger the most confusing error?
<attila_lendvai>what am i missing? guix shell gcc-toolchain libusb; make => fatal error: libusb.h: No such file or directory
<apteryx>you probably want libusb-compat
<apteryx>libush.h is from the legacy 0.1 IIRC
<attila_lendvai>apteryx, yep, thank you!
<formbi>nckx: I put the more confusing things in the comments, for example with python-runtests it's «command "…/pytest" "-vv" failed with status 1» and basically nothing more
<attila_lendvai>apteryx, hrm. i was wrong, it still fails with libusb-compat. i tried to prefix every include like this "#include <libusb-1.0/libusb.h>", but then linking fails with missing libusb symbols.
<attila_lendvai>ACTION checks the guix flashrom package
<attila_lendvai>ACTION facepalms, realizing that the guix flashrom supports all the programmers...
<civodul>janneke: hey! i noticed i broke the childhurd test… back in April; db014e394e4fe256d2413d8316c85119828dc2f2 fixes that but now i’m getting “Bad ram pointer” from QEMU
<honey-apple>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=db014e394e4fe256d2413d8316c85119828dc2f2
<civodul>so the childhurd doesn’t start, at least in a VM
<civodul>do you observe it as well?
<civodul>(i wonder if it could be due to some obscure transient issue)
<zamfofex>Hello, Guix! Would anyone mind taking a look at https://issues.guix.gnu.org/63088 ? Is there still opposition to it regarding the machine learning networks?
<honey-apple>"[PATCH 0/3] Add Lc0" https://issues.guix.gnu.org/63088
<civodul>zamfofex: hi! it’s still being discussed, but there was some consensus on the idea of defining guidelines
<civodul>precisely so we can quickly determine whether a given package is acceptable or not
<geri>is there a way to disable guix home creating ~/.config/fontconfig/fonts.conf?
<civodul>i don’t think anyone has stepped up yet to lead a group writing those guidelines
<civodul>geri: not sure, we’d need to check home-fontconfig-service-type
<PotentialUser-60>I heard from this group that intelintegrated GPU are supported.so is intel arc GPUs also supported in guix?
<nckx>PotentialUser-60: That doesn't mean *all* integrated Intel GPUs are supported. I've been told that Arcs require nonfree firmware, so don't support Guix.
<nckx>formbi: AFAICT python-copier's ‘with status 5’ failure is just due to having no test suite. Terrible failure mode, but you can just write ‘; no test suite’ and be on your way. python-runtests is failing because it's missing python-pytest as native-input (I didn't check whether pytest should also be propagated, i.e., whether runtests would import pytest at run time).
<euouae>Hello I have a question about channels
<euouae>is the guix channel just for the guix distribution? and other channels for packages?
<nckx>The ‘guix’ channel contains the guix package manager (and everything that comes with it like guix-daemon, ‘guix system …’, …) and packages. There is no separation, they are one library and one love.
<euouae>What's special about the "guix" as name for a channel?
<nckx>Other channels are for *more* packages. And, very occasionally, other things (like systems or extra subcommands).
<geri>civodul: it gets created even if your home config only has like 1 package, so it's not there per se ig
<euouae>OK. What is the significance of the channel introductory commit?
<euouae>I don't understand the authentication, is guix checking that the commit is signed?
<nckx>It's the root of trust, all subsequent commits must be signed by the same key or a key introduced by a later commit that was signed by that key.
<civodul>euouae: check out https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html (it gives the perspective of a channel author)
<honey-apple>"Specifying Channel Authorizations (GNU Guix Reference Manual)" https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html
<nckx>euouae: It's checking that the commit is signed with a key in .guix-authorizations, and that the version of .guix-authorizations in use was itself added in a signed commit.
<nckx>You have to bootstrap that chain somehow, and that's done by explicitly trusting an introductory commit, the first commit you deem trustworthy and worthy of adding other keys.
<euouae>ah I see
<euouae>so guix takes into consideration the web of trust of gpg?
<nckx>No, not the web of trust.
<vivien>Can I run a graphical program under guix shell --container?
<vivien>I found a mailing list entry recommending --preserve=... arguments, but the manual says it’s only for --pure
<Altadil>vivien: Yes, but it can be hard to figure out all the required packages and options
<euouae>OK. I'll look into it
<nckx>vivien: It's definitely not only for --pure.
<nckx>Also, see the Eolie example in (guix)Invoking guix environment.
<nckx>It might not be enough but it's a start.
<vivien>nckx, I’m trying to simplify the eolie example with xeyes. $ guix environment --container --network --preserve='^DISPLAY$' --ad-hoc xeyes -- xeyes
<vivien>I get: Authorization required, but no authorization protocol specified
<vivien>Then: Error: Can't open display: :1
<vivien>Do you get the same result?
<formbi>nckx: hmm, I added python-pytest and python-mpi4py to native inputs and now there's this: http://ix.io/4GDY
<formbi>and it seems that copier does have tests… ( https://github.com/copier-org/copier/tree/master/tests ) :/
<honey-apple>"copier/tests at master · copier-org/copier · GitHub" https://github.com/copier-org/copier/tree/master/tests
<nckx>Weird, runtests built fine for me above.
<nckx>And copier has tests *in the git repository*. Not in the tarball you're building from. Ah, PyPI.
<formbi>ah, ok
<formbi>maybe you forgot to un-disable the tests in runtests, happened to me as well :D
<nckx>Oh good now I no longer have to type that myself.
<nckx>Yes, these silent pytest errors are really quite frustrating.
<formbi>ah, this one doesn't have tests in the pypi tarball either
<nckx>‘Imma need mpi4py for this test suite I don't have’.
<formbi>no, there's something in runtests/tests
<nckx>Hm, mpi4py looks to be a requirement of runtests, so should be propagated there.
<euouae>OK 7.9 of guix manual explains the authentication process
<nckx>(Disclaimer: based on a cursory reading, do your own research.)
<nckx>This is why runnning Python tests suites is so important, and why you should try to run as many tests as you can (yes, this is tedious). Because it's *extremely* easy to ship total garbage with #:tests? #f.
<euouae>For example, where is the .guix-authorizations file in <https://git.savannah.gnu.org/git/guix.git>?
<nckx>That's what a raw Git repository looks like, it's not the Guix source tree contained within it.
<nckx> https://git.savannah.gnu.org/cgit/guix.git/tree/
<honey-apple>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree
<nckx>s/raw/bare/ to be precise.
<euouae>Whoops
<nckx>cgit is a Web interface that shows you what's inside the repository, i.e., what you'd see after a ‘git clone https://git.savannah.gnu.org/git/guix.git’. But it's all a lie, there's no such checkout on the server.
<nckx>(As far as we know 👀)
<nckx>(If they ever start running Guix, presumably, we'll know by the bug reports.)
<formbi>nckx: So do you think there actually are some usable tests in the pypi tarball or not? I'm confused :/
<nckx>In the tarball? No, I don't expect there to be. Why the ‘So’?
<nckx>(You could try building from Git…)
<formbi>ok, thanks
<nallastro>hello everyone, is there some way to download a pinebook image at the moment? the website appears to be broken
<sneek>nallastro, you have 2 messages!
<sneek>nallastro, apteryx says: in this case no, there's no need to add gcc manually, it's provided by the gnu-build-system
<sneek>nallastro, lilyp says: to add to what apteryx said, you might have to add a newer gcc to native-inputs if your package doesn't compile with GCC 10
<euouae>When I run `guix shell --development screen` it downloads gcc-11.3.0. I already have screen installed on the profile but not gcc. How does guix shell know to download gcc? Why wasn't gcc downloaded on `guix package -i screen`?
<nallastro>euouae probably because gcc is a native-input for screen
<nckx>…and because you didn't build screen from source (that's a guess on my part, though).
<euouae>that's true I didn't
<janneke>civodul: i haven't noticed...how do i run that test? make check TESTS=gnu/tests/virtualization.scm doesn't seem to find it?
<janneke>ACTION has been building quite some guix's lately...
<euouae>OK, native-input. Got it
<nckx>Well, an implicit native input. It's not explicitly listed, just like other common requirements like make, coreutils, bash, and others aren't.
<euouae>What of sed? I already have sed, and yet it was downloaded
<civodul>janneke: just sent a bug report… and a workaround! :-)
<nckx>ACTION ~> foods.
<janneke>civodul: (y)
<euouae>How can I get the exact version of a package currently installed?
<euouae>guix package --list-installed=^sed$ does not give me the commit hash
<Altadil>I dont know if it’s the best way, but I would do guix edit name-of-package
<msavoritias>yeah ^ then it should be in the url
<euouae>hm.
<euouae>I had `guix shell screen` download sed yet I have sed installed already and it appears to be the same version
<euouae>Did it install some other output of sed?
<RavenJoad>euouae: There is only one output for sed. You likely grabbed a version of sed compiled with different versions of its inputs, or something like that.
<euouae>but `sha256sum $(which sed)` gives the same result inside and outside the shell
<RavenJoad>euouae: If a package is a native-input or input to another package, you cannot see it in the resulting profile (shell in this case).
<RavenJoad>So it is likely you are using your user profile's sed when running that sha command.
<euouae>Hm... complicated
<nckx>You can also display and (manually) compare the closures (all references, recursively) of both seds, e.g., /gnu/store/fyy3wkjkix16sb1ginqw2kbji74cwl2b-sed-4.8
<nckx>* guix size /gnu/store/fyy3wkjkix16sb1ginqw2kbji74cwl2b-sed-4.8
<nckx>Guix doesn't track which Git commit produced which output, although this can sometimes be inferred.
<gabber>is there a way find out differences of a package definition between two commits? i know some package has a bug now and a know a version that worked correctly
<PotentialUser-60>Is Wayland Libra like x11?
<RavenJoad>gabber: You have to grab guix's sources and git bisect I think.
<nckx>I'd use Git for that.
<geri>PotentialUser-60: pretty much so
<nckx>(Not bisect, I'd just look at the differences and assume the culprit would be obvious.)
<stikonas>geri, PotentialUser-60, technically wayland is not software at all
<stikonas>wayland is just protocol
<RavenJoad>Agreed. bisect may be overkill. I don't know what the bug is though.
<nckx>Nor is X11, but yeah, there are way more Wayland compositors than there were X11 servers.
<stikonas>yeah, X11 is also...
<nckx>You could make a proprietary Wayland compositor just like there were proprietary X11 servers.
<stikonas>there probably are...
<stikonas>wayland is used in things like automotive displays...
<nckx>Windows on Wayland (WoW64).
<nckx>stikonas: Orly? Cool.
<nckx>(Not the proprietary part. Obvs.)
<stikonas>well, I don't know if it's prorprietary
<lilyp>also not the automotive part ._.
<stikonas>but for embedded sutff, wayland is much simpler than X1
<stikonas>than X11, especially if you don't need to deal with desktop stuff like moving windows, etc...
<stikonas>it might just be weston... https://wayland.pages.freedesktop.org/weston/toc/ivi-shell.html
<honey-apple>"Weston IVI-shell weston 12.0.90 documentation" https://wayland.pages.freedesktop.org/weston/toc/ivi-shell.html
<gabber>i'm trying to pin the problem down in #65982 -- the commit introducing the problem is rather big. unfortunately pinning u-boot-pinebook-pro-rk3399 to version "2022.10" (which i thought was main difference change since the culprit commit) does not resolve the issue
<honey-apple>"Pinebook Pro image broken" https://issues.guix.gnu.org/65982
<nckx>rdrg109: I just noticed a typo before closing the tab: ‘The package "file" contains the binary "emacs"…’.
<euouae>How is package-closure computed? I don't understand how dependencies reach an end
<euouae>E.g. I compute the package closure of the `hello` package to 92 dependencies with python and perl included; it's mentioned in <https://guix.gnu.org/blog/2020/reproducible-computations-with-guix/> that the reason is they're required for glibc and gcc.
<euouae>But doesn't python and perl also have dependencies? where does it stop?
<nckx>Those are all included.
<gabber>or is it possible a small patch like https://termbin.com/pzzj doesn't actually build the specified u-boot in version 2022.10?
<euouae>nckx: how are cyclic dependencies avoided?
<euouae>I thought you can't unroll dependencies forever -- you need a base system
<nckx>We simply don't allow them.
<nckx>No.
<gabber>euouae: i think you might've stumbled upon the Bootstrapping Problem ;)
<euouae>I'm not familiar with that problem
<nckx>There are no circular dependencies in Guix.
<gabber>euouae: there's a whole chapter (nr. 20) in the manual about it
<euouae>ah nice
<euouae>the reason I'm asking is because the boostrapping binaries (as I'm learning they're called), could also affect reproducibility
<nckx>No more or less than any other package, but yes.
<gabber>they can and do - when they undergo changes or bugs are found - they are part of the dependency tree of e.g. the gcc-toolchain or other dependencies a packge (usually) has
<nckx>They also make up the final store hash, and could affect the contents of files, although that's unlikely to happen unnoticed.
<nckx>euouae: Check out ‘guix graph’ if you haven't yet.
<nckx>E.g., guix graph -t bag hello | guix shell graphviz -- dot -Tpdf > /tmp/dag.pdf # will take a long time, and will produce a huge graph, but you'll see no cycles.
<gabber>an exceptional challenge and evening enriching entertainment for the whole family :P
<nckx>Actually, that's impossible to visually verify, you'll just have to take my word for it.
<euouae>I wasn't doubting that there's no cycles
<euouae>I was trying to understand how it is achieved
<euouae>the boostrapping section covers it
<nckx>Artisanal hand-twiddled bits.
<pastor>Good evening. Could someone help me with some scheme-fu? I would like to modify the value of one service provided by `%desktop-services'. I know the syntax for that and read the manual about it but I cannot wrap my head arround on how to modify the value of a 'service extension', the ones created with `simple-service`.
<gabber>pastor: easiest if you share (an excerpt of) your code and the error message
<pastor>Sure. I'm on it. 1 sec
<gabber>no hurry!
<lagash>So, I submitted a patch series on a different machine, and cannot get to my emails from here. What's a good way of downloading a patch series from the web interface and then applying it?
<gabber>lagash: better than point-and-click through your messages in the issue tracker and then apply them one-after-another with git?
<lilyp>I personally do 'wget https://issues.guix.gnu.org/issue/NNNNN/patch-set[/M] | git am', hth
<lagash>I was looking through the git-am man page, yeah..
<pastor>so. On the definition of `%desktop-services' from 'gnu/services/desktop.scm' They have this line:
<pastor>`(simple-service 'network-manager-applet profile-service-type (list network-manager-applet))`
<pastor>I would like to modify the value. But since this is a simple-service I don't seem to be able to select it by type using the `modify-services' procedure
<lagash>lilyp: and when there is only one patchset, appending a /1 to the end doesn't work, apparently? So omit it then?
<pastor>I would like to do something like:
<pastor>(modify-services %desktop-services
<pastor> (network-manager-applet config =>
<pastor> (list (replace-mesa network-manager-applet))))
<euouae>amazing work on the bootstrap binaries though. I'm very impressed
<euouae>from hex0 to gcc :D
<lagash>What is the easiest way to modify a specific commit of my patch series?
<gabber>euouae: i know, right!?
<oriansj>euouae: well 5 years of work by a handful of motivated people is all that it takes to change the world of software forever
<gabber>lagash: git rebase? in magit it's relatively easy to create an "instant Fixup" of a commit...
<pastor>So what I've tried to do in the end is this: paste.debian.net/1292259
<pastor>But modify-services does not seem to find the apple service. I guess It has to do with some kind of list nesting but I don't know how to operate on %desktop-services. My lisp knowledge is not very good
<pastor>applet*
<lagash>gabber: I don't do much rebasing, I'm using Magit over TRAMP, but I have a shell too. So, git rebase -i @~n ?
<gabber>lagash: i honestly have no clue (i only use advanced git features in magit). i stage for commit (in magic) and when committing i choose "Instant Fixup"
<gabber>pastor: have you tried the `guix repl` to interactively hunt the bug?
<pastor>Yeah. I'm doing that on the repl. But I'm a bit of a novice
<pastor>So I don't know how to get for example `%desktop-services' pretty-printed
<pastor>I'm using emacs-geiser
<lagash>gabber: Magit is nice, but sometimes TRAMP messes it up, so I'm a little wary..
<msavoritias>if you are a complete novice maybe something like guile-studio would be better that has everything set up?
<pastor>I have a lot of experince with emacs. The setup is fine. But my problem is guile's representation of strucutres
<gabber>pastor: maybe map something like service-type-name to the list? but i am far from an expert either
<pastor>For example how to read this?
<pastor>$8 = #<<service> type: #<service-type network-manager-applet 7f4c13fe7940> value: (#<package network-manager-applet@1.32.0 gnu/packages/gnome.scm:8680 7f4c15ea2a50>)>
<pastor>gabber: Not sure what you mean
<pastor>Does anyone know what the numbers '7f4c13fe7940', '7f4c15ea2a50' mean?
<vivien>Are these memory addresses?
<lilyp>lagash yes but rn I also experience troubles with /2 etc… not sure why
<lilyp>look like pointers to me :)
<Altadil>msavoritias: I didn’t know about guile-studio, and it looks just like what I need, thanks !
<msavoritias>yw :)
<gabber>pastor: (map (lambda (s) (service-type-name (service-kind s))) %desktop-services) "pretty-prints" (only prints the names of the service type) of all elements of %desktop-services
<pastor>gabber: Thanks, that cool. But I don't understand why given that in the list applying your command we can see the `network-manager-applet' how is that we cannot do this: (modify-services %desktop-services (delete network-manager-applet))
<pastor>I understand that `network-manager-applet' is a package and this is expecting a service. So how are we supposed to refer to service extensions which have the same name as packages?
<apteryx>we have 'install-file', it'd be nice to have 'install-directory'
<pastor>gabber: One thing that it seems we can do is this: (remove (lambda (service) (let ((type (service-kind service))) (eq? 'network-manager-applet (service-type-name type)))) %desktop-services)
<apteryx>or have install-file auto figure it out
<pastor>But if instead of deleting I would like to replace the entry? Does any one knows how do you replace the value of an element of a list in guile?
<gabber>apteryx: wouldn't that be a reinvention of the already existing copy-recursively ?
<apteryx>no, because you must call mkdir-p yourself with copy-recursively (just like install-file is not a reinvention of copy-file ;-))
<gabber>pastor: the order of the list does not matter, so instead of replacing you can just filter the parts you don't need and append the ones you want
<pastor>gabber: I see. And In scheme we don't have setf-able places like in common-lisp?
<gabber>i have null experience with common lisp (:
<gabber>(so i'm not sure what setf-able places are/would be)
<pastor>gabber: No worries
<RavenJoad>pastor: I think Scheme technically does, but it is typically used sparingly. You are looking for set! I think.
<pastor>RavenJoad: I will read about it. Thanks
<RavenJoad>pastor: From https://stackoverflow.com/a/16735050, it looks like set! ~= setq in CL.
<ulfvonbelow>I think there's a srfi somewhere that extends set! to behave like setf
<ulfvonbelow>srfi-17 allows set! to be used with c[ad]+r, string-ref, and vector-ref, and uses 'getter-with-setter' to define new accessors
<honey-apple>"SRFI 17: Generalized set!" https://srfi.schemers.org/srfi-17/srfi-17.html
<pastor>thanks I'm reading it
<pastor>Is this only useful for vectors? and crazy combinations of c[ad]+r?
<pastor>I cannot use for example `find' from srfi-1 and setf the returned value. Can I?
<honey-apple>"SRFI 1: List Library" https://srfi.schemers.org/srfi-1/srfi-1.html
<sneek>Yey! janneke is back
<ulfvonbelow>you could use getter-with-setter to define a version of 'find' that works that way, but I don't think it's provided by default.
<apteryx>it'd be nice if cuirass could mention in the log which machine was offloaded to
<janneke>hi sneek
<apteryx>à la jenkins
<pastor>ulfvonbelow: seems convoluted
<ulfvonbelow>well yes, most languages don't make search procedures into settable places
<pastor>I'm starting to admire common lisp alien technology
<ulfvonbelow>common lisp doesn't do that either
<pastor>does it not?
<lagash>Concerning sending an updated patch series, do I use -v2 for the revision, if this is the 2nd attempt?
<nckx>If there's an existing previous version, yes.
<ulfvonbelow>(defparameter x (list 1 1 2 2 3 3)) (setf (find 2 x) 9) ==> undefined function (SETF FIND)
<nckx>(Your question is worded in a way that makes me hesitate to simply say ‘yes’.)
<lagash>Yes, one existing version.
<pastor>ulfvonbelow: 😦
<ulfvonbelow>note that attempting to define (setf find) results in a package lock error in common lisp
<ulfvonbelow>I imagine there would be some confusion about what should happen if the list doesn't contain any matching element
<pastor>I'm really struggling. Given this list: '(a b #<<service> type: #<service-type network-manager-applet 7f4c130baa00> value: (#<package network-manager-applet@1.32.0 gnu/packages/gnome.scm:8680 7f4c15ea2a50>)>)'
<pastor>How could I change the 'value:' field inside the 3rd element which is a struct?
<euouae>Hello, how can I view the documentation for a guile function like cons*?
<ulfvonbelow>info 'Guile Reference'
<gabber>pastor: you don't change the value field, you filter the "bad" service out and append the one you want/need
<pastor>I've tried to do this: (list-cdr-set! my-list 2 1) which yield this '(a b #<<service> type: #<service-type network-manager-applet 7f4c130baa00> value: (#<package network-manager-applet@1.32.0 gnu/packages/gnome.scm:8680 7f4c15ea2a50>)> . 1)'
<pastor>gabber: I guess this is what you suggested earlier. But is this really the way to do things in guile?
<nckx>In the functional style preffered by Guix: yes.
<pastor>Feels very weird that I cannot mutate the state
<gabber>forget about the set - we often deal with immutable types here. so what we do is we create new, similar objects and then pass them as arguments (as you do with the (services) field in operating-system)
<gabber>pastor: you can mutate *the state*, but this doesn't mean that you can alter each field within the state
<nckx>You can mutate most state if you absolutely insist.
<pastor>I see. An in the case of having a complex structure could I create a copy of that struct with some modifications and plug it in back?
<euouae>How does procedure-documentation work?
<ulfvonbelow>in your example, the "functional" way of doing it would be to create a list like the original, except that its third element is like the third element of the original, except that its value field is different
<euouae>ah wait, that's a guile question. Maybe I should check with #guile
<ulfvonbelow>euouae: the answers you seek can be found in the guile reference manual
<pastor>ulfvonbelow: so I will have to do this? (list-cdr-set! my-list 2 (simple-service 'network-manager-applet profile-service-type '(YAI-CUSTOM-VALUE)))
<pastor>Does not feel very manageable if the 3 value where a complex structure
<ulfvonbelow>to produce a service that is like another, but with some fields changed, use: (service (inherit ORIGINAL) (value NEW-VALUE))
<nckx>(Is this what old-school Lisp looks like? Because eek.)
<nckx>(The set! 2 line.)
<pastor>ulfvonbelow: I can use `service` even for inheriting a `simple-service`?
<ulfvonbelow>to produce a list that looks like another, but with some elements changed, use 'map'
<ulfvonbelow>pastor: yes, 'simple-service' just creates a service with a fresh service-type
<lagash>What's the line length I'm supposed to use for emails, again? I'm supposed to hard-wrap my emails to lists here, right?
<nckx>…? No, but also 72, but also clients do this for you.
<lagash>I think I disabled hard-wrapping for my regular email account.
<nckx>You can't send longer lines in plain-text (non-format=flowed) mails.
<pastor>ulfvonbelow: I see. I'm getting unbound variable using the 'inherit' thing. Does this have to be in a macro? I don't seem to be able to do '(service (inherit guix-service-type))'
<nckx>If you send format=flowed, and someone tells you to hand-tailor your newlines, tell them to correctly configure their MUA.
<nckx>(This doesn't apply to commit messages, of course, where the Git norm is also 72, but there's nothing beyond plain text anyway. Your editor should handle this.)
<lagash>I use Emacs + notmuch, so..
<ulfvonbelow>pastor: you may have to use the (gnu services) module
<nckx>lagash: Since you say ‘again’, link to the original discussion?
<ulfvonbelow>actually, no, it turns out <service> isn't defined with the usual (guix records) interface
<lagash>nckx: I just vaguely remember that I was supposed to hard-wrap my emails on GNU mailing lists.
<ulfvonbelow>so (inherit ...) won't work with it
<pastor>ulfvonbelow: 💀
<ulfvonbelow>instead you'll have to use (service (service-kind ORIGINAL) NEW-VALUE)
<nckx>lagash: I'm still not sure to what you're referring, so I think you might be over-thinking it.
<lagash>nckx: Fair enough. I just re-read https://www.arp242.net/email-wrapping.html
<honey-apple>"The problems with hard wrapping email body text" https://www.arp242.net/email-wrapping.html
<pastor>ulfvonbelow: I see
<pastor>ulfvonbelow nckx gabber: thank you all for the insight
<nckx>lagash: Seriously, as long as you don't send HTML-only mail, you're good.
<ulfvonbelow>oh, also, if (inherit ...) did work with service, you'd want to create a service that inherits from a service, not a service that inherits from a service type (which would fail), which is what (service (inherit guix-service-type)) would theoretically do
<ulfvonbelow>"inherit" here means "takes its default values from", not "is an instance of" as you may be used to in OOP terminology
<pastor>ulfvonbelow: alright. many thanks!
<ulfvonbelow>👍
<tschilp>hi guix!
<nckx>Peep.
<tschilp>:)
<RavenJoad>Could someone look at my wrapper function here? https://github.com/KarlJoad/guix/blob/apcupsd/gnu/services/power.scm#L236 The file-append in scandir always returns "Wrong type (expecting string)". Obviously the package is not being converted to a string, but I don't know how to force that to happen.
<honey-apple>"guix/gnu/services/power.scm at apcupsd · KarlJoad/guix · GitHub" https://github.com/KarlJoad/guix/blob/apcupsd/gnu/services/power.scm#L236
<ulfvonbelow>today I learned that github requires javascript for viewing of text files
<ulfvonbelow>"Hi, Mr. Berners-Lee? It's me, from the future, in 2023, I'd like to file a bug report, what you're creating is going to lead to requiring arbitrary code execution in order to display text"
<RavenJoad>ulfvonbelow: You should be able to see the bare file too. But one of these days I will move my open-source projects off of GitHub.
<ulfvonbelow>unfortunately the link to the bare file also apparently requires javascript, for I cannot see it
<RavenJoad> https://raw.githubusercontent.com/KarlJoad/guix/apcupsd/gnu/services/power.scm
<ulfvonbelow>thankee
<ulfvonbelow>well, apcupsd-wrapper is a little puzzling. Why don't you just replace the entire (scandir ...) form with (list "apctest" "apcaccess")?
<RavenJoad>Good point. I tried half-rewriting something, and that stuck around.
<ulfvonbelow>but basically, file-union doesn't support a dynamic (determined-at-build-time) list of files
<RavenJoad>I think I am running into that now. I switched scandir out for just a list, and I get Throw to key `match-error' with args `("match" "no matching pattern" from a combination of map1 and exp.
<ulfvonbelow>aye, that would be because file-union expects a list of name+file-like tuples, not a list of file-likes
<RavenJoad>ACTION *raspberry* 
<RavenJoad>Duh... I literally do that earlier in the file too...
<RavenJoad>Thanks for finding that!
<apteryx>bjc: bug-reference change installed with your edits, thanks!
<RavenJoad>ulfvonbelow: That did it.
<ulfvonbelow>👍
<ulfvonbelow>in general, a lot of the declarative (guix gexp) procedures have seemingly weird limitations due to only evaluating user code on the host side
<ulfvonbelow>in principle, there's nothing stopping you from constructing a union directory dynamically using scandir and whatever other tools you can think of, but file-union doesn't have a way to express that; you'd have to use computed-file directly yourself
<ulfvonbelow>(which, by the way, is actually what file-union does)
<RavenJoad>I am used to those limitations. I actually wanted those paths to be hard-coded into the building by the gexp, but this method effectively does the same thing, so I am fine.
<somenickname> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html#index-home_002dfontconfig_002dservice_002dtype does that mean I don't need the list if I want to add fonts that are added by Guix package manager?
<honey-apple>"Fonts Home Services (GNU Guix Reference Manual)" https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html#index-home_002dfontconfig_002dservice_002dtype
<somenickname>"Generally, it is better to extend this service than to directly configure it, as its default value is the default Guix Home’s profile font installation path (~/.guix-home/profile/share/fonts)."
<ulfvonbelow>note that ~/.guix-home/profile and ~/.guix-profile are two separate things; the former is what home-fontconfig-service-type will use by default
<ulfvonbelow>if the fonts you install are through 'guix package -i ...' or 'guix install ...', then the default value won't use them AFAIK
<somenickname>Should be fine I use Guix home for all my packages (forgot to mention it)
<ulfvonbelow>should be fine then, aye
<RavenJoad>apcupsd dumps a file to the file system during a power event to prevent new users from logging in. Should that go in /var/run or /run?
<mirai> /run is volatile
<mirai>it doesn't survive reboots
<mirai> /var/run
<mirai>can survive
<mirai>not guaranteed though iirc
<RavenJoad>Then /run makes more sense, as if the power goes out and the system shuts down, the file should disappear, to allow users to log in again.
<euouae>Hello a couple of questions
<euouae>suppose there is a libxyz with dependency libfoo and I want to modify the code of libfoo and try libxyz with my own version of libfoo
<euouae>would I have to write two package files? one for libfoo and one for libxyz, the latter having its inputs modified?
<euouae>the other question is similar, but this time I want to modify the daemon xyzd, and run its new version. is it appropriate to use guix system vm? Or can something else be done
<somenickname>why do you think libfoo is required to be changed as well?
<somenickname>ah now I got it
<RavenJoad>If you modify libfoo, just modify libfoo. You will need to update libfoo's package recipe to fetch your changed version, but that is it. libxyz should pull in that new libfoo.
<euouae>RavenJoad: I don't want that change for my entire system however
<RavenJoad>euouae: You can test the new daemon in a system vm until you are sure it works. If you need a mutable root for that, then you need to make an image.
<euouae>You're right -- you don't need to modify libxyz. right. thank you.
<ulfvonbelow>you should be able to define your libfoo variant, then use package-input-rewriting to get a procedure to apply to libxyz to get a libxyz-with-libfoo-variant version
<RavenJoad>euouae: Then just build the package you want? You won't rebuild your system unless you tell guix to.