IRC channel logs

2023-09-14.log

back to list of logs

<minima>hi, i've seen mention of `%user-runtime-dir' in the code but i don't seem to be able to trace it back to where that gets defined
<ssouth>minima: Where do you see that in the code? A quick grep turns up nothing.
<minima>e.g. `./gnu/home/services/gnupg.scm'
<ssouth>minima: Weird, I also don't see where it's defined. Perhaps Guile defines it as a constant? I don't see it mentioned in the manual though.
<minima>yeah, i also thought it could be a guile thing... but so far haven't found any further info - will dig deeper, thanks for checking!
<minima>a loosely related question would be if there's any canonical way to refer to the user's home folder from a g-expression and in the context of a guix home config file
<ssouth>Unfortunately I don't know enough about Guix Home to say. Hope someone else can answer you.
<minima>sure! np and thanks
<ssouth>minima: Ah, %user-runtime-dir is defined by Shepherd, in (shepherd support).
<ssouth>See gnu/home/services/gnupg.scm:121.
<minima>super
<minima>thanks!!
<xelxebar>Ooo... The swineherd package that just got added looks interesting. Been wanting to have the ability to containerize services for a while now.
<xelxebar>Would be really cool to have a general facility for wrapping services in containers with controllable parameters for network, fs, etc access.
<xelxebar>Wonder if swineherd is part of things going that way.
<lechner>Hi, what's a good strategy to generate Guix records from a list, please? I tried some for-each magic with these knot-zone configurations, but got only errors because of the syntax features. Thanks! https://codeberg.org/lechner/system-config/src/commit/c97ed3a5ebba66da83f9dde0c4cf553c3abff694/host/wallace-server/operating-system.scm#L235
<mirai>hmm?
<mirai>Can you explain again what you're trying to accomplish? The snippet doesn't look self-explanatory
<lechner>mirai / Hi, I'd like to create the knot-zone-configurations from a list of domain names in order to shorten my configuration file
<lechner>they are currently arranged in a list https://codeberg.org/lechner/system-config/src/commit/c97ed3a5ebba66da83f9dde0c4cf553c3abff694/host/wallace-server/operating-system.scm#L161
<lechner>but I cannot generate that list because of the syntax features used to create Guile records, I think
<lechner>I'm looking for something like (map make-my-knot-zone '("zone1" "zone2" "zone3"))
<lechner>is that supposed to work?
<mirai>you can define a procedure that churns out knot-zone-configuration records sure
<mirai>and map it over a list of strings
<lechner>okay, thanks! i'll try that one more time
<mirai>don't know if it's a good idea though since you have different zone-entries
<lechner>yeah, it would be a trade off. maybe it's better to load them from somewhere but keep them intact for clarity
<mirai>so you're going to map over something like an alist or a list of records
<mirai>but
<mirai>rather than doing that
<mirai>why not try this first: define a “template” record and inherit it
<mirai>kinda what's done with some of the packages in guix
<mirai>I think docbook-xml is one of them
<mirai>or define a procedure that returns a record and override some of the fields by inheriting from it
<lechner>mirai / thank you for your valuable suggestions!
<apteryx>ACTION just finished soldering/assembling an ergodox keyboard kit ordered in 2014. talk about procrastination ^^'
<apteryx>I'm a bit puzzled by the layout, which is supposed to be dvorak, but isn't ^^'
<jackhill>apteryx: haha, cool/congrats! Makes me feel better about my project shelves :)
<apteryx>hehe! Now I'm like "what's next!?"
<apteryx>probably GNU Boot (?) on the x200
<apteryx>interesting, when putting a dvorak layout on the ergodox, it's doing it 'in hardware', so the system layout needs to be querty, if I understand correcly
<apteryx>that's why it appeared broken earlier -- I had dvorak keys transformed by X11 (?) into dvorak again
<bjc>apteryx: yeah, the keyboard will send codes based on the layout you have programmed, but your os expects everything to be qwerty
<apteryx>fun
<apteryx>so I should leave the hardware layout to querty, and leave it to the OS to remap it? that seems most flexible
<apteryx>or at least compatible with my other keyboard
<bjc>i change the keyboard and do nothing on the os, because that's the most flexible for me
<bjc>i only use one keyboard, though
<apteryx>right; it means you can't swap keyboards easily
<apteryx>or layout
<bjc>if i need to swap, i can still type qwerty
<bjc>so this works for me
<apteryx>I see, interesting to see how others use it
<apteryx>thanks for the rx patch for bug-reference btw; I'll look into it when I have a chance. Maybe worth sending it upstream too, if they haven't adapted it already in the main branch
<bjc>before i had programmable keyboards, or if i'm stuck on a laptop for a long time, i'll switch it on the os side. but otherwise i'm fine moving back and forth
<bjc>np. it was interesting to try and adapt the strings to rx
<apteryx>rx is great
<apteryx>I wish we had the same thing in Guile
<apteryx>as anyone using the qmk firmware for their keyboard?
<apteryx>'make ergodox_ez:all:all' in the qmk_firmware repository throws many errors here: https://github.com/qmk/qmk_firmware/issues/22012
<apteryx>maybe it's just ill maintained, but I'm wondering...
<jackhill>apteryx: I'm using QMK with a model-F. I didn't use Guix QMK packaging though. https://git.hcoop.net/jackhill/qmk/firmware.git/blob/HEAD:/guix-readme.md
<abcdw>Hey guix! Can someone guide me to a source code and documentation for sneek, please? (or maybe I can just invite it to my channel without deploying a separate instance?)
<janneke>abcdw: https://gitlab.com/dalepsmith/sneek.git
<janneke>i'm not sure it's 100% up to date
<abcdw>janneke: Thank you!
<janneke>ACTION wrote an even stupider bot in scheme
<abcdw>janneke: you have another bot?) BTW, I don't need sneek per se, just need "later tell" functionality :)
<janneke>abcdw: i just released v0.1 of snuik, so ymmv
<janneke> https://gitlab.com/janneke/snuik, it's even packaged in guix!
<abcdw>janneke: Cool, taking a look at it, thank you!
<janneke>it has 'later tell' but it's a bit fussy about the wording
<vivien>Does sneek have a "later tell" functionality for teams, to notify any (or all?) members of the team?
<janneke>and yesterday i found that implementing `reconnect' may be helpful, which bobot++ probably has...
<janneke>vivien: no
<vivien>Anyway, sneek: botsnack
<vivien>sneek, botsnack
<sneek>:)
<abcdw>janneke: Can I ask you to add snuik to #tropin channel, please?)
<janneke>abcdw: sure, done
<abcdw>janneke: Thank you very much! <3
<janneke>abcdw: you too, it's still at v0.1 you know :)
<abcdw>janneke: NP, will send a patch in case something goes in too unexpected way :)
<janneke>abcdw: \o/
<janneke>abcdw: thanks for guix-home, btw!
<abcdw>janneke: My pleasure! :)
<ulfvonbelow>is /tmp not a tmpfs on guix system?
<xelxebar>Man. I've been putting off submitting patches for packages and now my private channel has like 15. Just blitzed like 9 of them to guix-patches.
<Avron>Hello, is there some delay in guix mailing list? I sent an email to help-guix@gnu.org about 13h ago but I have not received it from the list and it is not visible in the archive.
<ulfvonbelow>mods might be asleep or busy
<xelxebar>FWIW, the 9 patches I just sent to debbugs aren't showing up on the guix issue tracker yet, either. Not sure if it's related at all, though.
<mbakke>hello guix! long time no see ...
<efraim>mbakke: o/
<mbakke>for those too lazy to run a childhurd, I'm happy to announce that you can now run a cloudhurd: https://tryhurd.gexp.no
<civodul>hey mbakke!
<civodul>a cloudhurd!
<civodul>(sounds like the new buzzhurd)
<ulfvonbelow>it's a bird, no, it's a plane, no, it's... a hurd of birds in a cloud!
<mbakke>2024 is the year of the GNU/Hurd desktop!
<civodul>without doubt!
<civodul>damnit, “something went wrong”, says the web page
<mbakke>it requires websocket support
<xelxebar>mbakke: Jumping hurdles... really? Groaned a new hurnia on that one.
<xelxebar>Hurd daily driver! Here I come!
<mbakke>xelxebar: the browser version has only 256M of memory, but you can contact me for a larger instance that won't self destruct when you close the browser ;-)
<civodul>mbakke: i’m using IceCat over Privoxy over Tor, maybe something gets in the way?
<civodul>(i’m used to it i must say :-))
<rekado>AFAIK Privoxy does not proxy websockets
<civodul>ooh indeed, it works without Privoxy!
<civodul>wonderful
<civodul>and lots of neat puns too
<ulfvonbelow>civodul: have you had an opportunity to look at my v2 patch series for shepherd?
<civodul>ulfvonbelow: no sorry, i haven’t taken the time yet
<civodul>this is https://issues.guix.gnu.org/65221, right?
<ulfvonbelow>yeah
<cow_2001>How do I run something in a fairly safe environment using guix? I want to test some audio playing thing in emacs.
<cow_2001>Alien elisp.
<Rovanion>`guix container` perhaps, depends on what safe means I guess.
<rekado>civodul: I just heard from the networking team wrt the DoS warning / block page you got. They ask me to try again. Could you please let me know if you still get this overly sensitive reaction from Guix services hosted at the MDC?
<cow_2001>Rovanion: What harm can a guix containered elisp do?
<ulfvonbelow>ACTION glances at the growing list of hardware vulnerabilities
<Rovanion>cow_2001: I mean, it can probably break the container if it is truly malicious. Or just blow your speaker but that is probably not what you were thinking of when you said harm.
<civodul>rekado: sure, i’ll try again from home later, where it triggers quite quickly
<civodul>thanks for following up!
<civodul>did they put the public IPs on an allow-list of sorts?
<civodul>or did they change the thresholds?
<minima>cow_2001: is it full emacs that you wanted to containerise or rather the TUI version `--no-window-system'?
<minima>cow_2001: if it is the GUI version, i find this snippet useful (not sure how safe it is exactly, as prev said, that depends on your definition of security): https://bpa.st/EUPA
<xelxebar>Just curious, but why is git-send-email shoved off into a separate output?
<xelxebar>It's mildly odd that its manpage is only available in the primary output.
<ulfvonbelow>guix size reports the send-email output as having a 2MiB larger closure, so I reckon it's not due to size concerns
<Rovanion>cow_2001: I think X access makes breaking the containment easy. In case you were thinking of giving away that.
<minima>Rovanion cow_2001: i think you can achieve better isolation with a VM though (guix system image ...?) plus QEMU
<civodul>ACTION discovers the mega-thread on contribution workflow
<andreas-e>As these threads tend to do, this also goes in circles. It is like bikeshedding, but on a real issue. It would be nice if we could distill actionable items and if someone could act on them.
<rekado>civodul: I wish they’d tell me… They only asked me to “try again” ¯\_(ツ)_/¯
<minima>cow_2001: i've tried my containerisation snippet with emacs audio - as it is, it doesn't seem to pass audio to the host though, not sure how useful that'd be for your tests
<cow_2001>minima: I could do without a windowing system, but not without audio.
<minima>right, it *might* be a matter of exposing the right things for the audio to be passed - but i don't know what those are off the top of my head
<cow_2001>I will try qemu, then!
<minima>yeah, with the proper setup, qemu audio
<minima>works
<civodul>andreas-e: yeah i agree, we need actionable items
<civodul>Mumi, etc/committer.scm, the doc, etc. were all the result of previous discussions on that topic
<civodul>we need to identify both incremental changes we can make (fix X in tool Y), and perhaps longer-term more ambitious changes (deploy sr.ht, whatever)
<andreas-e>Thanks to rekado for etc/committer.scm. When it works, it is super useful!
<civodul>yeah, and i’m sure we can make it work for 90% of the submissions, which are simple package additions or upgrades
<civodul>(if that’s not already the case)
<minima>cow_2001: this is something i've used in the past to have shared audio (and clipboard i think?) between host and guest with qemu https://bpa.st/ZMCQ in case that's of any help
<minima>and this: https://guix.gnu.org/manual/devel/en/html_node/Running-Guix-in-a-VM.html
<cow_2001>minima: Thank you!
<xelxebar>Hrm. CMake is generating makefiles with hard-coded paths to coreutils, like /bin/mkdir.
<rekado>yes, etc/committer.scm is just a little naive. It’s not very hard to make it smarter. It would benefit from some tests.
<xelxebar>I'm in a shell -D environment. Any way to tell cmake that, no, it should be using PATH or something similar?
<civodul>cbaines, efraim: i contemplated the idea of going to Hamburg for the R-B summit, but it looks like i won’t make it
<civodul>i miss the warmth and friendliness of those R-B summits!
<efraim> they definately are fun
<zamfofex>mbakke: Hello, welcome back! (Welco‐mbakke?) That’s very neat! 😄 I feel like you should share it to #hurd too, perhaps. I hope you’ve been doing great!
<zamfofex>Isn’t 2059 meant to be the year of the Hurd on desktop? 🤔 https://xkcd.com/1508/
<zamfofex>Would it be reasonable to perhaps set up a client‐side thing using, say, v86?
<ulfvonbelow>does anyone happen to know off the top of their head a standard C procedure that accepts one integer argument, has a return type of void, and has no side effects?
<ulfvonbelow>I need a no-op to stuff in a signal handler instead of SIGDFL or SIGIGN so that a system call will get EINTR
<zamfofex>If the function has a ‘void’ return type and a single argument of type ‘int’ and no side effects, it would definitely be a noop. I doubt there is such a standard function, but you can declare one yourself.
<ulfvonbelow>yeah, just not sure how to do it from scheme
<ulfvonbelow>I would assume that whatever procedure->pointer gives is probably not async-safe
<avalenn>why does mtr package install in /sbin and not /bin ? It makes it unusable with standard exported search-paths
<nckx>avalenn: Can you explain what you mean by that?
<nckx>Buggy search paths {c,sh}ould be fixed.
<avalenn>nckx: when I do "guix install mtr" it installs mtr in $GUIX_PROFILE/sbin/mtr
<nckx>Yes.
<avalenn>nckx: which is not in my $PATH
<nckx>Why not?
<avalenn>nckx: because I did not reload profile ;-( as it was the first sbin package
<avalenn>nckx: thanks
<nckx>Guix should print a suggestion to source the profile's… profile file, in that case, but maybe it didn't?
<avalenn>I am not sure. Perhaps I did not read carefully.
<nckx>If this happens again (or you're bored and reproduce it ☺) please do file a bug.
<avalenn>I will
<nckx>Thanks.
<avalenn>As I am in foreign-distro and mtr needing to be setuid, it is useless for me anyway
<nckx>I think capabilities(7) suffice but they have the same problem.
<avalenn>For those things I will fallback to native distro packages
<avalenn>Actually I wanted tcptraceroute but it does not seem to be packaged.
<nckx>ACTION wonders if Nix has an approach to this, since they seem to have a higher % of non-distro users.
<nckx>avalenn: I think I have a package for that at home.
<nckx>(The package at home: )
<nckx>I'll check when I get ~.
<nckx>Avron, ulfvonbelow: mods were both asleep *and* busy.
<apteryx>jackhill: I'll have a series you may be interested in soon
<apteryx>ACTION afk
<Avron>nckx: thanks, I did not realise before that help-guix was moderated then I was worried that I might have email issues (I use an address from a server running on my own machine)
<avalenn>nckx: judging by https://github.com/NixOS/nix/issues/8192 Nix does not have the magic solution concerning setuid
<lechner>Hi, is the Dovecot service right to mix strings and booleans here? https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/mail.scm#n269
<somenickname>What is faster.  guix pull now and again after a week (therefore the second one doesn't has lots of commits) or wait a week and do guix pull once?
<lechner>i think the evaluation takes a long time (if that's the right terminology). i pull less
<lechner>i pull about every two months
<attila_lendvai>somenickname, two pulls consume just about the same tame regardless of anything, because most time is used by loading/compiling the scheme code.
<attila_lendvai>s/tame/time/
<bjc>is there an explanation somewhere for why the guix derivation can't be substituted?
<mbakke>bjc: they can (and are), but by the time ci.guix has processed them there are often new commits
<bjc>ah, that makes sense
<attila_lendvai>yet another argument for a staggering master branch that gets the commits from a staging branch every now and then, when e.g. the CI finished building the commit picked as the next one for master
<bienjensu>bjc: You can check the availability of substitutes for a certain package with `guix weather`, e.g. `guix weather linux-libre`.
<bienjensu>also, there are substitute servers for guix apart from ci and bordeaux afaik. Adding those might increase your likelihood of good weather.
<bienjensu>would be funny if weather also reported the local weather for the substitute servers
<avalenn>bjc: channel-with-substitute-available can help if you want to pull more often
<avalenn> https://guix.gnu.org/manual/en/html_node/Channels-with-Substitutes.html
<bjc>no, it's fine. i don't pull often enough for it to really irritate me. i was just curious why i never get substitutes for it
<bjc>mostly i just build from git anyway
<avalenn>How can I add local files as inputs for a package ? I see that in Guix something like that is done for aux-files, but I cannot reproduce in other context.
<civodul>avalenn: probably you’d refer to them straight from a phase in ‘arguments’
<civodul>as in: (arguments (list #:phases #~(… #$(local-file …) …)))
<civodul>or use the ‘search-auxiliary-file’ mechanism
<civodul>🔈 we still have open positions at work for engineers to do packaging, CI, etc. for HPC: https://jobs.inria.fr/public/classic/en/offres/2023-06635
<civodul>feel free to get in touch with me if you’re interested
<bjc>do you sponsor visas? ;)
<civodul></announcement>
<civodul>bjc: heh, i don’t think so, but i don’t know
<civodul>if that’s the only roadblock, we can discuss :-)
<avalenn>civodul: I tried to do something like https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/vim.scm#n166 but with local-file instead of search-auxiliary-file
<avalenn>but the use of gexp in arguments will probably work as well
<civodul>cbaines: yay for Nlnet!!
<civodul>i’ve just replied to your message with a brain dump that hopefully makes sense
<civodul>hey look, we already got GNU/Hurd on x86_64 this year, are we also going to get the Guile daemon?!
<ulfvonbelow>I think a single-threaded implementation would slow things down quite a bit, especially where disk I/O is involved
<civodul>fork(2) implies single-threading though
<civodul>also, interruptible I/O
<civodul>so overall i think it should be fine
<ulfvonbelow>what do you mean by "interruptible I/O"? You mean O_NONBLOCK and such?
<ulfvonbelow>if so, note that for regular files, read treats the input as always available
<ulfvonbelow>although since linux 4.14, preadv2 can take a flag that acts more like the nonblocking input of sockets, pipes, etc
<ulfvonbelow>re: fork, there's always posix_spawn
<civodul>yes, O_NONBLOCK
<civodul>posix_spawn, sure, but it’s not enough: we need to set up namespaces, etc.
<civodul>it’s unfortunately lacking
<ulfvonbelow>could do posix_spawn + clone in the child process
<ulfvonbelow>interestingly enough, clone actually has a flag, CLONE_PARENT, that could be useful in just that situation
<civodul>neat, i didn’t know CLONE_PARENT
<civodul>anyway, the good thing with Fibers is that choosing between single-threaded and multi-threaded is easy
<civodul>single-threaded makes it easy/reliable to spawn processes
<civodul>but if that turns out to be a bottleneck, it won’t be hard to switch to multi-threaded, providing we have a suitable helper to pass to posix_spawn
<civodul>*provided
<mirai>civodul: Hi! I've been looking at the monitoring-service in shepherd <https://git.savannah.gnu.org/cgit/shepherd.git/tree/modules/shepherd/service/monitoring.scm#n71> and there's something that I don't quite understand here: it says that it will print every N seconds but I don't see where this “delay” occurs
<mirai>following through the logic I do see a call to get-message* with the waiting-period but according to <https://git.savannah.gnu.org/cgit/shepherd.git/tree/modules/shepherd/service.scm#n2452> that parameter is actually for a 'timeout'
<mirai>wouldn't this mean that the delays in monitoring-service never happen except for happy coincidental timeouts?
<civodul>mirai: that’s right, but it’s not just coincidental: the service typically rarely receives any message
<civodul>you start it and it keeps going, with ‘get-message*’ timing out every 30mn or whatever
<civodul> https://qa.guix.gnu.org/patches is currently unavailable
<prattle>My latest guix configuration seems to be unable to lock the xfce screen
<prattle>The truth is that I need to bite some bullets and get my common, 'ideal' setup translated into scheme and start using guix the way I meant to. It's the only way.
<graywolf>When writing the changelog commit message: If I am doing two changes in one procedure, should I write two sentences after the `* file (proc):' or should I put it there twice, each time with one sentence?
<prattle>I've been curious about this: Does Guix system allow you to tear out enormous sections of your operating system and have them atomically disappear, configurations and all? I presume you can't do that down to the disk specifications (that you can't just reformat your disks without data loss, etc); is that right?
<graywolf>And second question, if I am modifying two procedures, should I have `* file (proc1):' and `* file (proc2);' or `* file (proc1): foo\n(proc2): bar'? magit produces the second, but I want to make sure it is correct.
<graywolf>; -> :
<graywolf>Aaaand final question: If line wrapping puts #:foo as a first character on a line, is it prefered to keep previous line longer or to but a single leading space?
<somenickname>I see lots of user and the same username with a _.  Why?
<somenickname>like example and example_
<civodul>rekado: could you check what’s up with kreuzberg when time permits? (see my recent message on guix-sysadmin)
<cbaines>civodul, regarding QA, I think there's some database connection issue with data.qa.guix.gnu.org, but I've restarted it and that seems to help
<mirai>oh wow, TIL about RFC8089
<cbaines>I need to get around to investigating properly
<lechner>mirai / you have interesting hobbies
<mirai>I'm impressed that the location showed by `guix search …' is actually conformant to it since it returns a file://<hostname><absolute-path>
<mwette>Anyone have hints on debugging guix system boot? Can I add a service to log messages, delay, etc? I'm specifically trying to deal with static-network error (see bug #64653. herd tells me networking failed to start (even though I do have it)
<mirai>lechner: ;-)
<gabber>unfortunately running `guix system image gnu/images/pinebook-pro.scm` does not produce a bootable image for my pinebook pro. what am i missing? do i need to pass a specific --image-type? i tried --image-type=pinebook-pro-raw but with no luck
<lechner>Hi, what's the best way to turn package variables into strings outside of G-Expressions, please?
<exc>hello guix
<somenickname>hi
<vivien>sneek, later tell lechner turning package variables into string is done by 1. building the package and 2. getting the derivation output name. To build the package, you need to use the run-with-store form. See section "The Store Monad" in the manual.
<sneek>Will do.
<nckx>graywolf: (1) Two sentences, don't repeat the ‘header’, (2) `* file (proc1): foo\n(proc2): bar', and (3) I usually move the word before # to the next line instead, but I don't think anyone will be upset with a leading space.
<nckx>somenickname: Nicknames with a _ are usually the same user on a different connection. If a client can't get your primary nick many will try to set nick_. nick' is another, less popular, default.
<nckx>You cannot use the exact same nick across multiple connections if you connect directly to the IRC server.
<somenickname>nckx: Why would someone want to have multiple connections?
<graywolf>nckx: Thanks :)
<graywolf>Either multiple machines or (I guess) network issues (stale connection?) could cause it as well.
<graywolf>Is there a function to parse .guix-channel file? It looks liku (guix channels) does not export anything useful. Did I just overlook it?
<nckx>That's true. If you disconnect uncleanly, the regular nick won't be freed immediately.
<nckx>(guix channels) seems to export the exact thing you need? The <channel> record type. Can't you load the file after importing it (not at PC)? There should be no parsing involved, it's just more code.
<nckx>ACTION -> dinner
<exc>I'm confused about the `method` procedure used to declare on origin. The documentation says it must accept at least 3 arguments, but the Cookbook only shows 1, `url-fetch`. Grepping the sources, it appears that's pretty much the only way it's ever called, except for when `git-fetch` is used.
<ulfvonbelow>exc: 'method' isn't a procedure, it's a field specifier
<ulfvonbelow>url-fetch is a procedure, that accepts at least 3 arguments
<exc>interesting
<exc>Oh, okay. I think I see what the documentation is saying. The method specifier requires a monadic procedure that must except at least three arguments. `url-fetch` is such a procedure
<graywolf>nckx: that sadly does not seem to work https://paste.debian.net/plain/1291958 (assuming I correctly got what you meant)
<graywolf>And enjoy the dinner
<graywolf>:)
<exc>okay, I think that makes sense. `origin` is given as a "-- Data Type" and `url-fetch` is given as a "-- Procedure"
<exc>thank you
<janneke>cbaines: congrats on NLnet and a big yay for the guile deamon! \o/
<lechner>vivien / thanks! i just hope to mention a package variable in a 'mixed-text-file' in my configuration. can i just use #~#$ to force the stringification?
<sneek>lechner, you have 1 message!
<sneek>lechner, vivien says: turning package variables into string is done by 1. building the package and 2. getting the derivation output name. To build the package, you need to use the run-with-store form. See section "The Store Monad" in the manual.
<lechner>maybe i should put the 'let' inside the 'mixed-text-file'
<ulfvonbelow>mixed-text-file takes a sequence of strings and file-like objects, of which packages are one kind
<ulfvonbelow>for example, from the manual: (mixed-text-file "profile" "export PATH=" coreutils "/bin:" grep "/bin")
<ulfvonbelow>any file-like-object given to it will be substituted with its lowered representation in the output
<lechner>yeah, i see that but the expression around coreutils, in this case, would be so complex that i hope to insert a let somwhere
<lechner>i also would like to use string-join around it
<ulfvonbelow>I think the closest you could do is probably to splice in a list to the call using apply
<ulfvonbelow>you can't concatenate strings with the package when it's a package, only when it's a string
<ulfvonbelow>if you want to be able to evaluate arbitrary code "post-lowering", you might want to look at computed-file
<lechner>ulfvonbelow / thanks! i think that's what i was thinking of
<lechner>and then file-append
<lechner>Hi, what does this mean coming from computed-file, please? guix deploy: error: reference to invalid output 'out' of derivation '/gnu/store/npmjnpcnvk9xfgrpp8m1c7hy7887p9n6-opensmtpd-configuration.drv'
<jpoiret>lechner: do you have a snippet for this?
<jpoiret>cbaines: oh, I forgot to say congrats on the NLnet grant as well :)
<jpoiret>since I'm just starting my PhD things are a bit hectic rn but I expect it to calm down in a month-ish
<lechner>jpoiret / https://paste.debian.net/1291962/
<lechner>can i mention a plain-file inside a computed-file?
<bjc>i don't think there are restrictions on what can be put in ‘computed-file’ like that
<bjc>tias, i guess
<jpoiret>lechner: string-join doesn't add whitespaces between the arguments, might have a problem with that
<janneke>ACTION just built gdk-pixbuf for the Hurd
<ulfvonbelow>lechner: that's its way of saying "your computed-file thingy didn't produce an actual output". A computed-file produces its output by writing to #$output, e.g. via (call-with-output-port #$output (lambda (port) (display ... port)))
<jpoiret>ulfvonbelow: good catch
<jpoiret>lechner: you probably want mixed-text-file instead?
<jpoiret>it takes an output name, then a list of lowerables
<ulfvonbelow>just came from there, lechner wants to be able to do string processing on the lowered packages
<jpoiret>doesn't look like the snippet above does
<jpoiret>but in that case then yes
<ekaitz>cbaines: just saw the email! congrats on nlnet funding!! keep it up
<mirai>civodul: do I need to do something extra in order to use guile-fibers within a (shepherd-service (start #~(lambda … ))?
<civodul>mirai: yes, ‘scm->go’ in ‘shepherd.scm’ does not import (fibers) so you need to do that explicitly (for now)
<civodul>something we should change, but we’re still using pre-Fibers shepherd on GNU/Hurd
<mirai>hmmm… am going through the fibers manual and if fibers isn't imported
<mirai>that means doing (sleep x) within (start #~…) is a bad idea right?
<mirai>is this something straightforward as adding fibers to (shepherd-service (modules …))?
<civodul>ah yes, should be
<mirai>or is it some (with-extensions (with-??? …))
<mirai>right
<civodul>no need for ‘with-extensions’
<civodul>re ‘sleep’, that’s a good question
<civodul>i think you get the wrong one currently
<mirai>> The (fibers) module exports a sleep replacement. Code that sleeps should import the (fibers) module to be sure that they aren’t using Guile’s sleep function.
<mirai> <https://github.com/wingo/fibers/wiki/Manual#31-blocking>
<civodul>yup
<mirai>hmmm… I wonder if the diagram at <https://makinata.eu/drafts/guix/service-heartbeat.php> could be implemented in a nicer way within shepherd + fibers
<mirai>right now I'm spawning a script (as root) that spawns an unprivileged script that is responsible for doing an http-head request
<mirai>the exit code is then used by the parent script to issue privileged commands
<mirai>I can take mcron out from the equation by doing something similar to the monitoring-service
<mirai>but perhaps this script-like matryoshka could be simplified as well?
<ssbb>Hi folks! Just wondering about disk encryption. On other systems I usually do luks2 + lvm with unencrypted boot partition and copying init ram image to /boot as well. So kernel decrypt partition and luks2+argon isn't an issue. I tried to reproduce it on Guix w/o any luck since init ram always stored on encrypted partition means I have no way but to
<ssbb>decrypt it on the grub level, right?
<nckx>Right.
<nckx>sneek: later tell graywolf: Hmm… (call-with-input-file "/home/wolf/src/guix/.guix-channel" (@@ (guix channels) read-channel-metadata)) but I see what you mean :-/
<sneek>Got it.
<nckx>ACTION → 😴💤
<janneke>jpoiret: headsup, adding a patch to glibc/hurd from upstream to hopefully support system reconfigure
<janneke>not updating to glibc-2.38 just yet, but this patch would be needed there too