Skip to content

Bump libsdformat 13.5.0->16.0.1#365

Open
jhanca-robotecai wants to merge 6 commits intoo3de:mainfrom
RobotecAI:jh/bump_libsdformat
Open

Bump libsdformat 13.5.0->16.0.1#365
jhanca-robotecai wants to merge 6 commits intoo3de:mainfrom
RobotecAI:jh/bump_libsdformat

Conversation

@jhanca-robotecai
Copy link

@jhanca-robotecai jhanca-robotecai commented Mar 3, 2026

Changes

This PR bumps libsdformat from 13.5.0 to 16.0.1

  • bump libsdformat to the newest version
  • bump all libsdformat dependencies to the required versions
  • update default docker image used for builds from Ubuntu 20.04 to Ubuntu 22.04; tested on Ubuntu 24.04 as well
  • fix build of arm64 (reference arm64v8/ubuntu:22.04 is invalid, as official Ubuntu images are multi-arch under ubuntu)
  • fix tests to build without errors:
devroot/misc/3p-package-source/package-system/sdformat/test/test_sdformat.cpp:24:41: warning: field precision specifier ‘.*’ expects argument of type ‘int’, but argument 2 has type ‘std::basic_string_view<char>::size_type’ {aka ‘long unsigned int’} [-Wformat=]
   24 |     printf(R"(Validating SDF version "%.*s": )", sdfVersionFull.size(), sdfVersionFull.data());
      |                                       ~~^~       ~~~~~~~~~~~~~~~~~~~~~
      |                                         |                           |
      |                                         int                         std::basic_string_view<char>::size_type {aka long unsigned int}

Note: libsdformatXX.so (e.g., libsdformat13.so) is not a valid target anymore (as of 16.0.1), the target is renamed to match libsdformat convention

A small typo in README was fixed additionally.

Tested

The binaries were built locally:

cd 3p-package-source/Scripts/extras
python3 ./pull_and_build_from_git.py ../../package-system/sdformat --platform-name Linux --clean
python3 ./pull_and_build_from_git.py ../../package-system/sdformat --platform-name Linux-aarch64 --clean

exported with scripts from https://github.com/o3de/3p-package-scripts, in particular:

cd 3p-package-scripts/o3de_package_scripts
python3 pack_package.py -o ../../3p-package-source/package-system/sdformat/temp/out --search_path ../../3p-package-source/package-system/sdformat  ../../3p-package-source/package-system/sdformat/temp/sdformat-linux-aarch64
python3 pack_package.py -o ../../3p-package-source/package-system/sdformat/temp/out --search_path ../../3p-package-source/package-system/sdformat  ../../3p-package-source/package-system/sdformat/temp/sdformat-linux-aarch64

the first one was also untared into ~/.o3de/3rdParty/packages/sdformat-16.0.1-rev1-linux
and tested against RobotImporter in O3DE extras: o3de/o3de-extras#1024

@jhanca-robotecai
Copy link
Author

jhanca-robotecai commented Mar 4, 2026

The tests fail due to ancient Clang and GCC hardcoded in the GHA workflows:

  if: runner.os == 'Linux'
  env:
    CLANG_VER: 12
    GCC_VER: 9

I can revert libsdformat build scripts to run correctly on Ubuntu 20.04, but 20.04 is not supported since may 2025. I believe we should consider bumping the base Ubuntu version to the newer in GHA.

Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant