Author Topic: Installing 17.12 on Linux Mint --wxWidgets problem  (Read 5185 times)

Offline rjmoses

  • Single posting newcomer
  • *
  • Posts: 6
Installing 17.12 on Linux Mint --wxWidgets problem
« on: January 11, 2019, 12:24:08 pm »
I had been experimenting with CB 13.12 on Linux Mint 18.1 with some success but had encountered a few known bugs. (13.12 was the standard package available on LM 18.1.) I wanted to get up to current on the bug fixes, etc.

I first used Jen's Debian repository to upgrade to 17.12 and encountered the error in wxWidgets:

"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 wxCore used 3.0 (wchar_t,compiler with C++ ABI 1011,wx containers,compatible with 2.8)."

As far as I can tell, this is a problem within wxWidgets.  This same error also occurs in wxGlade. I could not find a way to get compatible compilations for CB and wxWidgets.  (It might exist, but I just couldn't find one.)

I used the procedure from the post "https://askubuntu.com/questions/1030720/how-to-install-latest-codeblocks-from-tar-xz" and get the error:

"codeblocks: symbol lookup error: codeblocks: undefined symbol: _ZN24IncrementalSelectListDlgD1Ev"

The above problem was eliminated by doing:

apt-get remove --purge codeblocks
apt-get remove --purge libcodeblocks0

then repeating the procedure which took me back to Jen's original error--incompatibility between ABI 1009 and ABI 1010.

AFAIK, this is a problem with wxwidgets, but I can't find a solution.

I have been impressed with the capabilities of CB 13.12 and would like to upgrade, but at this point I am stumped and any suggestions would be greatly appreciated. 

Thank you

Offline BlueHazzard

  • Developer
  • Lives here!
  • *****
  • Posts: 3353
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #1 on: January 11, 2019, 12:35:26 pm »
You have to try to clean up your system....
Remove all wxWidgets libraries and install the system defaults again. I do not know but jens probably installed some wx2.8 library. But codeblocks works now quite well with wx30 and also linux mint arrives with wx30 by default...
After installing the normal wxWidgets library and removing all codeblocks related stuff (you probably have also to uninstall the contrib-plugin package) you can download the source code and go the normal
Code
 ./bootstrap
 ./configure --prefix=/opt/codeblocks-svn --with-contrib-plugins=all
make
sudo make install
way to build codeblocks and install it

Offline rjmoses

  • Single posting newcomer
  • *
  • Posts: 6
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #2 on: January 11, 2019, 05:19:40 pm »
No, I haven't done a complete clean up--I have other applications that use wxWidgets, such as audacity and filezilla, and I am concerned about breaking them.

I did try to build CB 17.12 from scratch and ended up with a lot of errors (More than I care to wrestle with!) so I do not consider that a viable resolution at the moment.  I am hoping someone in the community might have more experience with the ABI incompatibility problem in wxWidgets.

Thanks.



Offline sodev

  • Regular
  • ***
  • Posts: 497
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #3 on: January 11, 2019, 09:42:26 pm »
Install the dev packages of your system wxWidgets and compile CodeBlocks against that (it should do this by default anyway). This way you get rid of your library mismatches which occur because the prebuild packages were built against another wxWidgets version and saves you from building wxWidgets yourself and convince CodeBlocks to use that one (i always forget how to do it, but i think the trick is to supply the path to the wx-config script for your selfbuild wxWidgets).

Offline rjmoses

  • Single posting newcomer
  • *
  • Posts: 6
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #4 on: January 12, 2019, 11:08:48 am »
Are you suggesting that I build both wxWidgets and CodeBlocks from source?  Wouldn't that open a whole new can of worms and perhaps risk screwing up installed applications that are working? 

I am looking to understand why wxwidgets public libraries are compiler dependent and what can be done to work around it.


Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #5 on: January 12, 2019, 11:35:37 am »
I've not read the whole topic, but this:

I first used Jen's Debian repository to upgrade to 17.12 and encountered the error in wxWidgets:

"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 wxCore used 3.0 (wchar_t,compiler with C++ ABI 1011,wx containers,compatible with 2.8)."

happens because the package you're trying to install is built with an older compiler than your wxgtk package.

To solve this problem the easiest way is to build your own package. This is really easy and reliable procedure. Just search the internet how to make debian packages and then follow the instructions of the build tool.

Dev packages are packages named -dev or -devel. They are use when building something, so if you want to build something against your system wxgtk you need to install the appropriate wxgtk*-dev package.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline rjmoses

  • Single posting newcomer
  • *
  • Posts: 6
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #6 on: January 13, 2019, 01:06:26 pm »
Thank you for responding, but building packages is not a viable solution at this time. 

Are there any other solutions available?

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #7 on: January 13, 2019, 01:34:37 pm »
... but building packages is not a viable solution at this time. 
What do you mean by this?

Your options are these:
1. find a package for your distro from a ppa provided by some one
2. use the package already present in the distro's repos
3. build manually and hope you don't mess something
4. build a package, which is the same as above, but the chance to make a mistake is minimal and also install/uninstall would be reliable
5. persuade someone to do 4. for you
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline rjmoses

  • Single posting newcomer
  • *
  • Posts: 6
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #8 on: January 15, 2019, 11:48:49 am »
I downloaded wxWidget 3.12 and CB 17.12 source and rebuilt both packages just to see if it could be done -- took about four hours. 

This process did allow CB 17.12 to run under Linux Mint 18.3 but as I suspected, I had to remove and reinstall filezilla and audacity. 

IMO, this is not an acceptable process!  While I accomplished my result, I spent over 20 hours digging into the problem and researching how to overcome it.  Someone with less experience would probably not completed this task and would have been left with a bad taste about CB and Linux in general.

Further, I believe compiler dependency in widgets takes version control too far.  This is probably something widgets needs to take care of. (I did see one post where the widgets developers were considering removing that in a future release, but I don't know if it has been done yet.)

I consider this problem closed.

Thanks for your help.

Offline BlueHazzard

  • Developer
  • Lives here!
  • *****
  • Posts: 3353
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #9 on: January 15, 2019, 06:46:36 pm »
i know for you this topic is closed. but me would interest why you used 3.1.2 and not the system default library, so you do not have to uninstall filezilla and audacity...

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #10 on: January 15, 2019, 07:05:56 pm »
This process did allow CB 17.12 to run under Linux Mint 18.3 but as I suspected, I had to remove and reinstall filezilla and audacity. 
If you've used the wrong prefix then you've messed up your system. But this is not the default behaviour. The other way you can mess this up is you've built filezilla with another version of wxgtk. But then the fault is all yours.

IMO, this is not an acceptable process!
Yes, this is why people use packages and learning how to make packages yourself is a good idea.

Someone with less experience would probably not completed this task and would have been left with a bad taste about CB and Linux in general.
Then they'll learn to use packages or switch to either windows/osx/chromeos/whatever. It is not the end of the world anyway. Building code manually requires a lot of knowledge and persistence to always do the correct non-messing up thing and it is not for novices. I guess this is why things like docker and other container managers are popular now. They make it hard for you to mess systems up.

Further, I believe compiler dependency in widgets takes version control too far.  This is probably something widgets needs to take care of. (I did see one post where the widgets developers were considering removing that in a future release, but I don't know if it has been done yet.)
I don't have am idea what you're talking about.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline sodev

  • Regular
  • ***
  • Posts: 497
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #11 on: January 15, 2019, 07:08:09 pm »
This process did allow CB 17.12 to run under Linux Mint 18.3 but as I suspected, I had to remove and reinstall filezilla and audacity. 
I don't know what you did, but this should not be necessary and is a sign of that you screwed your system. Your system libraries all reside under
Code
/usr
while so far as i have seen all selfbuild source packages by default go into
Code
/usr/local
. wxWidgets libraries use versioned filenames so your system applications won't pick up your local ones unless the version is identical but then your local ones should be binary compatible (but might miss some components you didn't build).

Anyway, you could save yourself from this if you simply would have build against your system library!

IMO, this is not an acceptable process!  While I accomplished my result, I spent over 20 hours digging into the problem and researching how to overcome it.  Someone with less experience would probably not completed this task and would have been left with a bad taste about CB and Linux in general.
Linux != Windows
[MyOpinionStart]
Although there are nice package managers and stuff around, if you are using Linux you should know what a compiler is and how to compile stuff and especially what a shell ist, this is just not your point-and-click OS
[MyOpinionEnd]

Further, I believe compiler dependency in widgets takes version control too far.
This is actually a very good thing, without this instead of getting this error message you would get obscure, random runtime crashes which are extremely hard to debug. Even considerung the above point ;D.

Offline rjmoses

  • Single posting newcomer
  • *
  • Posts: 6
Re: Installing 17.12 on Linux Mint --wxWidgets problem
« Reply #12 on: January 17, 2019, 12:35:24 pm »
i know for you this topic is closed. but me would interest why you used 3.1.2 and not the system default library, so you do not have to uninstall filezilla and audacity...

Very good question!

It is the current release and my thought was that I would not be chasing problems that may have been already resolved.  By building from the current versions of both CB and wsWidgets, I believed I would be working with the code that the developers are confident in.  (I am assuming that the CB developers are working the 3.1.2.)

For whatever reason, the Synpatics Package Manager under Mint 18.3 only supported CB 13.12 and wxWidgets 3.0.2 which is what got me into trouble in the first place.
 
So, I elected to do complete removals and re-installs on those audacity and filezilla to make sure I had a clean widgets base to work from and avoid potential package conflicts.

Here are links to posts that alluded to the ABI check going away: 

https://bugzilla.redhat.com/show_bug.cgi?id=1200611
https://bugzilla.redhat.com/show_bug.cgi?id=1318171