Merge pull request #128540 from arcnmx/pipewire-0.3.31

Pipewire 0.3.31

authored by

Jan Tojnar and committed by
GitHub
8978759e b749ff4f

+218 -12
+197
nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json
··· 1 + { 2 + "bluez5.features.device": [ 3 + { 4 + "name": "Air 1 Plus", 5 + "no-features": [ 6 + "hw-volume-mic" 7 + ] 8 + }, 9 + { 10 + "name": "AirPods", 11 + "no-features": [ 12 + "msbc-alt1", 13 + "msbc-alt1-rtl" 14 + ] 15 + }, 16 + { 17 + "name": "AirPods Pro", 18 + "no-features": [ 19 + "msbc-alt1", 20 + "msbc-alt1-rtl" 21 + ] 22 + }, 23 + { 24 + "name": "AXLOIE Goin", 25 + "no-features": [ 26 + "msbc-alt1", 27 + "msbc-alt1-rtl" 28 + ] 29 + }, 30 + { 31 + "name": "JBL Endurance RUN BT", 32 + "no-features": [ 33 + "msbc-alt1", 34 + "msbc-alt1-rtl", 35 + "sbc-xq" 36 + ] 37 + }, 38 + { 39 + "name": "JBL LIVE650BTNC" 40 + }, 41 + { 42 + "name": "Soundcore Life P2-L", 43 + "no-features": [ 44 + "msbc-alt1", 45 + "msbc-alt1-rtl" 46 + ] 47 + }, 48 + { 49 + "name": "Urbanista Stockholm Plus", 50 + "no-features": [ 51 + "msbc-alt1", 52 + "msbc-alt1-rtl" 53 + ] 54 + }, 55 + { 56 + "address": "~^94:16:25:", 57 + "no-features": [ 58 + "hw-volume" 59 + ] 60 + }, 61 + { 62 + "address": "~^9c:64:8b:", 63 + "no-features": [ 64 + "hw-volume" 65 + ] 66 + }, 67 + { 68 + "address": "~^a0:e9:db:", 69 + "no-features": [ 70 + "hw-volume" 71 + ] 72 + }, 73 + { 74 + "address": "~^0c:a6:94:", 75 + "no-features": [ 76 + "hw-volume" 77 + ] 78 + }, 79 + { 80 + "address": "~^00:14:02:", 81 + "no-features": [ 82 + "hw-volume" 83 + ] 84 + }, 85 + { 86 + "address": "~^44:5e:f3:", 87 + "no-features": [ 88 + "hw-volume" 89 + ] 90 + }, 91 + { 92 + "address": "~^d4:9c:28:", 93 + "no-features": [ 94 + "hw-volume" 95 + ] 96 + }, 97 + { 98 + "address": "~^00:18:6b:", 99 + "no-features": [ 100 + "hw-volume" 101 + ] 102 + }, 103 + { 104 + "address": "~^b8:ad:3e:", 105 + "no-features": [ 106 + "hw-volume" 107 + ] 108 + }, 109 + { 110 + "address": "~^a0:e9:db:", 111 + "no-features": [ 112 + "hw-volume" 113 + ] 114 + }, 115 + { 116 + "address": "~^00:24:1c:", 117 + "no-features": [ 118 + "hw-volume" 119 + ] 120 + }, 121 + { 122 + "address": "~^00:11:b1:", 123 + "no-features": [ 124 + "hw-volume" 125 + ] 126 + }, 127 + { 128 + "address": "~^a4:15:66:", 129 + "no-features": [ 130 + "hw-volume" 131 + ] 132 + }, 133 + { 134 + "address": "~^00:14:f1:", 135 + "no-features": [ 136 + "hw-volume" 137 + ] 138 + }, 139 + { 140 + "address": "~^00:26:7e:", 141 + "no-features": [ 142 + "hw-volume" 143 + ] 144 + }, 145 + { 146 + "address": "~^90:03:b7:", 147 + "no-features": [ 148 + "hw-volume" 149 + ] 150 + } 151 + ], 152 + "bluez5.features.adapter": [ 153 + { 154 + "bus-type": "usb", 155 + "vendor-id": "usb:0bda" 156 + }, 157 + { 158 + "bus-type": "usb", 159 + "no-features": [ 160 + "msbc-alt1-rtl" 161 + ] 162 + }, 163 + { 164 + "no-features": [ 165 + "msbc-alt1-rtl" 166 + ] 167 + } 168 + ], 169 + "bluez5.features.kernel": [ 170 + { 171 + "sysname": "Linux", 172 + "release": "~^[0-4]\\.", 173 + "no-features": [ 174 + "msbc-alt1", 175 + "msbc-alt1-rtl" 176 + ] 177 + }, 178 + { 179 + "sysname": "Linux", 180 + "release": "~^5\\.[1-7]\\.", 181 + "no-features": [ 182 + "msbc-alt1", 183 + "msbc-alt1-rtl" 184 + ] 185 + }, 186 + { 187 + "sysname": "Linux", 188 + "release": "~^5\\.(8|9|10)\\.", 189 + "no-features": [ 190 + "msbc-alt1" 191 + ] 192 + }, 193 + { 194 + "no-features": [] 195 + } 196 + ] 197 + }
+1 -1
nixos/modules/services/desktops/pipewire/jack.conf.json
··· 7 7 }, 8 8 "context.modules": [ 9 9 { 10 - "name": "libpipewire-module-rtkit", 10 + "name": "libpipewire-module-rt", 11 11 "args": {}, 12 12 "flags": [ 13 13 "ifexists",
+6
nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
··· 15 15 defaults = { 16 16 alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json)); 17 17 bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json)); 18 + bluez-hardware = (builtins.fromJSON (builtins.readFile ./bluez-hardware.conf.json)); 18 19 media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json)); 19 20 v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json)); 20 21 }; ··· 22 23 configs = { 23 24 alsa-monitor = recursiveUpdate defaults.alsa-monitor cfg.config.alsa-monitor; 24 25 bluez-monitor = recursiveUpdate defaults.bluez-monitor cfg.config.bluez-monitor; 26 + bluez-hardware = defaults.bluez-hardware; 25 27 media-session = recursiveUpdate defaults.media-session cfg.config.media-session; 26 28 v4l2-monitor = recursiveUpdate defaults.v4l2-monitor cfg.config.v4l2-monitor; 27 29 }; ··· 119 121 environment.etc."pipewire/media-session.d/bluez-monitor.conf" = 120 122 mkIf config.services.pipewire.pulse.enable { 121 123 source = json.generate "bluez-monitor.conf" configs.bluez-monitor; 124 + }; 125 + environment.etc."pipewire/media-session.d/bluez-hardware.conf" = 126 + mkIf config.services.pipewire.pulse.enable { 127 + source = json.generate "bluez-hardware.conf" configs.bluez-hardware; 122 128 }; 123 129 124 130 environment.etc."pipewire/media-session.d/with-jack" =
+2 -5
pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
··· 2 2 index 93b5e2a9..1b915ac3 100644 3 3 --- a/meson_options.txt 4 4 +++ b/meson_options.txt 5 - @@ -13,6 +13,9 @@ option('media-session', 6 - description: 'Build and install pipewire-media-session', 5 + @@ -200,3 +200,6 @@ option('media-session', 7 6 type: 'feature', 8 7 value: 'auto') 9 8 +option('media-session-prefix', 10 9 + description: 'Install directory for pipewire-media-session and its support files', 11 10 + type: 'string') 12 - option('man', 13 - description: 'Build manpages', 14 - type: 'feature', 11 + option('session-managers', 15 12 diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build 16 13 index 1edebb2d..251270eb 100644 17 14 --- a/src/daemon/systemd/user/meson.build
+4 -4
pkgs/development/libraries/pipewire/0090-pipewire-config-template-paths.patch
··· 6 6 # access.allowed to list an array of paths of allowed 7 7 # apps. 8 8 #access.allowed = [ 9 - - # @media_session_path@ 10 - + # <media_session_path> 9 + - # @session_manager_path@ 10 + + # <session_manager_path> 11 11 #] 12 12 13 13 # An array of rejected paths. ··· 15 15 # but it is better to start it as a systemd service. 16 16 # Run the session manager with -h for options. 17 17 # 18 - - @comment@{ path = "@media_session_path@" args = "" } 19 - + @comment@{ path = "<media_session_path>" args = "" } 18 + - @comment@{ path = "@session_manager_path@" args = "@session_manager_args@" } 19 + + @comment@{ path = "<session_manager_path>" args = "@session_manager_args@" } 20 20 # 21 21 # You can optionally start the pulseaudio-server here as well 22 22 # but it is better to start it as a systemd service.
+8 -2
pkgs/development/libraries/pipewire/default.nix
··· 14 14 , dbus 15 15 , alsa-lib 16 16 , libjack2 17 + , libusb1 17 18 , udev 18 19 , libva 19 20 , libsndfile ··· 43 44 }; 44 45 45 46 mesonEnable = b: if b then "enabled" else "disabled"; 47 + mesonList = l: "[" + lib.concatStringsSep "," l + "]"; 46 48 47 49 self = stdenv.mkDerivation rec { 48 50 pname = "pipewire"; 49 - version = "0.3.30"; 51 + version = "0.3.31"; 50 52 51 53 outputs = [ 52 54 "out" ··· 64 66 owner = "pipewire"; 65 67 repo = "pipewire"; 66 68 rev = version; 67 - sha256 = "sha256-DnaPvZoDaegjtJNKBmCJEAZe5FQBnSER79FPnxiWQUE="; 69 + sha256 = "1dirz69ami7bcgy6hhh0ffi9gzwcy9idg94nvknwvwkjw4zm8m79"; 68 70 }; 69 71 70 72 patches = [ ··· 96 98 dbus 97 99 glib 98 100 libjack2 101 + libusb1 99 102 libsndfile 100 103 ncurses 101 104 udev ··· 122 125 "-Dmedia-session-prefix=${placeholder "mediaSession"}" 123 126 "-Dlibjack-path=${placeholder "jack"}/lib" 124 127 "-Dlibcamera=disabled" 128 + "-Droc=disabled" 125 129 "-Dlibpulse=${mesonEnable pulseTunnelSupport}" 126 130 "-Davahi=${mesonEnable zeroconfSupport}" 127 131 "-Dgstreamer=${mesonEnable gstreamerSupport}" ··· 133 137 "-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}" 134 138 "-Dsysconfdir=/etc" 135 139 "-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire" 140 + "-Dsession-managers=${mesonList (lib.optional withMediaSession "media-session")}" 136 141 ]; 137 142 138 143 FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file ··· 187 192 paths-out-media-session = [ 188 193 "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json" 189 194 "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json" 195 + "nix-support/etc/pipewire/media-session.d/bluez-hardware.conf.json" 190 196 "nix-support/etc/pipewire/media-session.d/media-session.conf.json" 191 197 "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json" 192 198 ];