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

Compile libssh with symbol versioning #3665

Open
andrei-toterman opened this issue Sep 10, 2024 · 2 comments
Open

Compile libssh with symbol versioning #3665

andrei-toterman opened this issue Sep 10, 2024 · 2 comments

Comments

@andrei-toterman
Copy link
Contributor

At this moment, when we compile our fork of libssh, we bypass the main CMakeLists.txt file of libssh, in order to avoid some supposedly unnecessary checks. But that CMake file also has some code that is responsible for setting up symbol versioning for the library.
Symbol versioning would be useful as an alternative to this fix #3559, since the Qt Network library would be able to use our own libssh.
So, in order to compile libssh with symbol versioning, 3 things must be done:

  • Rewrite our own CMake code that is responsible for including libssh into our project, so that it doesn't bypass the main libssh CMake file.
  • Patch the main libssh CMake file so that it does not use CMAKE_SOURCE_DIR. Since we include libssh into our project, CMAKE_SOURCE_DIR will have the value of our own top level project directory, which messes with the logic of the libssh CMake file. We could patch it to use CMAKE_CURRENT_SOURCE_DIR or PROJECT_SOURCE_DIR. Or perhaps there are some other alternatives that do not involve touching the libssh CMake file.
  • Make abimap available. abimap is a python package that is used by the libssh CMake code when setting up symbol versioning. It can be installed using pip install abimap. But this will probably necessitate setting up a virtual environment for python in which to install that package, or some other way of providing that package without having it installed globally on the machine.
@Jainuine
Copy link

Hi @andrei-toterman did anyone take this up. If not then I'll take this up.
For creating a testing environment is readme enough or do I require something more.

@andrei-toterman
Copy link
Contributor Author

Hey, @Jainuine! You can take it up if you want :) Yes, just following the readme should be enough for being able to build Multipass, but if you have any issues or you need some clarifications for the task, let me know!

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

No branches or pull requests

2 participants