diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/webrtc-audio-processing')
4 files changed, 133 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..30e2a343e2d0 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/0.3.nix @@ -0,0 +1,33 @@ +{ 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"; + }; + + outputs = [ "out" "dev" ]; + + patches = [ + ./enable-riscv.patch + ./enable-powerpc.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 = "https://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; + # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/v0.3.1/webrtc/rtc_base/system/arch.h + # + our patches + platforms = intersectLists platforms.unix (platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.power ++ platforms.riscv ++ platforms.x86); + }; +} 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..ad2b12de8910 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix @@ -0,0 +1,45 @@ +{ lib +, stdenv +, fetchFromGitLab +, darwin +, abseil-cpp +, meson +, ninja +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "webrtc-audio-processing"; + version = "1.3"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "pulseaudio"; + repo = "webrtc-audio-processing"; + rev = "v${version}"; + hash = "sha256-8CDt4kMt2Owzyv22dqWIcFuHeg4Y3FxB405cLw3FZ+g="; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; + + propagatedBuildInputs = [ + abseil-cpp + ]; + + buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices Foundation ]); + + meta = with lib; { + homepage = "https://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; + # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/webrtc/rtc_base/system/arch.h + # x86-32 disabled due to https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5 + platforms = intersectLists platforms.unix (platforms.aarch64 ++ platforms.mips ++ platforms.riscv ++ platforms.x86_64); + }; +} diff --git a/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/enable-powerpc.patch b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/enable-powerpc.patch new file mode 100644 index 000000000000..636cae4df854 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/enable-powerpc.patch @@ -0,0 +1,37 @@ +This patch was extracted from the Gentoo powerpc64le-qtwebengine +patchset, referenced here: + + https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild + +and downloaded from here: + + https://dev.gentoo.org/~asturm/distfiles/${PN}-5.15.3_p20220406-patchset.tar.xz + +From 4bbb4482e14ad27cf0bd5032b1b5d4abba29dc99 Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev <gyakovlev@gentoo.org> +Date: Fri, 27 Nov 2020 13:05:45 -0800 +Subject: [PATCH] 5.15.2 ppc64le patchet + +diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h +index ce1f3e8..fd39a16 100644 +--- a/webrtc/typedefs.h ++++ b/webrtc/typedefs.h +@@ -38,6 +38,18 @@ + #define WEBRTC_ARCH_X86 + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN ++#elif defined(__PPC__) ++#define WEBRTC_ARCH_PPC_FAMILY ++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++#define WEBRTC_ARCH_LITTLE_ENDIAN ++#else ++#define WEBRTC_ARCH_BIG_ENDIAN ++#endif ++#if defined(__LP64__) ++#define WEBRTC_ARCH_64_BITS ++#else ++#define WEBRTC_ARCH_32_BITS ++#endif + #elif defined(__ARMEL__) + // TODO(ajm): We'd prefer to control platform defines here, but this is + // currently provided by the Android makefiles. Commented to avoid duplicate 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 |