this ebuild needs to depend on pulseaudio 12. seems like there were breaking API changes. [534/9726] x86_64-pc-linux-gnu-g++ -MMD -MF obj/media/audio/libpulse_stubs/pulse_stubs.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -Igen/media/audio -I../.. -Igen -I../../third_party/boringssl/src/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -fvisibility=hidden -I/usr/lib64/libffi-3.3_rc0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -std=gnu++14 -Wno-narrowing -Wno-class-memaccess -Wno-class-memaccess -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=native -pipe -O2 -Wl,-O1 -Wl,--as-needed -c gen/media/audio/pulse/pulse_stubs.cc -o obj/media/audio/libpulse_stubs/pulse_stubs.o FAILED: obj/media/audio/libpulse_stubs/pulse_stubs.o x86_64-pc-linux-gnu-g++ -MMD -MF obj/media/audio/libpulse_stubs/pulse_stubs.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -Igen/media/audio -I../.. -Igen -I../../third_party/boringssl/src/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -fvisibility=hidden -I/usr/lib64/libffi-3.3_rc0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -std=gnu++14 -Wno-narrowing -Wno-class-memaccess -Wno-class-memaccess -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=native -pipe -O2 -Wl,-O1 -Wl,--as-needed -c gen/media/audio/pulse/pulse_stubs.cc -o obj/media/audio/libpulse_stubs/pulse_stubs.o gen/media/audio/pulse/pulse_stubs.cc:155:27: error: conflicting declaration of C function ‘pa_context_state_t pa_context_get_state(pa_context*)’ 155 | extern pa_context_state_t pa_context_get_state(pa_context* c) __attribute__((weak)); | ^~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/pulseaudio.h:29, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/context.h:199:20: note: previous declaration ‘pa_context_state_t pa_context_get_state(const pa_context*)’ 199 | pa_context_state_t pa_context_get_state(const pa_context *c); | ^~~~~~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:171:29: error: conflicting declaration of C function ‘pa_operation_state_t pa_operation_get_state(pa_operation*)’ 171 | extern pa_operation_state_t pa_operation_get_state(pa_operation* o) __attribute__((weak)); | ^~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/context.h:28, from /usr/include/pulse/pulseaudio.h:29, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/operation.h:52:22: note: previous declaration ‘pa_operation_state_t pa_operation_get_state(const pa_operation*)’ 52 | pa_operation_state_t pa_operation_get_state(const pa_operation *o); | ^~~~~~~~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:211:17: error: conflicting declaration of C function ‘uint32_t pa_stream_get_device_index(pa_stream*)’ 211 | extern uint32_t pa_stream_get_device_index(pa_stream* s) __attribute__((weak)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/pulseaudio.h:30, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/stream.h:366:10: note: previous declaration ‘uint32_t pa_stream_get_device_index(const pa_stream*)’ 366 | uint32_t pa_stream_get_device_index(const pa_stream *s); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:219:26: error: conflicting declaration of C function ‘pa_stream_state_t pa_stream_get_state(pa_stream*)’ 219 | extern pa_stream_state_t pa_stream_get_state(pa_stream* p) __attribute__((weak)); | ^~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/pulseaudio.h:30, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/stream.h:345:19: note: previous declaration ‘pa_stream_state_t pa_stream_get_state(const pa_stream*)’ 345 | pa_stream_state_t pa_stream_get_state(const pa_stream *p); | ^~~~~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:235:12: error: conflicting declaration of C function ‘int pa_proplist_contains(pa_proplist*, const char*)’ 235 | extern int pa_proplist_contains(pa_proplist* p, const char* key) __attribute__((weak)); | ^~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/format.h:27, from /usr/include/pulse/pulseaudio.h:27, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/proplist.h:390:5: note: previous declaration ‘int pa_proplist_contains(const pa_proplist*, const char*)’ 390 | int pa_proplist_contains(const pa_proplist *p, const char *key); | ^~~~~~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:243:20: error: conflicting declaration of C function ‘const char* pa_proplist_gets(pa_proplist*, const char*)’ 243 | extern const char* pa_proplist_gets(pa_proplist* p, const char* key) __attribute__((weak)); | ^~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/format.h:27, from /usr/include/pulse/pulseaudio.h:27, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/proplist.h:314:13: note: previous declaration ‘const char* pa_proplist_gets(const pa_proplist*, const char*)’ 314 | const char *pa_proplist_gets(const pa_proplist *p, const char *key); | ^~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:251:15: error: conflicting declaration of C function ‘size_t pa_stream_readable_size(pa_stream*)’ 251 | extern size_t pa_stream_readable_size(pa_stream *p) __attribute__((weak)); | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/pulseaudio.h:30, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/stream.h:574:8: note: previous declaration ‘size_t pa_stream_readable_size(const pa_stream*)’ 574 | size_t pa_stream_readable_size(const pa_stream *p); | ^~~~~~~~~~~~~~~~~~~~~~~ gen/media/audio/pulse/pulse_stubs.cc:279:12: error: conflicting declaration of C function ‘int pa_context_errno(pa_context*)’ 279 | extern int pa_context_errno(pa_context *c) __attribute__((weak)); | ^~~~~~~~~~~~~~~~ In file included from /usr/include/pulse/pulseaudio.h:29, from gen/media/audio/pulse/pulse_stubs.cc:16: /usr/include/pulse/context.h:193:5: note: previous declaration ‘int pa_context_errno(const pa_context*)’ 193 | int pa_context_errno(const pa_context *c); | ^~~~~~~~~~~~~~~~ [535/9726] touch obj/gpu/ipc/common/interfaces__parser.stamp Reproducible: Always Steps to Reproduce: compile Actual Results: fail to compile Expected Results: actually compile
Created attachment 590330 [details] emerge info
See also bug #694960 - dev-qt/qtwebengine-5.12.5 fails to build with new media-sound/pulseaudio-13.0
Is the version of chrome mentioned here www-client/google-chrome or www-client/google-chrome-beta. Because www-client/google-chrome-77.0.3865.75 installed for me, I'm assuming the binary package of chrome currently in portage was built (due to timing) with pulseaudio-12.2-r2. It's therefor from new from source builds that may have this problem. I don't know how to determine this as I'm not a developer.
Created attachment 590500 [details, diff] PA 13 support for Chromium. This issue is very easy to fix. There's absolute no need to restrict chromium to PA < 13. PA 13 has just constified some functions and the prototypes shipped with chrome need to be updated. I'm not sure if the patch needs to applied conditionally based on the installed PA version or also works with PA < 13, though. Guess the former.
Same failure also with 77.0.3865.90.
Thanks, but there is no need to report every version of chromium that fails. The bug will remain open until it is fixed.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc11cb74daecc797998dac882fd4d32cb1ddf784 commit cc11cb74daecc797998dac882fd4d32cb1ddf784 Author: Stephan Hartmann <stha09@googlemail.com> AuthorDate: 2019-09-25 10:20:14 +0000 Commit: Mike Gilbert <floppym@gentoo.org> CommitDate: 2019-09-25 16:19:31 +0000 www-client/chromium: fix building with pulseaudio-13 Bug: https://bugs.gentoo.org/694896 Closes: https://github.com/gentoo/gentoo/pull/13035 Package-Manager: Portage-2.3.69, Repoman-2.3.16 Signed-off-by: Stephan Hartmann <stha09@googlemail.com> Signed-off-by: Mike Gilbert <floppym@gentoo.org> www-client/chromium/chromium-77.0.3865.90.ebuild | 1 + .../chromium/files/chromium-77-pulseaudio-13.patch | 82 ++++++++++++++++++++++ 2 files changed, 83 insertions(+)
I can confirm that this patch applies cleanly, and fixes the same problem in chromium-78.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b89e0d09ed3f133a3ae77bf46a0fe7bcdbc092e commit 6b89e0d09ed3f133a3ae77bf46a0fe7bcdbc092e Author: Stephan Hartmann <stha09@googlemail.com> AuthorDate: 2019-09-28 18:08:47 +0000 Commit: Mike Gilbert <floppym@gentoo.org> CommitDate: 2019-09-29 21:23:59 +0000 www-client/chromium: beta channel bump (78.0.3904.34) Closes: https://bugs.gentoo.org/694896 Closes: https://github.com/gentoo/gentoo/pull/13077 Package-Manager: Portage-2.3.69, Repoman-2.3.16 Signed-off-by: Stephan Hartmann <stha09@googlemail.com> Signed-off-by: Mike Gilbert <floppym@gentoo.org> www-client/chromium/Manifest | 4 +- ....3887.7.ebuild => chromium-78.0.3904.34.ebuild} | 18 ++++- .../files/chromium-78-gcc-enum-range.patch | 46 ++++++++++++ .../chromium/files/chromium-78-gcc-noexcept.patch | 32 ++++++++ .../files/chromium-78-gcc-std-vector.patch | 87 ++++++++++++++++++++++ .../chromium/files/chromium-78-include.patch | 32 +++++--- .../chromium/files/chromium-unbundle-zlib-r1.patch | 13 ++++ 7 files changed, 217 insertions(+), 15 deletions(-)
I have this same error trying to build electron, but do not have pulseaudio installed at all. Is there a way I can apply this patch to work with electron?