Skip to content

Conversation

IanButterworth
Copy link
Member

Change libssh2 to depend on install-openssl instead of just the manifest file to ensure OpenSSL is fully installed before libssh2 configuration.

Fixes build failures where libssh2 CMake configuration runs before OpenSSL installation is complete, causing "Could NOT find OpenSSL" errors.

Claude suggested this based on https://buildkite.com/julialang/julia-buildkite-scheduled/builds/1333#01985642-15fe-4526-ac73-1cbbd40d85b4

@IanButterworth IanButterworth added the building Build system, or building Julia or its dependencies label Jul 29, 2025
@IanButterworth IanButterworth requested a review from eschnett July 29, 2025 16:34
@IanButterworth
Copy link
Member Author

Actually seems like a common pattern so I update the remainder?

Copy link
Member

@vtjnash vtjnash left a comment

Choose a reason for hiding this comment

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

Depending on pseudo targets will cause bad things to happen. You must depend on the manifest file for reliable correctness.

@IanButterworth
Copy link
Member Author

ok. The issue this tried to fix was

�_bk;t=1753794186272�CMake Error at [buildroot]/deps/scratch/cmake-3.30.1-linux-x86_64/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
�_bk;t=1753794186272�  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
�_bk;t=1753794186272�  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
�_bk;t=1753794186272�  OPENSSL_INCLUDE_DIR)

@vtjnash vtjnash closed this Jul 29, 2025
@IanButterworth IanButterworth deleted the ib/fix_source_build branch July 29, 2025 17:09
@Keno

This comment was marked as outdated.

@Keno
Copy link
Member

Keno commented Jul 31, 2025

Actually, I think this may always be failing on that particular bot (we just don't run it very often). It's possible we don't see it locally because the build picks up system openssl.

@Keno
Copy link
Member

Keno commented Jul 31, 2025

Yeah:

$ cat deps/scratch/libssh2-a312b43325e3383c865a87bb1d26cb52e3292641/CMakeCache.txt | grep ssl
OPENSSL_SSL_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libssl.so
_OPENSSL_openssl_INCLUDEDIR:INTERNAL=
_OPENSSL_openssl_LIBDIR:INTERNAL=
_OPENSSL_openssl_PREFIX:INTERNAL=
_OPENSSL_openssl_VERSION:INTERNAL=

Keno added a commit that referenced this pull request Jul 31, 2025
Addresses the same CI failure that #59141
was intended to address. The issue here is twofold. First, in a source
build, we failed to install openssl header files. Second, even if we
had done this, libssh needs to be explicitly told where to find openssl,
otherwise it might prefer systme files.
Keno added a commit that referenced this pull request Jul 31, 2025
Addresses the same CI failure that #59141
was intended to address. The issue here is twofold. First, in a source
build, we failed to install openssl header files. Second, even if we
had done this, libssh needs to be explicitly told where to find openssl,
otherwise it might prefer systme files.
Keno added a commit that referenced this pull request Jul 31, 2025
Addresses the same CI failure that
#59141 was intended to address.
The issue here is twofold. First, in a source build, we failed to
install openssl header files. Second, even if we had done this, libssh
needs to be explicitly told where to find openssl, otherwise it might
prefer systme files.
KristofferC pushed a commit that referenced this pull request Sep 17, 2025
Addresses the same CI failure that
#59141 was intended to address.
The issue here is twofold. First, in a source build, we failed to
install openssl header files. Second, even if we had done this, libssh
needs to be explicitly told where to find openssl, otherwise it might
prefer systme files.

(cherry picked from commit 5ddd721)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants