From fbdb248e54c1d824788b39b2274ff55319d7a411 Mon Sep 17 00:00:00 2001 From: Jan Solanti Date: Mon, 15 Mar 2021 01:38:20 +0200 Subject: pipewire: 0.3.23 -> 0.3.24 --- nixos/modules/services/desktops/pipewire/README.md | 6 +++ .../services/desktops/pipewire/client-rt.conf.json | 31 +++++++---- .../services/desktops/pipewire/client.conf.json | 28 +++++++--- .../services/desktops/pipewire/jack.conf.json | 19 ++++--- .../desktops/pipewire/media-session.conf.json | 31 +++++++---- .../desktops/pipewire/pipewire-media-session.nix | 11 +--- .../desktops/pipewire/pipewire-pulse.conf.json | 26 ++++++--- .../services/desktops/pipewire/pipewire.conf.json | 62 +++++++++++++++------- .../services/desktops/pipewire/pipewire.nix | 40 ++------------ 9 files changed, 150 insertions(+), 104 deletions(-) create mode 100644 nixos/modules/services/desktops/pipewire/README.md (limited to 'nixos') diff --git a/nixos/modules/services/desktops/pipewire/README.md b/nixos/modules/services/desktops/pipewire/README.md new file mode 100644 index 0000000000000..87288a81cfe1a --- /dev/null +++ b/nixos/modules/services/desktops/pipewire/README.md @@ -0,0 +1,6 @@ +# Updating + +1. Update the version & hash in pkgs/development/libraries/pipewire/default.nix +2. run `nix build -f /path/to/nixpkgs/checkout pipewire pipewire.mediaSession` +3. copy all JSON files from result/etc/pipewire and result-mediaSession/etc/pipewire/media-session.d to this directory +4. add new files to the module config and passthru tests diff --git a/nixos/modules/services/desktops/pipewire/client-rt.conf.json b/nixos/modules/services/desktops/pipewire/client-rt.conf.json index d294927b4f642..284d8c394a611 100644 --- a/nixos/modules/services/desktops/pipewire/client-rt.conf.json +++ b/nixos/modules/services/desktops/pipewire/client-rt.conf.json @@ -6,21 +6,34 @@ "audio.convert.*": "audioconvert/libspa-audioconvert", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-session-manager": null - }, + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-session-manager" + } + ], "filter.properties": {}, "stream.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/client.conf.json b/nixos/modules/services/desktops/pipewire/client.conf.json index 224938abbbcf7..71294a0e78a2d 100644 --- a/nixos/modules/services/desktops/pipewire/client.conf.json +++ b/nixos/modules/services/desktops/pipewire/client.conf.json @@ -6,14 +6,26 @@ "audio.convert.*": "audioconvert/libspa-audioconvert", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-session-manager": null - }, + "context.modules": [ + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-session-manager" + } + ], "filter.properties": {}, "stream.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/jack.conf.json b/nixos/modules/services/desktops/pipewire/jack.conf.json index 2de04036b312d..a6bd34917851b 100644 --- a/nixos/modules/services/desktops/pipewire/jack.conf.json +++ b/nixos/modules/services/desktops/pipewire/jack.conf.json @@ -5,17 +5,24 @@ "context.spa-libs": { "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-metadata": null - }, + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-metadata" + } + ], "jack.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixos/modules/services/desktops/pipewire/media-session.conf.json index 4b2505ff8164c..62e59935dbe5e 100644 --- a/nixos/modules/services/desktops/pipewire/media-session.conf.json +++ b/nixos/modules/services/desktops/pipewire/media-session.conf.json @@ -6,21 +6,34 @@ "api.v4l2.*": "v4l2/libspa-v4l2", "api.libcamera.*": "libcamera/libspa-libcamera" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-session-manager": null - }, + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-session-manager" + } + ], "session.modules": { "default": [ "flatpak", diff --git a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix index b41ea349fb8db..539a4cf446940 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix +++ b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix @@ -9,21 +9,12 @@ let && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.pipewire != null; - prioritizeNativeProtocol = { - "context.modules" = { - "libpipewire-module-protocol-native" = { - _priority = -100; - _content = null; - }; - }; - }; - # Use upstream config files passed through spa-json-dump as the base # Patched here as necessary for them to work with this module defaults = { alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json)); bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json)); - media-session = recursiveUpdate (builtins.fromJSON (builtins.readFile ./media-session.conf.json)) prioritizeNativeProtocol; + media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json)); v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json)); }; # Helpers for generating the pipewire JSON config file diff --git a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json index da08bcea2c90b..3e776fe75a2cd 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json +++ b/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json @@ -4,25 +4,35 @@ "audio.convert.*": "audioconvert/libspa-audioconvert", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-protocol-pulse": { + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-protocol-pulse", "args": { "server.address": [ "unix:native" ] } } - }, + ], "stream.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/nixos/modules/services/desktops/pipewire/pipewire.conf.json index 59e2afca09396..bae87dd663773 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire.conf.json +++ b/nixos/modules/services/desktops/pipewire/pipewire.conf.json @@ -14,42 +14,66 @@ "api.jack.*": "jack/libspa-jack", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-profiler": null, - "libpipewire-module-metadata": null, - "libpipewire-module-spa-device-factory": null, - "libpipewire-module-spa-node-factory": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-portal": { + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-profiler" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-spa-device-factory" + }, + { + "name": "libpipewire-module-spa-node-factory" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-portal", "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-access": { + { + "name": "libpipewire-module-access", "args": {} }, - "libpipewire-module-adapter": null, - "libpipewire-module-link-factory": null, - "libpipewire-module-session-manager": null - }, - "context.objects": { - "spa-node-factory": { + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-link-factory" + }, + { + "name": "libpipewire-module-session-manager" + } + ], + "context.objects": [ + { + "factory": "spa-node-factory", "args": { "factory.name": "support.node.driver", "node.name": "Dummy-Driver", "priority.driver": 8000 } } - }, - "context.exec": {} + ], + "context.exec": [] } diff --git a/nixos/modules/services/desktops/pipewire/pipewire.nix b/nixos/modules/services/desktops/pipewire/pipewire.nix index 2577e77c4a1ff..7cf19706a6333 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire.nix +++ b/nixos/modules/services/desktops/pipewire/pipewire.nix @@ -18,45 +18,15 @@ let ln -s "${cfg.package.jack}/lib" "$out/lib/pipewire" ''; - prioritizeNativeProtocol = { - "context.modules" = { - # Most other modules depend on this, so put it first - "libpipewire-module-protocol-native" = { - _priority = -100; - _content = null; - }; - }; - }; - - fixDaemonModulePriorities = { - "context.modules" = { - # Most other modules depend on thism so put it first - "libpipewire-module-protocol-native" = { - _priority = -100; - _content = null; - }; - # Needs to be before libpipewire-module-access - "libpipewire-module-portal" = { - _priority = -50; - _content = { - flags = [ - "ifexists" - "nofail" - ]; - }; - }; - }; - }; - # Use upstream config files passed through spa-json-dump as the base # Patched here as necessary for them to work with this module defaults = { - client = recursiveUpdate (builtins.fromJSON (builtins.readFile ./client.conf.json)) prioritizeNativeProtocol; - client-rt = recursiveUpdate (builtins.fromJSON (builtins.readFile ./client-rt.conf.json)) prioritizeNativeProtocol; - jack = recursiveUpdate (builtins.fromJSON (builtins.readFile ./jack.conf.json)) prioritizeNativeProtocol; + client = builtins.fromJSON (builtins.readFile ./client.conf.json); + client-rt = builtins.fromJSON (builtins.readFile ./client-rt.conf.json); + jack = builtins.fromJSON (builtins.readFile ./jack.conf.json); # Remove session manager invocation from the upstream generated file, it points to the wrong path - pipewire = recursiveUpdate (builtins.fromJSON (builtins.readFile ./pipewire.conf.json)) fixDaemonModulePriorities; - pipewire-pulse = recursiveUpdate (builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json)) prioritizeNativeProtocol; + pipewire = builtins.fromJSON (builtins.readFile ./pipewire.conf.json); + pipewire-pulse = builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json); }; # Helpers for generating the pipewire JSON config file -- cgit 1.4.1