summary refs log tree commit diff
path: root/nixos/modules/services/desktops
diff options
context:
space:
mode:
authorJan Solanti <jhs@psonet.com>2021-03-15 01:38:20 +0200
committerJan Solanti <jan.solanti@tuni.fi>2021-03-19 05:14:44 +0200
commitfbdb248e54c1d824788b39b2274ff55319d7a411 (patch)
tree36ccdcd4985fd0823167a5658b39c72b0fab7780 /nixos/modules/services/desktops
parentd4bbefe48033a5f1717f38bed914febe76b9d9a0 (diff)
downloadnixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.tar
nixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.tar.gz
nixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.tar.bz2
nixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.tar.lz
nixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.tar.xz
nixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.tar.zst
nixpkgs-fbdb248e54c1d824788b39b2274ff55319d7a411.zip
pipewire: 0.3.23 -> 0.3.24
Diffstat (limited to 'nixos/modules/services/desktops')
-rw-r--r--nixos/modules/services/desktops/pipewire/README.md6
-rw-r--r--nixos/modules/services/desktops/pipewire/client-rt.conf.json31
-rw-r--r--nixos/modules/services/desktops/pipewire/client.conf.json28
-rw-r--r--nixos/modules/services/desktops/pipewire/jack.conf.json19
-rw-r--r--nixos/modules/services/desktops/pipewire/media-session.conf.json31
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire-media-session.nix11
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json26
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire.conf.json62
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire.nix40
9 files changed, 150 insertions, 104 deletions
diff --git a/nixos/modules/services/desktops/pipewire/README.md b/nixos/modules/services/desktops/pipewire/README.md
new file mode 100644
index 00000000000..87288a81cfe
--- /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 d294927b4f6..284d8c394a6 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 224938abbbc..71294a0e78a 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 2de04036b31..a6bd3491785 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 4b2505ff816..62e59935dbe 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 b41ea349fb8..539a4cf4469 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 da08bcea2c9..3e776fe75a2 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 59e2afca093..bae87dd6637 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 2577e77c4a1..7cf19706a63 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