Merge pull request #120833 from talyz/pipewire-0.3.26
pipewire: 0.3.25 -> 0.3.26
This commit is contained in:
commit
abecdfea73
14 changed files with 114 additions and 77 deletions
|
@ -1,6 +0,0 @@
|
||||||
# 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
|
|
|
@ -9,7 +9,7 @@
|
||||||
],
|
],
|
||||||
"actions": {
|
"actions": {
|
||||||
"update-props": {
|
"update-props": {
|
||||||
"bluez5.reconnect-profiles": [
|
"bluez5.auto-connect": [
|
||||||
"hfp_hf",
|
"hfp_hf",
|
||||||
"hsp_hs",
|
"hsp_hs",
|
||||||
"a2dp_sink"
|
"a2dp_sink"
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
"with-pulseaudio": [
|
"with-pulseaudio": [
|
||||||
"with-audio",
|
"with-audio",
|
||||||
"bluez5",
|
"bluez5",
|
||||||
|
"logind",
|
||||||
"restore-stream",
|
"restore-stream",
|
||||||
"streams-follow-default"
|
"streams-follow-default"
|
||||||
]
|
]
|
||||||
|
|
|
@ -30,7 +30,10 @@
|
||||||
"args": {
|
"args": {
|
||||||
"server.address": [
|
"server.address": [
|
||||||
"unix:native"
|
"unix:native"
|
||||||
]
|
],
|
||||||
|
"vm.overrides": {
|
||||||
|
"pulse.min.quantum": "1024/48000"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -2,7 +2,10 @@
|
||||||
"context.properties": {
|
"context.properties": {
|
||||||
"link.max-buffers": 16,
|
"link.max-buffers": 16,
|
||||||
"core.daemon": true,
|
"core.daemon": true,
|
||||||
"core.name": "pipewire-0"
|
"core.name": "pipewire-0",
|
||||||
|
"vm.overrides": {
|
||||||
|
"default.clock.min-quantum": 1024
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"context.spa-libs": {
|
"context.spa-libs": {
|
||||||
"audio.convert.*": "audioconvert/libspa-audioconvert",
|
"audio.convert.*": "audioconvert/libspa-audioconvert",
|
||||||
|
|
|
@ -2,4 +2,14 @@
|
||||||
|
|
||||||
makeInstalledTest {
|
makeInstalledTest {
|
||||||
tested = pkgs.pipewire;
|
tested = pkgs.pipewire;
|
||||||
|
testConfig = {
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
diff --git a/meson.build b/meson.build
|
diff --git a/meson.build b/meson.build
|
||||||
index ffee41b4..f3e4ec74 100644
|
index 99a4b2d1..d4a4cda7 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/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 = pipewire_datadir / 'alsa-card-profile' / 'mixer'
|
||||||
+alsadatadir = join_paths(pipewire_libdir, '..', 'share', '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'
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
diff --git a/meson_options.txt b/meson_options.txt
|
diff --git a/meson_options.txt b/meson_options.txt
|
||||||
index ce364d93..a6c8af72 100644
|
index 66791f3a..93b5e2a9 100644
|
||||||
--- a/meson_options.txt
|
--- a/meson_options.txt
|
||||||
+++ b/meson_options.txt
|
+++ b/meson_options.txt
|
||||||
@@ -152,6 +152,9 @@ option('udev',
|
@@ -172,6 +172,9 @@ option('udev',
|
||||||
option('udevrulesdir',
|
option('udevrulesdir',
|
||||||
type : 'string',
|
type : 'string',
|
||||||
description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
|
description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
|
||||||
|
@ -13,15 +13,15 @@ index ce364d93..a6c8af72 100644
|
||||||
type : 'string',
|
type : 'string',
|
||||||
description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)')
|
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
|
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
|
--- a/src/daemon/systemd/user/meson.build
|
||||||
+++ b/src/daemon/systemd/user/meson.build
|
+++ b/src/daemon/systemd/user/meson.build
|
||||||
@@ -9,7 +9,7 @@ install_data(
|
@@ -9,7 +9,7 @@ install_data(
|
||||||
|
|
||||||
systemd_config = configuration_data()
|
systemd_config = configuration_data()
|
||||||
systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
|
systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
|
||||||
-systemd_config.set('PW_PULSE_BINARY', join_paths(pipewire_bindir, 'pipewire-pulse'))
|
-systemd_config.set('PW_PULSE_BINARY', pipewire_bindir / 'pipewire-pulse')
|
||||||
+systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
|
+systemd_config.set('PW_PULSE_BINARY', 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', pipewire_bindir / 'pipewire-media-session')
|
||||||
|
|
||||||
configure_file(input : 'pipewire.service.in',
|
configure_file(input : 'pipewire.service.in',
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
diff --git a/meson_options.txt b/meson_options.txt
|
diff --git a/meson_options.txt b/meson_options.txt
|
||||||
index e2a1e028..310029f2 100644
|
index 93b5e2a9..1b915ac3 100644
|
||||||
--- a/meson_options.txt
|
--- a/meson_options.txt
|
||||||
+++ b/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',
|
description: 'Build and install pipewire-media-session',
|
||||||
type: 'feature',
|
type: 'feature',
|
||||||
value: 'auto')
|
value: 'auto')
|
||||||
|
@ -13,15 +13,15 @@ index e2a1e028..310029f2 100644
|
||||||
description: 'Build manpages',
|
description: 'Build manpages',
|
||||||
type: 'feature',
|
type: 'feature',
|
||||||
diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
|
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
|
--- a/src/daemon/systemd/user/meson.build
|
||||||
+++ b/src/daemon/systemd/user/meson.build
|
+++ b/src/daemon/systemd/user/meson.build
|
||||||
@@ -10,7 +10,7 @@ install_data(
|
@@ -10,7 +10,7 @@ install_data(
|
||||||
systemd_config = configuration_data()
|
systemd_config = configuration_data()
|
||||||
systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
|
systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
|
||||||
systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
|
systemd_config.set('PW_PULSE_BINARY', 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', 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_MEDIA_SESSION_BINARY', get_option('media-session-prefix') / 'bin/pipewire-media-session')
|
||||||
|
|
||||||
configure_file(input : 'pipewire.service.in',
|
configure_file(input : 'pipewire.service.in',
|
||||||
output : 'pipewire.service',
|
output : 'pipewire.service',
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
diff --git a/meson.build b/meson.build
|
diff --git a/meson.build b/meson.build
|
||||||
index 97d4d939..b17358e5 100644
|
index d4a4cda7..a27569bd 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/meson.build
|
+++ b/meson.build
|
||||||
@@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd'
|
@@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd'
|
||||||
|
|
||||||
alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa'))
|
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_metadir = pipewire_datadir / 'installed-tests' / pipewire_name
|
||||||
-installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name)
|
-installed_tests_execdir = pipewire_libexecdir / 'installed-tests' / pipewire_name
|
||||||
+installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name)
|
+installed_tests_metadir = 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_execdir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / pipewire_name
|
||||||
installed_tests_enabled = not get_option('installed_tests').disabled()
|
installed_tests_enabled = not get_option('installed_tests').disabled()
|
||||||
installed_tests_template = files('template.test.in')
|
installed_tests_template = files('template.test.in')
|
||||||
|
|
||||||
diff --git a/meson_options.txt b/meson_options.txt
|
diff --git a/meson_options.txt b/meson_options.txt
|
||||||
index fba0d647..8c6106cd 100644
|
index 1b915ac3..85beb86a 100644
|
||||||
--- a/meson_options.txt
|
--- a/meson_options.txt
|
||||||
+++ b/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',
|
description: 'Install manual and automated test executables',
|
||||||
type: 'feature',
|
type: 'feature',
|
||||||
value: 'disabled')
|
value: 'disabled')
|
||||||
|
|
|
@ -1,30 +1,30 @@
|
||||||
diff --git a/meson.build b/meson.build
|
diff --git a/meson.build b/meson.build
|
||||||
index 0073eb13..0ffc6863 100644
|
index a27569bd..fcf18344 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/meson.build
|
+++ b/meson.build
|
||||||
@@ -34,7 +34,10 @@ pipewire_libexecdir = join_paths(prefix, get_option('libexecdir'))
|
@@ -36,7 +36,10 @@ pipewire_libexecdir = prefix / get_option('libexecdir')
|
||||||
pipewire_localedir = join_paths(prefix, get_option('localedir'))
|
pipewire_localedir = prefix / get_option('localedir')
|
||||||
pipewire_sysconfdir = join_paths(prefix, get_option('sysconfdir'))
|
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')
|
+pipewire_configdir = get_option('pipewire_config_dir')
|
||||||
+if pipewire_configdir == ''
|
+if pipewire_configdir == ''
|
||||||
+ pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
|
+ pipewire_configdir = pipewire_sysconfdir / 'pipewire'
|
||||||
+endif
|
+endif
|
||||||
modules_install_dir = join_paths(pipewire_libdir, pipewire_name)
|
modules_install_dir = pipewire_libdir / pipewire_name
|
||||||
|
|
||||||
if host_machine.system() == 'linux'
|
if host_machine.system() == 'linux'
|
||||||
diff --git a/meson_options.txt b/meson_options.txt
|
diff --git a/meson_options.txt b/meson_options.txt
|
||||||
index 4b9e46b8..8c301459 100644
|
index 85beb86a..372e8faa 100644
|
||||||
--- a/meson_options.txt
|
--- a/meson_options.txt
|
||||||
+++ b/meson_options.txt
|
+++ b/meson_options.txt
|
||||||
@@ -56,6 +56,9 @@ option('pipewire-pulseaudio',
|
@@ -67,6 +67,9 @@ option('jack-devel',
|
||||||
option('libpulse-path',
|
option('libjack-path',
|
||||||
description: 'Where to install the libpulse.so library',
|
description: 'Where to install the libjack.so library',
|
||||||
type: 'string')
|
type: 'string')
|
||||||
+option('pipewire_config_dir',
|
+option('pipewire_config_dir',
|
||||||
+ type : 'string',
|
+ type : 'string',
|
||||||
+ description : 'Directory for pipewire configuration (defaults to /etc/pipewire)')
|
+ description : 'Directory for pipewire configuration (defaults to /etc/pipewire)')
|
||||||
option('spa-plugins',
|
option('spa-plugins',
|
||||||
description: 'Enable spa plugins integration',
|
description: 'Enable spa plugins integration',
|
||||||
type: 'boolean',
|
type: 'feature',
|
||||||
|
|
|
@ -42,7 +42,7 @@ let
|
||||||
|
|
||||||
self = stdenv.mkDerivation rec {
|
self = stdenv.mkDerivation rec {
|
||||||
pname = "pipewire";
|
pname = "pipewire";
|
||||||
version = "0.3.25";
|
version = "0.3.26";
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
"out"
|
"out"
|
||||||
|
@ -60,7 +60,7 @@ let
|
||||||
owner = "pipewire";
|
owner = "pipewire";
|
||||||
repo = "pipewire";
|
repo = "pipewire";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256:EbXWcf6QLtbvm6/eXBI+PF2sTw2opYfmc+H/SMDEH1U=";
|
sha256 = "sha256-s9+70XXMN4K3yDVwIu+L15gL6rFlpRNVQpeekZQOEec=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -146,29 +146,31 @@ let
|
||||||
moveToOutput "bin/pipewire-pulse" "$pulse"
|
moveToOutput "bin/pipewire-pulse" "$pulse"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.tests = {
|
passthru = {
|
||||||
installedTests = nixosTests.installed-tests.pipewire;
|
updateScript = ./update.sh;
|
||||||
|
tests = {
|
||||||
|
installedTests = nixosTests.installed-tests.pipewire;
|
||||||
|
|
||||||
# This ensures that all the paths used by the NixOS module are found.
|
# This ensures that all the paths used by the NixOS module are found.
|
||||||
test-paths = callPackage ./test-paths.nix {
|
test-paths = callPackage ./test-paths.nix {
|
||||||
paths-out = [
|
paths-out = [
|
||||||
"share/alsa/alsa.conf.d/50-pipewire.conf"
|
"share/alsa/alsa.conf.d/50-pipewire.conf"
|
||||||
"nix-support/etc/pipewire/client.conf.json"
|
"nix-support/etc/pipewire/client.conf.json"
|
||||||
"nix-support/etc/pipewire/client-rt.conf.json"
|
"nix-support/etc/pipewire/jack.conf.json"
|
||||||
"nix-support/etc/pipewire/jack.conf.json"
|
"nix-support/etc/pipewire/pipewire.conf.json"
|
||||||
"nix-support/etc/pipewire/pipewire.conf.json"
|
"nix-support/etc/pipewire/pipewire-pulse.conf.json"
|
||||||
"nix-support/etc/pipewire/pipewire-pulse.conf.json"
|
];
|
||||||
];
|
paths-out-media-session = [
|
||||||
paths-out-media-session = [
|
"nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
|
||||||
"nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
|
"nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
|
||||||
"nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
|
"nix-support/etc/pipewire/media-session.d/media-session.conf.json"
|
||||||
"nix-support/etc/pipewire/media-session.d/media-session.conf.json"
|
"nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
|
||||||
"nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
|
];
|
||||||
];
|
paths-lib = [
|
||||||
paths-lib = [
|
"lib/alsa-lib/libasound_module_pcm_pipewire.so"
|
||||||
"lib/alsa-lib/libasound_module_pcm_pipewire.so"
|
"share/alsa-card-profile/mixer"
|
||||||
"share/alsa-card-profile/mixer"
|
];
|
||||||
];
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, runCommand, pipewire, paths-out, paths-lib }:
|
{ lib, runCommand, pipewire, paths-out, paths-lib, paths-out-media-session }:
|
||||||
|
|
||||||
let
|
let
|
||||||
check-path = output: path: ''
|
check-path = output: path: ''
|
||||||
|
|
24
pkgs/development/libraries/pipewire/update.sh
Executable file
24
pkgs/development/libraries/pipewire/update.sh
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -p nix-update -i bash
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
set -o errexit -o pipefail -o nounset -o errtrace
|
||||||
|
shopt -s inherit_errexit
|
||||||
|
shopt -s nullglob
|
||||||
|
IFS=$'\n'
|
||||||
|
|
||||||
|
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"
|
||||||
|
|
||||||
|
cd "$NIXPKGS_ROOT"
|
||||||
|
nix-update pipewire
|
||||||
|
outputs=$(nix-build . -A pipewire -A pipewire.mediaSession)
|
||||||
|
for p in $outputs; do
|
||||||
|
conf_files=$(find "$p/nix-support/etc/pipewire/" -name '*.conf.json')
|
||||||
|
for c in $conf_files; do
|
||||||
|
file_name=$(basename "$c")
|
||||||
|
if [[ ! -e "nixos/modules/services/desktops/pipewire/$file_name" ]]; then
|
||||||
|
echo "New file $file_name found! Add it to the module config and passthru tests!"
|
||||||
|
fi
|
||||||
|
install -m 0644 "$c" "nixos/modules/services/desktops/pipewire/"
|
||||||
|
done
|
||||||
|
done
|
Loading…
Reference in a new issue