<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?
<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>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>"))~.
<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"
<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
<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>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
<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?
<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.
<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
<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.
<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…