Skip to content

Bump libsdformat 13.5.0->16.0.1 - #1024

Open
jhanca-robotecai wants to merge 1 commit into
o3de:developmentfrom
RobotecAI:jh/update_sdformat
Open

Bump libsdformat 13.5.0->16.0.1#1024
jhanca-robotecai wants to merge 1 commit into
o3de:developmentfrom
RobotecAI:jh/update_sdformat

Conversation

@jhanca-robotecai

Copy link
Copy Markdown
Collaborator

What does this PR do?

build] /devroot/2604/o3de-extras/Gems/ROS2RobotImporter/Code/Tests/SdfParserTest.cpp:353:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
[build]         links.insert(AZStd::move(otherLinks.begin()), AZStd::move(otherLinks.end()));
[build]                      ^
[build] /devroot/2604/o3de-extras/Gems/ROS2RobotImporter/Code/Tests/SdfParserTest.cpp:353:22: note: remove std::move call here
[build]         links.insert(AZStd::move(otherLinks.begin()), AZStd::move(otherLinks.end()));
[build]                      ^~~~~~~~~~~~                  ~
[build] /devroot/2604/o3de-extras/Gems/ROS2RobotImporter/Code/Tests/SdfParserTest.cpp:353:55: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
[build]         links.insert(AZStd::move(otherLinks.begin()), AZStd::move(otherLinks.end()));
[build]                                                       ^
[build] /devroot/2604/o3de-extras/Gems/ROS2RobotImporter/Code/Tests/SdfParserTest.cpp:353:55: note: remove std::move call here
[build]         links.insert(AZStd::move(otherLinks.begin()), AZStd::move(otherLinks.end()));

Note: o3de/3p-package-source#365 should be integrated first (marking as draft); it should target development branch only

How was this PR tested?

Multiple different robots were imported; the version of the libsdformat library was printed:

AZ_Error("JHDEBUG", false, "version: %s", SDF_VERSION_FULL);
<11:51:35> [Error] (JHDEBUG) - version: 16.0.1

@byrcolin byrcolin added the sig/simulation Categorizes an issue or PR as relevant to SIG Simulation label Mar 3, 2026
@jhanca-robotecai

Copy link
Copy Markdown
Collaborator Author

Rebased on top of the development and updated the hash to match updated o3de/3p-package-source#365

jhanca-robotecai added a commit to o3de/3p-package-source that referenced this pull request Aug 17, 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:
```cpp
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:
```bash
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:
```bash
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

---------

Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
@jhanca-robotecai

Copy link
Copy Markdown
Collaborator Author

The code is rebased on top of the development branch and it is ready for the review.
It can be tested by pulling the libsdformat library from the dev bucket at cmake configure step:

-DLY_PACKAGE_SERVER_URLS="https://d1gg6ket0m44ly.cloudfront.net;https://d3t6xeg4fgfoum.cloudfront.net"

The package will get into production after approved in this workflow:
https://github.com/o3de/3p-package-source/actions/runs/32050988779

@jhanca-robotecai
jhanca-robotecai marked this pull request as ready for review August 26, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sig/simulation Categorizes an issue or PR as relevant to SIG Simulation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants