IRC channel logs

2023-10-14.log

back to list of logs

<jbnote>ulfvonbelow: following your earlier hints, i've replaced (string-append (file-append ...)) with a mere #~(string-append #$(file-append ...)) and it works :/. Do you know how I would go about understanding where the object is stored and what happens? I'm writing a system configuration. I've tried to trace the derivation that produces the file (-nginx.conf.drv), got as far as -nginx.conf-builder, which is a guile script, but everything
<jbnote>has been expanded at this stage (correctly or not).
<jbnote>ulfvonbelow: In any case, thanks a lot for your help. I'm not at a level where I can understand what happens, but at least you gave me a workaround.
<ulfvonbelow>well, for starters, where is your #~(string-append ...) form appearing? Is it in a field definition?
<ulfvonbelow>if so, which one, of which record type?
<ulfvonbelow>(it might be quickest to just share the entire config file)
<jbnote>ulfvonbelow: I'm trying to amend the following line https://gitlab.com/jbnote/homeconfig/-/blob/feature_gc_root/servers/workshop.scm?ref_type=heads#L113
<jbnote>in order to insert the correct path to the git-http-backend
<ulfvonbelow>ahhh, I see what you mean. Yeah, the manual describes the 'body' field of nginx-location-configuration as "a list of strings", but it's actually a bit more flexible than that
<ulfvonbelow>looking at gnu/services/web.scm, it looks like it actually uses a combination of 'flatten' and 'mixed-text-file'.
<jbnote>ulfvonbelow: I can't thank you enough. Now i've got something that works. And you even gave me a way to simplify the original #~(begin...) with directly using #~(format ...)
<ulfvonbelow>this means that, for example, you can replace line 113 with ,(list "fastcgi_param SCRIPT_FILENAME " git "/lib/git-core/git-http-backend;")
<ulfvonbelow>it's not terribly well-documented it seems
<jbnote>ulfvonbelow: oooh I see.
<jbnote>ulfvonbelow: to be honest, I wouldn't believe you. But you're right, it works. It's beyond magic for me. How long does it take to reach this kind of understanding ? :)
<ulfvonbelow>use the source, luke
<ulfvonbelow>I just happen to have looked at the nginx service internals before when setting up some stuff before
<jbnote>ulfvonbelow: i've read quite a bit lately. I'm sure there's a question of time involved too. Or maybe i'm too old :)
<ulfvonbelow>time, yeah, time helps a lot
<jbnote>ulfvonbelow: thanks a huge lot for your time and knowledge. I learned a lot, and pushed a patch fixing my problem, all thanks to you.
<ulfvonbelow>oh, also, looking at (gnu services version-control)
<ulfvonbelow>specifically git-http-nginx-location-configuration
<jbnote>oh yeah, great help. Looks a bit like what i'm doing and maybe should be using!
<TehBoss>does the guix image include lvm utilities?
<Guest96>Alright, both my previous guix clone and new clone fail to make with the same error:
<Guest96>contributing.de.texi:1659: @menu reference to nonexistent node `Configuring Git'
<Guest96>contributing.de.texi:1660: @menu reference to nonexistent node `Sending a Patch Series'
<Guest96>I think it is a genuine bug. is it possible to do a make and just ignore the error?
<Guest96>ah, make -k does it, and it seems to skip a lot of similar berrors
<TehBoss>when i try to boot the install usb i get these messages and it stops: https://files.tehbox.org/guix.png
<TehBassalt>i'm setting up my config.scm manually for the install, and i have a heirachical mount system
<TehBassalt>i have / and /home and /home/<user>/Documents
<TehBassalt>looking at the documentation it seems as if theres a dependency i should be able to add for another file sytem, but i'm not sure how i shoudl refer to the other file systems i have defined
<ulfvonbelow>my understanding is you could include the <file-system> that is depended on itself
<ulfvonbelow>though that would require you to bind a variable to it so that you can use the same object in multiple places
<ulfvonbelow>e.g. (define my-/home-fs (file-system ...)) then later (define my-/home/user/Documents-fs (file-system ... (dependencies (list my-/home-fs))))
<TehBassalt>so something like this? http://paste.debian.net/hidden/5f33891d/
<ulfvonbelow>yeah, with a few changes
<ulfvonbelow>presumably dependencies is supposed to be a list, so instead of (dependencies fs-root) you'll probably want (dependencies (list fs-root))
<TehBassalt>ok
<ulfvonbelow>and the (file-system (append ...)) should have 'system' replaced with 'systems', since that's the name of the field of the operating-system record
<ulfvonbelow>also, since it is a field of the operating-system record, it should be inside the operating-system form
<TehBassalt>yeah, in the actualy config i have that, i just typed it wrong
<ulfvonbelow>ah okay
<TehBassalt>does guile support quoted lists like elisp?
<ulfvonbelow>yes
<TehBassalt>instead of doing (list elem1 elem2) could i do '(elem1 elem2)
<ulfvonbelow>only if elem1 and elem2 are self-evaluating (that is, they evaluate to themself)
<ulfvonbelow>like symbols, numbers, strings, etc
<TehBassalt>so could i do (dependencies '(mapped-devices root-fs))?
<TehBassalt>s/root-fs/fs-root
<ulfvonbelow>ah, no, that would get you a list containing those symbols
<ulfvonbelow>you could do it with quasiquoting, e.g. (dependencies `(,mapped-devices ,root-fs)), but it's probably clearer to just use 'list' in that case
<TehBassalt>oh ok
<ulfvonbelow>it may be useful to try things out in a 'guix repl' command
<TehBassalt>i'm getting an error saying that my define command has an invalid field specifier
<TehBassalt>the fields for file-system are device, mount-point, type, and dependencies
<TehBassalt>(the fields i'm using)
<ulfvonbelow>could you paste your config?
<ulfvonbelow>or at least the part it seems to be complaining about
<TehBassalt2>(define fs-root (file-system
<TehBassalt2> (device "/dev/mapper/volgroup0-lv_guixroot")
<TehBassalt2> (mount-point "/")
<TehBassalt2> (type "ext4")
<TehBassalt2> (dependencies (list mapped-devices))))
<ulfvonbelow>does the error message say what it thinks the invalid field specifier is?
<TehBassalt>do i need something special for mapped-devices?
<TehBassalt>ulfvonbelow: nope, just invalid field dpecifier
<ulfvonbelow>hmmmm
<ulfvonbelow>how about you throw open a 'guix repl' and paste your config up to that point into it
<TehBassalt>how do i paste in guix repl?
<ulfvonbelow>probably depends on the terminal you're using
<TehBassalt>the tty, as i'm in the installer usb
<TehBassalt>i managed it using emacs shell, but it gave an error since just the first bit didn't include all of what operating-system needs
<ulfvonbelow>I suppose you could, in an editor of your choice, copy+paste the config file up to that point into a separate file (or comment out everything after that with semicolons) and then run (load "/path/to/config.scm")
<ulfvonbelow>ah good, if you have an emacs that makes things quite a bit easier
<ulfvonbelow>so the error doesn't occur prior to the start of the 'operating-system' form?
<TehBassalt>oh it might be because mapped-devices is a list
<TehBassalt2> (define fs-root (file-system
<TehBassalt2> (device "/dev/mapper/volgroup0-lv_guixroot")
<TehBassalt2> (mount-point "/")
<TehBassalt2> (type "ext4")
<TehBassalt2> (dependencies mapped-devices)))
<TehBassalt2>tried that and it doesn't work either
<ulfvonbelow>now wait a minute, you said it said that the "define command" has an invalid field specifier?
<ulfvonbelow>where exactly is this "define command"?
<ulfvonbelow>in relation to the 'operating-system' form
<TehBassalt>aha, i think it is because of the mapped-devices thing
<TehBassalt>i've defined mapped-devices and am referring to that as a list and now it works
<TehBassalt>oh wait maybe not
<TehBassalt>now i'm getting an error where i define fs-mapping, i think it is todo with the define command
<TehBassalt>ulfvonbelow: the define command is in the operating-system block
<ulfvonbelow>ahhh, it should be at the top-level before the operating-system form
<TehBassalt>ohhh ok
<TehBassalt>can i still refer to mapped devices outside of the operating-system form?
<ulfvonbelow>no, though you could move the definition outside of the operating system form and refer to that from within the operating-system form
<ulfvonbelow>alternatively, you could use 'let' instead of define
<ulfvonbelow>so something like (operating-system ... (file-systems (let ((fs-root ...) (fs-home ...)) (list ...))))
<ulfvonbelow>in the former case, you would have top-level defines for your mapped devices, and for each of your file systems, and then in your 'operating-system' form you would just have (file-systems <your-filesystems-variable-here>) and (mapped-devices <your-mapped-devices-variable-here>)
<TehBassalt>aha it works, great
<roptat>hi guix!
<roptat>is there a way to set up the FQDN of a system?
<cdo256``>roptat: Are you looking for hosts configuration or do you mean an actual nameserver?
<roptat>hosts configuration I think
<roptat>I want hostname --fqdn to return something other than "localhost"
<cdo256``>Yeah if you just put your ip address inside your hosts file then that should work
<roptat>ok, let me try
<TehBassalt2>i'm getting another error that file-systems-/home requires file-systems-/ but file-system-/ isn't defined, maybe guix automatically does the heirachy
<cdo256``>*Inside your Guix system (operating-system (hosts-file ...)) rather
<TehBassalt>ok yeah it seems to be happy with this, i'll run with this for now, and maybe have a look at doing it differently later
<roptat>cdo256``, yes of course :)
<ulfvonbelow>TehBassalt: I believe all non-root filesystems implicitly depend on the root filesystem. My guess is that because of this it's not creating a shepherd service for your / filesystem, but not preventing the shepherd service that it creates for your /home filesystem from depending on it
<ulfvonbelow>I think removing the root file system from the list of dependencies might resolve it
<TehBassalt>i'm not sure, i've just let it go with only the dependency on mapped-devices
<TehBassalt>it seems to be reasonably happy
<ulfvonbelow>the problems introduced by missing dependencies are nondeterministic race conditions
<ulfvonbelow>at boot-time, usually
<hako>PDF variants of latest Guix Reference Manual for English and Español seem unavailable.
<ulfvonbelow>you should keep the dependency from /home/user/Documents to /home
<hako>Currently both <https://guix.gnu.org/en/manual/devel/en/guix.pdf> and <https://guix.gnu.org/en/manual/devel/es/guix.es.pdf> return "404 Not Found" on my side.
<hako>I'm told that they have been like this for about a week...
<roptat>cdo256``, it worked, thanks!
<TehBoss>guix installed woooo
<cdo256``>ropat, TehBoss: yay!
<TehBoss>i think i'll have to wait for tomorrow to test it though
<TehBoss>but the installing command said it worked
<sneek>vivien: wb!!
<vivien>sneek, botsnack!
<sneek>:)
<cdo256>Does anyone have an easy strategy for pushing `guix install`ed packages onto their guix home configuration?
<cdo256>Ideally automatic but I'm not fussy
<rekado>since switching to “guix home” I only ever use “guix shell” for things that are not in my home config
<cdo256>Yeah a lot of stuff I've installed would be better placed in one guix shell or other..
<cdo256>I guess the idea is to never touch `guix package` after you've set up guix home?
<apteryx>civodul: it's to keep the gc time relatively constant and avoid it surprising us by becoming a multi-hours or days affair
<apteryx>which minimizes CI 'downtime'
<lilyp>cdo256: in practice, that's what's currently supported
<lilyp>I raise an issue every now and then trying to get multiple profiles rolling, but alas, I fall on deaf ears every time
<cdo256>Ah that explains why git in .guix-home can't find guix-installed git:send-mail
<cdo256>and other weirdness..
<rekado>lilyp: multiple profiles with guix home?
<lilyp>yep
<rekado>I’m using this: https://elephly.net/paste/1697292607.html
<rekado>for a separate emacs profile and a regular profile
<lilyp>yeah, I do want slightly more control than that, though
<lilyp>In fact, I want to get rid of even the mandatory ~/.guix-home
<rekado>ACTION nods
<civodul>apteryx: ah yes, ok; it’s deleting a bit too aggressively, but i’m not sure what a good middle ground would be
<civodul>we can keep it that way until we have a better idea
<panosalevro>hi all. my neomutt+getmail+procmail setup doesn't work properly on guix. when fetching emails, procmail complains that "/var/spool/mail/user" can't be created. any ideas?
<stocastico>hello :) how would I go if I wanted to implement a new kind of "lowerable" object? I'd like to have a new kind of record that I can build with guix build -f object.scm. Should I look into local-file, computed-file and co. implementation? Or is something on a lower level required in your opinion? Thank you :)
<bjc>panosalevro: guix doesn't have ‘/var/spool’; you could ‘mkdir -p /var/spool/mail/’ and see how it goes. you may have to touch and chown the mailspool, though
<bjc>alternately, tell procmail to use a different location, like one in your home directory, and configure mutt to do the same
<apteryx>civodul: on the flip side, it exposes bugs we'd never or rarely catch (missing gc roots)
<apteryx>I suspect that missing drv bug may be related
<apteryx>hm, emacs-debbugs seems to hide feature requests by default; how can I show them?
<apteryx>ah, add 'wishlist' to severities when prompted i guess
<apteryx>yep
<apteryx>mirai: tl;dr, to pipe the 'raw' article in Gnus rather than the filter/prettified version, use M-i r | instead of just |
<apteryx>M-i is called the symbolic prefix, it's a Gnus-specific thing
<civodul>i pipe the raw article as well when the patch includes patches
<apteryx>so you knew about that M-i r trick?
<apteryx>it wasn't obvious to
<apteryx>to me, because most of the time it works fine without it
<apteryx>ah, "when the patch includes patch"
<civodul>not sure what M-i r is actually :-)
<apteryx>which led me to report bug#66450
<civodul>i used C-u g to get at the raw message
<panosalevro>bjc: thanks!
<civodul>*use
<RavenJoad>Does Guix's packaged version of KDE work on Wayland? Or is only GNOME & sway meant for Wayland right now?
<luke-jr>now that I have a recent-ish Guix going, can I build the official 1.4.0 iso?
<panosalevro>after upgrading, dolphin won't run. i get this "/home/user/.guix-profile/bin/dolphin: error while loading shared libraries: /gnu/store/5h0hzz9isvwr4lfxfa8ls13dyvi1z2a5-baloo-5.108.0/lib/libKF5Baloo.so.5: file too short"
<panosalevro>should I report this?
<lilyp>panosalevro: can you du the file? it probably has 0 bytes
<lilyp>things like these can happen during power outages; the fix that works for me is to garbage collect and rebuild
<apteryx>civodul: I see
<apteryx>M-i r is not exactly faster but made for that purpose
<apteryx>but it seems to work only with the pipe command (|)
<panosalevro>lilyp: yep it's 0 bytes
<cdo256>RavenJoad: I don't know about KDE as a whole, but specific QT programs can work in wayland with `qt-wayland`.
<apteryx>civodul: your fix for the build farm (zmq related) is very valuable! the pending builds queue has gone down nicely since: https://ci.guix.gnu.org/metrics
<apteryx>next if we could squash that missing derivation error bug, I believe berlin would perform near optimally again
<apteryx>feature idea: show the pending builds per architecture (different color lines), with the global count still displayed (the current one)
<apteryx>to see which architectures are lagging behind in compute power
<civodul>apteryx: i actually use build-farm.el to inspect the build queue
<civodul>it’s pretty neat!
<RavenJoad>cdo256: Is there anything special I would need to do to make KDE/Qt apps/environments work? Or should I just do some testing on a spare computer to find out?
<panosalevro>lilyp: any ideas?
<apteryx>lilyp: hm, mpd is still acting weird here
<apteryx>it plays after pulseaudio -k and restarting it, but then I have no volume contorl
<apteryx>control
<lilyp>panosalevro: again, I typically gc the package (sometimes even the whole generation) and rebuild
<mirai>apteryx: the mpd user stole pulseaudio from your user?
<panosalevro>lilyp: ok, will give it a try
<pastor>hi. A quick question. If I'm submmiting an update of a package which requires to add a new package on other file, how should I submit it? In this case I need to update the definition of the `notmuch` package on 'gnu/packages/mail' and I add a new package on 'gnu/packages/c' to support the update. Should I do a patch series?
<pastor>The c package is a library that's required for the updated `notmuch` definition.
<lilyp>yes, you should do a series, with the first patch adding the library and the second updating notmuch
<lilyp>unless it makes sense to do so, don't simply add the library in the same file as notmuch; instead aim to find the "best fit"
<pastor>lilyp: okay, thanks
<jaeme>What's the best way to use a guix vm?
<lilyp>guix system vm :)
<mirai>lilyp: Is #66407 still on time for the gnome-team branch?
<graywolf>Hi Guix :) I want to write a service that adds an service and I am unsure how. I assume some extension, but what? (service-extension WHAT-GOES-HERE? nftables-service-type) ; Any tips or (even better) examples?
<civodul>sneek: later tell mothacehe commit 373ec2cf8ce97d5f89191c3d9211ee3a5c2067dc lacks the actual pack.scm change no?
<sneek>Okay.
<civodul>graywolf: hi! maybe https://notabug.org/civodul/guix-explorer would help you understand service extensions
<civodul>hmm, is it down?
<civodul>or ‘guix system extension-graph /run/current-system/configuration.scm | guix shell xdot -- xdot -’
<civodul>that’ll show you how service types extend one another
<graywolf>Ok, will try that and come back if I still don't undertand :)
<jbnote>so, what code hosting platform should a good guixer use: sourcehut or notabug?
<jaeme>jbnote: sourcehut requires users to pay a fee for hosting repositories, codeberg is also a good option. In terms of freedom, i guess pick the one that works with LibreJS the most.
<podiki>and possibly set to mirror on others for maximal coverage (backup and discovery)
<luke-jr>will guix time-machine try to downgrade my (customised) guix-daemon?
<lilyp>mirai: it still is; QA hasn't applied it, same as with my recent submissions
<lilyp>if you mean "on time" with the 44.6 oldstable release on sunday, don't sweat that; I'm not sure whether we'll be having a functional gnome-team branch by then
<graywolf>civodul: Hm, I have to say I am not really any wiser from the extension-graph output. I think I have some grasp on how the extending works. And there is profile-service-type for packages. But I do not see service-service-type for services.