Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 694960 - dev-qt/qtwebengine-5.12.5 fails to build with new media-sound/pulseaudio-13.0 : conflicting declaration of C function ‘pa_context_state_t pa_context_get_state(pa_context*)’
Summary: dev-qt/qtwebengine-5.12.5 fails to build with new media-sound/pulseaudio-13.0...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-19 12:03 UTC by Guy
Modified: 2020-01-26 11:37 UTC (History)
8 users (show)

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


Attachments
except from failed qt-webengine build log (qt-webengine-except.log,23.40 KB, text/x-log)
2019-09-19 12:03 UTC, Guy
Details
Patch that fixes the issue (qtwebengine-5.12.5-fix-pulse-stubs.patch,12.09 KB, patch)
2019-09-19 21:51 UTC, Bigos
Details | Diff
pulseaudio_13.patch (file_694960.txt,3.43 KB, text/plain)
2019-09-22 08:11 UTC, Jan Breig
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Guy 2019-09-19 12:03:26 UTC
Created attachment 590370 [details]
except from failed qt-webengine build log

After masking media-sound/pulseaudio-13.0 and reverting to media-sound/pulseaudio-12.2-r2, dev-qt/qtwebengine-5.12.5 builds as expected.

I was clued into this possibility through both the error messages reported in the build log and also bug #694896 www-client/chromium-77.0.3865.75 fails to build with new media-sound/pulseaudio-13.0

Because I successfully built qt-webengine after reversion to pulseaudio-12.2-r2, I do not have the relevant failed build log available. I therefore attached as text the except from the terminal window I originally ran the emerge @world process in. As I read the failure messages, there is an interaction with chromium involved here.


Portage 2.3.76 (python 3.6.9-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-9.2.0, glibc-2.29-r5, 5.2.9-gentoo x86_64)
=================================================================
System uname: Linux-5.2.9-gentoo-x86_64-AMD_A10-7850K_Radeon_R7,_12_Compute_Cores_4C+8G-with-gentoo-2.6
KiB Mem:    31904684 total,   1208444 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Tue, 17 Sep 2019 18:00:01 +0000
Head commit of repository gentoo: afddf6d5f6569f19595c246e1403d93eb61be93e
sh bash 5.0_p11
ld GNU ld (Gentoo 2.32 p2) 2.32.0
ccache version 3.7.4 [disabled]
app-shells/bash:          5.0_p11::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.30.0::gentoo
dev-lang/python:          2.7.16::gentoo, 3.6.9::gentoo, 3.7.4-r1::gentoo
dev-util/ccache:          3.7.4::gentoo
dev-util/cmake:           3.15.3::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.18::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.13.4-r2::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils:       2.32-r1::gentoo
sys-devel/gcc:            9.2.0::gentoo
sys-devel/gcc-config:     2.1::gentoo
sys-devel/libtool:        2.4.6-r5::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.2::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r5::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: --timeout=15
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1

local
    location: /usr/local/portage
    masters: gentoo
    priority: 0

brother-overlay
    location: /var/lib/layman/brother-overlay
    masters: gentoo
    priority: 50

printer-drivers
    location: /var/lib/layman/printer-drivers
    masters: gentoo
    priority: 50

vapoursynth
    location: /var/lib/layman/vapoursynth
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=bdver3 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.2/ext-active/ /etc/php/apache2-php7.3/ext-active/ /etc/php/cgi-php7.2/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cli-php7.2/ext-active/ /etc/php/cli-php7.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=bdver3 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build --with-bdeps=y --keep-going"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_BINHOST="/usr/local/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--timeout=15"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="10bit 3dnow 3dnowext X a52 aac aalib accessibility acl acpi activities aio alsa amd64 amr anthy ao apache2 audiofile automount avahi berkdb bluray bonjour boost branding bzip2 cairo cdda cdio cdr chm cjk cli consolekit cracklib crypt css cups curl curlwrappers cxx dbus declarative dga dia directfb dri dts dv dvd dvdr dynamic emboss encode exif expat fam fat fbcon ffmpeg fftw flac flash fontconfig foomaticdb fortran ftp gcj gd gdbm gif gimp glamor glib gmp gnutls gpac gphoto2 gpm graphviz gs gstreamer gtk hddtemp hdri ibus iconv icu id3tag imagemagick imlib immqt-bc inotify ipfilter ipv6 irc java javascript jbig jpeg kde kerberos kipi kwallet lame lcms libnotify libtirpc libvisual lm_sensors lzo m17n-lib mad midi mikmod mjpeg mmap mmx mmxext mng modules mono mp3 mp4 mpeg mpi multilib multiuser musepack mysql nas ncurses network nls nptl nsplugin ntfs odbc offensive ogg openexr opengl openmp oscar pam pango pcre pdf perl phonon plasma plugins png policykit postscript ppds pulseaudio python q32 qml qt5 quicktime rar raw rdesktop readline recode regex reiser4 reiserfs rle rss ruby samba sasl scanner schroedinger scim sdk sdl seccomp sensord session sftp sndfile snmp sox speex spell split-usr sqlite sse sse2 ssl startup-notification subversion svg syslog taglib tcl tcpd theora threads tidy tiff timidity tk toolbar tools transcode truetype udev udisks unicode upower usb utils vaapi vala vdpau vdr vorbis wavpack webkit widgets winbind wmf wxwidgets x264 xattr xcb xcomposite xft xine xinerama xml xorg xosd xpm xscreensaver xv xvid yahoo zeroconf zip zlib" ABI_X86="32 64" ADA_TARGET="gnat_2018" ALSA_CARDS="hda-intel" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_core authz_core authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif slotmem_shm so socache_shmcb speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" CAMERAS="canon minolta konica" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx fma3 fma4 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 xop" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en en-US" LLVM_TARGETS="AMDGPU X86" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6 python3_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby24 ruby25 ruby26" SANE_BACKENDS="bh xerox_mfp" USERLAND="GNU" VIDEO_CARDS="radeon radeonsi"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
Comment 1 Guy 2019-09-19 12:29:11 UTC
As additional info, inspection of the original "emerge --pretend @world output" shows the following order for package processing

