Page MenuHome

Bump OpenImageIO minimum version 1.8 > 2.2.1 for install_deps.sh
Closed, ResolvedPublic

Description

System Information
Operating system: Linux-5.9.6-gentoo-bertha-x86_64-Intel-R-_Xeon-R-_CPU_E5-2630_v4_@_2.20GHz-with-gentoo-2.7 64 Bits
Graphics card: Radeon Pro WX 9100 (VEGA10, DRM 3.39.0, 5.9.6-gentoo-bertha, LLVM 9.0.1) X.Org 4.6 (Core Profile) Mesa 20.1.10

Blender Version
Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-11-08 15:12, hash: rB39012146e142
Worked: 2.92.0 rB91d320edc3cfb30443af4adbcb09bc3d7a609e1d

Short description of error
Building blender rB39012146e142bf40 here gave rise to this compilation error:

/home/gosgood/git_repositories/blender/intern/cycles/blender/blender_shader.cpp:122:23: error: ‘concat’ is not a member of ‘OpenImageIO_v1_8::ustring’
  122 |       return ustring::concat(object_attr_prefix, name);
      |                       ^~~~~~
/home/gosgood/git_repositories/blender/intern/cycles/blender/blender_shader.cpp:124:23: error: ‘concat’ is not a member of ‘OpenImageIO_v1_8::ustring’
  124 |       return ustring::concat(instancer_attr_prefix, name);
      |                       ^~~~~~
make[3]: *** [intern/cycles/blender/CMakeFiles/bf_intern_cycles.dir/build.make:255: intern/cycles/blender/CMakeFiles/bf_intern_cycles.dir/blender_shader.cpp.o] Error 1
...

The code giving rise to this error stems from a 03-November-2020 commit: rB6fdcca8de64cd70f.

It relies on OpenImageIO capabilities introduced with Add concat function to ustring and Strutil #2478 which are not present in version 1.8.17 installed on this system at the time of the failed build. Per OpenImageIO 2.2.6.1, this pull request was included in OpenImageIO 2.2.1. Upgrading to OpenImageIO-2.2.8.0 gave rise to a clean blender build.

Currently, install_deps.sh reports a minimum acceptable version OpenImageIO version of 1.8.

OIIO_VERSION="2.1.15.0"
OIIO_VERSION_SHORT="2.1"
OIIO_VERSION_MIN="1.8"
OIIO_VERSION_MAX="3.0"
OIIO_FORCE_BUILD=false
OIIO_FORCE_REBUILD=false
OIIO_SKIP=false

gosgood@bertha ~/git_repositories/blender/build_files/build_environment $ ./install_deps.sh --show-deps
...
    * OpenImageIO 1.8 (from https://github.com/OpenImageIO/oiio/archive/Release-2.1.15.0.tar.gz).
...

It seems, in light of this recent commit, the minimum OpenImageIO version should be 2.2.1.

Exact steps for others to reproduce the error

  1. Generally, configure the CMake build environment to use installed system libraries in lieu of blender-provided bundled libraries.
  2. Use install_deps.sh --show-deps to ensure installed system libraries are at or above the minimum versions.
  3. Compile Blender with OpenImageIO-1.8.x, purported to be minimum version.

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Developer to Reproduce.Nov 11 2020, 2:04 PM

Looks like a valid claim.

T76184: Library upgrades for 2.90 mentiones OIIO at version 2.1.15.0 and it looks like the SVN libs are at 2.1.15.0 as well?

I can build with the SVN libs, and it looks like I can build with Fedoras 2.1.18 as well, so not sure what is going on.

Maybe @Bastien Montagne (mont29) knows more?