Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 706376 - dev-util/electron-2.0.17-r2 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-util/electron-2.0.17-r2 fails to build with new media-sound/pulseaudio-13...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Deadline: 2020-04-29
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL: https://forums.gentoo.org/viewtopic-t...
Whiteboard:
Keywords: PMASKED
Depends on:
Blocks:
 
Reported: 2020-01-25 23:56 UTC by Matthew "Archer" Vaughn
Modified: 2020-04-29 12:44 UTC (History)
5 users (show)

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


Attachments
complete build log (build.log.gz,560.20 KB, application/gzip)
2020-01-25 23:59 UTC, Matthew "Archer" Vaughn
Details
proposed patch (chromium-61-pulseaudio-13.patch,2.88 KB, patch)
2020-01-26 00:00 UTC, Matthew "Archer" Vaughn
Details | Diff
proposed ebuild (electron-2.0.17-r3.ebuild,28.30 KB, text/plain)
2020-01-26 00:01 UTC, Matthew "Archer" Vaughn
Details
proposed patch (secondary) (chromium-61-missing-semicolon.patch,463 bytes, patch)
2020-01-26 06:15 UTC, Matthew "Archer" Vaughn
Details | Diff
proposed ebuild (electron-2.0.17-r3.ebuild,28.35 KB, text/plain)
2020-01-26 06:16 UTC, Matthew "Archer" Vaughn
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matthew "Archer" Vaughn 2020-01-25 23:56:28 UTC
Electron bundles its own sources for chromium, and these sources contain a dependency on functions exported from pulseaudio. Since stabilization of pulseaudio-13 and removal of pulseaudio-12, electron cannot build because the exported function signatures have changed.

This failure is identical to those previously documented and resolved in bugs #694896 and #694960. The patches provided in those bugs, however, do not successfully apply in the electron ebuild due to the bundled version of chromium (61) differing from the target version of those patches (77).

A Gentoo forums user described and resolved this problem, at the URL in the header of this bug report, in a manner similar to those of the other referenced bugs.

To be attached: failing build log, resolving patch, and resolving ebuild.

Reproducible: Always

Steps to Reproduce:
1. emerge '=media-sound/pulseaudio-13.0'
2. emerge '=dev-util/electron-2.0.17-r2'
Actual Results:  
Build fails with a misleading call stack implicating eninja. Actual failure is contained in the build log, when compiling object pulse_stubs.o --

FAILED: obj/media/audio/audio/pulse_stubs.o
...
gen/media/audio/pulse/pulse_stubs.cc:148:27: error: conflicting declaration of C function ‘pa_context_state_t pa_context_get_state(pa_context*)’

Expected Results:  
Previously discovered instances of the same build-breaking behavior traceable to PA13 in chromium and qtwebengine should already have been applied to this package because it is known to bundle chromium sources and depend on pulseaudio, thereby preventing the issue.

