I sometimes play around with distros, but I’m missing audio.
And I noticed that for arch, they have a qemu-audio-pipewire plugin and I can’t seem to find in the guix package repository. Nor can I find the audio-pipewire.so library in the guix qemu package.
It looks like arch has something of a metapackage for qemu (see qemu-desktop in the PKGBUILD if you want).
it looks like that metapackage passes the options needed to build in build(). at some point, the _pick() function extracts the artifacts and packs them into individual packages… jeez whoever wrote _pick() really didn’t want anyone to understand it lol. it’s terse.
ensure that any other files needed are also in their correct place.
However, that’s not a fantastic first package if you haven’t written one before. Iterating on that will take a long time, then you can only know it works by replacing the instance on your system. It’s slightly less burdonsome maybe if it’s in a VM … but not much easier.
Try modifying build flags and inputs for something that already exists or building a package that doesn’t. Definitely refer to “The perfect setup” section in the manual.
hmm, i don’t remember rebooting. Did you install it in your user profile or system-wide in your configuration? Cause i installed it system-wide, maybe that makes a difference.
User profile, but I tried system-wide and that doesn’t seem to work either.
I added gst-plugins-base as well to no avail. I have noticed that virt-manager has issues with failing to load gstreamer plugins.
Hmm, that’s strange. I don’t remember the exact error i encountered, but it does look similar to what i had. Aside from gst-plugins-good, the only other audio-related package in my system config is alsa-utils, but i don’t think that would do anything. I suppose it’s worth a try though.
I see. I didn’t feel the need for virt-manager to be available system-wide. I guess I’ll try that out. For libvirt-service type, I have this in my /etc/config.scm
have you specifically tried gst-plugins-good instead of gst-plugins-base? Other than that i wouldn’t know anymore what the problem could be. For what it’s worth though, the gst-plugins-good fix that worked for me was something i found in an archlinux post on reddit, so it could be worth looking for more generic topics about the issue and seeing if you can apply that to Guix.
have you specifically tried gst-plugins-good instead of gst-plugins-base?
I have now and it did not work. I was using both before instead of only gst-plugins-base. I made a typo in my previous comment.
Which sound device do you use?
it could be worth looking for more generic topics about the issue and seeing if you can apply that to Guix.
That’s what I opened this thread with, although I did not mention that part. I saw topics where the qemu-audio-pipewire plugin was not configured or installed and then noticed that it’s completely missing in guix.
I’m using HDA (ICH9) as my sound device. I just booted up my vm to see if it’s still working and audio still works. At this point the only thing i can think of is that i have (service home-pipewire-service-type) in my guix home config. Other than that i don’t think i did anything special when it comes to audio configuration.
If your VM mostly builds on %desktop-services, then it has pulseaudio-service. you can check for that by using herd status. Does this VM also have XFCE and X11?
IIRC, this needs to be removed before adding the pipewire and pipewire-pulse packages along with some way to start pipewire as a service under your user.
D-Bus
This is semi-related, but just in case… You definitely need d-bus session for the user. The guix home command there is complaining that pipewire doesn’t isn’t accompanied by a dbus session that’s defined in a service via guix home.
You probably already have a user d-bus session. qdbusviewer below can help you sort that out. Then just figure out what’s starting dbus for your user. it’s different depending on how X11 gets started.
For d-bus, guix home container ./home-configuration.scm command needs to --share a socket file. Otherwise things outside the container can’t talk to the d-bus inside the container – though I don’t even think that container environment can spawn your services. guix home container is more useful for checking that your env is set up right and for making small changes.
if you run guix shell qttools -- qdbusviewer, it’s a GUI that lets you walk through the dbus interfaces. d-feet is a bit better, but there’s no package for it.
bustle is available on flatpak, but that’s a bit much to set up if you’re just poking around a system. It’s easy to install on guix once you have flatpak, but IIRC there are a few things required for that. fonts require a quick fix, but it can be confusing. a d-bus portal is definitely needed.