Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 623522 - media-sound/audacity-2.1.3-r1 - Fatal Error: Mismatch between the program and library build versions detected. The library used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8), and your program used 3.0 (wchar_t,compiler with...
Summary: media-sound/audacity-2.1.3-r1 - Fatal Error: Mismatch between the program and...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Professional Audio Applications Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-02 10:28 UTC by GU.pro.br
Modified: 2017-09-21 13:24 UTC (History)
3 users (show)

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


Attachments
emerge --info output (info.txt,5.75 KB, text/plain)
2017-07-02 10:28 UTC, GU.pro.br
Details
eselect options - GTK-3 selected (Screenshot from 2017-07-16 16-41-58.png,11.90 KB, image/png)
2017-07-16 19:54 UTC, GU.pro.br
Details
audacity reemerging (Screenshot from 2017-07-16 16-44-08.png,37.54 KB, image/png)
2017-07-16 19:55 UTC, GU.pro.br
Details
SegFaultz (Screenshot from 2017-07-16 16-50-14.png,10.67 KB, image/png)
2017-07-16 19:56 UTC, GU.pro.br
Details
build.log (build.log.gz,52.97 KB, application/gzip)
2017-08-20 09:51 UTC, Viacheslav Gagara
Details
emerge --info (emerge.info,6.20 KB, application/x-info)
2017-08-20 09:52 UTC, Viacheslav Gagara
Details

Note You need to log in before you can comment on or make changes to this bug.
Description GU.pro.br 2017-07-02 10:28:24 UTC
Created attachment 479868 [details]
emerge --info output

Sorry if I made a mistake,
but something is wrong with current ebuild of audacity.

I'm using wxGTK 3.0 with audacity 2.1.3-r3
Tried several workarounds but everytime audacity compiles as an incompatible version, regarding wxwidgets mismatch issue.

Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1010,wx containers,compatible with 2.8).

Then it segfaults.

I got a nightly build of audacity source, and compiled after unmerging audacity ebuild. Using wxGTK-3.0 also, this time, audacity runs fine.

Please have a check on this ebuild r3. Something is definitely wrong, or maybe I missed something. If so, sorry, but I believe I've already tried everything. 

PS: official ebuild compiles much faster than nightly build. Maybe it's a hint.

Following it's info audacity gives about my compilation (About menu)

MAIN LIBS:
libsoxr Active
PortAudio v19
wxWidgets 3.0.2

Thank you very much.
Comment 1 GU.pro.br 2017-07-02 10:30:04 UTC
ebuild: audacity-2.1.3-r1 not r3 sry for the typo.
Comment 2 Pacho Ramos gentoo-dev 2017-07-15 09:47:53 UTC
I cannot reproduce :/

Maybe you have a conflict with your eselected wxwidgets provided:
eselect wxwidgets list
Comment 3 GU.pro.br 2017-07-16 19:54:16 UTC
Created attachment 485128 [details]
eselect options - GTK-3 selected

my current eselect wxwidgets list
show GTK-3 eselectED
Comment 4 GU.pro.br 2017-07-16 19:55:22 UTC
Created attachment 485130 [details]
audacity reemerging

notice it selects gtk-2 not gtk-3.
BOTH ARE 3.0, but perphaps the ABI mismatch comes from here. Please check.
Comment 5 GU.pro.br 2017-07-16 19:56:09 UTC
Created attachment 485132 [details]
SegFaultz

error spit before it SegFaults

C++ ABI version mismatch?

