IRC channel logs

2023-06-22.log

back to list of logs

<Shareni>Hi! I'm trying to set up exwm with emacs 29 (emacs-next-tree-sitter), but the issue is that it's starting emacs 28.
<Shareni>This is the step in the package that creates the exwm bin: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/emacs-xyz.scm#n18153
<Shareni>I've checked, and the only emacs in my system profile is 29
<Shareni>Does anyone know an easy way to solve this?
<distopico>nvm, I just found elogind documentation
<HiltonChain[m]>Shareni: I think it's because exwm is byte-compiled with "emacs", you can use transformation to build an exwm variant with emacs-next-tree-sitter.
<HiltonChain[m]>How do you install exwm?
<ChocolettePalett>What is the correct way to mount usb storage on GNU/Guix? E.g. should I define a filesystem in system configuration file to do ``mount -a`` later or just create a directory under /mnt and manually mount it from terminal using a shell script?
<ChocolettePalett>I think the former approach is nicer but my usb-flash is encrypted, so will it ask me for a password when doing ``mount -a``?
<jaft>Hey, Guix; somewhat of a general question. I've got this Elixir/Phoenix project I'm working on and, so, it depends Elixir and MariaDB; however, ~mix~ requires =make= and =gcc-toolchain= and also makes use of =inotify-tools= and one of the dependencies needs =openssl=.
<jaft>I can install all of these and things run but, naturally, it'd be nicer to box these off, in some capacity. I'd imagine this is a use-case for Guix Shell, right?
<jaft>But, if I do that, I imagine I'll run into trouble when trying to work out of Emacs, right? Since my Emacs (using packages installed in my home profile) won't be aware of any packages in the shell; is this an accurate understanding?
<Kolev>Does /boot get hidden by normal system configs? whereiseveryone, I'm trying to get https://codeberg.org/csh/dotfiles/src/commit/8bf30e394973d1e5c2dedde110220cf4fb5ce9aa/rde-config/src/csh/hosts/bender.scm to match https://codeberg.org/csh/dotfiles/src/branch/main/guix/hosts/bender.scm
<lilyp>jaft: you can add emacs + whatever emacs packages you need to your shell and then simply -- emacs some-file-in-your-project or do a desktop-read for the project
<jaft>> lilyp: thanks! 'Had a feeling that might be the case; Emacs just talks to so much of the rest of my OS in my usual usage that I wasn't sure how frequently I might be reminded that I'm running out of the shell might end up being. What's a desktop-read?
<geri>hey, could someone tell me what am i supposed to put in here for it to work? https://0x0.st/HTkm.scm
<geri>i just don't have any idea how to convert a string to a "file-like object"
<jaft>geri: while I think there's a few types of file objects you can use (I'm not sure of all of them), the most common (and probably suitable for your purposes) would be with the ~local-file~ function – ~(local-file "<file path here>")~. So, ultimately, ~(profile (list "<file path here>"))~.
<HiltonChain[m]>geri: https://paste.debian.net/hidden/bf71bcc9
<geri>woah okay, this worked
<geri>thank you :D
<geri>so -configuration variables are only for altering services directly?
<HiltonChain[m]>It depends.
<geri>just like everything else in life
<HiltonChain[m]>for home-shell-profile-service-type (<https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/home/services/shells.scm#n101>), the extend field is the procedure add-profile-extensions.
<HiltonChain[m]>so you should supply values the procedure likes
<geri>so it just appends the second argument straight to profile, huh
<geri>think im starting to understand services haha
<geri>thanks
<PotentialUser-61>hi guys. just update my system and installed rofi. i get the "unable to set locale" bug that is also described here https://issues.guix.gnu.org/28168
<PotentialUser-61>i have  (locale "en_US.utf8") in my system def file
<PotentialUser-61>anybody else have the same problem?
<HiltonChain[m]>I'm a heavy user of rofi but I don't have the issue.
<PotentialUser-61>what version do you have installed?
<PotentialUser-61>i took it an hour ago. version 1.7.5
<HiltonChain[m]>both rofi-wayland@1.7.5+wayland1 and rofi@1.7.5 used by pinentry-rofi
<HiltonChain[m]>I think they've been 1.7.5 for a long time.
<PotentialUser-61>ok. thanks for the info
<jlicht>hey guix!
<daviwil>Hey!
<cassou>Hi everyone,
<cassou>Is there any specific channel for translation?
<daviwil>Hey folks, anyone know of a good way to refer to a non-default output of a package when inserting it into `mixed-text-file` to generate a file path? I'm trying to insert the path to `glib:bin` to get to the `gsettings` binary but I can't figure out the right way to access the `bin` output. `specification->package+output` merely gives me a values result with the glib package object plus the output name `bin`.
<daviwil>Should I inherit from the glib package and remove all outputs aside from `bin`?
<bjc>can you use the list form? ie: ‘(list glib "bin")’?
<daviwil>I did try that but got an error while building the derivation which made it look like it was treating the list as a call expression using the package as a function
<daviwil>> Wrong type to apply: "/gnu/store/19jcd9lda7p0a4pifg2hir4rnbyb113a-glib-2.72.3"
<jlicht>daviwil: does #$obj:output not work?
<daviwil>Can I use that syntax directly inside of `mixed-text-file` or do I need to use a gexp directly?
<bjc>that looks like it's being unquoted too early, since it's trying to apply a string
<daviwil>Hmmm, I might be able to make this work
<daviwil>Sweet, this worked: #~#$glib:bin
<jlicht>lol
<daviwil>Thanks jlicht!
<bjc>you should be able to #~(mixed-text-file … #$glib:bin …), or maybe (mixed-text-file #~(file-append #$glib:bin …))
<daviwil>Probably should just `file-append` just to be safe
<bjc>i hate having #~#$ and avoid it when possible
<jlicht>hth, although it seems a bit silly of course :-)
<daviwil>Yeah, I'm not a gexpert yet so I don't know the idiomatic ways to do everything
<nckx>cassou: Non.
<daviwil>Weirdly this expression is failing due to `file-append` being unbound: #~(file-append #$glib:bin "/bin/gsettings")
<daviwil>My assumption is that it wouldn't be necessary to import `guix gexp` inside of the gexp
<bjc>sorry, that would have to be #~(string-append #$glib:bin "/bin/gsettings"), since ‘file-append’ isn't bound on the build side
<daviwil>bjc: Thanks! I hadn't tried that form yet, but it does the job
<bjc>i /think/ that's functionally equivalent to ‘(file-append (list glib "bin") "/bin/gsettings")’
<daviwil>Yeah, that's basically what the manual says
<bjc>if, for some reason, you didn't want to use gexps
<daviwil>Ahh, I see, so I could do it more directly. I prefer using the gexp anyway so that the package gets pulled into the profile without further intervention
<bjc>what do you mean by “pulled into the profile”? i don't think gexps should make a difference
<daviwil>Maybe profile is the wrong word for it, my impression is that if you build a gexp with a reference to a package, that package will be built and available in the store so that references to it will work
<bjc>the gexp is only there to delay evaluation until build-time. no matter what, in order to get a string from a package, the package has to be built to get its output path, so it will exist in the store
<daviwil>Right, that's what I'm looking for
<bjc>so, if ‘(file-append (list glib "bin") …)’ works at all (which, i believe, it should), then the store will be populated and all references will work fine
<daviwil>Possibly not if I'm deploying into a container? My guess is that running `(file-append ...` directly in my config code will populate the store item in my own system but possibly not inside of an isolated environment
<bjc>i don't think there should be a difference, but i haven't tried it, and i'm not familiar enough with how containers (or the other packaging modes) work
<daviwil>Same here. At any rate, you got me unblocked, so thanks!
<bjc>‘file-append’ is, itself, a kind of gexp. when it gets expanded it turns into the ‘string-append’ form. so they should be equivalent
<jpoiret>file-append is a file like
<bjc>file-likes are gexps, right? i mean, they all go through the gexp compiler
<jpoiret>no, file-likes are things that can be lowered to file paths
<jpoiret>not all file-likes are gexps
<jpoiret>rather, gexps aren't file-likes at all
<jpoiret>they don't lower into file-paths, they just get spliced into the surrounding gexp
<singpolyma>gexp is basically just syntax IIRC
<jpoiret>gexps carry more information than that
<jpoiret>gexps are sexps with some additional niceties
<mirai>my mental model of gexps/ungexps is that it behaves similar to a macro/preprocessor system
<mirai>how are guix (package) hackers managing their /gnu/store? In the past when my undersized my root partition I would have to run guix gc rather frequently but this usually resulted in frequent redownloads of the “usual” substitutes
<mirai>what can I do about my built but non-functional/intermediate local package builds
<singpolyma>Could find stuff you're sure you'll need to re-download
<singpolyma>s/find/pin
<sughosha>Hi! Could someone review https://issues.guix.gnu.org/64113?
<bjc>jpoiret: the code has misnomers, then. because, while i understand the conceptual difference between a gexp (which is like a build-time quote mechanism), and file-likes (which are things that expand at build-time to file names), the code defines operations like ‘file-append’ with ‘define-gexp-compiler’, and ‘mixed-text-file’ literally returns a gexp
<bjc>sorry, it returns a ‘computed-file’ with an embedded gexp. but ‘computed-file’ uses ‘define-gexp-compiler’
<bjc>so, yeah, not all gexps are file-likes, but all file-likes are gexps. and they'd pretty much have to be, since their paths can't be known until build-time
<f1refly>when upgrading, I have abysmal download speeds for the texlife-texmf package. is their upstream mirror slow or did i do something wrong?
<mirai>f1refly: the substitutes can be slow at times
<mirai>is there a reason for not enabling IPv6 support in the substitute servers?
<mirai>what's hydra.gnunet.org (or hydra.gnu.org)?
<nckx>bordeaux responds on IPv6 here.
<nckx>mirai: h.gnu.org was the very first substitute server name. gnunet's is gnunet's, we don't deal with it.
<mirai>is this file <https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/nginx/mirror.conf> still relevant for anything?
<mirai>trying to setup a local caching server for the substitutes based on the reply at <https://lists.gnu.org/archive/html/help-guix/2016-06/msg00016.html>
<nckx>mirai: It's relevant as inspiration/starting point for doing just that. The project no longer uses it, though, AFAIK.
<nckx>(Including GNUnet.)
<mirai>what about <https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/nginx/berlin.scm>?
<mirai>but indeed, bordeaux should have ipv6
<nckx>Berlin doesn't.
<mirai>I saw the lines in the nginx.conf and the .scm with (listen '("443 ssl"))
<mirai>so I thought that ipv6 must have been missing since I managed to find this out the hard way a while ago
<nckx>I'm not sure what the question is now but yes, that system configuration is ‘live’ at ci.guix.gnu.org.
<nckx>There's no IPv6 to enable.
<nckx>(It's not disabled anyhoo.)
<mirai>nginx is unintuitive in that ("443 ssl") means IPv4 only. For both v4 & v6, it would have to be ("443 [::]:443 ssl")
<nckx>(Protocol 41 is also blocked, in case you were getting excited in that direction :)
<nckx>ACTION trying to think of reasons we couldn't use a cheap VPS + nginx to connect berlin to the IPv6 Internet, kind of.
<nckx>ACTION can't.
<jpoiret>bjc: not all file-likes are gexps, they can be embedded into gexps though
<jpoiret>define-gexp-compiler is used to define how to lower stuff when it's inserted into a gexp
<podiki[m]>cuirass stuck? gc-ing?
<Guest28>I need to restart my system to detect my inserted sd-card.  I wonder, does adding udisks-service-type fix that?  I can't try it out since I get a dbus error that says a file is already present
<lilyp>sneek later tell jaft desktop-read is a function that reads project-like buffer configuration from a file – pretty basic, though perhaps a bit arcane emacs stuff
<sneek>Okay.
<cbaines>mirai, there's a pattern for providing mirrors of bordeaux.guix.gnu.org, and some mirrors that are already running
<cbaines>nckx, regarding making berlin available over IPv6, doing some IP translation would be ideal I guess, but I'm not sure how to do that. You could reverse proxy at the HTTP level, but then you'd need to sort out certs.
<cbaines>also, nice to see you around nckx :)
<elevenkb>How does one do haskell development on guix? I'm aware of guix-develop.
<flaminwalrus[m]>elevenkb: The only caveat I ran into is that everything needed to be `-dynamic`. I wasn't doing anything serious though.
<nutcase[m]> Hi, I don't understand, why I still have a running gdm with the service definition part of my operating-system in https://paste.debian.net/1283843/ ?
<elevenkb><flaminwalrus[m]> "The only caveat I ran into is..." <- The only caveat I ran into is that everything needed to be `-dynamic`. I wasn't doing anything serious though.
<elevenkb>How did you install haskell-language-server?
<juliana[m]><nutcase[m]> " Hi, I don't understand, why I..." <- using `set-xorg-configuration` pulls in gdm even if you otherwise remove it
<juliana[m]>So you would instead need to set the xorg keyboard layout in the xorg configuration of the display manager service you're using if you don't want to pull in gdm
<nutcase[m]>juliana: I plan to not use a display manager at all. I'd like to directly run i3 on login at tty1
<juliana[m]>Then I think (big emphasis on "think" because I haven't done this) you'll need to configure the xorg service directly. Not sure if you'd need to add it to the list of services manually or if it would still be in %desktop-base after removing gdm
<razlix77[m]>Hi does anyone have an example of a service using a record of records configuration file?
<razlix77[m]>I've been hitting a wall trying to understand how to have a list of records added
<razlix77[m]>To a configuration for a service
<razlix77[m]>Basically a list of other records
<cbaines>razlix77[m], I'm assuming you're constructing some config file through a gexp?
<razlix77[m]>List-of <smith>
<razlix77[m]>Yeah a firehol configuration
<razlix77[m]>Where you need multiple instances of interface routers and so on
<cbaines>razlix77[m], if you're looking for an example, the NGinx service configuration uses records of records as you put it
<razlix77[m]> https://github.com/TinHead/th-guix-channel/blob/main/services/firehol.scm
<razlix77[m]>This
<cbaines>see the default-nginx-config procedure for how it generates the nginx.conf file
<razlix77[m]>cbaines: Got lost in it ... As you suspect probably I'm not a guile expert 😁
<cbaines>you probably want to use mixed-text-file rather than plain-file razlix77[m] https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html#index-mixed_002dtext_002dfile
<cbaines>although actually, in this case it looks like it doesn't matter, you just need to process the records in to the right string
<cbaines>razlix77[m], so you can start by mapping over the lists of records to generate strings, then joining them together
<razlix77[m]>I have no preference got stuck on calling the service inside the services list ... Complains about a missing field but hell if I understand why 😐
<razlix77[m]>I don't have the error to post right now
<razlix77[m]>Was hoping someone has a simpler example to follow (read copy-paste) :)
<razlix77[m]>A starting point
<cbaines>razlix77[m], there's really not much to code here so examples aren't that useful
<cbaines>you've already got a starting point, sounds like you just need to work on the config file generation a bit morfe
<cbaines>*more
<razlix77[m]>Oh well I'll dig some more tomorrow and get back with more targeted questions I guess
<razlix77[m]>Can a service be instantiated inside the reply?
<razlix77[m]>s/reply/repl/
<cbaines>razlix77[m], yep, although I generally haven't done that
<razlix77[m]>It's the emacs environment you use?
<cbaines>I use Emacs, if that's what you're asking
<razlix77[m]>For coding scheme I mean
<razlix77[m]>Ok maybe I should try that though I'm a lot more inclined to helix-editor emacs is scary
<razlix77[m]>(never really used it so yeah😁)
<nutcase[m]>juliana: thank you. Maybe I'll give it a try, once I find the right mood and time
<juliana[m]>poggies feel free to report back
<juliana[m]>this is something folks ask about often, apparently
<davidl>Hi, I tried creating a package and channel using instructions from the most recent blog post about "from development to continuous integration" or similar. Im failing at the guix build -f guix.scm step. I run it with guix build -K -f guix.scm and when I look at the /tmp/guix-build..../source directory it is empty. I don't know why, because I have the vcs-file? function etc defined.
<juliana[m]>could you use a pastebin service to share your guix.scm file?
<davidl>juliana[m]: I could, thanks. I can tell you that it's not stable regarding the path of local-file. Really weird behaviour. When I added the .guix/modules/* files, and commited it, it showed the 2 files in that directory inside the /tmp/guix-build-.../source directory instead of it being empty.
<davidl>I also tried local-file "../..//" etc. without success.
<davidl>juliana[m]; one sec, working on it
<davidl>juliana[m]: here: https://paste.debian.net/1283857/
<davidl>now, this will not work for you, due to guile-bash.path etc. which is not commited upstream yet.
<davidl>juliana[m]: let me know if you want some temporary commit to upstream repos such as bash-coding-utils.sr.ht - I can always force push it back later if I want to,
<juliana[m]>I'm out and about atm so I'm using the Guix installation in my brain ;p but I appreciate the offer
<juliana[m]>bash-coding-utils.sr.ht-checkout is a subdirectory of where guix.scm is, right?
<Kolev>Maybe I should use Guix Home by itself. #tropin has no activity.
<PotentialUser-5>Good evening. Is there anyone using `emacs-sly + sbcl` in GuixOS?
<PotentialUser-5>Although I get sly to open the repl, which works properly. Evaluation on regular buffers yield `Not connected.`
<PotentialUser-5>I've tried the setup in Ubuntu and there is no problem there =L
<elevenkb>What is the best way to refer to a specfic output for a package?
<elevenkb>What is the best way to refer to a specfic output for a package?
<elevenkb>Sorry for the repetition, I didn't sync quickly enough.
<ae_chep>We can target existing (rust) crates to create package definitions. Can we do the same for a Cargo.lock file? I have one with many dozen dependencies and I'd rather a script did the upfront work than I did
<nckx>Eh. error: failed to load '/gnu/store/…-profile/share/guile/site/3.0/git.scm': Function not implemented
<nckx>cbaines: Hiii! ☺ IP translation? Is that a thing?
<nckx>elevenkb: The ‘right’ way depends on the context, but ‘best’ gives me pause…
<nckx>Hm, it's actually ‘In procedure git_libgit2_init: Function not implemented’: https://paste.debian.net/plainh/7acdd4ff
<elevenkb><nckx> "Kabelo M'sobomvu Moiloa: The ‘..." <- Hmm, basically I want to set up a standard configuration for rust development.
<nckx>‘Kabelo M'sobomvu Moiloa’ say what.
<nckx>Matrix weirdness? ☺
<elevenkb>yah.
<elevenkb>a.k.a. elevenkb?
<nckx>Yep.
<elevenkb>But yah, you know how, in a gexp you can just say something like ~(string-append #$rust:cargo "/bin/cargo")~ for example?
<nckx>ACTION nods.
<elevenkb>so... I would like some way to refer to the name rust:cargo outside of a gexp, indeed in a package definition
<nckx>Where exactly?
<elevenkb>some sort of file-like? thing that I can pass in as (string-append #$thingy "/bin/cargo").
<elevenkb>it doesn't have to be file-like, but I do have to be able to check whether that expression would work.
<elevenkb>Where?... basically in a home-profile-service extension.
<nckx>Bit of a cop-out but I'm (still) blissfully ignorant of Guix Home.
<elevenkb>Np. It's a tricky problem. Maybe I should not overthink things and just assume
<elevenkb>that someone will use either the standard rust package or a modified version with the same outputs.
<juliana[m]>You can use gexprs in home-profile-service definitions i think
<juliana[m]>I'd have to look at it but as a rule of thumb anywhere Scheme should be executed during Guix builds, it can be a gexpr
<juliana[m]>And indeed is preferred to be
<juliana[m]>You can also get a list of a package's inputs outside a gexpr with `(package-inputs <package>)`
<juliana[m]>Wait you said outputs...
<nckx>I'll second that last bit. You clearly *want* to use gexps here, they'd just work. If that's not yet possible in some context it might be better to make it so.
<juliana[m]>You can refer to a specific package and its output with `(list <package> "<output>")` (i think that's the right syntax)
<nckx>Yes.
<nckx>Often written as `(,pkg "out") for street cred though.
<juliana[m]>Which you'll frequently see done with quasiquote and unquote because it's shorter. Markdown doesn't like it but you would quasiquote the whole expression and unquote the package name
<juliana[m]>And you would also drop the list
<nckx>ACTION idly wondering how Markdown is related.
<juliana[m]>You can use Markdown in Matrix and I'm using the Matrix bridge :3 the code above is rendered as Markdown in Matrix
<nckx>IC!
<juliana[m]>Oh wait nckx I am just now seeing your responses one sec
<nckx>They didn't add anything substantial.
<juliana[m]>Okay yeah sorry we were saying the same thing XD
<nckx>Is there a delay through the Matrix bridge?
<nckx>Or other issue?
<nckx>ACTION sees https://logs.guix.gnu.org/guix/2023-06-22.log#232917
<juliana[m]>Probabky my network connection