diff --git a/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json index bd00571bc35b..6d1c23e82569 100644 --- a/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json +++ b/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json @@ -9,7 +9,7 @@ ], "actions": { "update-props": { - "bluez5.reconnect-profiles": [ + "bluez5.auto-connect": [ "hfp_hf", "hsp_hs", "a2dp_sink" diff --git a/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixos/modules/services/desktops/pipewire/media-session.conf.json index 62e59935dbe5..24906e767d6d 100644 --- a/nixos/modules/services/desktops/pipewire/media-session.conf.json +++ b/nixos/modules/services/desktops/pipewire/media-session.conf.json @@ -59,6 +59,7 @@ "with-pulseaudio": [ "with-audio", "bluez5", + "logind", "restore-stream", "streams-follow-default" ] diff --git a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json index 3e776fe75a2c..17bbbdef1179 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json +++ b/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json @@ -30,7 +30,10 @@ "args": { "server.address": [ "unix:native" - ] + ], + "vm.overrides": { + "pulse.min.quantum": "1024/48000" + } } } ], diff --git a/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/nixos/modules/services/desktops/pipewire/pipewire.conf.json index bae87dd66377..a9330f54f4f7 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire.conf.json +++ b/nixos/modules/services/desktops/pipewire/pipewire.conf.json @@ -2,7 +2,10 @@ "context.properties": { "link.max-buffers": 16, "core.daemon": true, - "core.name": "pipewire-0" + "core.name": "pipewire-0", + "vm.overrides": { + "default.clock.min-quantum": 1024 + } }, "context.spa-libs": { "audio.convert.*": "audioconvert/libspa-audioconvert", diff --git a/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch b/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch index c657d12f7d0c..fab89c4ffd93 100644 --- a/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch +++ b/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch @@ -1,13 +1,13 @@ diff --git a/meson.build b/meson.build -index ffee41b4..f3e4ec74 100644 +index 99a4b2d1..d4a4cda7 100644 --- a/meson.build +++ b/meson.build -@@ -53,7 +53,7 @@ endif +@@ -55,7 +55,7 @@ endif - spa_plugindir = join_paths(pipewire_libdir, spa_name) + spa_plugindir = pipewire_libdir / spa_name --alsadatadir = join_paths(pipewire_datadir, 'alsa-card-profile', 'mixer') -+alsadatadir = join_paths(pipewire_libdir, '..', 'share', 'alsa-card-profile', 'mixer') +-alsadatadir = pipewire_datadir / 'alsa-card-profile' / 'mixer' ++alsadatadir = pipewire_libdir / '..' / 'share' / 'alsa-card-profile' / 'mixer' - pipewire_headers_dir = join_paths(pipewire_name, 'pipewire') + pipewire_headers_dir = pipewire_name / 'pipewire' diff --git a/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch b/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch index 4a6b21dd4312..fd7d031ee0fe 100644 --- a/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch +++ b/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch @@ -1,8 +1,8 @@ diff --git a/meson_options.txt b/meson_options.txt -index ce364d93..a6c8af72 100644 +index 66791f3a..93b5e2a9 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -152,6 +152,9 @@ option('udev', +@@ -172,6 +172,9 @@ option('udev', option('udevrulesdir', type : 'string', description : 'Directory for udev rules (defaults to /lib/udev/rules.d)') @@ -13,15 +13,15 @@ index ce364d93..a6c8af72 100644 type : 'string', description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)') diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build -index 0a5e5042..4a70b0b0 100644 +index aa30a86f..1edebb2d 100644 --- a/src/daemon/systemd/user/meson.build +++ b/src/daemon/systemd/user/meson.build @@ -9,7 +9,7 @@ install_data( systemd_config = configuration_data() - systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire')) --systemd_config.set('PW_PULSE_BINARY', join_paths(pipewire_bindir, 'pipewire-pulse')) -+systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse')) - systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session')) + systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire') +-systemd_config.set('PW_PULSE_BINARY', pipewire_bindir / 'pipewire-pulse') ++systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse') + systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session') configure_file(input : 'pipewire.service.in', diff --git a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch index a4fb8b41e7a1..be6683c3e7b7 100644 --- a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch +++ b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch @@ -1,8 +1,8 @@ diff --git a/meson_options.txt b/meson_options.txt -index e2a1e028..310029f2 100644 +index 93b5e2a9..1b915ac3 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -10,6 +10,9 @@ option('media-session', +@@ -13,6 +13,9 @@ option('media-session', description: 'Build and install pipewire-media-session', type: 'feature', value: 'auto') @@ -13,15 +13,15 @@ index e2a1e028..310029f2 100644 description: 'Build manpages', type: 'feature', diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build -index 5c4d1af0..7296220f 100644 +index 1edebb2d..251270eb 100644 --- a/src/daemon/systemd/user/meson.build +++ b/src/daemon/systemd/user/meson.build @@ -10,7 +10,7 @@ install_data( systemd_config = configuration_data() - systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire')) - systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse')) --systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session')) -+systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(get_option('media-session-prefix'), 'bin/pipewire-media-session')) - + systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire') + systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse') +-systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session') ++systemd_config.set('PW_MEDIA_SESSION_BINARY', get_option('media-session-prefix') / 'bin/pipewire-media-session') + configure_file(input : 'pipewire.service.in', output : 'pipewire.service', diff --git a/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch b/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch index cb695fa398ca..926de3062546 100644 --- a/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch +++ b/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch @@ -1,23 +1,23 @@ diff --git a/meson.build b/meson.build -index 97d4d939..b17358e5 100644 +index d4a4cda7..a27569bd 100644 --- a/meson.build +++ b/meson.build @@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd' - + alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa')) - --installed_tests_metadir = join_paths(pipewire_datadir, 'installed-tests', pipewire_name) --installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name) -+installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name) -+installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', pipewire_name) + +-installed_tests_metadir = pipewire_datadir / 'installed-tests' / pipewire_name +-installed_tests_execdir = pipewire_libexecdir / 'installed-tests' / pipewire_name ++installed_tests_metadir = get_option('installed_test_prefix') / 'share' / 'installed-tests' / pipewire_name ++installed_tests_execdir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / pipewire_name installed_tests_enabled = not get_option('installed_tests').disabled() installed_tests_template = files('template.test.in') - + diff --git a/meson_options.txt b/meson_options.txt -index fba0d647..8c6106cd 100644 +index 1b915ac3..85beb86a 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -26,6 +26,9 @@ option('installed_tests', +@@ -29,6 +29,9 @@ option('installed_tests', description: 'Install manual and automated test executables', type: 'feature', value: 'disabled') diff --git a/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch b/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch index ad1ae93684b1..b92e2818ea07 100644 --- a/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch +++ b/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch @@ -1,30 +1,30 @@ diff --git a/meson.build b/meson.build -index 0073eb13..0ffc6863 100644 +index a27569bd..fcf18344 100644 --- a/meson.build +++ b/meson.build -@@ -34,7 +34,10 @@ pipewire_libexecdir = join_paths(prefix, get_option('libexecdir')) - pipewire_localedir = join_paths(prefix, get_option('localedir')) - pipewire_sysconfdir = join_paths(prefix, get_option('sysconfdir')) +@@ -36,7 +36,10 @@ pipewire_libexecdir = prefix / get_option('libexecdir') + pipewire_localedir = prefix / get_option('localedir') + pipewire_sysconfdir = prefix / get_option('sysconfdir') --pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire') +-pipewire_configdir = pipewire_sysconfdir / 'pipewire' +pipewire_configdir = get_option('pipewire_config_dir') +if pipewire_configdir == '' -+ pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire') ++ pipewire_configdir = pipewire_sysconfdir / 'pipewire' +endif - modules_install_dir = join_paths(pipewire_libdir, pipewire_name) + modules_install_dir = pipewire_libdir / pipewire_name if host_machine.system() == 'linux' diff --git a/meson_options.txt b/meson_options.txt -index 4b9e46b8..8c301459 100644 +index 85beb86a..372e8faa 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -56,6 +56,9 @@ option('pipewire-pulseaudio', - option('libpulse-path', - description: 'Where to install the libpulse.so library', +@@ -67,6 +67,9 @@ option('jack-devel', + option('libjack-path', + description: 'Where to install the libjack.so library', type: 'string') +option('pipewire_config_dir', + type : 'string', + description : 'Directory for pipewire configuration (defaults to /etc/pipewire)') option('spa-plugins', description: 'Enable spa plugins integration', - type: 'boolean', + type: 'feature', diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index 47a85c36c23a..9f095c7ab780 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -42,7 +42,7 @@ let self = stdenv.mkDerivation rec { pname = "pipewire"; - version = "0.3.25"; + version = "0.3.26"; outputs = [ "out" @@ -60,7 +60,7 @@ let owner = "pipewire"; repo = "pipewire"; rev = version; - hash = "sha256:EbXWcf6QLtbvm6/eXBI+PF2sTw2opYfmc+H/SMDEH1U="; + hash = "sha256:1rqi1sa937lp89ai79b5n7m0p66pigpj4w1mr2vq4dycfp8vppxk"; }; patches = [