Why this happens?
Comment 6 GU.pro.br 2017-07-16 19:59:51 UTC
(In reply to Pacho Ramos from comment #2)
> I cannot reproduce :/
> 
> Maybe you have a conflict with your eselected wxwidgets provided:
> eselect wxwidgets list

Thank you very much for VRFY

I've reemerged audacity, even after a whole  --newuse --deep @world complete rebuild after rsync update. Still, same issue.

Posted some screenshots and explanations, with what I believe must be the core issue: gtk2 instead of eselected gtk3, both 3.0 but with different ABI versions.

Maybe my sys is based on gtk3, audacity requires gtk2, it does not check for this kind of mismatch between lib and prog, emerge goes on successfully but prog will never run.

Strange thing you cannot reproduce. 

HEre is my global USE flags as of today:

USE="cblas-external python qt4 python_single_target_python3_4 gegl srt ruby_targets_ruby24 modemmanager wifi vorbis mp3 jpg midi mad flac wav libcaca fluidsynth libx264 x264 pcre16 i965 i915 pam -static vdpau introspection cairo -debug systemd gnu++11 ass theora ogg steamruntime gnome-online-accounts google jpeg png lzma minizip policykit text client opengl cups gnome-keyring kms icu networkmanager bluetooth xkb glamor gles egl X alsa -bindist udisks dbus gtk gtk2 gtk3 pulseaudio truetype webgl -chromaprint gui network printsupport widgets svg webkit vpx xvid python_targets_python2_7 setuptools libass xml apng sqlite"
PYTHON_TARGETS="python3_4 python2_7 python3_5"
Comment 7 Daniel Dawson 2017-07-21 21:17:27 UTC
I had this problem, too, after a @world update. Keyword, "had". After removing the old version of wxGTK and remerging the new one as well as audacity, it started working. I guess this is why doing emerge --depclean after updating @world is a good idea?

(In reply to GU.pro.br from comment #4)
> notice it selects gtk-2 not gtk-3.
> BOTH ARE 3.0, but perphaps the ABI mismatch comes from here. Please check.

I had only gtk-2 profiles, and this still happened, so I don't know about that.

FWIW, I'm using GCC 6.3.0 now. Could that have an effect on the behavior of the build process? What about you, GU.pro.br?
Comment 8 Daniel Dawson 2017-07-21 21:29:10 UTC
No, wait, I take that back. I did have a gtk-3 profile. Just for a while, though, and I'm pretty sure it was while I was already trying to solve this problem. Well, never mind that part.
Comment 9 Viacheslav Gagara 2017-08-20 09:49:25 UTC
I believe I have related issue but in my case audacity fails to build with lots of "undefined reference" to wxwidgets.
# eselect wxwidgets list
Available wxWidgets profiles:
  [1]   gtk2-unicode-3.0 *
  [2]   gtk2-unicode-release-2.8

Including my build.log and emerge --info just in case it can help troubleshoot the problem.
Thx.
Comment 10 Viacheslav Gagara 2017-08-20 09:51:40 UTC
Created attachment 489774 [details]
build.log
Comment 11 Viacheslav Gagara 2017-08-20 09:52:42 UTC
Created attachment 489776 [details]
emerge --info
Comment 12 Heiko Baums 2017-09-04 21:46:07 UTC
I had this error message, too.

I guess I found the solution for this bug. x11-libs/wxGTK needs to be built with USE="gstreamer".

So RDEPEND in the audacity ebuild needs to be changed accordingly.
Comment 13 Viacheslav Gagara 2017-09-09 20:54:30 UTC
(In reply to Heiko Baums from comment #12)
> I had this error message, too.
> 
> I guess I found the solution for this bug. x11-libs/wxGTK needs to be built
> with USE="gstreamer".
> 
> So RDEPEND in the audacity ebuild needs to be changed accordingly.

Thanks for hint, but in my case it was USE="webkit" flag missing for x11-libs/wxGTK. So, following patch fixed my problem:

--- a/audacity-2.1.3-r1.ebuild
+++ a/audacity-2.1.3-r1.ebuild
@@ -23,7 +23,7 @@
 	>=media-libs/libsndfile-1.0.0
 	=media-libs/portaudio-19*
 	media-libs/soxr
-	x11-libs/wxGTK:3.0[X]
+	x11-libs/wxGTK:3.0[X,webkit]
 	alsa? ( media-libs/alsa-lib )
 	ffmpeg? ( libav? ( media-video/libav:= )
 		!libav? ( >=media-video/ffmpeg-1.2:= ) )
Comment 14 Heiko Baums 2017-09-09 21:29:35 UTC
(In reply to Viacheslav Gagara from comment #13)
 
> Thanks for hint, but in my case it was USE="webkit" flag missing for
> x11-libs/wxGTK.

That's most likely because webkit pulls in gstreamer as a dependency, too, at least if installed with USE="gstreamer". I don't have webkit in my USE flags and I don't have webkit installed on my system.

Those are my USE flags for wxGTK:
X gstreamer libnotify opengl sdl tiff -debug -doc -webkit

So it's most likely gstreamer.

So better put

x11-libs/wxGTK:3.0[X,gstreamer]

instead of

x11-libs/wxGTK:3.0[X,webkit]

into the audacity ebuild.

Btw., compiling gstreamer is a lot faster than compiling webkit-gtk.
Comment 15 Nils Holland 2017-09-17 01:10:38 UTC
(In reply to Heiko Baums from comment #14)
> (In reply to Viacheslav Gagara from comment #13)
>  
> > Thanks for hint, but in my case it was USE="webkit" flag missing for
> > x11-libs/wxGTK.
> 
> That's most likely because webkit pulls in gstreamer as a dependency, too,
> at least if installed with USE="gstreamer". I don't have webkit in my USE
> flags and I don't have webkit installed on my system.

Hmm ... are you sure that you actually have to mess with wxGTK's use flags? I just installed audacity and got basically the same error message as the original reporter mentioned ("Mismatch between the program and library build versions detected") plus audacity segfaulting. I then just re-emerged my wxGTK without changing any of its USE flags, and after that the error message disappeared and audacity would start just fine.

So, since the error message mentions something about different C++ ABI versions, I believe that the problem is just that wxGTK has been compiled with a different GCC version than audacity. At least I can say for sure that this was the case on my system. Rebuilding wxGTK made sure that it and audacity used the same compiler and as a consequence the same same version of the C++ ABI, and so the problem is gone.
Comment 16 Heiko Baums 2017-09-17 01:21:40 UTC
(In reply to Nils Holland from comment #15)
> Hmm ... are you sure that you actually have to mess with wxGTK's use flags?

I'm sure.

> I just installed audacity and got basically the same error message as the
> original reporter mentioned ("Mismatch between the program and library build
> versions detected") plus audacity segfaulting. I then just re-emerged my
> wxGTK without changing any of its USE flags, and after that the error
> message disappeared and audacity would start just fine.

I tried it with rebuilding wxGTK without changing its USE flags before, too, but without success. I also tried changing the wxGTK profile, again without success.

Only after rebuilding wxGTK with USE="gstreamer" I got audacity running.

> So, since the error message mentions something about different C++ ABI
> versions, I believe that the problem is just that wxGTK has been compiled
> with a different GCC version than audacity. At least I can say for sure that
> this was the case on my system. Rebuilding wxGTK made sure that it and
> audacity used the same compiler and as a consequence the same same version
> of the C++ ABI, and so the problem is gone.

I'd guess then you probably had a different issue. I checked my gcc installation as well. But I only had one gcc version installed and both wxGTK and audacity have been built with the same gcc version.

Btw., when you said you rebuilt wxGTK without changing its USE flags, is it possible that you already had gstreamer in your USE flags?
Comment 17 Nils Holland 2017-09-17 07:45:45 UTC
(In reply to Heiko Baums from comment #16)
>
> Btw., when you said you rebuilt wxGTK without changing its USE flags, is it
> possible that you already had gstreamer in your USE flags?

Hmm, nope, my USE flags for wxGTK, before and after the re-build, are:

x11-libs/wxGTK-3.0.2.0-r3::gentoo was built with the following:
USE="X libnotify opengl sdl tiff (-aqua) -debug -doc -gstreamer -webkit"

Very strange indeed that you need +gstreamer. I mean, since the error message explicitly complains about ABI differences, I wonder how the fact whether the library is built with gstreamer support or not has any effect on that (except, of course, that re-building with +gstreamer rebuilds the library with the current compiler / api).

I should probably mention that in order to get my re-emerge done, I had to explicitly say

emerge --oneshot =x11-libs/wxGTK-3.0.2.0-r3

If I had just said

emerge --oneshot wxGTK

it would have pulled in x11-libs/wxGTK-3.0.2.0-r301 (or something like that) in a different slot, so the already installed wxGTK-3.0.2.0-r3 wouldn't have been rebuilt and the problem probably wouldn't have been fixed.
Comment 18 Jarek Rymut 2017-09-21 00:52:24 UTC
sudo emerge -1O 'x11-libs/wxGTK:3.0' worked for me.
Comment 19 GU.pro.br 2017-09-21 02:45:31 UTC
Sry for taking that long to answer

managed to solve for me
emerge --sync && emerge --deep -uDU --with-bdeps=y --ask @world;


then

emerge --newuse --deep 'x11-libs/wxGTK:3.0'

several several weeks ago.

I don't even think the emerge --sync would be necessary

but it worths

TKS

I think this is SOLVED
Comment 20 Heiko Baums 2017-09-21 13:24:19 UTC
(In reply to GU.pro.br from comment #19)
> Sry for taking that long to answer
> 
> managed to solve for me
> emerge --sync && emerge --deep -uDU --with-bdeps=y --ask @world;
> 
> 
> then
> 
> emerge --newuse --deep 'x11-libs/wxGTK:3.0'

Question: Do you have gstreamer installed? No matter, if it's somewhere in your USE flags or not.

I highly doubt that emerge -uDN --with-bdeps world is the fix, because I did that before.

And at first I had both x11-libs/wxGTK-3.0.2.0-r3 and x11-libs/wxGTK-3.0.2.0-r301 installed. And I switched between both wxGTK profiles.

Didn't work for me.

Only after installing wxGTK with the USE flag gstreamer, which installed gstreamer, the issue was fixed.