canonical/multipass

Issues with 3rd party compilation order

Open

#3,802 建立於 2024年12月2日

在 GitHub 查看
 (12 留言) (0 反應) (0 負責人)C++ (6,956 star) (634 fork)batch import
bug-scrubenhancementgood first issue

描述

Describe the bug Manually compiling Multipass the build process stops at some point.

To Reproduce Inside one Ubuntu 20.04 container, the build process compiling with CLang stops with this error:

-- Looking for openssl/des.h - not found
CMake Error at 3rd-party/libssh/libssh/ConfigureChecks.cmake:80 (message):
  Could not detect openssl/des.h
Call Stack (most recent call first):
  3rd-party/libssh/CMakeLists.txt:51 (include)

Expected behavior The problem seems to be related to the order of the 3rd party components: https://github.com/canonical/multipass/blob/6c4b8b4f23462a58c81b708808782e682627bf9b/CMakeLists.txt#L125-L138

If you check the pre-builded vcpkg-ports 3rd party package, it includes custom grpc and poco packages as well. However, the configuration is not using these libs to compile other 3rd party packages. And the same is true for the libssh.

The idea is then: compile first custom libssh, grpc and poco; and after use only these versions to compile all the other dependencies.

I hope you want to improve the compilation process to reduce dependencies and use only the custom build 3rd party libraries. This could facilitate compilation in other environments and reduce compilation time.

貢獻者指南