From 67b1ef519f2797d0cbeeb0cfce1d4a660f6a2a81 Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Tue, 29 Apr 2025 16:32:01 +0000 Subject: [PATCH 1/8] webrtc-audio-processing: set default to 2.1 --- .../we}/webrtc-audio-processing/0.3.nix | 0 .../we/webrtc-audio-processing/1.nix} | 0 .../enable-powerpc.patch | 0 .../enable-riscv.patch | 0 .../we/webrtc-audio-processing/package.nix | 55 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 8 +-- 6 files changed, 57 insertions(+), 6 deletions(-) rename pkgs/{development/libraries => by-name/we}/webrtc-audio-processing/0.3.nix (100%) rename pkgs/{development/libraries/webrtc-audio-processing/default.nix => by-name/we/webrtc-audio-processing/1.nix} (100%) rename pkgs/{development/libraries => by-name/we}/webrtc-audio-processing/enable-powerpc.patch (100%) rename pkgs/{development/libraries => by-name/we}/webrtc-audio-processing/enable-riscv.patch (100%) create mode 100644 pkgs/by-name/we/webrtc-audio-processing/package.nix diff --git a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix b/pkgs/by-name/we/webrtc-audio-processing/0.3.nix similarity index 100% rename from pkgs/development/libraries/webrtc-audio-processing/0.3.nix rename to pkgs/by-name/we/webrtc-audio-processing/0.3.nix diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/by-name/we/webrtc-audio-processing/1.nix similarity index 100% rename from pkgs/development/libraries/webrtc-audio-processing/default.nix rename to pkgs/by-name/we/webrtc-audio-processing/1.nix diff --git a/pkgs/development/libraries/webrtc-audio-processing/enable-powerpc.patch b/pkgs/by-name/we/webrtc-audio-processing/enable-powerpc.patch similarity index 100% rename from pkgs/development/libraries/webrtc-audio-processing/enable-powerpc.patch rename to pkgs/by-name/we/webrtc-audio-processing/enable-powerpc.patch diff --git a/pkgs/development/libraries/webrtc-audio-processing/enable-riscv.patch b/pkgs/by-name/we/webrtc-audio-processing/enable-riscv.patch similarity index 100% rename from pkgs/development/libraries/webrtc-audio-processing/enable-riscv.patch rename to pkgs/by-name/we/webrtc-audio-processing/enable-riscv.patch diff --git a/pkgs/by-name/we/webrtc-audio-processing/package.nix b/pkgs/by-name/we/webrtc-audio-processing/package.nix new file mode 100644 index 0000000000000..8f8a8c9ff2f97 --- /dev/null +++ b/pkgs/by-name/we/webrtc-audio-processing/package.nix @@ -0,0 +1,55 @@ +{ + lib, + stdenv, + fetchFromGitLab, + abseil-cpp, + meson, + ninja, + pkg-config, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "webrtc-audio-processing"; + version = "2.1"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "pulseaudio"; + repo = "webrtc-audio-processing"; + tag = "v${finalAttrs.version}"; + hash = "sha256-YR4ELukJgHMbfe80H+r8OiaZUCAqefGXmVOaTVVgOqA="; + }; + + outputs = [ + "out" + "dev" + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; + + propagatedBuildInputs = [ + abseil-cpp + ]; + + mesonFlags = lib.lists.optional (!stdenv.hostPlatform.isAarch64) "-Dneon=disabled"; + + meta = { + homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing"; + description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project"; + license = lib.licenses.bsd3; + platforms = + with lib.platforms; + lib.intersectLists + # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/webrtc/rtc_base/system/arch.h + (arm ++ aarch64 ++ mips ++ power ++ riscv ++ x86 ++ loongarch64) + # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/meson.build + (linux ++ windows ++ freebsd ++ netbsd ++ openbsd ++ darwin); + # BE platforms are unsupported + # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31 + badPlatforms = lib.platforms.bigEndian; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ba7ccac4a0176..b9db4647b34ac 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9718,12 +9718,8 @@ with pkgs; gtk3 = gtk4; }; - webrtc-audio-processing_1 = callPackage ../development/libraries/webrtc-audio-processing { }; - webrtc-audio-processing_0_3 = - callPackage ../development/libraries/webrtc-audio-processing/0.3.nix - { }; - # bump when majoring of packages have updated - webrtc-audio-processing = webrtc-audio-processing_0_3; + webrtc-audio-processing_1 = callPackage ../by-name/we/webrtc-audio-processing/1.nix { }; + webrtc-audio-processing_0_3 = callPackage ../by-name/we/webrtc-audio-processing/0.3.nix { }; wlr-protocols = callPackage ../development/libraries/wlroots/protocols.nix { }; From 49fcd62de5d888b201bf6c648ad842dc948c7fc5 Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Wed, 30 Apr 2025 02:19:27 +0000 Subject: [PATCH 2/8] webrtc-audio-processing: remove bigEndian from badPlatforms --- pkgs/by-name/we/webrtc-audio-processing/package.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/by-name/we/webrtc-audio-processing/package.nix b/pkgs/by-name/we/webrtc-audio-processing/package.nix index 8f8a8c9ff2f97..36f9363664de8 100644 --- a/pkgs/by-name/we/webrtc-audio-processing/package.nix +++ b/pkgs/by-name/we/webrtc-audio-processing/package.nix @@ -48,8 +48,5 @@ stdenv.mkDerivation (finalAttrs: { (arm ++ aarch64 ++ mips ++ power ++ riscv ++ x86 ++ loongarch64) # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/meson.build (linux ++ windows ++ freebsd ++ netbsd ++ openbsd ++ darwin); - # BE platforms are unsupported - # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31 - badPlatforms = lib.platforms.bigEndian; }; }) From 7f4a6663c885f5e57e76b4caa1d8cc7abfac1421 Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Wed, 30 Apr 2025 02:28:13 +0000 Subject: [PATCH 3/8] jami: webrtc-audio-processing -> webrtc-audio-processing_0_3 --- .../networking/instant-messengers/jami/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix index 01b661171aca4..5524ed9fcf0ed 100644 --- a/pkgs/applications/networking/instant-messengers/jami/default.nix +++ b/pkgs/applications/networking/instant-messengers/jami/default.nix @@ -30,7 +30,7 @@ secp256k1, speex, udev, - webrtc-audio-processing, + webrtc-audio-processing_0_3, yaml-cpp, zlib, @@ -220,7 +220,7 @@ stdenv.mkDerivation rec { secp256k1 speex udev - webrtc-audio-processing + webrtc-audio-processing_0_3 yaml-cpp zlib ]; From 3fb12c0a937da0eb55792539327c203dfb7d5cdd Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Wed, 30 Apr 2025 02:52:44 +0000 Subject: [PATCH 4/8] webrtc-audio-processing: add fzdslr to maintainers --- maintainers/maintainer-list.nix | 6 ++++++ pkgs/by-name/we/webrtc-audio-processing/package.nix | 1 + 2 files changed, 7 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 940d7a59b4963..dad9b73c78815 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8835,6 +8835,12 @@ github = "fzakaria"; githubId = 605070; }; + fzdslr = { + name = "FZDSLR"; + email = "fzdslr@outlook.com"; + github = "fzdslr"; + githubId = 62922415; + }; gabesoft = { email = "gabesoft@gmail.com"; github = "gabesoft"; diff --git a/pkgs/by-name/we/webrtc-audio-processing/package.nix b/pkgs/by-name/we/webrtc-audio-processing/package.nix index 36f9363664de8..065170a4b7ac7 100644 --- a/pkgs/by-name/we/webrtc-audio-processing/package.nix +++ b/pkgs/by-name/we/webrtc-audio-processing/package.nix @@ -41,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing"; description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ fzdslr ]; platforms = with lib.platforms; lib.intersectLists From 5bbe55d514bb532fc231a36948b0e84a9bc85d88 Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Thu, 1 May 2025 02:50:45 +0000 Subject: [PATCH 5/8] webrtc-audio-processing: add passthru.tests.pkg-config --- pkgs/by-name/we/webrtc-audio-processing/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/we/webrtc-audio-processing/package.nix b/pkgs/by-name/we/webrtc-audio-processing/package.nix index 065170a4b7ac7..285d8a5c1e354 100644 --- a/pkgs/by-name/we/webrtc-audio-processing/package.nix +++ b/pkgs/by-name/we/webrtc-audio-processing/package.nix @@ -6,6 +6,7 @@ meson, ninja, pkg-config, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -37,9 +38,15 @@ stdenv.mkDerivation (finalAttrs: { mesonFlags = lib.lists.optional (!stdenv.hostPlatform.isAarch64) "-Dneon=disabled"; + passthru.tests.pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + versionCheck = true; + }; + meta = { homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing"; description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project"; + pkgConfigModules = [ "webrtc-audio-processing-2" ]; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ fzdslr ]; platforms = From 74a99ca7fd24b850b58d743d5bd2c1798f15a860 Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Fri, 9 May 2025 15:54:57 +0000 Subject: [PATCH 6/8] dino: webrtc-audio-processing_1 -> webrtc-audio-processing --- .../networking/instant-messengers/dino/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix index b730bb4eb176a..c502aa52d90b0 100644 --- a/pkgs/applications/networking/instant-messengers/dino/default.nix +++ b/pkgs/applications/networking/instant-messengers/dino/default.nix @@ -32,7 +32,7 @@ gst-plugins-good, gst-plugins-bad, gst-vaapi, - webrtc-audio-processing_1, + webrtc-audio-processing, }: stdenv.mkDerivation (finalAttrs: { @@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: { gst-plugins-good # contains rtpbin, required for VP9 gst-plugins-bad # required for H264, MSDK gst-vaapi # required for VAAPI - webrtc-audio-processing_1 + webrtc-audio-processing ]; doCheck = true; From 6dbbfbe04a01a1e46434c2143e6613df26fef07b Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Sat, 10 May 2025 02:50:46 +0000 Subject: [PATCH 7/8] webrtc-audio-processing: move lower versions under pkgs/by-name --- .../enable-powerpc.patch | 0 .../enable-riscv.patch | 0 .../0.3.nix => webrtc-audio-processing_0_3/package.nix} | 0 .../1.nix => webrtc-audio-processing_1/package.nix} | 0 pkgs/top-level/all-packages.nix | 3 --- 5 files changed, 3 deletions(-) rename pkgs/by-name/we/{webrtc-audio-processing => webrtc-audio-processing_0_3}/enable-powerpc.patch (100%) rename pkgs/by-name/we/{webrtc-audio-processing => webrtc-audio-processing_0_3}/enable-riscv.patch (100%) rename pkgs/by-name/we/{webrtc-audio-processing/0.3.nix => webrtc-audio-processing_0_3/package.nix} (100%) rename pkgs/by-name/we/{webrtc-audio-processing/1.nix => webrtc-audio-processing_1/package.nix} (100%) diff --git a/pkgs/by-name/we/webrtc-audio-processing/enable-powerpc.patch b/pkgs/by-name/we/webrtc-audio-processing_0_3/enable-powerpc.patch similarity index 100% rename from pkgs/by-name/we/webrtc-audio-processing/enable-powerpc.patch rename to pkgs/by-name/we/webrtc-audio-processing_0_3/enable-powerpc.patch diff --git a/pkgs/by-name/we/webrtc-audio-processing/enable-riscv.patch b/pkgs/by-name/we/webrtc-audio-processing_0_3/enable-riscv.patch similarity index 100% rename from pkgs/by-name/we/webrtc-audio-processing/enable-riscv.patch rename to pkgs/by-name/we/webrtc-audio-processing_0_3/enable-riscv.patch diff --git a/pkgs/by-name/we/webrtc-audio-processing/0.3.nix b/pkgs/by-name/we/webrtc-audio-processing_0_3/package.nix similarity index 100% rename from pkgs/by-name/we/webrtc-audio-processing/0.3.nix rename to pkgs/by-name/we/webrtc-audio-processing_0_3/package.nix diff --git a/pkgs/by-name/we/webrtc-audio-processing/1.nix b/pkgs/by-name/we/webrtc-audio-processing_1/package.nix similarity index 100% rename from pkgs/by-name/we/webrtc-audio-processing/1.nix rename to pkgs/by-name/we/webrtc-audio-processing_1/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b9db4647b34ac..ac7b746340915 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9718,9 +9718,6 @@ with pkgs; gtk3 = gtk4; }; - webrtc-audio-processing_1 = callPackage ../by-name/we/webrtc-audio-processing/1.nix { }; - webrtc-audio-processing_0_3 = callPackage ../by-name/we/webrtc-audio-processing/0.3.nix { }; - wlr-protocols = callPackage ../development/libraries/wlroots/protocols.nix { }; wt = wt4; From aecafce699665da484910ae8656b5a2c9a73774c Mon Sep 17 00:00:00 2001 From: fzdslr-nw Date: Sat, 10 May 2025 03:55:11 +0000 Subject: [PATCH 8/8] pipewire: use webrtc-audio-processing v2 --- pkgs/development/libraries/pipewire/default.nix | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index 9e4ad498dc9a7..a495a623c4f3f 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -28,7 +28,6 @@ vulkan-headers, vulkan-loader, webrtc-audio-processing, - webrtc-audio-processing_1, ncurses, readline, # meson can't find <7 as those versions don't have a .pc file lilv, @@ -70,14 +69,10 @@ }: let - webrtc-audio-processings = lib.filter (lib.meta.availableOn stdenv.hostPlatform) [ - webrtc-audio-processing_1 - webrtc-audio-processing - ]; - modemmanagerSupport = lib.meta.availableOn stdenv.hostPlatform modemmanager; libcameraSupport = lib.meta.availableOn stdenv.hostPlatform libcamera; ldacbtSupport = lib.meta.availableOn stdenv.hostPlatform ldacbt; + webrtcAudioProcessingSupport = lib.meta.availableOn stdenv.hostPlatform webrtc-audio-processing; in stdenv.mkDerivation (finalAttrs: { @@ -156,7 +151,7 @@ stdenv.mkDerivation (finalAttrs: { epoll-shim freebsd.libstdthreads ] - ++ lib.take 1 webrtc-audio-processings + ++ lib.optional webrtcAudioProcessingSupport webrtc-audio-processing ++ lib.optional stdenv.hostPlatform.isLinux alsa-lib ++ lib.optional ldacbtSupport ldacbt ++ lib.optional libcameraSupport libcamera @@ -195,7 +190,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonEnable "installed_tests" true) (lib.mesonOption "installed_test_prefix" (placeholder "installedTests")) (lib.mesonOption "libjack-path" "${placeholder "jack"}/lib") - (lib.mesonEnable "echo-cancel-webrtc" (webrtc-audio-processings != [ ])) + (lib.mesonEnable "echo-cancel-webrtc" webrtcAudioProcessingSupport) (lib.mesonEnable "libcamera" (lib.meta.availableOn stdenv.hostPlatform libcamera)) (lib.mesonEnable "libffado" ffadoSupport) (lib.mesonEnable "roc" rocSupport)