canonical/multipass

Issues with 3rd party compilation order

開放

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

 (16 則留言) (0 個反應) (0 位負責人)C++ (634 個分叉)batch import
good first issue

倉庫指標

星標
 (6,956 顆星)
PR 合併指標
 (平均合併 16天 2小時) (30 天內合併 50 個 PR)

描述

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.

貢獻者指南