[ebuild     U  ] media-sound/pulseaudio-13.0
[ebuild     U  ] www-client/google-chrome-77.0.3865.75
[ebuild     U  ] dev-qt/qtwebengine-5.12.5

i.e. pulseaudio and google-chrome completed before qtwebengine failed.

Of note: I only reverted pulseaudio in order to successfully complete qtwebengine. Of course, I could _only_ revert pulseaudio as emaint removed the prior versions of google-chrome.
Comment 2 wolfwood 2019-09-19 14:17:03 UTC
I'm seeing this failure as well
Comment 3 Bigos 2019-09-19 21:51:02 UTC
Created attachment 590388 [details, diff]
Patch that fixes the issue

I have encountered the same problem. It seems that newer pulseaudio headers add const to some pointer parameters making them incompatible with the autogenerated stubs present in qtwebengine (chromium).

As I have no idea how to regenerate the stub file, I have prepared a patch that fixes it instead.
Comment 4 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2019-09-20 11:06:16 UTC
Abbreviated context of failure point for other searchers.

----

[6738/22571] /usr/bin/x86_64-pc-linux-gnu-g++ <...> -c gen/media/audio/pulse/pulse_stubs.cc -o obj/media/audio/audio/pulse_stubs.o
FAILED: obj/media/audio/audio/pulse_stubs.o 
/usr/bin/x86_64-pc-linux-gnu-g++ <...> -c gen/media/audio/pulse/pulse_stubs.cc -o obj/media/audio/audio/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));
      |                             ^~~~~~~~~~~~~~~~~~~~~~

----
Comment 6 Jan Breig 2019-09-22 08:11:20 UTC
Created attachment 590632 [details]
pulseaudio_13.patch

This patch works for me.
Taken from bug #694896
Comment 7 atosser 2019-09-24 18:01:03 UTC
Upstream has fixed this issue:

https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/274842
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/274847
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/274848

We have to wait for the next release unless a band-aid patch is desired in the tree for the current versions..
Comment 8 Geoff Madden 2019-09-25 06:44:39 UTC
Thanks Jan B for the patch can confirm it works.
Comment 9 Larry the Git Cow gentoo-dev 2019-09-25 21:34:37 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aac59bedeac24a8a9341ac08066c0087efab4585

commit aac59bedeac24a8a9341ac08066c0087efab4585
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2019-09-25 19:48:05 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2019-09-25 21:33:54 +0000

    dev-qt/qtwebengine: Fix build with >=media-sound/pulseaudio-13.0
    
    Reported-by: Guy <defuebr@gmail.com>
    Tested-by: josef64 in #gentoo-qt IRC
    Closes: https://bugs.gentoo.org/694960
    Package-Manager: Portage-2.3.76, Repoman-2.3.17
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 .../files/qtwebengine-5.12.5-pulseaudio-13.patch   | 88 ++++++++++++++++++++++
 dev-qt/qtwebengine/qtwebengine-5.12.5.ebuild       |  1 +
 2 files changed, 89 insertions(+)
Comment 10 Larry the Git Cow gentoo-dev 2019-09-30 19:27:59 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/proj/qt.git/commit/?id=02acf820c8992ba17f93c5f3b36baf31e5ddddcf

commit 02acf820c8992ba17f93c5f3b36baf31e5ddddcf
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2019-09-30 19:27:42 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2019-09-30 19:27:42 +0000

    dev-qt/qtwebengine: Fix build with >=media-sound/pulseaudio-13.0
    
    Closes: https://bugs.gentoo.org/694960
    Package-Manager: Portage-2.3.76, Repoman-2.3.17
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 .../files/qtwebengine-5.13.1-pulseaudio-13.patch   | 89 ++++++++++++++++++++++
 dev-qt/qtwebengine/qtwebengine-5.13.1.ebuild       |  1 +
 2 files changed, 90 insertions(+)