Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 694896 - www-client/chromium-77.0.3865.75 fails to build with new media-sound/pulseaudio-13.0
Summary: www-client/chromium-77.0.3865.75 fails to build with new media-sound/pulseaud...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Chromium Project
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2019-09-18 19:36 UTC by wolfwood
Modified: 2020-01-26 11:37 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge info (emerge.info,6.95 KB, application/x-info)
2019-09-18 19:39 UTC, wolfwood
Details
PA 13 support for Chromium. (00001-pulseaudio-13.patch,3.35 KB, patch)
2019-09-21 08:24 UTC, Mihai Moldovan
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description wolfwood 2019-09-18 19:36:49 UTC
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
Comment 1 wolfwood 2019-09-18 19:39:37 UTC
Created attachment 590330 [details]
emerge info
Comment 2 Guy 2019-09-19 12:08:38 UTC
See also bug #694960 - dev-qt/qtwebengine-5.12.5 fails to build with new media-sound/pulseaudio-13.0
Comment 3 Guy 2019-09-19 12:53:35 UTC
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.
Comment 4 Mihai Moldovan 2019-09-21 08:24:54 UTC
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.
Comment 5 Albert W. Hopkins 2019-09-25 05:11:31 UTC
Same failure also with 77.0.3865.90.
Comment 6 Mike Gilbert gentoo-dev 2019-09-25 06:52:29 UTC
Thanks, but there is no need to report every version of chromium that fails. The bug will remain open until it is fixed.
Comment 7 Larry the Git Cow gentoo-dev 2019-09-25 16:20:07 UTC
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(+)
Comment 8 cyrillic 2019-09-27 22:18:07 UTC
I can confirm that this patch applies cleanly, and fixes the same problem in chromium-78.
Comment 9 Larry the Git Cow gentoo-dev 2019-09-29 21:24:18 UTC
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(-)
Comment 10 N. Andrew Walsh 2019-11-26 12:47:39 UTC
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?