IRC channel logs


back to list of logs

***KindOne_ is now known as KindOne
***maximed is now known as antipode
***jfred_ is now known as jfred
***nckx_ is now known as nckx
***user3456_ is now known as user3456
***meena5 is now known as meena
***Lightsword_ is now known as Lightsword
***hendi_ is now known as hendi
***aeka` is now known as aeka
<drakonis>oho, guix/build-system/channels
<drakonis>how nice.
<drakonis>first class channels, innit
<drakonis>this gonna bring the nix users to the lawn
<trevdev>Heya Guix. Do any of you currently use guix shell/guix container for throw-away developer environments such as WordPress? I have previously used Docker for this. Now that I'm on guix I'm wondering how you all like to do this
<trevdev>Reading the guix shell docs, I think if this is a thing, I might find it here.
<podiki[m]>I don't know about wordpress, but yes, just guix shell <list of packages needed> or guix shell -D <package you want dependencies>
<podiki[m]>probably there are some fancier ways with the tools that do stuff when you enter a directory to set everything up the way you want it, but I haven't tried
<podiki[m]>maybe with --pure if you want to isolate from host
***duioon is now known as Rampoina
<sneek>Welcome back atka!
***jetomit_ is now known as jetomit
<jpoiret>trevdev[m]: if you need to bring up multiple services and have networking between them for developing, guix shell is not the way to go currently
<jpoiret>drakonis: from my experience, this does not let you install arbitrary channels in the way you're used to
<jpoiret>you'll at least be missing the guix describe info for non-guix channels
<rekado>trevdev[m]: I use “guix shell” all the time, but for more “complex” containers I use “guix system container” with a Guix System operating-system configuration.
***Dynom_ is now known as Guest5623
***rgherdt_ is now known as rgherdt
***wielaard is now known as mjw
<rekado>I have a bunch of rust package updates and additions, but I don’t want to step on the toes of other contributors who are waiting for their rust stuff to be merged.
<rekado>does anyone here want me to review their rust stuff?
<pashencija[m]>I have a c++ program and I want to implement herd service management there. It should be able to start/stop and check service status. How should I do that?
<oriansj>rekado: is tuigreet in the list of additions?
<rekado>it’s mostly newer versions of existing packages, plus their (mostly low level) dependencies.
<rekado>rust / cargo question: here’s a package with this block in Cargo.toml: [target."cfg(windows)"]
<rekado>even though we’re not building for Windows, the dependencies listed there are still required when building.
<rekado>this idiom is supposed to make these dependencies platform-dependent.
<rekado>why isn’t it working in our build system?
<oriansj>rekado: are you sure that the same thing isn't also occuring for other build systems too?
<rekado>I would expect this section in Cargo.toml to be ignored, so that none of the listed crates would need to be added to the package inputs.
<rekado>but instead the build phase aborts because Cargo wants these crates.
<oriansj>could it be an older cargo running that doesn't know about target.* ?
<rekado>good idea
<rekado>could be
<klm>Hey everybody! I managed to run a Guix guest on a VPS on It was a surprisingly pleasant experience, so I did a writeup here: Maybe that's of use to someone.
<rekado>klm: very nice! Would you like to contribute this to the guix cookbook?
<VesselWave>Hey any rust guys here? I've got an error: failed to select a version for the requirement `windows = "^0.32"` candidate versions found which didn't match: 0.39.0. How 0.39.0 can be not in ^0.32 ?
<rekado>VesselWave: it doesn’t want >= 0.32. It wants a version starting with 0.32
<rekado>FWIW this very requirement is what I mentioned a few minutes earlier.
<rekado>is that due to generator 0.7.1?
<VesselWave>Oh it's not good, but I'll manage this. Thank you
<klm>rekado: If you think it'll be useful, I can see if I can get around to learning .texi syntax and make a submission. But a better approach might be to see if we could add support for Hetzner in `guix deploy ...` for proper automation?
<rekado>we can do both :)
<VesselWave>rekado: Yeah I'm making package definitions for all alacritty 0.10.1 dependencies
<klm>How can I build a GPT-partitioned disk with `guix system image vps.scm`? The default is msdos.
<rekado>VesselWave: we have some overlap then.
<rekado>VesselWave: for generator 0.7.1 it would be good, I think to avoid the windows stuff completely.
<rekado>the Cargo.toml file says that these are only needed on cfg(windows), whereas on cfg(unix) we need only rust-libc
<VesselWave>Maybe guix will be able to build for windows? I heard bitcoin-core uses guix for windows builds too
<rekado>but it shouldn’t require windows stuff when not building for windows
<rekado>VesselWave: have you submitted your proposed changes to the issue tracker already?
<VesselWave>I haven't submitted anything yet. I fix by myself. And then I'll submit patches to guix repo
<pashencija[m]><klm> "How can I build a GPT-partitione..." <- Try efi-raw-image-type
<pashencija[m]>`guix system image --image-type=efi-raw-image-type vps.scm`
<vldn>how to get the name from a package specification in guile?
<klm>pashencija[m]: Thanks, but I'm still getting dos disklabel type
<klm>vldn: Is (package-name package) what you're looking for?
<pashencija[m]>Check this one
<pashencija[m]> (partition-table-type image-partition-table-type ; 'mbr or 'gpt
<pashencija[m]>When set to GPT, it makes GPT image. At least it worked for me a while ago
<pashencija[m]>That's all I can say. Unfortunately, Image API is not well documented or tested, so there's no solution without checking the code
<klm>pashencija[m]: oh that's a great pointer, thanks!
<apteryx>rekado: thanks for explaining
<apteryx>so typically substitute servers have the items they serve in their store, which means they do not need to fetch (and authenticate) substitutes they produced themselves
<abralek>Hi Guix!
<efraim>oh, ha, I see the problem now. the 'set!' in the 'unpack phase of the go-build-system is likely causing the build failures on powerpc-linux
***justDeez is now known as justache
<vldn>ist it possible to replicate guix system reconfigure with guix package?
<vldn>or installing the system definition via guix package?
***mark__ is now known as mjw
<sneek>lfam, you have 1 message!
<sneek>lfam, nckx says: We definitely do want to set CONFIG_INITRAMFS_PRESERVE_MTIME=y.
<lfam>Heh, that's what I came here to talk about nckx ;)
<lfam>I remember your message about trying to compile Scheme files in the initrd or similar environment
<lfam>I'm testing it now
<vldn>or installing the system definition via guix package? > or is it not possible?
<lilyp>vldn: no, it is not; guix system handles all your system services while guix package only handles (user) packages
<lilyp>guix home is spiritually similar to guix system, but for users
<lilyp>for a more helpful answer I'll have to ask: what are you trying to achieve?
<vldn>just out of curiousity for my creativity xD
<vldn>maybe experiment a bit with cli -L option to load package defintions from a locally pulled channel to hack on it while using it's package definitions
<vldn>but maybe (add-to-load-path) is sufficient, we'll see
<rekado>vldn: you can install from an expression with “guix package -e”
<rekado>vldn: so the expression only needs to load the file containing the operating-system configuration and access its packages field.
<vldn>and it builds the whole system like guix system reconfigure? :D
***luk is now known as Luk6655
<Luk6655>I'm currently reading the manual in preparation for installing guix os, but there is one thing I'm not sure how to configure.
<Luk6655>Specifically I would like to be able to normally boot to gdm(X), but sometimes to switch off X and boot to text mode
<Luk6655>Normally I woukd switch the run level, but with declarative configuration I'm not sure if there is a concept of run level?
***noptys_ is now known as noptys
<Luk6655>I have found login-service configuration, but it appears to be related to console login. Perhaps the way to switch between x and console login will be just to disable gdm service.
<lilyp>Luk6655: you could reconfigure two configurations: Then config 2N is the graphical one, and 2N±1 is the textual
<lilyp>note that you should try to instantiate the gdm user in the latter, because otherwise your gdm home will get needlessly chmodded every time
<ryuslash>good morning Guix :)
<Luk6655>Just looking at various sources online I think I can figure out how to define two configs. One with xorg, one without. However, if I have two and switch between them does this mean guix woukd basically uninstall and reinstall xorg(and gnome in my setup) every time I switch?
<lilyp>xorg will reside in the store even if you don't use it
<lilyp>there is no extra action aside from what's done at reconfigure
<lilyp>at boot time, only the system you pick is made "current"
<Luk6655>I see
<lfam_>I sent patches for the 5.19 kernel series
<lfam_>Please test!
***dgcampea-2 is now known as dgcampea
<podiki[m]>woop! thanks lfam_ for all the kernel work
<muradm>hi guix
<muradm>apteryx: no i was hanging under the water :)
<ryuslash>muradm: \o
<muradm>lilyp: thank you for commiting 56690 56699, working fine
<lilyp>no problem
<klm>Luk6655: When you switch to Xorg and it's already in the store, you'll just get new symlinks. If you switch to your non-Xorg setup and run `guix gc`, it will get deleted, and then you'll have to redownload or rebuild.
<lilyp>no, it won't
<lilyp>as long as any store item references Xorg, you're safe
<jab>Hey guix!
<klm>I assumed nothing would reference Xorg & friends when he switched to his text-only setup. If that's the case, it will get deleted from the store with `guix gc`, won't it?
<lilyp>the other system generations still exist tho?
<klm>oh, oh, of course - didn't think about that.
<klm>Sorry for the confusion
<ryuslash>jab: o/
<Luk6655>There will be user programs that depend on xorg libraries. I might try running them on a remote xorg (over Ethernet)
<shcv[m]>I'm surprised; it doesn't look like FastAPI has been packaged yet?
<shcv[m]>though I guess more people are using python on guix for applications than servers or development
<unmatched-paren>oriansj: tuigreet is likely never going to be packaged
<unmatched-paren>Both me and muradm tried it
<unmatched-paren>the dependency tree for most rust packages is pretty bad, but this one is *utterly, indescribably idiotic*
<jab>unmatched-paren: can you elaborate on "utterly indescribably idiotic"?
<unmatched-paren>jab: Haha, so, the package is internationalized, which is a good thing
<unmatched-paren>but it uses this Rust crate called i18n_embed
<unmatched-paren>to do its internationalization
<jab>also looks like nix has it packaged...
<unmatched-paren>somewhere along the line i18n_embed depends on rust_embed to do its embedding
<unmatched-paren>note that the rust_embed package appears to be designed for the web:
<unmatched-paren>> You can use this to embed your css, js and images into a single executable which can be deployed to your servers. Also it makes it easy to build a very small docker image for you to deploy.
<jab>they have a dependancy, which allows optional javascript? oddd
<unmatched-paren>have a look at some of these dependencies:
<unmatched-paren>looks reasonable, until you realize most of those are web frameworks
<unmatched-paren>and web frameworks that aren't particularly easy to package, at that :)
<unmatched-paren>After toiling away at axum's dependency tree for a few days, I decided to give up on it
<jab>unmatched-paren: why would they use webframeworks as dependencies? That is really silly
<unmatched-paren>jab: I suppose it's for some integration with those web frameworks
<unmatched-paren>because of how cargo works, those deps are mandatory
<unmatched-paren>even though they're technically feature-gated
<jab>unmatched-paren: are you currently using elogind? or seatd?
<unmatched-paren>don't use it if you use ${anything_depending_on_polkit}, though
<unmatched-paren>as polkit hard depends on logind
<unmatched-paren>it doesn't use libseat for portability between the two (yet?)
<jab>can you remind me of some of the things that polkit provides?
<jab>I am running printers...
<jab>It would be kind of cool to switch to seatd
<jab>it would be nice to say goodbye to elogind
<unmatched-paren>jab: Polkit is required by Pulse and upower
<unmatched-paren>you can use pipewire instead of pulse, but upower currently has no replacemente
<unmatched-paren>upower provides e.g. low-power actions and power-off key functionality
<unmatched-paren>without it, your on/off key won't work
<unmatched-paren>and your computer won't do anything on extremely low power
<unmatched-paren>you need to monitor your power levels carefully yourself, and use `sudo shutdown` to turn off the computer
<unmatched-paren>you get used to it :)
<unmatched-paren>sneek: later ask muradm: Hello! Seems like your fixes for seatd/greetd have been merged? (Thanks for working on those :)) It seems that wlgreet still doesn't work, though, even after adding myself to the `seat` group. Is there anything I need to change in here <> to make your fixes work?
<sneek>Got it.
<unmatched-paren>sneek: Botsnack :)
<rekado>vldn: no, of course not. It builds a package.
<pkill9>does pipewire work well in guix?
<unmatched-paren>pkill9: I'm using it, seems to work
<unmatched-paren>Currently no home service though
<pkill9>how do i use pipewire instead of pulsem
<unmatched-paren>I'm using it by executing it in the sway config
<pkill9>so you just run it and all applications will use it?
<unmatched-paren>it would be nicer to have a service though
<unmatched-paren>(home service)
<pkill9>do you experience any advantages compared with pulseaudio?
<unmatched-paren>it works with seatd :)
<unmatched-paren>i don't use sound much, so i wouldn't notice any other advantages
<unmatched-paren>there probably are some
<pkill9>if it's good enough as a jack replacement then that will simplify things a lot
<two[m]>i have a file with package definitions
<two[m]>how do i import them for use with guix package?
<unmatched-paren>two[m]: put them in a directory, turn the file into a module relative to that directory, and use -L pkg-dir
<unmatched-paren>or make a channel if you don't want to use -L