IRC channel logs

2023-06-19.log

back to list of logs

<janneke>civodul: ooh, nice
<mekeor[m]>civodul: yippie :)
<SeerLite[m]>If I upgrade my local user packages but don't reconfigure my system, I get some glibc/locale related errors with some user packages and they refuse to open (e.g. tmux). Is that expected? Is the system expected to be up to date with user profile packages? Or is tmux missing glibc or something as an input?
<rekado>civodul: woo!!
<rekado>ACTION goes to try it on the huge store at work
<brettgilio>Has there been any attempt at packaging gnome-remote-desktop for Guix? Asking so I don't dup any effort
<Guest28> https://paste.debian.net/1283406/ upon upgrading my system after guix pull.
<brettgilio>Guest28 we will need your config to know what happened
<SeerLite[m]>Hi! Is it just me or does time-machine currently not play well at all with third party channels? It seems to be completely focused on the main channel. Has there been discussion about this before? I couldn't find anything relevant on mailing list archives
<Guest28>you can use -C for a scheme file with additional pinned channels
<SeerLite[m]>Yeah, but it's annoying to deal with IMO. I wish there was a way to roll back to a state where every channel is stable in relation te each other without having to figure out the commits manually
<SeerLite[m]>Maybe it could be done by looking at commit dates?
<Guest28>if you are only concerned about the main channel, there is something like --version=1.3.0.  but yes, it is a pain if you have multiple channels and they all need to be compatible. had gone through that some week ago
<SeerLite[m]>Yeah, it'd be nice to have a --date argument or something
<brettgilio>Should I use the installer script or the debian package on Debian stable?
<kimjetwav>brettgilio: I'd say use it if you're comfortable. I used the installer script for my Debian partition.
<kimjetwav>brettgilio: due to the isolated nature of package installs everything gets chunked into a very small number of places so even without an "official" .deb, it's easy to remove if you later want to.
<kimjetwav>brettgilio: The main reason the installer script wants root privileges, in case you're worried, is it lets guix set up its store directory as read-only with a read-write mount in its own namespace, which is how the immutability of the packages works.
<brettgilio>could I, in theory, use guix's gnome package and point gdm to initialize it? Not saying I am, just curious if that would actually work
<brettgilio>(again, on a foreign distro)
<brettgilio>probably not advised, I imagine
<kimjetwav>brettgilio: Kinda not really. Certain things don't work well on a foreign distro simply because they put dependancies in your user profile, which then conflict with that Debian's desktop isntallation uses.
<kimjetwav>brettgilio: Like, you /can/ do, but if a thing you install via guix under debian puts something in your path/environment, which then gets incorrectly discovered by debian stuff, that can create issues.
<kimjetwav>brettgilio: For instance, having... desktop libraries in your guix profile under debian, if they are loaded at login, will cause your debian desktop to find the guix-managed libraries, and if they're versioned wrong, or whatever, that might not work.
<brettgilio>Right, that is pretty much what I imagined.
<brettgilio>Thanks for your insight
<kimjetwav>For example I can't have emacs pgtk via guix under debian, but I can have normal graphical emacs, because the pgtk emacs puts a runtime dep in your environment, and then if I log out, the next graphical login session finds that and gives me an error. Whoops, `guix package --roll-back`!
<kimjetwav>But it really depends. Things which are fairly self-contained programs are generally very fine.
<carmenshea[m]>I'm trying to get emacs-eaf running in Guix. I am recieving the following error: dbus-call-method: D-Bus error: "org.freedesktop.DBus.Error.ServiceUnknown", "The name org.gnome.Shell was not provided by any .service files" How do I create a .service file for .org.gnome.Shell?
<carmenshea[m]>For context I'm running Guix with a Wayland / Sway setup. Emacs is Emacs-next-pgtk 29.0.91
<HiltonChain[m]>I think you should install the package providing "org.gnome.Shell" to the profile.
<carmenshea[m]>HiltonChain[m]: Thanks for responding. I cannot find any package that does this, and to make matters worse how do I add it to the profile. (I've figured out how to edit my home.configuration.scm file...does it go there?)
<HiltonChain[m]>Yes, it can be used.
<HiltonChain[m]>IIRC D-Bus uses $XDG_DATA_DIRS, on Guix it's set for guix home, guix system and guix package.
<carmenshea[m]><HiltonChain[m]> "IIRC D-Bus uses $XDG_DATA_DIRS..." <- Cool, so what do I specifically add to home.configuration.scm to get org.gnome.Shell running as a .service?
<carmenshea[m]>I have installed Gnome-shell from Guix packages...but that doesn't seem to do anything.
<HiltonChain[m]>carmenshea: <https://github.com/emacs-eaf/emacs-application-framework/issues/1083>
<carmenshea[m]>HiltonChain[m]: Thank you. I'm assuming you're pointing out that this is a known issue, but no fix for it yet?
<HiltonChain[m]>There's a possible solution from the comments, is your $XDG_CURRENT_DESKTOP set?
<carmenshea[m]>HiltonChain[m]: Yep, it is set to sway in my .bash_profile
<HiltonChain[m]>carmenshea: Note that "sway" is expected for EAF, not "Sway".
<carmenshea[m]>So the syntax should be $XDG_CURRENT_DESKTOP="sway"
<Zambyte>Hey I just logged on after this convo started, could someone fill in the question? I just dealt with setting XDG_CURRENT_DESKTOP to sway on my machine for screen sharing :D
<HiltonChain[m]><carmenshea[m]> "So the syntax should be $..." <- Yes, set XDG_CURRENT_DESKTOP to "sway".
<HiltonChain[m]><Zambyte> "Hey I just logged on after..." <- For screen sharing, xdg-desktop-portal and xdg-desktop-portal-wlr should be installed, and there should be a D-Bus session bus.
<HiltonChain[m]><HiltonChain[m]> "Yes, set XDG_CURRENT_DESKTOP to..." <- Then gnome-shell is not needed.
<Zambyte>Yeah, I had those two installed, but to make sure that XDG_CURRENT_DESKTOP was set, and I also had to use `dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP`. Then it started working for me
<HiltonChain[m]>Oh I don't see it's already done :P
<brettgilio>kimjetwav How do you get guix desktop applications to populate the GNOME application menu on Debian?
<brettgilio>Is it an XDG configuration?
<brettgilio>I feel like this is something useful for the cookbook
<brettgilio> https://gist.github.com/peanutbutterandcrackers/844c211a91137c19607ae75b59fa116f I found this, but I am unsure if this is still the recommended method or if something more integrated has landed
<kimjetwav>brettgilio: They should do automatically if you've configured your environment correctly.
<brettgilio>Yeah it should seem that XDG_DATA_DIRS is not finding my profile
<kimjetwav>I just have this in my `.profile', as per the manual:
<brettgilio>Reading the application setup page now
<kimjetwav>brettgilio: Like literally those two lines in my .profile are the only setup I have (on the Debian side) and it just auto finds everything else.
<brettgilio>For whatever reason your snippet did not come through
<kimjetwav>brettgilio: Ahh, rubbish. I am having weird net connection issues.
<brettgilio>kimjetwav https://issues.guix.gnu.org/26202#0-lineno4 is this what you are referring to?
<kimjetwav>Yeah, I actually don't even have XDG_DATA_DIRS upset at all. I just have GUIX_PROFILE and GUIX_LOCPATH in my .profile.
<kimjetwav>Since .guix-profile/etc/profile sets XDG_DATA_DIRS itself.
<brettgilio>That did it
<brettgilio>Thanks
<kimjetwav>Yeah, it's pretty automatic, you just gotta have it chained in at the correct point.
<brettgilio>Goodnight all
<unwox>guix locate is awesome, thank you everyone who worked on the feature!
<ngz>Hello Guix!
<user_oreloznog>hello guix!
<Guest2234>Hi
<Guest2234>I want to boot Guix on T43 using PXE and another laptop. I need the boot "file."
<tao[m]1>When writing file-like objects is there any alternative to writing multi-line files out without \n that doesn't introduce spaces the resulting file?
<gabber`>are there examples floating around where u-boot is simply copied to a file-system instead of written to a device directly?
<tao[m]1>Sorry, that wasn't very clear. I mean if you write the file without \n and just write it into the object with carriage returns and spaces, your resulting file will have many spaces if you're trying to e.g. make one line fit under the other. I've just been using \n and writing the object entirely in one line but this is unwieldy.
<tao[m]1>If I wanted to test the patch to fix the missing libstdc++ in gcc-toolchain, is there documentation around how I'd test a patch? I found https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html
<apteryx>gabber`: u-boot-ts7970-q-2g-1000mhz-c-bootloader does that (on top of producing a syslinux boot config)
<gabber`>apteryx: thanks!
<gabber`>how can i install u-boot on the first partition of the disk-image i'm creating? i don't think this partition actually has a mount-point within the bootable GNU/Linux system
<gabber`>i guess the initializer field in the partition attributes is to be used for that :)
<efraim>I didn't realize we had a go team but no one in it
<efraim>does anyone have access to the output of 'lscpu' of a POWER8 machine?
<gabber`>trying to get an initializer gexp to do what i want i keep running into this error message: https://termbin.com/8877l . currently the initializer field is just: (gexp (lambda _ (display 'foo) (newline)))
<gabber`>what is supposed to be a list that isn't one?
<panosalevro>does anyone know how I can set up pipewire with JACK on guix?
<bjc>as it happens, i've been working on providing a pipewire home service, but i have never used jack. if you have a simple way to test jack functionality, i'd be happy to add it to the home service
<bjc>i just didn't want to put in something i had no clue about in the hopes that it might work
<gabber`>panosalevro: do you have concrete issues you're struggling with? i have it set up -- but on one of my machines at home
<gabber`>
<gabber`>bjc: something like "mpv --ao=jack test.wav" should work when set up correctly
<panosalevro>bjc, gabber: my main issue is getting pipewire to work with zrythm. zrythm can't detect any sound driver (it mainly expects JACK but should work with pipewire too)
<panosalevro>s/driver/server
<gabber`>i have (or had?) managed to get SuperCollider to work with my pipewire installtion on Guix (actually, only via pipewire, not via ALSA/pulse or otherwise). IIRC i started pipewire manually(?) together with wireplumber from my desktop's init file. do you have pipewire up and running?
<bjc>gabber`, panosalevro: thanks. i'll give them a try when i can carve out some time
<panosalevro>gabber`: `ps aux
<panosalevro>gabber`: `ps aux
<panosalevro>gabber`: `ps aux | grep pipewire` confirms I do (sorry for the 2 previous msgs)
<panosalevro>i dont think im running wireplumber though
<gabber`>panosalevro: no problem :)
<attila_lendvai>i just got this from `guix search foo`: /gnu/store/ad8351jvj61da279a3ddfs2gmk3whvdq-guile-wrapper/bin/guile: symbol lookup error: /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE
<panosalevro>btw any DAW people packaging software for guix here? we could really use more packaged plugins
<attila_lendvai>it works as expected in a new terminal window. i guess it's an update related thing...
<gabber`>panosalevro: you're cordially invited to do so ;)
<panosalevro>gabber`: would be more than happy to do so, but im still learning
<bjc>panosalevro: wireplumber is required. pipewire, by itself, doesn't know about things like sound cards
<panosalevro>bjc: I was wrong, wireplumber is in my autostart list. so i dont know why it doesnt work with zrythm
<bjc>my (unsure) understanding is that you need to do some .so LD_LIBRARY_PATH stuff to get jack substitutes to work
<gabber`>panosalevro: this looks quite promising: https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-JACK
<bjc>i vaguely remember that being the case with pulseaudio, as well
<panosalevro>ideally, shouldn't it work without JACK? I thought that was the purpose of pipewire
<bjc>pipewire has is just another way of doing stuff. it provides pulseaudio and jack support so you don't need 3 different things running
<bjc>if your application only uses jack, and you're running pipewire, you need some way to bridge them
<panosalevro>hmm right
<gabber`>panosalevro: do you have any error message or other output from zrhythm you could paste somewhere?
<panosalevro>gabber`: https://paste.debian.net/1283497
<gabber`>can you specify how you connect to JACK from zrhythm? you may need to be part of the realtime group (with permission to start realtime tasks)?
<gabber`>after all, the last line says: "Please check your backend settings in the Preferences."
<panosalevro>im part of the realtime group, that's a different error that zrythm can give
<panosalevro>the preferences in zrythm aren't that helpful. you can just choose an audio backend (JACK), but it just doesnt work
<panosalevro>im pretty sure i just need to get jack running
<gabber`>does `mpv --ao=jack test.wav` work?
<panosalevro>it doesnt. says failed to initialize audio driver jack
<Guest28>is guix locate only for packages that are already installed on the system?
<gabber`>panosalevro: what's the output of `wpctl status`?
<panosalevro>gabber`: no output, seems to hang?
<gabber`>is there another audioserver running, e.g. PulseAudio?
<panosalevro>`ps aux | grep pulse` only returns `pipewire-pulse`
<gabber`>maybe try running the tools manually (so you see command line output), first pipewire, then wireplumber
<gabber`>and have you checked your logs? like /var/log/messages and/or your desktop's log?
<panosalevro>gabber`: what kind of error could i possibly find in pipewire though? it doesnt seem like it's pipewire's fault
<podiki[m]>Guest28: it is for the local store, so anything you've built/downloaded before I believe
<gabber`>wireplumber (the thing you query with wpctl) hangs --
<gabber`>this hints towards pipewire having a problem
<Guest28>brettgilio: https://paste.debian.net/1283499/ note line 54 which is the reason the error appears.  I am not sure if this service is maybe already used by something lower.  The reason I wanted to try it was simply that I need to restart my pc to detect new inserted sd cards
<panosalevro>gabber`: can I pm you? no need to distract #guix since this may not be a guix problem
<gabber`>sure :)
<Guest28>podiki[m]: thanks, wasn't sure
<jlicht>hey folks o/
<gabber`>\o
<podiki[m]>and just tried it out, works well
<podiki[m]>hi!
<Guest28>yea it works well, but I doubt it has much use if is only for local storage because you don't know which package you need and therefore it isn't on the system
<Guest28>hasn't
<Guest28>at least on my cases I had in the past
<SeerLite[m]>Hi! How do you all use patches that haven't been upstreamed? Or patches you've made to Guix yourself but haven't sent to guix-patches?
<SeerLite[m]>Currently I'm using a local git checkout (with my own patches) as my guix channel source and constantly rebase from upstream, but everytime I guix pull I have to do it with --disable-authentication and --allow-downgrades. I feel like the pull is also slower than it should be but I'm not sure
<podiki[m]>Guest28: getting from a build server (that has everything) is the next step I believe
<juliana[m]>I install them locally to ~/.guix-profile from the package source files because I use guix home for my user packages (and also custom profiles for some stuff) so I don't use ~/.guix-profile for anything else
<Guest28>podiki[m] ah nice. do they also plan on having a website for it like debian does?
<podiki[m]>I don't know but seems like something that wouldn't be difficult once that information is available
<juliana[m]>SeerLite as far as how to get patches into source files, you can use `git apply` to apply them to a checkout of the Guix source repo
<Guest28>something like https://packages.debian.org/buster/amd64/coreutils/filelist
<juliana[m]>SeerLite so if i have say "0001-some-patch.patch" I would do `cd /path/to/guix && git apply 0001-some-patch.patch && ./pre-inst-env guix install <package>`
<juliana[m]>assuming you've run the necessary build steps in the Guix source repo
<SeerLite[m]>juliana: Oh I used to do that too, but it ended up being too slow after a while because `./pre-inst-env` needed maintenance to run quickly (make clean-go, make ...)
<SeerLite[m]>Do you not have to do that very often?
<Guest28>cd /path/to/guix && git apply 0001-some-patch.patch && ./pre-inst-env guix install <package> can I do that for services as well? Like for example guix system reconfigure to test a libvirtd patch?
<juliana[m]>I do it fairly frequently because i do some packaging. Another option is to have your package definition outside the source repo - I mostly only use this if I don't plan to upstream it for whatever reason - and that should be a bit faster because it's using pre-compiled assets
<juliana[m]>Guest28 yes, except of course with the appropriate command
<juliana[m]>Guix command*
<Guest28>ah nice, thanks.  That is what I was looking for
<juliana[m]>for testing a patch I'm submitting for a package I don't use regularly, I usually just use guix shell, adding --rebuild-cache if it doesn't seem to be pulling in the latest version of the package definition for whatever reason
<attila_lendvai>if an `npm ls --all` is long (~50 pages), then it means it'd be a horror to package this node app... right?
<attila_lendvai>alternatively, this app (zigbee2mqtt) runs fine in a `guix shell node gcc-toolchain make python libuv`, npm ci, npm start. can i run it like that as a shepherd service somehow? i.e. without packaging it?
<juliana[m]>you probably could through the power of `&&` or linebreaks
<tao[m]1>juliana so if I wanted to apply a patch (I'm rehashing here to make sure I understand), I'd git pull the entire Git repo for Guix to some folder, download the .patch, then git apply the patch and `./pre-inst-env guix install path-to-the-source` in the Git repo? You mentioned using Guix Home for this: is there a declarative method of doing this?
<SeerLite[m]>juliana: Sadly compiling Guix from source is very slow on my laptop, so it's much more convenient and faster for me to commit (amend/rebase) and then guix pull (allowing downgrades). Though it's still slow :s
<SeerLite[m]>Also having the source files outside the tree isn't useful when I'm trying to apply a patch that's already been submitted to the bug tracker, as I'd have to check the required Guix modules (where the input/dependencies are)
<juliana[m]>tao it's git-based software development so afaik there's no declarative way to do it. see https://guix.gnu.org/en/manual/devel/en/html_node/Building-from-Git.html for instructions on getting and building the source repo. none of it is Guix-specific except the codebase in question happens to be Guix
<juliana[m]>you can also just like, copy the patch's code into its own file and install from there if you want, eg with guix install -f
<tao[m]1>juliana ah great! This is what I was looking for earlier. So it's just Git based development with these .patch files and some make commands essentially.
<juliana[m]>yes
<juliana[m]>(technically the way git was designed to be used ;P
<SeerLite[m]>Nvm, you're right, I could just copy the entire scm file and it should work out
<SeerLite[m]>Although it wouldn't work for services I think
<tao[m]1>Every company I work for has used the Git forge model forgive me (╥﹏╥) luckily I have Drew's https://git-send-email.io/ to get me up to speed
<juliana[m]>no, I think in that case you'd need to import the source file with the system service into your system config
<Guest28>how long does guix take to build roughly? i have 4x,3.5ghz since if it takes a long time I am going to eat
<juliana[m]>tao that's what i used too! even if drew devault did cuss me out once!
<juliana[m]>Guest28 go eat
<Guest28>okay, thanks
<Guest28>why do i always compile these big projects when it's summer
<SeerLite[m]>I wish there was a simpler way to run a local checkout. Is there really no way to make ./pre-inst-env work without having to recompile Guix?
<SeerLite[m]>I wonder how it really works
<juliana[m]>technically you only need to compile Guix when the actual guix command's files change. so if you're just doing packaging you can apply patches and run it without recompiling
<juliana[m]>all pre-inst-env does is setup the environment variables, import paths, and so on so that it's using the source repo rather than the system guix
<juliana[m]>I don't know if it does in the pre-inst-env context, but Guile usually JIT compiles .scm files to .go files anyway; and either way it's capable of interpreting files just fine
<juliana[m]>all those warnings about "x file is newer than y file" are just telling you it's probably going to be slower, basically
<SeerLite[m]>Hmm, what used to happen for me was that after changing many files (not necessarily related to the guix command), it'd start to output a lot of "this scm file is newer than the go file" and it'd take reaaally long to finish whatever it did (no matter if it was something simple like ./pre-inst-env guix show hello)
<juliana[m]>yes, interpreting Scheme source code is slower than interpreting Guile bytecode (what go files have in them)
<juliana[m]>if you wanna know more about how Guile's compiler tower and interpretation work (it's a fascinating subject imo), this is a recent talk one of its archtiects gave, turned into a blog post on his inimitable blog: https://wingolog.org/archives/2023/05/20/approaching-cps-soup
<juliana[m]>I think he links to more Guile-related stuff in it and you can look around for other stuff (the related posts the website is showing me include some interesting stuff)
<juliana[m]>there's also a higher-level overview in the guile manual: https://www.gnu.org/software/guile/manual/html_node/Compiling-to-the-Virtual-Machine.html
<SeerLite[m]>Woah, that looks very interesting. I'll definitely have a look later, thanks!
<juliana[m]>yw!
<juliana[m]>Andy Wingo is a very cool and prolific guy; I refer to him as "The Compilers guy" because he does a lot of work on browser compiler stuff, and browser compilers are... absolutely incredible pieces of engineering, probably some of the most advanced compilers around to the point that even C compilers borrow ideas pioneered in them
<juliana[m]>and he works on Guile some, too!
<juliana[m]>anyway, i'll stop being off-topic now lol
<Cairn>guix locate is great!
<Cairn>In the future, I guess it'll pull from the build farms for non-local packages?
<Guest28>is planned said someone some hors ago
<tao[m]1>I really liked Andy's Knit, Chisel, Hack: Building Programs in Guile Scheme talk
<mirai>lilyp: Looks like there's something wrong with an updated shared-mime-info and gdk-pixbuf
<mirai>gdk-pixbuf fails to build, specifically it fails at the [175/255] Generating tests/resources.c with a custom command
<mirai>Couldn?t recognize the image file format for file ?/tmp/guix-build-gdk-pixbuf-2.42.10.drv-0/gdk-pixbuf-2.42.10/tests/icc-profile.png?
<mirai>../gdk-pixbuf-2.42.10/tests/resources.gresource.xml: Child process exited with code 1.
<mirai>upgrading gdk-pixbuf didn't help