diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/webrtc-audio-processing')
3 files changed, 87 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/0.3.nix b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/0.3.nix new file mode 100644 index 000000000000..1ce3c2d9fa8b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/0.3.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, darwin }: + +stdenv.mkDerivation rec { + pname = "webrtc-audio-processing"; + version = "0.3.1"; + + src = fetchurl { + url = "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-${version}.tar.xz"; + sha256 = "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"; + }; + + patches = [ ./enable-riscv.patch ]; + + buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices ]); + + patchPhase = lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace webrtc/base/checks.cc --replace 'defined(__UCLIBC__)' 1 + ''; + + meta = with lib; { + homepage = "http://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing"; + description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project"; + license = licenses.bsd3; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix new file mode 100644 index 000000000000..5a53564603d8 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl +, darwin +, abseil-cpp_202111 +, meson +, ninja +}: + +stdenv.mkDerivation rec { + pname = "webrtc-audio-processing"; + version = "1.0"; + + src = fetchurl { + url = "https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/archive/v1.0/webrtc-audio-processing-v${version}.tar.gz"; + sha256 = "sha256-dqRy1OfOG9TX2cgCD8cowU44zVanns/nPYZrilPfuiU="; + }; + + nativeBuildInputs = [ + meson + ninja + ]; + + buildInputs = [ + abseil-cpp_202111 + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices ]); + + patchPhase = '' + # this is just incorrect upstream + # see https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/4 + substituteInPlace meson.build \ + --replace "absl_flags_registry" "absl_flags_reflection" + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace webrtc/base/checks.cc --replace 'defined(__UCLIBC__)' 1 + ''; + + meta = with lib; { + homepage = "http://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing"; + description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project"; + license = licenses.bsd3; + # attempts to inline 256bit AVX instructions on x86 + # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5 + platforms = lib.lists.subtractLists platforms.i686 platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/enable-riscv.patch b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/enable-riscv.patch new file mode 100644 index 000000000000..d61c33548a73 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/enable-riscv.patch @@ -0,0 +1,18 @@ +diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h +index d875490..ce1f3e8 100644 +--- a/webrtc/typedefs.h ++++ b/webrtc/typedefs.h +@@ -26,6 +26,13 @@ + #elif defined(__aarch64__) + #define WEBRTC_ARCH_64_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN ++#elif defined(__riscv) || defined(__riscv__) ++#define WEBRTC_ARCH_LITTLE_ENDIAN ++#if __riscv_xlen == 64 ++#define WEBRTC_ARCH_64_BITS ++#else ++#define WEBRTC_ARCH_32_BITS ++#endif + #elif defined(_M_IX86) || defined(__i386__) + #define WEBRTC_ARCH_X86_FAMILY + #define WEBRTC_ARCH_X86 |