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/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; 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 ]; 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..285d8a5c1e354 --- /dev/null +++ b/pkgs/by-name/we/webrtc-audio-processing/package.nix @@ -0,0 +1,60 @@ +{ + lib, + stdenv, + fetchFromGitLab, + abseil-cpp, + meson, + ninja, + pkg-config, + testers, +}: + +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"; + + 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 = + 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); + }; +}) diff --git a/pkgs/development/libraries/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/development/libraries/webrtc-audio-processing/enable-powerpc.patch rename to pkgs/by-name/we/webrtc-audio-processing_0_3/enable-powerpc.patch diff --git a/pkgs/development/libraries/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/development/libraries/webrtc-audio-processing/enable-riscv.patch rename to pkgs/by-name/we/webrtc-audio-processing_0_3/enable-riscv.patch diff --git a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix b/pkgs/by-name/we/webrtc-audio-processing_0_3/package.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/package.nix diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/by-name/we/webrtc-audio-processing_1/package.nix similarity index 100% rename from pkgs/development/libraries/webrtc-audio-processing/default.nix rename to pkgs/by-name/we/webrtc-audio-processing_1/package.nix 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) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ba7ccac4a0176..ac7b746340915 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9718,13 +9718,6 @@ 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; - wlr-protocols = callPackage ../development/libraries/wlroots/protocols.nix { }; wt = wt4;