New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pipewire: 0.3.15 -> 0.3.16 #104553
pipewire: 0.3.15 -> 0.3.16 #104553
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks! I've added a few of my nitpicks/thoughts. Not sure how WIP this is so feel free to ignore them for now ;)
ad96082
to
96fd13e
Compare
Removed bluetooth option for now to make this mergeable sooner. |
The path to the pulse server needs to be patched at least here: |
There is also another path in but if I am not missing something, that is only used in a comment in the config file: and would cause a dependency cycle if corrected. We might need to watch monitor it in case it gets used somewhere else in the future. |
What's the preferred way to generate patches for nixpkgs?
Yeah that is only for when one wants to launch pipewire with the pulse bridge loaded automatically. The comment even mentions that loading the pulse bridge with a systemd service is preferred. And that's this PR is doing now, assuming I got it right. |
I just clone the repo, change something and then do |
This release replaces the libpulseaudio shim with a pipewire module that acts as a fake pulseaudio server along with a systemd service that loads that module on demand.
Hmm, the pulse server does not seem to work for me in a VM. On startup:
On playing music
VM configI ran the following command { pkgs, config, ... }: {
environment.systemPackages = with pkgs; [
gdb
binutils # readelf
file
htop
less
git
rr
valgrind
dfeet
];
environment.enableDebugInfo = true;
services.xserver = {
enable = true;
layout = "cz";
xkbVariant = "qwerty";
displayManager.gdm.enable = true;
displayManager.autoLogin.enable = true;
displayManager.autoLogin.user = "jtojnar";
desktopManager.xterm.enable = false;
desktopManager.gnome3.enable = true;
};
services.openssh.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire.pulse.enable = true;
users.extraUsers.jtojnar = {
isNormalUser = true;
uid = 1000;
extraGroups = [ "wheel" "networkmanager" ];
password = "";
openssh.authorizedKeys.keys = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYbOlZydfRRCGCT08wdtPcpfSrgxMc6weDx3NcWrnMpVgxnMs3HozzkaS/hbcZUocn7XbCOyaxEd1O8Fuaw4JXpUBcMetpPXkQC+bZHQ3YsZZyzVgCXFPRF88QQj0nR7YVE1AeAifjk3TCODstTxit868V1639/TVIi5y5fC0/VbYG2Lt4AadNH67bRv8YiO3iTsHQoZPKD1nxA7yANHCuw38bGTHRhsxeVD+72ThbsYSZeA9dBrzACpEdnwyXclaoyIOnKdN224tu4+4ytgH/vH/uoUfL8SmzzIDvwZ4Ba2yHhZHs5iwsVjTvLe7jjE6I1u8qY7X8ofnanfNcsmz/ jtojnar@kaiser"];
};
virtualisation.qemu.options = [ "-device intel-hda -device hda-duplex" ];
virtualisation.memorySize = 2048;
virtualisation.diskSize = 8048;
} Also had to add |
it works fine for me on my computer fwiw, i've been using it with little issue for a few days. |
Guess we can merge it then. |
Rebuilt my system into this with all compat layers enabled (alsa, jack, pulse) and so far everything is working great except telegram-desktop which complains about timeouts when connecting to pulse streams. |
Let's just merge this, we can deal with telegram later.
…On Wed, Nov 25, 2020 at 14:43, jansol ***@***.***> wrote:
Rebuilt my system into this with all compat layers enabled (alsa,
jack, pulse) and so far everything is working great except
telegram-desktop which complains about timeouts when connecting to
pulse streams.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Telegram hits a known bug in 0.3.16, fixed in 0.3.17: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/407 |
Changes: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/09d373f094f0e6797aef3d97cde2c0167dccc986
Follow-up on #104504. Feel free to open a replacement PR if someone ends up finishing work on this while I'm asleep. (@primeos)
Not sure if we want to deal with coexistence actual pulseaudio and pipewire.pulse-server in the nixos module at all, feel free to remove that bit if the consensus is no.
Bluetooth would be nice to have a setting for since it is off by default due to conflicts with pulseaudio, but that can be done separately if it takes too much time to figure out now. I'm not familiar with modifying applications' config files from within nix.
Motivation for this change
Upstream update that should fix a lot of the current pulseaudio woes by throwing out the libpulseaudio shim and instead providing a module that acts as a fake pulseaudio server.
Things done
Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)
Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
Tested execution of all binary files (usually in ./result/bin/)
Determined the impact on package closure size (by running nix path-info -S before and after)
Ensured that relevant documentation is up to date
Fits CONTRIBUTING.md.