Skip to content

Conversation

@furrysalamander
Copy link
Contributor

Previous PR #17091 broke the Dockerfiles because everything was previously linking against the unversioned so files. With the versioning added, links are now against the major version symlink for the so files, and copying only the unversion so files is no longer adequate.

This should fix: #17190, #17176, #17193

This PR preserves those symlinks and includes them in the container.

I have not included a fix for the s390x dockerfile in this PR for two reasons:

  • the s390x Dockerfile is structured differently than the rest of the Dockerfiles and I want to ensure that the changes are fully tested and validated if we're going to modify it. If I can get some guidance on validating that build I'm more than happy to help.
  • I do not want to keep the CI broken for everyone that's not using the s390x Dockerfile while we're fixing that.

For that reason I think it's favorable to open a separate PR for strictly the s390x builds.

@andrew-aladev
Copy link

I've tested it locally - it works perfect. Thank you.

@slaren, can you please review this PR? Thank you.

@slaren
Copy link
Member

slaren commented Nov 12, 2025

@taronaeo Can you take a look at the s390x Dockerfile?

# Create a lib directory to store all .so files
RUN mkdir -p /app/lib && \
find build -name "*.so" -exec cp {} /app/lib \;
find build -name "*.so*" -exec cp -P {} /app/lib \;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not great because it is creating multiple copies of the same shared libraries. At least the backends aren't duplicated, so it is not a huge problem, but we should switch to using cmake --install.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@slaren The -P flag should preserve symlinks so they're not actually duplicated. That's one of the main reasons I didn't modify the s390x dockerfile because I'd need to alter the structure in order to get the symlinks functional.
image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's odd, that's not what I see on my machine.
image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you performing the builds on WSL in a windows directory? I know that that can screw with symlinks. I'm doing my builds in Ubuntu.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's WSL but it's not on a windows directory.

@taronaeo
Copy link
Collaborator

Will look into the s390x docker this weekend :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops improvements to build systems and github actions

Projects

None yet

4 participants