summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim@guixotic.coop>2026-03-29 18:10:30 +0900
committerNoé Lopez <noelopez@free.fr>2026-08-25 01:15:26 +0200
commit9a9f528157fecd101fc98b7664f253f1d673a2d7 (patch)
tree897917ebc65ab2bf14956d6b4047b24ab82100e1 /gnu
parentcb2d82f3ad1c1f1dbfe8c9cef4b9de2f3c90531b (diff)
gnu: webrtc-audio-processing: Update to 2.1.
* gnu/packages/audio.scm (webrtc-audio-processing): Update to 2.1. [source]: Apply new patches. [#:phases]: Delete. * gnu/packages/patches/webrtc-audio-processing-x86-no-sse.patch: Delete file. * gnu/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch: Likewise. * gnu/packages/patches/webrtc-audio-processing-abseil-cpp.patch: New file. * gnu/packages/patches/webrtc-audio-processing-gcc-14.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Change-Id: I7b9c408a7e256d5fb83e14b4d21f6c44a9cd4616 Signed-off-by: Noé Lopez <noelopez@free.fr>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk4
-rw-r--r--gnu/packages/audio.scm28
-rw-r--r--gnu/packages/patches/webrtc-audio-processing-abseil-cpp.patch299
-rw-r--r--gnu/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch32
-rw-r--r--gnu/packages/patches/webrtc-audio-processing-gcc-14.patch48
-rw-r--r--gnu/packages/patches/webrtc-audio-processing-x86-no-sse.patch13
6 files changed, 355 insertions, 69 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 24aaaf3e007..c2552790fbd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2681,9 +2681,9 @@ dist_patch_DATA = \
2681 %D%/packages/patches/wcstools-extend-makefiles.patch \ 2681 %D%/packages/patches/wcstools-extend-makefiles.patch \
2682 %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \ 2682 %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \
2683 %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \ 2683 %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
2684 %D%/packages/patches/webrtc-audio-processing-abseil-cpp.patch \
2684 %D%/packages/patches/webrtc-audio-processing-big-endian.patch \ 2685 %D%/packages/patches/webrtc-audio-processing-big-endian.patch \
2685 %D%/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch \ 2686 %D%/packages/patches/webrtc-audio-processing-gcc-14.patch \
2686 %D%/packages/patches/webrtc-audio-processing-x86-no-sse.patch \
2687 %D%/packages/patches/websocketpp-boost-compat.patch \ 2687 %D%/packages/patches/websocketpp-boost-compat.patch \
2688 %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \ 2688 %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
2689 %D%/packages/patches/wmctrl-64-fix.patch \ 2689 %D%/packages/patches/wmctrl-64-fix.patch \
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 39b27ce60c6..14b5ccdacb8 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -11,7 +11,7 @@
11;;; Copyright © 2016–2023 Tobias Geerinckx-Rice <me@tobias.gr> 11;;; Copyright © 2016–2023 Tobias Geerinckx-Rice <me@tobias.gr>
12;;; Copyright © 2018, 2020, 2024 Oleg Pykhalov <go.wigust@gmail.com> 12;;; Copyright © 2018, 2020, 2024 Oleg Pykhalov <go.wigust@gmail.com>
13;;; Copyright © 2018 okapi <okapi@firemail.cc> 13;;; Copyright © 2018 okapi <okapi@firemail.cc>
14;;; Copyright © 2018, 2020, 2022-2025 Maxim Cournoyer <maxim@guixotic.coop> 14;;; Copyright © 2018, 2020, 2022-2026 Maxim Cournoyer <maxim@guixotic.coop>
15;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> 15;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
16;;; Copyright © 2018 Brett Gilio <brettg@gnu.org> 16;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
17;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org> 17;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org>
@@ -404,7 +404,7 @@ displays a histogram of the roundtrip time jitter.")
404(define-public webrtc-audio-processing 404(define-public webrtc-audio-processing
405 (package 405 (package
406 (name "webrtc-audio-processing") 406 (name "webrtc-audio-processing")
407 (version "1.3") 407 (version "2.1")
408 (source 408 (source
409 (origin 409 (origin
410 (method url-fetch) 410 (method url-fetch)
@@ -412,30 +412,14 @@ displays a histogram of the roundtrip time jitter.")
412 (string-append "http://freedesktop.org/software/pulseaudio/" 412 (string-append "http://freedesktop.org/software/pulseaudio/"
413 name "/" name "-" version ".tar.gz")) 413 name "/" name "-" version ".tar.gz"))
414 (sha256 414 (sha256
415 (base32 "0xfvq5lxg612vfzk3zk6896zcb4cgrrb7fq76w9h40magz0jymcm")))) 415 (base32 "0lrjzhshwj1rkh4fxh7sq2dkkfimlyjs2ha7s3ribsh2dnc6ps1m"))
416 (patches (search-patches "webrtc-audio-processing-abseil-cpp.patch"
417 "webrtc-audio-processing-gcc-14.patch"))))
416 (build-system meson-build-system) 418 (build-system meson-build-system)
417 (arguments 419 (arguments
418 (list #:configure-flags (if (target-x86-32?) 420 (list #:configure-flags (if (target-x86-32?)
419 #~(list "-Dc_args=-DPFFFT_SIMD_DISABLE") 421 #~(list "-Dc_args=-DPFFFT_SIMD_DISABLE")
420 #~'()) 422 #~'())))
421 #:phases
422 (if (or (target-x86-32?) (target-powerpc?))
423 #~(modify-phases %standard-phases
424 (add-after 'unpack 'apply-patches
425 (lambda _
426 (define (patch file)
427 (invoke "patch" "-p1" "--force" "-i" file))
428
429 ;; https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5
430 ;; TODO: Move to the 'patches' field of the origin on
431 ;; the next rebuild.
432 (patch #$(local-file
433 (search-patch
434 "webrtc-audio-processing-byte-order-pointer-size.patch")))
435 (patch #$(local-file
436 (search-patch
437 "webrtc-audio-processing-x86-no-sse.patch"))))))
438 #~%standard-phases)))
439 (native-inputs (list pkg-config)) 423 (native-inputs (list pkg-config))
440 (inputs (list abseil-cpp)) 424 (inputs (list abseil-cpp))
441 (synopsis "WebRTC's Audio Processing Library") 425 (synopsis "WebRTC's Audio Processing Library")
diff --git a/gnu/packages/patches/webrtc-audio-processing-abseil-cpp.patch b/gnu/packages/patches/webrtc-audio-processing-abseil-cpp.patch
new file mode 100644
index 00000000000..82d57b2cc6f
--- /dev/null
+++ b/gnu/packages/patches/webrtc-audio-processing-abseil-cpp.patch
@@ -0,0 +1,299 @@
1From c8896801dfbfe03b56f85c1533abc077ff74a533 Mon Sep 17 00:00:00 2001
2From: Reilly Brogan <reilly@reillybrogan.com>
3Date: Tue, 19 Aug 2025 14:47:03 -0500
4Subject: [PATCH 1/2] Fix build with abseil-cpp 202508
5
6---
7 webrtc/api/audio/audio_processing.h | 12 +++++++++
8 webrtc/api/make_ref_counted.h | 13 ++++++++++
9 webrtc/api/scoped_refptr.h | 15 +++++++++++
10 .../aec_dump/aec_dump_factory.h | 15 +++++++++++
11 .../aec_dump/null_aec_dump_factory.cc | 25 +++++++++++++++++++
12 .../audio_processing/audio_processing_impl.cc | 9 +++++++
13 .../audio_processing/audio_processing_impl.h | 9 +++++++
14 7 files changed, 98 insertions(+)
15
16diff --git a/webrtc/api/audio/audio_processing.h b/webrtc/api/audio/audio_processing.h
17index dca75f2..4580ba9 100644
18--- a/webrtc/api/audio/audio_processing.h
19+++ b/webrtc/api/audio/audio_processing.h
20@@ -28,6 +28,7 @@
21 #include <string>
22 #include <utility>
23
24+#include "absl/base/config.h"
25 #include "absl/base/nullability.h"
26 #include "absl/strings/string_view.h"
27 #include "api/array_view.h"
28@@ -632,6 +633,7 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
29 // return value of true indicates that the file has been
30 // sucessfully opened, while a value of false indicates that
31 // opening the file failed.
32+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
33 virtual bool CreateAndAttachAecDump(
34 absl::string_view file_name,
35 int64_t max_log_size_bytes,
36@@ -640,6 +642,16 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
37 absl::Nonnull<FILE*> handle,
38 int64_t max_log_size_bytes,
39 absl::Nonnull<TaskQueueBase*> worker_queue) = 0;
40+#else
41+ virtual bool CreateAndAttachAecDump(absl::string_view file_name,
42+ int64_t max_log_size_bytes,
43+ TaskQueueBase* absl_nonnull
44+ worker_queue) = 0;
45+ virtual bool CreateAndAttachAecDump(FILE* absl_nonnull handle,
46+ int64_t max_log_size_bytes,
47+ TaskQueueBase* absl_nonnull
48+ worker_queue) = 0;
49+#endif
50
51 // TODO(webrtc:5298) Deprecated variant.
52 // Attaches provided webrtc::AecDump for recording debugging
53diff --git a/webrtc/api/make_ref_counted.h b/webrtc/api/make_ref_counted.h
54index b5f4e99..080023a 100644
55--- a/webrtc/api/make_ref_counted.h
56+++ b/webrtc/api/make_ref_counted.h
57@@ -13,6 +13,7 @@
58 #include <type_traits>
59 #include <utility>
60
61+#include "absl/base/config.h"
62 #include "absl/base/nullability.h"
63 #include "api/ref_count.h"
64 #include "api/scoped_refptr.h"
65@@ -86,7 +87,11 @@ template <
66 typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
67 std::is_abstract_v<T>,
68 T>::type* = nullptr>
69+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
70 absl::Nonnull<scoped_refptr<T>> make_ref_counted(Args&&... args) {
71+#else
72+absl_nonnull scoped_refptr<T> make_ref_counted(Args&&... args) {
73+#endif
74 return scoped_refptr<T>(new RefCountedObject<T>(std::forward<Args>(args)...));
75 }
76
77@@ -99,7 +104,11 @@ template <
78 !std::is_convertible_v<T*, RefCountInterface*> &&
79 webrtc_make_ref_counted_internal::HasAddRefAndRelease<T>::value,
80 T>::type* = nullptr>
81+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
82 absl::Nonnull<scoped_refptr<T>> make_ref_counted(Args&&... args) {
83+#else
84+absl_nonnull scoped_refptr<T> make_ref_counted(Args&&... args) {
85+#endif
86 return scoped_refptr<T>(new T(std::forward<Args>(args)...));
87 }
88
89@@ -113,7 +122,11 @@ template <
90 !webrtc_make_ref_counted_internal::HasAddRefAndRelease<T>::value,
91
92 T>::type* = nullptr>
93+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
94 absl::Nonnull<scoped_refptr<FinalRefCountedObject<T>>> make_ref_counted(
95+#else
96+absl_nonnull scoped_refptr<FinalRefCountedObject<T>> make_ref_counted(
97+#endif
98 Args&&... args) {
99 return scoped_refptr<FinalRefCountedObject<T>>(
100 new FinalRefCountedObject<T>(std::forward<Args>(args)...));
101diff --git a/webrtc/api/scoped_refptr.h b/webrtc/api/scoped_refptr.h
102index c6fb560..8c441ff 100644
103--- a/webrtc/api/scoped_refptr.h
104+++ b/webrtc/api/scoped_refptr.h
105@@ -66,6 +66,7 @@
106 #include <cstddef>
107 #include <utility>
108
109+#include "absl/base/config.h"
110 #include "absl/base/nullability.h"
111
112 namespace webrtc {
113@@ -73,13 +74,19 @@ namespace webrtc {
114 template <class T>
115 class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
116 public:
117+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
118 using absl_nullability_compatible = void;
119+#endif
120 using element_type = T;
121
122 scoped_refptr() : ptr_(nullptr) {}
123 scoped_refptr(std::nullptr_t) : ptr_(nullptr) {} // NOLINT(runtime/explicit)
124
125+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
126 explicit scoped_refptr(absl::Nullable<T*> p) : ptr_(p) {
127+#else
128+ explicit scoped_refptr(T* absl_nullable p) : ptr_(p) {
129+#endif
130 if (ptr_)
131 ptr_->AddRef();
132 }
133@@ -122,7 +129,11 @@ class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
134 return retVal;
135 }
136
137+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
138 scoped_refptr<T>& operator=(absl::Nullable<T*> p) {
139+#else
140+ scoped_refptr<T>& operator=(T* absl_nullable p) {
141+#endif
142 // AddRef first so that self assignment should work
143 if (p)
144 p->AddRef();
145@@ -152,7 +163,11 @@ class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
146 return *this;
147 }
148
149+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
150 void swap(absl::Nonnull<T**> pp) noexcept {
151+#else
152+ void swap(T** absl_nonnull pp) noexcept {
153+#endif
154 T* p = ptr_;
155 ptr_ = *pp;
156 *pp = p;
157diff --git a/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h b/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h
158index 0d258a9..14d8b39 100644
159--- a/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h
160+++ b/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h
161@@ -29,6 +29,7 @@ class RTC_EXPORT AecDumpFactory {
162 // The AecDump takes responsibility for `handle` and closes it in the
163 // destructor. A non-null return value indicates that the file has been
164 // sucessfully opened.
165+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
166 static absl::Nullable<std::unique_ptr<AecDump>> Create(
167 FileWrapper file,
168 int64_t max_log_size_bytes,
169@@ -41,6 +42,20 @@ class RTC_EXPORT AecDumpFactory {
170 absl::Nonnull<FILE*> handle,
171 int64_t max_log_size_bytes,
172 absl::Nonnull<TaskQueueBase*> worker_queue);
173+#else
174+ static absl_nullable std::unique_ptr<AecDump> Create(
175+ FileWrapper file,
176+ int64_t max_log_size_bytes,
177+ TaskQueueBase* absl_nonnull worker_queue);
178+ static absl_nullable std::unique_ptr<AecDump> Create(
179+ absl::string_view file_name,
180+ int64_t max_log_size_bytes,
181+ TaskQueueBase* absl_nonnull worker_queue);
182+ static absl_nullable std::unique_ptr<AecDump> Create(
183+ FILE* absl_nonnull handle,
184+ int64_t max_log_size_bytes,
185+ TaskQueueBase* absl_nonnull worker_queue);
186+#endif
187 };
188
189 } // namespace webrtc
190diff --git a/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc b/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc
191index 63929af..658bcee 100644
192--- a/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc
193+++ b/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc
194@@ -16,6 +16,7 @@
195
196 namespace webrtc {
197
198+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
199 absl::Nullable<std::unique_ptr<AecDump>> AecDumpFactory::Create(
200 FileWrapper file,
201 int64_t max_log_size_bytes,
202@@ -37,3 +38,27 @@ absl::Nullable<std::unique_ptr<AecDump>> AecDumpFactory::Create(
203 return nullptr;
204 }
205 } // namespace webrtc
206+#else
207+absl_nullable std::unique_ptr<AecDump> AecDumpFactory::Create(
208+ FileWrapper file,
209+ int64_t max_log_size_bytes,
210+ TaskQueueBase* absl_nonnull worker_queue) {
211+ return nullptr;
212+}
213+
214+absl_nullable std::unique_ptr<AecDump> AecDumpFactory::Create(
215+ absl::string_view file_name,
216+ int64_t max_log_size_bytes,
217+ TaskQueueBase* absl_nonnull worker_queue) {
218+ return nullptr;
219+}
220+
221+absl_nullable std::unique_ptr<AecDump> AecDumpFactory::Create(
222+ FILE* absl_nonnull handle,
223+ int64_t max_log_size_bytes,
224+ TaskQueueBase* absl_nonnull worker_queue) {
225+ return nullptr;
226+}
227+} // namespace webrtc
228+
229+#endif
230diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
231index a1cba51..1dfe26d 100644
232--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
233+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
234@@ -19,6 +19,7 @@
235 #include <type_traits>
236 #include <utility>
237
238+#include "absl/base/config.h"
239 #include "absl/base/nullability.h"
240 #include "absl/strings/match.h"
241 #include "absl/strings/string_view.h"
242@@ -1787,7 +1788,11 @@ void AudioProcessingImpl::UpdateRecommendedInputVolumeLocked() {
243 bool AudioProcessingImpl::CreateAndAttachAecDump(
244 absl::string_view file_name,
245 int64_t max_log_size_bytes,
246+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
247 absl::Nonnull<TaskQueueBase*> worker_queue) {
248+#else
249+ TaskQueueBase* absl_nonnull worker_queue) {
250+#endif
251 std::unique_ptr<AecDump> aec_dump =
252 AecDumpFactory::Create(file_name, max_log_size_bytes, worker_queue);
253 if (!aec_dump) {
254@@ -1801,7 +1806,11 @@ bool AudioProcessingImpl::CreateAndAttachAecDump(
255 bool AudioProcessingImpl::CreateAndAttachAecDump(
256 FILE* handle,
257 int64_t max_log_size_bytes,
258+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
259 absl::Nonnull<TaskQueueBase*> worker_queue) {
260+#else
261+ TaskQueueBase* absl_nonnull worker_queue) {
262+#endif
263 std::unique_ptr<AecDump> aec_dump =
264 AecDumpFactory::Create(handle, max_log_size_bytes, worker_queue);
265 if (!aec_dump) {
266diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h
267index ecdc055..51a2bfb 100644
268--- a/webrtc/modules/audio_processing/audio_processing_impl.h
269+++ b/webrtc/modules/audio_processing/audio_processing_impl.h
270@@ -20,6 +20,7 @@
271 #include <string>
272 #include <vector>
273
274+#include "absl/base/config.h"
275 #include "absl/base/nullability.h"
276 #include "absl/strings/string_view.h"
277 #include "api/array_view.h"
278@@ -74,11 +75,19 @@ class AudioProcessingImpl : public AudioProcessing {
279 bool CreateAndAttachAecDump(
280 absl::string_view file_name,
281 int64_t max_log_size_bytes,
282+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
283 absl::Nonnull<TaskQueueBase*> worker_queue) override;
284+#else
285+ TaskQueueBase* absl_nonnull worker_queue) override;
286+#endif
287 bool CreateAndAttachAecDump(
288 FILE* handle,
289 int64_t max_log_size_bytes,
290+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
291 absl::Nonnull<TaskQueueBase*> worker_queue) override;
292+#else
293+ TaskQueueBase* absl_nonnull worker_queue) override;
294+#endif
295 // TODO(webrtc:5298) Deprecated variant.
296 void AttachAecDump(std::unique_ptr<AecDump> aec_dump) override;
297 void DetachAecDump() override;
298--
299GitLab
diff --git a/gnu/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch b/gnu/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch
deleted file mode 100644
index e2d974afd97..00000000000
--- a/gnu/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1https://bugs.gentoo.org/917493
2https://sources.debian.org/src/webrtc-audio-processing/1.0-0.2/debian/patches/Add-generic-byte-order-and-pointer-size-detection.patch/
3
4Description: Add generic byte order and pointer size detection
5Author: Than <than@redhat.com>
6Origin: https://bugs.freedesktop.org/show_bug.cgi?id=95738#c4
7Last-Update: 2022-02-01
8---
9This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
10--- a/webrtc/rtc_base/system/arch.h
11+++ b/webrtc/rtc_base/system/arch.h
12@@ -58,7 +58,19 @@
13 #define WEBRTC_ARCH_32_BITS
14 #define WEBRTC_ARCH_LITTLE_ENDIAN
15 #else
16-#error Please add support for your architecture in rtc_base/system/arch.h
17+/* instead of failing, use typical unix defines... */
18+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
19+#define WEBRTC_ARCH_LITTLE_ENDIAN
20+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
21+#define WEBRTC_ARCH_BIG_ENDIAN
22+#else
23+#error __BYTE_ORDER__ is not defined
24+#endif
25+#if defined(__LP64__)
26+#define WEBRTC_ARCH_64_BITS
27+#else
28+#define WEBRTC_ARCH_32_BITS
29+#endif
30 #endif
31
32 #if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN))
diff --git a/gnu/packages/patches/webrtc-audio-processing-gcc-14.patch b/gnu/packages/patches/webrtc-audio-processing-gcc-14.patch
new file mode 100644
index 00000000000..430e5020fb4
--- /dev/null
+++ b/gnu/packages/patches/webrtc-audio-processing-gcc-14.patch
@@ -0,0 +1,48 @@
1From e9c78dc4712fa6362b0c839ad57b6b46dce1ba83 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Fran=C3=A7ois=20Laignel?= <francois@centricular.com>
3Date: Mon, 14 Apr 2025 16:48:19 +0200
4Subject: [PATCH] Fix compilation with gcc-15
5
6This commit fixes compilation errors with gcc-15 (default for Fedora 42).
7
8From [1]:
9
10> Common C++ headers (like <memory>) in GCC 15.0.0 (combined with libstdc++)
11> don't transitively include uint64_t anymore.
12
13See also [2].
14
15[1]: https://github.com/ROCm/rocm_smi_lib/pull/198
16[2]: https://github.com/root-project/root/issues/17444
17---
18 .../audio_processing/aec3/multi_channel_content_detector.h | 1 +
19 webrtc/rtc_base/trace_event.h | 1 +
20 2 files changed, 2 insertions(+)
21
22diff --git a/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h b/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h
23index 2b2f3b8..feb29fd 100644
24--- a/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h
25+++ b/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h
26@@ -12,6 +12,7 @@
27 #define MODULES_AUDIO_PROCESSING_AEC3_MULTI_CHANNEL_CONTENT_DETECTOR_H_
28
29 #include <stddef.h>
30+#include <cstdint>
31
32 #include <memory>
33 #include <optional>
34diff --git a/webrtc/rtc_base/trace_event.h b/webrtc/rtc_base/trace_event.h
35index 2aee713..f88a68e 100644
36--- a/webrtc/rtc_base/trace_event.h
37+++ b/webrtc/rtc_base/trace_event.h
38@@ -28,6 +28,7 @@
39
40 #if !defined(RTC_USE_PERFETTO)
41 #include <string>
42+#include <cstdint>
43
44 #include "rtc_base/event_tracer.h"
45
46--
47GitLab
48
diff --git a/gnu/packages/patches/webrtc-audio-processing-x86-no-sse.patch b/gnu/packages/patches/webrtc-audio-processing-x86-no-sse.patch
deleted file mode 100644
index c194dd9244e..00000000000
--- a/gnu/packages/patches/webrtc-audio-processing-x86-no-sse.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1https://bugs.gentoo.org/921140
2https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5
3--- a/webrtc/rtc_base/system/arch.h
4+++ b/webrtc/rtc_base/system/arch.h
5@@ -34,7 +34,7 @@
6 #else
7 #define WEBRTC_ARCH_32_BITS
8 #endif
9-#elif defined(_M_IX86) || defined(__i386__)
10+#elif defined(__SSE__) && (defined(_M_IX86) || defined(__i386__))
11 #define WEBRTC_ARCH_X86_FAMILY
12 #define WEBRTC_ARCH_X86
13 #define WEBRTC_ARCH_32_BITS