Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug] Bugs in runtime_deployer #16938

Open
valgur opened this issue Sep 5, 2024 · 1 comment
Open

[bug] Bugs in runtime_deployer #16938

valgur opened this issue Sep 5, 2024 · 1 comment

Comments

@valgur
Copy link
Contributor

valgur commented Sep 5, 2024

Describe the bug

Keeping the bug report info from #16527.

The runtime_deployer from #15382 is a very good addition to Conan, but the implementation currently has some defects:

  • Only *.so files (e.g. libz.so) are copied, but not *.so.* (e.g. libz.so.1 and libz.so.1.3.1).
  • shutil.copy2(..., follow_symlinks=symlinks) should be shutil.copy2(..., follow_symlinks=not symlinks).

How to reproduce it

No response

@johan-boule
Copy link

johan-boule commented Sep 19, 2024

Another issue is that runtime_deploy does not keep any tree structure.
For example, the openssl package has lib/engines-3/capi.so.
Deployers should keep these trees intact.

I considered trying full_deploy instead and post-processing its output to merge all the packages together into one single tree, something like mv full_deploy/host/*/*/*/*/lib*/* lib64/ mv full_deploy/host/*/*/*/*/bin/* bin/

But there's also mystery with full_deploy, it doesn't seem to deploy the runtime libs:

$ ls full_deploy/host/*/*/*/*/lib/
full_deploy/host/benchmark/1.8.4/Release/x86_64/lib/:
full_deploy/host/bzip2/1.0.8/Release/x86_64/lib/:
full_deploy/host/fmt/10.2.1/Release/x86_64/lib/:
full_deploy/host/gtest/1.14.0/Release/x86_64/lib/:
full_deploy/host/libcurl/8.8.0/Release/x86_64/lib/:
full_deploy/host/libpq/15.5/Release/x86_64/lib/:
full_deploy/host/ocilib/4.7.4/Release/x86_64/lib/:
full_deploy/host/openssl/3.2.2/Release/x86_64/lib/:
cmake
full_deploy/host/oracle-instant-client/19.5.0/Release/x86_64/lib/:
full_deploy/host/pcre2/10.42/Release/x86_64/lib/:
full_deploy/host/poco/1.13.3/Release/x86_64/lib/:
full_deploy/host/pugixml/1.14/Release/x86_64/lib/:
full_deploy/host/spdlog/1.14.1/Release/x86_64/lib/:
full_deploy/host/xerces-c/3.2.5/Release/x86_64/lib/:
full_deploy/host/zlib/1.3.1/Release/x86_64/lib/:

This might be the same bug.
If we look at poco's package tree for example, it contains lib files all in this form:

libPocoCrypto.so -> libPocoCrypto.so.103
libPocoCrypto.so.103

So, all regular files are *.so.* and all symlinks are *.so
Maybe the deployer takes *.so BUT ignores symlinks ?

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

No branches or pull requests

2 participants