I can build Blender, but then Blender asks for different versions of libraries

Hello.
I have updated Kubuntu 18.04 to Kubuntu 20.04 (pre beta).
As I mentioned in the thread title, I can build Blender without errors, but when I run ./blender from the terminal it asks for old versions of libraries. I have tried to make symbolic links from new libraries to old libraries, but apparently they are many and it never ends. Some examples are:

Blender asks for libGLEW.so.2.0, installed version is libGLEW.so.2.1

Blender asks for libIlmImf-2_2.so.22, installed version is libIlmImf-2_3.so.24

Blender asks for libIex-2_2.so.12, installed version is libIex-2_3.so.24

What could be the problem?

Your CMakeCache.txt still points to the old library versions. I would recommend to remove the build folder and make a clean build, trying to adjust this for a distribution upgrade is impractical.

If you use the precompiled libraries rather than install_deps.sh, it will survive distribution upgrades because it does not use system packages.
https://wiki.blender.org/wiki/Building_Blender/Linux/Ubuntu

Ok, now it works. I deleted /home/USER/src folder and the content of /opt/lib folder, and ran again “./install_deps.sh --with-all” (really with --skip-osl because osl failed to build).

Thanks.

Think something got lost in translation there, the suggestion was not to use install_deps.sh but follow the new building guide that recommends you grab the pre-build linux libraries from SVN.

It’s true, but I don’t trust foreign “centos” linux precompiled libraries. I prefer to follow “For other systems or to use system packages, see Automatic Dependency Installation” instructions, with install_deps and libraries compiled and installed by my own system.

It’s just that install_deps.sh is the way I know and prefer that for now instead of experiencing new things.
Thank you.

Now seeing that answer I see that I could have sounded insulting by not doing what was suggested. It was not like that at all. Just reading that gave me the idea that something could be wrong with install_deps since I kept the files from Kubuntu 18.04.
So really Brecht answer gave me the idea about how to solve the problem.

Oh not insulting at all! I just assumed English is not everyone’s native language and thought you may have misinterpreted rather than so i clarified. But it looks like you had reasons not to use the SVN libs, all good my friend! :slight_smile:

1 Like

Thinking about CentOS precompiled libraries…
Does this mean that if I download those pre-compiled libraries and build with “make release”, then it will automatically build a portable build, regardless of whether I cannot successfully run “make deps” because of some errors?

If this is so, it sounds very interesting to try.

Edit:
I have downloaded precompiled libraries according to the instructions. “make release” currently seems to do nothing. I manually set “WITH_STATIC_LIBS” on, then build it successfully up to 100% but at the end I get many error messages of type “error: undefined reference to 'icu_63”

Edit 2:
Ok, I think the error to build was because I mistook the path to “lib” folder of precompiled downloaded libraries. “lib” folder must be out of “blender” git folder. I can build now.

Yes and no, the libs are only part of the job for a portable build , the buildbot has additional tweaks located in build_files/buildbot/config/lender_linux.cmake

Ok, I will try to investigate about it with my limited knowledge.

running cmake . -C /path/to/blender_linux.cmake in your build folder should apply these settings

Ok, without having yet tried what you say, I have built Blender with percompiled libraries and static libs in another installation of Kubuntu 18.04 that I have. That build of Kubuntu 18.04 also works in Kubuntu 20.04!, therefore it is a great advance in attempts to make portable builds for years. By the way, build done in Kubuntu 20.04 does not open on 18.04, so I guess it is still valid the recommendation about when making portable builds this must be made in not so new Linux versions.

Then later I will test about those cmake stuff from buildbot instructions.

Regardless of the static libs or not, you’re still going to be limited to the glibc version on the system you build on, anything build on a system with an old glibc will run on newer ones, but this only works in one direction.

A system with glibc 2.30 (kubuntu 20.04) will happily run code build for 2.27 (kubuntu 18.04) but code build for 2.30 will not run on 2.27

OK understood. Thank you

I’ve also done the cmake thing, apparently it worked.
A question about pre-compiled libraries. Why does it not include embree libraries?

And about svn… I suppose libraries will be updated periodically. How do I update svn files from linux terminal without having to download everything again?

There is no official embree support in master, step are being taken to make it supported but we are not quite there yet, there was a request made last week to make libraries available, so it seems to be happening sooner rather than later.

make update in the blender source folder will update both the git code and the svn libraries and download only the changes once you have the initial set.

if you want to run the update your self you can run svn update in the library folder.

1 Like