Portage 2.3.84 (python 3.6.9-final-0, default/linux/amd64/17.1/desktop/plasma/systemd, gcc-9.2.0, glibc-2.29-r7, 5.3.7-aufs x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.3.7-aufs-x86_64-AMD_Ryzen_7_2700X_Eight-Core_Processor-with-gentoo-2.6
KiB Mem:    32875636 total,   9012932 free
KiB Swap:   33554428 total,  31514364 free
Timestamp of repository gentoo: Sat, 25 Jan 2020 05:15:02 +0000
Head commit of repository gentoo: 6af9a79113bad9842064506b66c090c4c3fabfd9
sh bash 4.4_p23-r1
ld GNU ld (Gentoo 2.32 p2) 2.32.0
distcc 3.3.3 x86_64-pc-linux-gnu [enabled]
app-shells/bash:          4.4_p23-r1::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.17::gentoo, 3.5.7::gentoo, 3.6.9::gentoo, 3.7.5-r1::gentoo
dev-util/cmake:           3.14.6::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils:       2.32-r1::gentoo
sys-devel/gcc:            9.2.0-r2::gentoo
sys-devel/gcc-config:     2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.19::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r7::gentoo
Repositories:

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

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

farmboy0
    location: /var/lib/layman/farmboy0
    sync-type: laymansync
    sync-uri: https://github.com/farmboy0/portage-overlay.git
    masters: gentoo
    priority: 50

raiagent
    location: /var/lib/layman/raiagent
    sync-type: laymansync
    sync-uri: https://github.com/leycec/raiagent
    masters: gentoo
    priority: 50

science
    location: /var/lib/layman/science
    sync-type: laymansync
    sync-uri: https://anongit.gentoo.org/git/proj/sci.git
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    sync-type: laymansync
    sync-uri: git://github.com/anyc/steam-overlay.git
    masters: gentoo
    priority: 50

torbrowser
    location: /var/lib/layman/torbrowser
    sync-type: laymansync
    sync-uri: https://github.com/MeisterP/torbrowser-overlay.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=znver1 -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -msha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mxsavec -mxsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mmwaitx -mclzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver1 -fstack-protector-strong -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/i2pd/certificates"
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.3/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cli-php7.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=znver1 -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -msha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mxsavec -mxsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mmwaitx -mclzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver1 -fstack-protector-strong -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=16 --load-average=16.1 --keep-going --with-bdeps=y --complete-graph --verbose-conflicts"
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 candy config-protect-if-modified distcc 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://gentoo.mirrors.pair.com/ http://mirror.lug.udel.edu/pub/gentoo/ http://mirrors.rit.edu/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j33 -l16"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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="/tmp"
USE="X a52 aac aalib acl acpi activities alsa amd64 arping audit berkdb bitcoin_policy_spamfilter bittorrent bluetooth branding bzip2 cairo caps cli corefonts cpudetection crypt curl cxx daemon dbus declarative device-mapper dri dri3 dts dvd dvdr ecdh eclipse egl emboss encode endomorphism exif extraengine faac faad fam fbcon fbcondecor flac fontconfig fontforge fortran fpm gcj gd gdbm geoip geolocation gif gmp googledrive gpg gpm graphviz growl grub gstreamer harfbuzz highlight hwaccel iconv icu imagemagick infinality introspection ipv6 jack java javafx javascript jdbc jpeg jpeg2k kde kipi kms kwallet lcms ldap libkms libnotify libproxy libtirpc ljr lm_sensors lvm lzma mad masquerade matroska mdnsresponder-compat mmx mmxext mng modules mono mp3 mp4 mpeg mtp multilib mysql mysqli ncurses netlink networkmanager nls no-bip148 nptl nsplugin odbc offensive ogg opencl opengl openmax openmp openssl osmesa overlay pam pango pcntl pcre pdf pdo pgm phonon php pic pim plasma png policykit postgres postscript ppds profiler profiling pulseaudio python qalculate qml qrcode qt5 rarpd rdisc readline rubytests s3tc samba schnorr science sddm sdk sdl seccomp semantic-desktop server smartcard socks5 speex spell split-usr sqlite sse sse2 sse3 ssh ssl ssse3 staging startup-notification svg sync-plugin-portage syslog systemd systemtap tcpd tftpd theora tiff tk tools tracepath traceroute truetype udev udisks unicode unzip upnp upower usb user-session utils v4l vaapi vdpau vim-syntax vnc vorbis vulkan wayland-compositor webinterface webp webstart widgets winbind wxwidgets x264 xattr xcb xcomposite xml xmlrpc xv xvfb xvid xwayland zip zlib zsh-completion" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="BPF AMDGPU" 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" RUBY_TARGETS="ruby24 ruby25" USERLAND="GNU" VIDEO_CARDS="amdgpu radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

dev-util/electron-2.0.17-r2::gentoo was built with the following:
USE="pic proprietary-codecs pulseaudio system-ffmpeg system-libvpx tcmalloc -cups -custom-cflags -gconf -gnome-keyring -kerberos -lto (-neon) (-selinux) -system-ssl -test" ABI_X86="(64)" L10N="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk vi zh-CN zh-TW"
CFLAGS="-march=znver1 -mno-3dnow -mno-lwp -mno-fma4 -mno-xop -mno-tbm -mno-rtm -mno-hle -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mtune=znver1 -fstack-protector-strong -O2 -pipe"
CXXFLAGS="-march=znver1 -mno-3dnow -mno-lwp -mno-fma4 -mno-xop -mno-tbm -mno-rtm -mno-hle -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mtune=znver1 -fstack-protector-strong -O2 -pipe -fno-delete-null-pointer-checks"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs candy config-protect-if-modified distcc distcc-pump 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"
LDFLAGS="-Wl,-O1"
Comment 1 Matthew "Archer" Vaughn 2020-01-25 23:59:27 UTC
Created attachment 604428 [details]
complete build log

Search build log for the string 'FAILED' to reach the critical information.
Comment 2 Matthew "Archer" Vaughn 2020-01-26 00:00:57 UTC
Created attachment 604430 [details, diff]
proposed patch
Comment 3 Matthew "Archer" Vaughn 2020-01-26 00:01:40 UTC
Created attachment 604432 [details]
proposed ebuild
Comment 4 Matthew "Archer" Vaughn 2020-01-26 06:15:03 UTC
Created attachment 604438 [details, diff]
proposed patch (secondary)

Astonishingly, the original bug for which this report was opened conceals a second trivial error in one of the DOM files at chromium/third_party/WebKit/Source/core/dom/Document.cpp.

A semicolon is missing. That is all.

Since you can't actually validate that the original bug is resolved without completing a successful build, and since this secondary issue is so trivial, I am including the proposed patch for that as well.

If this package had a maintainer and we were able to use a supported release (upstream is at 7.1.10, now) instead of one that is shipping obviously broken source dependencies, maybe we wouldn't have this problem. Shall I volunteer if no one else is willing? If that is not an acceptable option, what are the necessary qualifications and what is the reason no one has risen to meet them?
Comment 5 Matthew "Archer" Vaughn 2020-01-26 06:16:17 UTC
Created attachment 604440 [details]
proposed ebuild

Updated proposed ebuild to additionally reference secondary patch.
Comment 6 Jonas Stein gentoo-dev 2020-01-26 11:37:46 UTC
You can build and test on your machine and simply prepare a pull request on github. Bots will make additional tests.
If you want to be the responsible person permanently, you can choose to become a proxied maintainer. But you can also just do a single pull request.

https://wiki.gentoo.org/wiki/GitHub_Pull_Requests
Comment 7 Jonas Stein gentoo-dev 2020-01-26 18:26:04 UTC
Thank you for your contribution. I had a short look on the ebuild. 
Here a few ideas:

* Please test the ebuild with repoman full -d -x https://wiki.gentoo.org/wiki/Repoman
* We always try to use the latest EAPI, please bump to EAPI=7
* please fix the header. (see /usr/portage/skel.ebuild and https://devmanual.gentoo.org/ebuild-writing/eapi/)
* A bot can look for additional mistakes, if you upload a PR via github

* we are in progress to remove python 2
PYTHON_COMPAT=( python2_7 )
Can you make the package to run on python 3?
Comment 8 Larry the Git Cow gentoo-dev 2020-04-29 12:44:45 UTC
The bug has been closed via the following commit(s):

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

commit 10f79d2d9b224342346080628e9ca4b5b4acd38b
Author:     Mikle Kolyada <zlogene@gentoo.org>
AuthorDate: 2020-04-29 12:35:59 +0000
Commit:     Mikle Kolyada <zlogene@gentoo.org>
CommitDate: 2020-04-29 12:44:00 +0000

    dev-util/electron: remove last-rited pkg
    
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=622020
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=652244
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=678066
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=690006
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=692146
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=701958
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=675578
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=681734
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=694072
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=706376
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=714850
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=713024
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=699866
    
    Signed-off-by: Mikle Kolyada <zlogene@gentoo.org>

 dev-util/electron/Manifest                  |  13 -
 dev-util/electron/electron-2.0.17-r2.ebuild | 918 ----------------------------
 dev-util/electron/files/toolchain/BUILD.gn  |  37 --
 dev-util/electron/metadata.xml              |  21 -
 4 files changed, 989 deletions(-)