-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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.67 + big module cleanup #220332
Conversation
@@ -144,6 +144,9 @@ In addition to numerous new and upgraded packages, this release has the followin | |||
|
|||
- conntrack helper autodetection has been removed from kernels 6.0 and up upstream, and an assertion was added to ensure things don't silently stop working. Migrate your configuration to assign helpers explicitly or use an older LTS kernel branch as a temporary workaround. | |||
|
|||
- The `services.pipewire.config` options have been removed, as they have basically never worked correctly. All behavior defined by the default configuration can be overridden with drop-in files as necessary. |
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.
Where to place those drop-in files? That's a bit unclear.
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.
I'm not sure how verbose we want to be here. The drop-in files go into /etc/pipewire/<whatever>.conf.d
and there are multiple config files, so it's hard to explain without getting into a lot of detail. Also I kinda just hope no one is using this, because it does not work the way anyone would expect.
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.
Given that there's a whole wiki page dedicated to tweaking services.pipewire.config
, I think going into detail is warranted.
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.
You'd probably even want to announce it in the breaking changes thread.
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.
That entire page will need to be updated. It's on my list. I'll probably write up a post detailing the migration steps and post that in the thread.
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.
Draft migration guide: https://gist.github.com/K900/20fb1651d72411e3419d278bb29343ea
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.
The migration guide should preferrably be mentioned in the release notes too, since it's a pretty big chunk of not necessarily obvious manual work.
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.
It's definitely going in the docs somewhere, I just need to find a good place to put it in.
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.
Ended up adding the migration guide to the end of the release notes.
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/19 |
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.
Looks good, should make future updates a lot simpler since we won't have to care about default config changes any more. I'd have to check what this implies for my filter-chain and custom node setups. I guess I'd just keep my existing setup for those since it was just writing custom files to /etc to begin with.
But it'll be at least one more week before I can get to that so it's probably not necessary to wait for me if there seems to be a consensus already.
@@ -144,6 +144,9 @@ In addition to numerous new and upgraded packages, this release has the followin | |||
|
|||
- conntrack helper autodetection has been removed from kernels 6.0 and up upstream, and an assertion was added to ensure things don't silently stop working. Migrate your configuration to assign helpers explicitly or use an older LTS kernel branch as a temporary workaround. | |||
|
|||
- The `services.pipewire.config` options have been removed, as they have basically never worked correctly. All behavior defined by the default configuration can be overridden with drop-in files as necessary. |
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.
The migration guide should preferrably be mentioned in the release notes too, since it's a pretty big chunk of not necessarily obvious manual work.
2982a63
to
61088d9
Compare
So, should I just merge this at this point? It looks like either no one is testing it or no one is having issues... |
I would expect that no one is testing. 😉 |
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.
You would be wrong! I'm affected by a bug that's supposedly fixed in 0.3.67 and I'm testing this as we speak but the bug is hard to repro.
The NixOS changes LGTM. I can't really test pipewire itself much due to the amount of rebuilds but building the services up manually works just fine via pipewire-pulse and mpv.
(I haven't tried the new way of configuring modules but I didn't use the old way either and had stateful config files in ~/.conf which still work fine.) |
Will be used by Pipewire later.
- drop media-session (rip 💀) - stop trying to let people override default configs, those never got merged correctly - drop all the complexity arising from having to vendor default config files - build docs in sandbox as we no longer recurse
I'm just going to send this to avoid any more merge conflicts. |
I have the following config module that I fail to convert to a new way: { ... }:
{
# rtkit is optional but recommended
security.rtkit.enable = true;
services.pipewire.enable = true;
# emulation layers:
services.pipewire.alsa.enable = true;
services.pipewire.alsa.support32Bit = true;
services.pipewire.pulse.enable = true;
# allow other user use sound by absolute address:
services.pipewire.config.pipewire-pulse = {
"pulse.properties" = {
"server.address" = [
# default:
"unix:native"
# extension:
"unix:/tmp/pulse-for-all"
];
};
};
hardware.pulseaudio.extraClientConf = ''
default-server=unix:/tmp/pulse-for-all
'';
# Also add an activation:
# ~/.config/systemd/user/pipewire-pulse.socket.d:
# [Socket]
# ListenStream=/tmp/pulse-for-all
} Specifically
I tried a few override types via
does not work. Do I need to copy the full config file to recover from the breakage? |
Those settings go into |
Thank you! I think I was misled by the warning message. Bellow config did the trick: environment.etc."pipewire/pipewire-pulse.conf.d/pulse-for-all.conf".text = ''
pulse.properties = {
# the addresses this server listens on
server.address = [
# default:
"unix:native"
# extension:
"unix:/tmp/pulse-for-all"
]
}
''; |
I feel like we should have a more abstract way of configuring that. |
What exactly? |
Configuring PW, PW-pulse etc. "Put a file with some text into /etc" is about as low-level as it gets. That's documentation on the level I'd expect to find on the Arch Wiki, not in NixOS. I'm thinking resurrecting the |
I agree with that, maybe naming it |
(feel free to submit a PR if that's something you want to work on, btw) |
As per NixOS/rfcs#42, it should be |
I'd rather have the option name indicate that it's being merged with the defaults somehow. |
Prior art on how to handle that: nixpkgs/nixos/modules/services/networking/dnscrypt-proxy2.nix Lines 11 to 38 in e0d3d8b
|
Fixes breakage caused by NixOS/nixpkgs#220332.
Fixes breakage caused by NixOS/nixpkgs#220332.
Fixes breakage caused by NixOS/nixpkgs#220332.
Fixes breakage caused by NixOS/nixpkgs#220332.
Fixes breakage caused by NixOS/nixpkgs#220332.
Description of changes
Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)