IRC channel logs

2024-04-15.log

back to list of logs

<mccd>RavenJoad, I see you define a script fix-desktop-monitors.sh, how do you import it later on?
<RavenJoad>The same way as any other Guile/Guix module. (use-modules (synnax packages scripts)).
<mccd>ah, wouldn't that impor tthe module packages/scripts.scm?
<RavenJoad>No. In .guix-channel I set the directory to add to the load path to be "modules". So what happens is Guix sees that and effectively does (add-to-load-path "/path/to/synnax/modules"). Then when Guile looks up (synnax packages scripts), it looks for "/path/to/synnax/modules/synnax/packages/scripts.scm".
<miaomiao>still learning my way around the guix system, should i be concerned seeing this? "guix archive: warning: replacing symbolic link /etc/guix/acl with a regular file"
<miaomiao>this is after running "guix archive --authorize" for a substitute server i want to use
<miaomiao>from what i can tell in the manual this is how one is supposed to do that, but i'm not sure
<RavenJoad>You should be fine? My /etc/guix/acl is a regular file, not a symlink. But I add substitutes using guix system, so YMMV.
<the_tubular>issues.guix.gnu.or's cert seems to be expired
<the_tubular>.org *
<miaomiao>i also see the ouput "hint: On Guix System, add all `authorized-keys' to the `guix-service-type' service of your `operating-system' instead.", but i don't know what that looks like.
<miaomiao>my apologies if these are basic questions, i am still poking my way around a bit lost
<miaomiao>would i add (service guix-service-type (authorized-keys ("blahblahblah"))) somewhere under operating-system in config.scm?
<ieure>miaomiao, On GuixSD, the /etc/guix/acl is a symlink into the store, using `guix archive --authorize' replaced that, but your changes will be reverted the next time you `guix system reconfigure' -- it'll put it back to a symlink into the store.
<RavenJoad>miaomiao: Not quite. Doing that will define a _new_ guix-service-type which conflicts with the already-existing one. You need to modify the one we already have one in-place.
<ieure>Yes, you need to modify the existing on.
<ieure>*one
<RavenJoad>miaomiao: (modify-services %desktop-services (guix-service-type config => (guix-configuration (inherit config) (substitute-urls ...))))
<ieure>You need that *and* to cons your substitute server onto authorized-keys.
<ieure>*your substitute server's public key
<RavenJoad>Yep. You need both of those.
<ieure>miaomiao, I wrote some functions to help with this: https://codeberg.org/ieure/atomized-guix/src/branch/main/atomized/system/substitutes.scm
<peanuts>"atomized-guix/atomized/system/substitutes.scm at main - ieure/atomized-guix - Codeberg.org" https://codeberg.org/ieure/atomized-guix/src/branch/main/atomized/system/substitutes.scm
<mccd>So I'm trying to figure out how I can copy a file to bin to make it executable, I've created a package https://paste.sr.ht/~marcc/97ac7c9556bb2527dbfc5e8bc1ad5802c3fab2c2, but I'm not sure what I am missing. guix complains that the file can not be found.
<peanuts>"bemenu script ? paste.sr.ht" https://paste.sr.ht/~marcc/97ac7c9556bb2527dbfc5e8bc1ad5802c3fab2c2
<ieure>mccd, Can you paste the error you're getting?
<RavenJoad>mccd: My bet is that your bemenu script "./scripts/bemenu-toggle.sh" is not present in the build environment, because you never marked it as an input to your package.
<mccd>In procedure copy-file: no such file or directory
<ieure>I agree with RavenJoad's diagnosis -- your package has no inputs, so no script to copy.
<mccd>makes sense
<ekaitz>hey how do I use substitute* to match several lines?
<RavenJoad>mccd: Take a look at my fix-desktop-monitors package and how it uses the monitor-script as an input to copy to the output.
<RavenJoad>ekaitz: Depends on the context. But substitute* takes in regular expressions too, so it can match against newlines.
<ekaitz>RavenJoad: I have a start and an end several lines later, something like __asm__(...several lines here...);
<ekaitz>and doing "__asm__.*;" doesn't work
<ekaitz>i can't add the equivalent to /m
<ekaitz>oh maybe (.|\n)
<mccd>RavenJoad, I guess I'm a bit confused because I can't actually see any reference to that file shell script file. I see a reference to "monitor-script" ,monitor-script but it's a bit magic for me how it resolves it to ./scripts/fix-desktop-monitor.sh
<RavenJoad>ekaitz: Mind paste-binning the thing? It might just be that the . metacharacter does not include whitespace characters.
<RavenJoad>mccd: In my case, ,monitor-script expands to the variable immediately below it, which is a program-file. What you will want to do is define something similar, but use local-file instead of how I used program-file.
<RavenJoad>See (guix) G-Expressions in the manual for documentation about the local-file procedure.
<ekaitz>RavenJoad: oh yes must be the . doesn't match whitespaces... need to check other options
<RavenJoad>ekaitz, you could always do "[.\n\m\t ]*" That might cover everything?
<ekaitz>let me try...
<ekaitz>i tried with
<ekaitz>\S but it didn't work
<mccd>RavenJoad got it working now :), thank you so much for all the help!
<miaomiao>ieure and RavenJoad, thank you. I stepped away for a bit and catching up now.
<miaomiao>ok, i think i see. i looked around for some other config files uploaded online and i think i know what to do now. thank you both for putting me on the right track. :)
<miaomiao>i am fascinated by lisp but it is all still a bit overwhelming
<RavenJoad>Good to hear! The modify-services stuff is actually Guix sugar over some Guile stuff, so it can be overwhelming disentangling which pieces of a thing come from which.
<ekaitz>RavenJoad: there are no non-greedy options so I'm looking for other ways to do this, but thanks a lot for your help
<ekaitz>if anyone else is wondering, substitute* uses guile's regexp system
<RavenJoad>ekaitz: I could give it a shot too, if you paste-bin what to match against.
<ekaitz>RavenJoad: don't worry, i did it in a different way and it worked
<ekaitz>thanks :)
<RavenJoad>Oh nice! Good to hear!
<miaomiao>hello, it's me again. can someone check over this services block and tell me what's wrong? guix system reconfigure tells me there is an "invalid field specifier"...did i make a silly typo somewhere? https://pastebin.com/cxiLbyU9
<peanuts>"(services (append (list (service gnome-desktop-service-type) - Pastebin.com" https://pastebin.com/cxiLbyU9
<wakyct46>miaomiao I think this might help explain https://www.reddit.com/r/GUIX/comments/121zx6l/invalid_field_specifier/
<wakyct46>I think that same thing bit me on my first config
<JerseyJoe>Can the home-dotfiles service exclude directories? The excluded config setting doesn't seem to be doing anything if I specify directories.
<ieure>miaomiao, The modify-services form needs to wrap %desktop-services.
<ieure>modify-services' first argument is the list of services to modify -- you didn't give it one, only the modifications to make. That's the wrong type for that, so it blows up.
<miaomiao>wakyct46 & ieure, thank you. that was absolutely it. replacing the preceding %desktop-services with (modify-services %desktop-services(...blahblah...)) seems to have done it :)
<miaomiao>i really need to hop on that scheme crash course
<cmiller>Someone running a mail server on GNU Guix and can share the config? (want to know which packages are beeing used, since I used postfix but it is not available)
<mange>cmiller: I use opensmtpd-service-type. I have two configs on different machines, but I can't remember the difference, so here's one (just the email bits): https://paste.sr.ht/~czan/90727695a832f291dbe5402e46675fc1e09df575
<peanuts>"some guix mail stuff ? paste.sr.ht" https://paste.sr.ht/~czan/90727695a832f291dbe5402e46675fc1e09df575
<futurile>Morning all
<cbaines>morning!
<adanska>good morning futurile, cbaines!
<gabber>can i close an issue through mumi? does an issue close when i just send an email to NNNNN@debbugs with the body "close"? can i add more comments to that email or should i first send the comments and then close the issue?
<zilti>gabber: You can send "close NNNNN" to NNNNN@debbugs, but you also have to CC control@debbugs.gnu.org
<futurile>morning adanska
<futurile>gabber: I think I have a version of bts packaged, which lets you interact with debbugs using the cli - if you want to try it I can give you teh bug number?
<zilti>Is it possible to add multiple sources to one package?
<cbaines>zilti, not really, but origin's can be used as native-inputs/inputs
<gabber>futurile: that's ok just for now. except if you want/need some testing done
<gabber>zilti: can i add comments after the control message?
<zilti>gabber: Yes, also you can tell debbugs control to stop processing with a line that says just "thanks"
<gabber>zilti: thank you!
<troi>GUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIX
<beastwick>qq, I see multiple ffmpeg versions in the repo, how does this work?
<beastwick>also, if using foreign guix, do graphical apps work with non free host drivers (from the different host distribution)
<beastwick>apologies if that is right on the line about non free software, just wondering if this is worth the time investment to play around with atm, not interested in running guix standalone
<gabber>beastwick: how does what work? there are multiple ffmpeg version so you can choose which one suits your needs best
<AwesomeAdam54321>beastwick: You can choose to install any of those ffmpeg versions in your package profile
<beastwick>gabber, yes but what about other apps? aren't things like OBS dependent or rather built with a specific version in mind?
<gabber>i.e. you can `guix shell ffmpeg@4.4.2` in a shell to use that version
<beastwick>oh, so I would use different environments
<gabber>beastwick: usually one does `guix shell ffmpeg` because for most purposes, the most recent version of some software suits just fine
<beastwick>okay, I sort of get what's going on, because of the environments, having different versions is feasible
<gabber>the older versions remain as long as there are dependents that rely on older versions - in this case ffmpeg. if you do `guix show obs` you can see that obs does indeed rely on ffmpeg version 4.4.2
<gabber>beastwick: yes, exactly! it's actually a nice way to allow software to have all the dependencies met without neglecting dependency needs of other software
<zilti>Is there some special incantation I have to do to get my patches be noticed by someone? E.g. this simple emacs package sits untouched since January: https://issues.guix.gnu.org/69618
<peanuts>"[PATCH] gnu: emacs-xyz: Add emacs-xref-union." https://issues.guix.gnu.org/69618
<ieure>zilti, Mentioning here is good. The patch backlog is large, there's no formal process for handling patches, so review tends to be spotty. :(
<ieure>The patch review sessions that have been getting held recently have helped.
<zilti>ieure, I see. Is there some more information on this? A designated IRC channel, mailing list, or something? I like updating and adding packages, but as you might guess it can be a tad frustrating the way it is right now. I do however understand that it's a volunteer process and people do this in their free time, so no hard feelings of course.
<podiki>speaking of there is an online review session today in a couple of hours no?
<cbaines>zilti, if you have time to contribute, then reviewing other peoples patches helps
<cbaines>while there's plenty of patches sitting there not being looked at, there's only one that's been reviewed and looks good waiting at the moment https://qa.guix.gnu.org/patches
<peanuts>"Patches Guix Quality Assurance" https://qa.guix.gnu.org/patches
<cbaines>if you review some other peoples patches, and some other people end up reviewing yours, then hopefully many peoples patches will get merged sooner
<podiki>cbaines: thanks for the master->mesa-updates merge. i686 should be fine but one of the evaluations just had tons of "missing derivation" errors (reported to that bug)
<zilti>cbaines: Okay. Will do that :)
<podiki>I don't know why i686 and why that evaluation, but i think that's why coverage is low. otherwise berlin should build it pretty quick no?
<cbaines>podiki, I'm confused by this "missing derivation" issue, as it's a problem I designed not to exist in the build coordinator around 4 years ago now and Cuirass could just copy that approach
<podiki>this is the issue where i saw it discussed, but i haven't read the details https://issues.guix.gnu.org/54447
<peanuts>"cuirass: missing derivation error" https://issues.guix.gnu.org/54447
<cbaines>anyway, I've been watching the bordeaux substitute availability as that's key to supporting QA, and the bordeaux build farm only has two machines to process i686-linux builds, which is why I say it's slow
<podiki>gotcha
<podiki>assuming no new big failures after the merge you just did, should be good to merge tom master i think
<podiki>again, all the ones i just clicked on are "missing derivation" https://ci.guix.gnu.org/eval/1249572?status=newly-failed
<peanuts>"Evaluation" https://ci.guix.gnu.org/eval/1249572?status=newly-failed
<cbaines>podiki, I agree, I don't know of any reason why mesa-updates can't be merged in the next day or two
<podiki>cbaines: great, thanks. i now need to remember to email all the patches i used to close :)
<cbaines>ideally we'd have 80%+ substitute availability on i686-linux, but hopefully we're not far off now
<apteryx>podiki: thanks for the heads-up about cairo
<sneek>Welcome back apteryx, you have 1 message!
<sneek>apteryx, podiki says: I see there was an update to cairo on core-updates, might want to take the changes from mesa-updates instead (there's a circular dependency with cairo and gtk-docs). probably will merge mesa-updates to master soon, seems nearly built
<apteryx>I had simply left out documentation in my update
<apteryx>this is work toward a newer librsvg, which currently segfaults on its test suite on cu
<podiki>the plan is to merge mesa-updates into master Real Soon Now (tm); once i686 is closer in sub coverage
<apteryx>not sure why... there doesn't seem to be upstream reports about that
<zilti>I was trying to update Zig. I did it the naive way of `inherit`ing zig-0.10, and updating the clang/lld/llvm dependencies from -15 to -16, but it seems that is not enough. I get `libclang-cpp.so.16: cannot open shared object file: No such file or directory`. Can someone give me a pointer at where to look for infos on how to solve this?
<RavenJoad>Can /dev/net/tun be exposed inside of a least-authority-wrapper? I have it present as a file-system-mapping, but it does not seem to work.
<futurile>don't forget it's the Guix online meet-up in uuuh 7 minutes: https://meet.jit.si/london-guix-meetup
<peanuts>"Jitsi Meet" https://meet.jit.si/london-guix-meetup
<civodul>futurile: wo0t!
<podiki>thanks for organizing, i can make it this time :)
<civodul>i won’t be there (family duties :-)) but i’m with you in my mind
<podiki>ACTION makes space for more voices in my head....
<Franciman>I'm running sway, but i can't seem to correctly start xdg-desktop-portal
<Franciman>i added the `exec dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway` to sway
<Franciman>but but i don't see xdg-desktop-portal-wlr running, only xdg-desktop-portal
<bigbookofbug>im in the process of migrating from nix to guix and am struggling regarding shell configuration (i use zsh currently)
<sham1>What are you struggling wrt that?
<bigbookofbug>trying to get symlink a .zprofile file using the home-files-service-type, but i get thrown a "duplicate .zprofile" error when i enable the service in my home config due to guix installing its own .zprofile
<sham1>Ah, yeah. You need to have the guix home configuration generate the .zprofile file for you
<sham1>Of course, you can do it so that it bases it on your existing one, but you still need to specify that in the lisp
<bigbookofbug>what would be the method for that?
<RavenJoad>bigbookofbug: Have you use home-zsh-service-type and its home-zsh-configuration anywhere. home-zsh-service-type installs its own .zprofile which gets added to.
<RavenJoad>You can use home-zsh-configuration's zprofile field and use (local-file "your/custom/zprofile"). That will append your custom .zprofile to the end of Guix home's generated .zprofile.
<bigbookofbug>omg thank thank you
<RavenJoad>I just want to be clear, using that method will APPEND to the end of the generated .zprofile, so your custom .zprofile might not work 100% correctly because of things being defined later. But most things should be fine.
<sham1>Doesn't the guix-generated portion mainly just set up the home profile
<Franciman>somehow solved my problem (probably i forgot to update sway's config :P)
<Franciman>is there a good alternative for nm-applet that is wayland compliant enough?
<RavenJoad>sham1: I think it does some other stuff too. Some default aliases are made, e.g. alias ll='ls -l'.
<sham1>In... .zprofile? That's the wrong place!
<bigbookofbug>i'm still struggling to adjust so my config is a mess currently so thanks you guys ! :D
<bigbookofbug>im sure it'll get better but scheme is a completely different beast than what im used to - i love it so far though
<RavenJoad>Guix home does not put anything there by default, I think. But I just used that as an example so that you are not taken by surprise when something is weird.
<PotentialUser-53>Hey. I use guix as a package manager on top of arch for now. But I consider switching to the distro soon. Anyhow, I get the following error:
<PotentialUser-53>Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
<PotentialUser-53>guix pull: error: Git error: failed to resolve address for git.savannah.gnu.org: Temporary failure in name resolution
<PotentialUser-53>How would I be able to fix it? I can ping it, so it's not a networking issue.
<ieure>PotentialUser-53, Wait.
<ieure>PotentialUser-53, DNS is heavily cached, probably resolution failed and now you need to wait out the negative TTL.
<PotentialUser-53>Hmm okay. So how long should I wait. I'm pretty sure I got the error a few weeks ago already. Haven't used my computer since.
<ieure>PotentialUser-53, It shouldn't take very long, five minutes? You shouldn't be seeing that issue lasting weeks.
<PotentialUser-53>Yeah exactly. Should I consider flushing my DNS cache?
<bigbookofbug>RavenJoad would the syntax be alond the lines of (zprofile (list (append '(local-file "dot-zprofile")))) ?
<RavenJoad>bigbookofbug: (home-zsh-configuration (zprofile (list (local-file "path/to/custom/zprofile")))) should get you what you want. No need to append or quote anything.
<wakyct>hi guix, I'm learning about how to use Guix Home, FWIU the idea is: 1. manage your services and package loading in one place, 2. use it like Stow to link config files to their proper locations, and 3. take advantage of generation rollbacks like in Guix System. I would still want to keep config files in revision control like normal. Is that
<wakyct>basically the gist of it?
<wakyct>I'm a little confused about how much config is done in the home.scm versus touching normal config files though
<RavenJoad>wakyct: Yep! Pretty much. You can do that with your config files. Some of the home-services do not let you use a local already-written config file, but some do. You can always skirt around the problem by adding a simple-service which just adds an already-written file to the correct spot.
<wakyct>cool thanks RavenJoad
<bigbookofbug>RavenJoad that did it - ty !
<RavenJoad>Has anyone looked at https://issues.guix.gnu.org/64861 since last year? I just found my original submission in my inbox and the thread seems to have died.
<peanuts>"[PATCH] guix: Add lint check for guix as propagated-input" https://issues.guix.gnu.org/64861
<bigbookofbug>had to reboot for it to take effect but its finally sourcing my .zshrc
<bigbookofbug>im so used to the way home is configured in nix that the home env has been a bit of a learning curve so far
<bigbookofbug>for dns services, does anyone have exp with dnsmasq on guix, or is there a more preferred alternative?
<sham1>RE: Home configuration, I was under the impression that home-manager in nix works basically the same way as guix home does
<sham1>At least with regards to shell configuration
<RavenJoad>It does. Usually you only need to logout/login for home-environment changes to take full effect.
<bigbookofbug>sham1: there are some subtle differences, and that's what's tripping me up
<bigbookofbug>mainly config-splitting is where im struggling, but i think i just need to learn more scheme tbh
<lispmacs[work]>Hi, on one of my servers, I recently converted my user over from normal guix-profile to guix home. Whenever I login, I get this error:
<lispmacs[work]>XDG_RUNTIME_DIR doesn't exists, on-first-login script won't execute anything. You can check if xdg runtime directory exists, XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the script by running '$HOME/.guix-home/on-first-login'
<ieure>lispmacs[work], There was a post on guix-help this weekend about that.
<lispmacs[work]>I'll take a look, thanks
<bigbookofbug>w/ nix the config can be split by just doing something like "imports = [path/file];" so i'm currently trying to figure out the guile equivalent
<Kolev>bigbookofbug: Make a module.
<Kolev>(use-modules file) ;; points to ./file.scm
<Kolev>You'll have to wrap the code in (define-module ...) or something, though.
<bigbookofbug>i did try that but coulndt get the code to load
<bigbookofbug>i think i need to get more acquainted first before splitting mostly
<bigbookofbug>or split something smaller than emacs first
<bigbookofbug>i tried one for nyxt using (define-module (home nyxt)) and then a function for package installation via a simple service but when i'd source it in my home-config.scm it wouldn't recognize the module name nor the function name
<ieure>I put all the helper stuff in my personal channel and just import the functions into the system/home config.
<RavenJoad>bigbookofbug: Guile & Guix does not quite have the equivalent of Nix's import function. If you want to import, you need a Guile module which exports your stuff. Then you start getting into Guile's %load-path and module resolution (which Guix inherits/uses).
<sham1>I guess you could also (include) files as well, but it's not as nice as importing modules
<RavenJoad>include would break based on where you invoke Guix from, I think?
<bigbookofbug>oh yah include didn't work
<bigbookofbug>i'm going to work more on the basics then go back to importing when it's more necessary for my config
<Guest76>Hi Everyone. I was having some trouble getting the guix binary to work on Fedora 39. I get the following error when I run "guix pull":
<Guest76>guix pull: error: remounting /gnu/store writable: Permission denied
<RavenJoad>Guest76: My guess is that /gnu/store has weird permissions. Or SeLinux stuff is happening.
<Guest76>I installed with the shell script, which includes an SELinux policy. I think that might be relatively new.
<civodul>Guest76: hi! how did you install Guix?
<Guest76>I used this method:
<Guest76> https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
<sham1>Yeah, just set your SELinux to permissive and reboot
<sham1>That will solve it
<sham1>I'm currently also doing some guix stuff on fedora
<Guest76>Okay
<sham1>Speaking of: how can I tell guix-daemon to not try to build a derivation in tmpfs
<sham1>Like for example not have it be in /tmp
<sham1>I assume it's in /tmp anyway
<Guest76>Rebooting, wish me luck
<sham1>Hmm, it wasn't /tmp. In hindsight that's sorta obvious, it's probably somewhere under /gnu/store
<sham1>Oh, it actually *was* under /tmp
<sham1>That's a bit silly
<sham1>Oh well, I can use my way more beefier machine