IRC channel logs

2024-04-14.log

back to list of logs

<mccd>Hey everyone! I'm using wayland and trying to get brightness control to work, I installed the program "light" and it seems to not be working
<mccd>I'm thinking it has something to do with permissions?
<mccd>is there a service I need to enable?
<mccd>or maybe a user group that I need to add myself to? I have added myself to video
<mccd>ah yes, it works with root, which makes me think it's something udev.
<mccd>So I added (udev-rules-service 'light (specification->package "light" #:groups '("light")) to my services, and then added my user to the light group, but it still seems that I can not use the command light without sudo :(
<podiki>did you restart? udev should pick up rules on a reconfigure/service restart, but didn't for me at least once
<cancername>I'm getting the following error while trying to run guix system image: https://paste.debian.net/1314022/
<cancername>Is this a known issue?
<peanuts>"debian Pastezone" https://paste.debian.net/1314022
<podiki>i would retry
<podiki>network flakiness/errors/general retrying is not handled as well as it should be
<x4d6165>So I'm packaging the cd-ripper utility whipper but i'm wondering what the package name should be. It's mostly a python project, but not installable from pip. Should I name the package python-whipper or just whipper?
<podiki>it is used more as a program than a library right? then just whipper
<x4d6165>yes, okay then!
<cancername>it turns out that bind-mounting before install did not work
<cancername>or, I guess it did, but not reayll
<cancername>it runs out of disk space on my / for some reason despite /gnu/store being bind-mounted on not /
<podiki>could be from /tmp filling up?
<blum>Thanks a ton to whoever told me about --emulate-fhs! Mind blown and problem solved :DD
<podiki>welcome! (i think)
<podiki>sneek: later tell apteryx 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
<sneek>Got it.
<miaomiao>hello! just checking that my pidgin setup is working.
<janneke>miaomiao: hey
<ae_chep>Can I get someone to look at 69023 please?
<adanska>ae_chep: maybe you could cc in the team responsible for the bqn module?
<adanska>unless youve already done that
<ae_chep>there is no specific team dedicated :/ when submitting the ticket I used the tool that lists teams to CC and none came up
<ae_chep>My prior BQN tickets used to get picked up though so I'm not sure if I have somehow made it into a ghost
<adanska>oh! thats surprising. maybe git blame the file to see who created it and cc them? they might be in a better position to review it
<ae_chep>I'll also CC the person who reviewed my prior BQN-related patches
<adanska>sounds good! good luck :)
<ae_chep>thanks! it has been around 2 months so I hope I can get it updated soon :)
<trig_function>How is the relevance of packages calculated?
<adanska>trig_function: like in `guix search`?
<efraim>`guix show qtbase@5` on aarch64 shows its only supported on x86_64 and aarch64. Can someone check from other architectures?
<vhns>efraim: this si what I get on x86_64: https://paste.sqt.wtf/014f1b@raw
<efraim>vhns: thanks. It's a known bug that x86_64 only shows the systems field for x86_64 and i686, but I was hoping it would show for i686. Looks like something made it appear as not supported
<vhns>yw
<JerseyJoe>Hi, I'm dealing with a couple issues. Number one is I'm trying to use guix home reconfigure to track my dotfiles and am getting an "error: duplicate '.config/fontconfig/fonts' entry for files. I think this is because this file already exists in the store. I earlier made an unsuccesfuly attempt to set up a guix home and I think there's basically
<JerseyJoe>some junk in there. Running the gc hasn't helped.
<JerseyJoe>Hi, I'm dealing with a couple issues. Number one is I'm trying to use guix home reconfigure to track my dotfiles and am getting an "error: duplicate '.config/fontconfig/fonts' entry for files. I think this is because this file already exists in the store. I earlier made an unsuccesfuly attempt to set up a guix home and I think there's basically
<JerseyJoe>some junk in there from that. Running the gc hasn't helped.
<bjc>builds don't depend on store contents, they can't possibly have a conflict unless you're introducing it
<bjc>iow, each run of "guix home build" or whatever is completely independent of what you've done previously. there's no state. that's why it's a "functional" package manager
<bjc>which is to say: you have an error in your config, and you don't have to look outside your config to find it
<bjc>it's been a while, but my recollection is that "guix home" will move non-guix-managed files out of the way if there's a conflict there. so that means the only way there's an issue is that your config has two things trying to create that file
<bjc>one thing that stands out is that guix home manages your fontconfig for you; so if you're trying to create that file explicitly, it's probably conflicting with what guix home is doing for you behind the scenes
<janneke>civodul: you've started to use ranges for (your) copyright years
<janneke>i seem to remember that in order for lawyers to understand that, this has to be documented somewhere (and that you did so)?
<janneke>ACTION somehow cannot find any reference to it
<mccd>Hey, are there any examples of a minimal package that runs a shell script in a local folder?
<mccd>I have some bemenu scripts I'd like to package for my home config
<ekaitz>mccd: check trivial-build-system and #:builder (begin... (invoke "sh" "blahblahblah")) in the arguments
<mccd>Another question: in my home-files, how do I specify a special derivation? I can run guix install glib:bin to access gsettings, however I can't figure out how to set that up in the home-config. Putting (packages (list glib)) does not work.
<ekaitz>mccd (list glib bin) does work?
<mccd>ah meant that (list glib:bin) did not work
<mccd>should the format be glib bin?
<ekaitz>yes
<mccd>ah I see
<ekaitz>glib:bin is understood as a variable, but that doesn't exist
<mccd>yeah, I thought that glib bin would install the packages glib and bin, but as I understand it glib:bin is a special derivation of glib
<ekaitz> https://guix.gnu.org/en/manual/devel/en/guix.html#Packages-with-Multiple-Outputs
<peanuts>"GNU Guix Reference Manual" https://guix.gnu.org/en/manual/devel/en/guix.html#Packages-with-Multiple-Outputs
<ekaitz>oh btw, we need to send the output as a string
<ekaitz>it's (list glib "bin")
<mccd>ah ty for the link
<ekaitz>np
<bjc>does ‘specification->package+output’ not work correctly on “glib:bin”?
<bjc>nono, it must. i'm using it on “bind:utils”
<mccd>@bjc no it didn't work for me when I tried it
<bjc>@nick isn't an irc thing, btw
<bjc>i'd need to see your config, but it definitely does work for me
<mccd>bjc https://git.mccd.space/pub/system-conf/tree/home/config.scm
<peanuts>"config.scm ? home - pub/system-conf - Guix system configuration" https://git.mccd.space/pub/system-conf/tree/home/config.scm
<mccd>L:52
<bjc>ah yes, i remember now why this doesn't work. guile (or possibly scheme itself) is very weird about multiple return values
<bjc>you would think your syntax would work. it should! you would be wrong
<mccd>ah
<bjc>afaict you /need/ to use “(map (compose list specification->package+output) "package"…)”
<bjc>without the ‘compose’ it breaks. i have no idea why
<bjc>but i ran into it too. it does mean you need to use the stringified names in your list, not real packages
<bjc>i understand the reason for having multiple return values from a pure perspective, but pragmatically it causes no end of problem and i wish scheme didn't have them
<bjc>(and i really, really wish guix didn't use them)
<mccd>that makes sense, I didn't realize that they were different return values
<bjc>come to think of it, you could just replace line 52 with “((compose list specification->package+output) "glib:bin")” i think
<mccd>bjc that fixed it :D
<mccd>ty
<mccd>albeit not trivial haha
<bjc>i think ‘compose’ is handling mult-value return implicitly, but i haven't read the docs on it
<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.
<JerseyJoe>I have another issue which is that trying to build almost any package with opam gives this error:
<JerseyJoe># ld: cannot find crt1.o: No such file or directory
<JerseyJoe># ld: cannot find crti.o: No such file or directory
<JerseyJoe>Other issues report that it's a problem with not having gcc-toolchain installed but I have that installed. Also appreciate any tips for ocaml dev on guix if anyone here is doing that  :)
<RavenJoad>JerseyJoe: Those crt*.o files _are_ provided by gcc-toolchain. I know $LIBRARY_PATH gives you a path to a profile's lib/ directory. I would bet that opam is looking in default locations for shared objects, and Guix does not place those in the standard locations.
<JerseyJoe>Quick question -- is there a way to "save" a shell session so I can easily access its options later? I can see that there's a --generate-manifest option but that seems to be at the start of a shell session. Suppose I have been using a shell to experiment with a certain profile and I want to make that profile persistent. What's the guix-y way to do
<JerseyJoe>that?
<JerseyJoe>RavenJoad It looks like uninstalling all guix-installed ocaml packages except opam itself, starting my opam switch from scratch, and having opam install the ocaml compiler fixed my issues. Unfortunately that doesn't feel like a very Guix-y way of doing things.
<RavenJoad>JerseyJoe: The easiest way I know of to set environment variables after you enter a shell is to have an environment file you source after you enter your project's shell. As far as I know, "guix shell" and manifests do not allow defining environment variables to use in the shell after entering it.
<JerseyJoe>RavenJoad Your answer makes me think I've misunderstood how shell works -- my understanding is shell creates what amounts to a temporary one-off profile where I can experiment, add packages, etc. without "polluting" my main profile. By default this is adding the changes I'm making on top of the existing profile. It seems to me like a logical
<JerseyJoe>workflow would be to use a shell to experiment with a certain setup and then wanting to "promote" those changes back up to the main profile. I'm guessing that this actually _isn't_ so logical if I understood the Guix way of doing things better.
<RavenJoad>Oh! That is what you meant! Guix supports that, if you want it to work that way. There is no automatic way to promote those, you must do it yourself by installing packages either globally or for your user and setting environment variables in a shell start-up file.
<RavenJoad>The "goal" (if you want to follow that ideology) is to have a nearly empty home environment and have per-project shells set everything up per-project.
<bjc>hmm. i wonder if you could create a package that sets up your bashrc/profile or whatever that does the environment setup you need, then just add it to ‘packages->manifest’
<RavenJoad>"goal" in this case being "pure" home environments.
<bjc>iirc, with bash at least, i think that should just work automatically, but i haven't read the login scripts in some time
<bjc>since the manifest files are just scheme code, you can ship all that in one ‘manifest.scm’ and have ‘guix shell -m manifest.scm’ dtrt
<bjc>hrm. actually i don't think 'guix shell' always executes bash or whatever. you have to tell it to do that
<JerseyJoe>OK, so if I'm understanding correctly, if I want to create a "persistent" shell I have to manually write the manifest.scm. I see on the wiki there is a way to generate a manifest from a shell invocation, but any changes I make during the shell session will have to be added manually?
<bjc>yes. think of guix invocations as building a complete system from nothing
<JerseyJoe>Thanks for bearing with me here. I'm getting a better understanding. So if I open a guix shell and then inside the shell do a guix install, that will affect only the shell session, correct?
<bjc>i don't actually know what will happen if you do that. that's the most it *can* effect, but i'm not even sure it'll go that far
<JerseyJoe>OK, so that's not an intended use.
<bjc>since your profile is built out of what you've installed, whenever you make a change to what you install you change the profile. the reason that works normally is that there's a symlink set up for your normal shell to do what you'd expect'
<bjc>i'm not sure if that machinery exists inside 'guix shell', or how it'd interact
<fnat>A bit puzzled by the fact "allows to" is flagged as invalid by the Guix linter...
<fnat>Too formulaic, perhaps?
<bjc>it's bad english
<bjc>you want "allowing" or "allows $someone to'
<fnat>Got it, thanks bjc.
<bjc>it's an extremely common mistake. i'm old enough that it sticks out like crazy to me
<fnat>ACTION feels very ashamed now...
<fnat>Oh, ok, if it's common then I feel less bad. :)
<bjc>and it's *everywhere*. my take is that it's because the internet brought in tons of non-native speakers, and this admonition isn't something that you'd pick up on otherwise
<fnat>That's particularly good to have it in the linter then.
<bjc>the other thing is the loss, or sometimes inversion, of past participle forms. i cringe so hard every time i read "i had ran it"
<bjc>i cannot express how wrong that sounds to me
<fnat>You mean as opposed to "I run it" or "I had it run"? Maybe simply the former?
<fnat>Sorry, I ran it.
<bjc>yep
<fnat>Sweet, thanks.
<bjc> https://ell.stackexchange.com/questions/11193/allow-to-infinitive-substantive-verb-ing
<bjc>similar admonitions exist for verbs like "require", but for some reason i almost never see it there, but constantly do for "allow"
<fnat>Thanks for the link.
<RavenJoad>Can /dev/net/tun be exposed inside of a least-authority-wrapper? I
<RavenJoad> have it present as a file-system-mapping, but it does not seem to
<RavenJoad> work.
<RavenJoad>Yikes. Sorry about the bad formatting. I copy-pasted that.
<JerseyJoe>Is there a recommended way for dealing with flatpaks in a guix system when they're necessary?
<Kolev>JerseyJoe: What's wrong with "flatpak install"?
<mccd>Basic question - how do I import a module? I created a subfolder packages/bemenu-scripts that exports one definition and that I named (scripts bemenu). Now when I try to import it in my home/config.scm file using use-modules it cannot find it. I assume I need to add the path somewhere but can't quite figure out how
<mccd>I get the error no code for module
<RavenJoad>mccd: What is your %load-path set to? Guile uses %load-path to resolve (use-module (path to module)) forms.
<RavenJoad>s#use-module#use-modules#
<mccd>RavenJoad I added (add-to-load-path "../packages"))
<mccd>but doesn't seem to help
<RavenJoad>Ok. And the structure you have in the file system is packages/scripts/bemenu.scm?
<mccd>ah no, it's packages/bemenu-scripts
<mccd>I guess they have to correspond to the file-system?
<RavenJoad>Yep. Guile just uses the module name to resolve directly with the file system, so names need to match.
<mccd>Ah yes
<mccd>that explains it, ty
<mccd>ah but it only loads it in the repl now
<mccd>so I moved the file to extra/bemenu, and in the repl ran (add-to-load-path "../extra"), which works, I can then load the module with use-modules
<mccd>but then when I do the same in my home config, it complains about no code for module
<RavenJoad>Correct. Guix runs another Guile instance, which does not have the extra load-path added so it does not find the module. If you are just testing stuff, you can add -L "path/to/extra" to your Guix invocation. If you want to make it permanent, the only way I know of is to make your repo a Guix channel and "guix pull" it in.
<mccd>RavenJoad, all right, so if I want to add a shell script for bemenu, I need to set up a separate channel or define it in my home.scm file?
<mccd>Or maybe just use -L is easier
<RavenJoad>I'm not 100% sure what you are doing, but if your bemenu is configured through Guix and you want to add a script to bemenu with Guix, then sort of. You can test with -L (reconfigures will work). If you want to make the load-path changes permanent (between Guix invocations), you need a channel and pull it.
<RavenJoad>I did this myself if you need an example.
<mccd>Ah yeah,I'd love to see an example
<RavenJoad>mccd: https://github.com/KarlJoad/synnax This is a tiny bit weird, since I have guix deploy machines in the repo too. All you need to make a channel is a .guix-channel file at the root of the repo.
<peanuts>"GitHub - KarlJoad/synnax: Package descriptions for Guix" https://github.com/KarlJoad/synnax
<RavenJoad>The manual also has information. (guix) Creating a Channel
<mccd>Great ty