Skip to content

Commit 05fb4a1

Browse files
KenoKristofferC
authored andcommitted
build: Fix libssh2 source build (#59164)
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)
1 parent 0ac5a66 commit 05fb4a1

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

deps/libssh2.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ LIBSSH2_OPTS += -G"MSYS Makefiles"
2222
endif
2323
else
2424
LIBSSH2_OPTS += -DCRYPTO_BACKEND=OpenSSL -DENABLE_ZLIB_COMPRESSION=OFF
25+
LIBSSH2_OPTS += -DOPENSSL_ROOT_DIR=$(build_prefix)
2526
endif
2627

2728
ifneq (,$(findstring $(OS),Linux FreeBSD OpenBSD))

deps/openssl.mk

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,21 @@ ifeq ($(OS),$(BUILD_OS))
7272
endif
7373
echo 1 > $@
7474

75+
# Override bindir and only install runtime libraries, otherwise they'll go into build_depsbindir.
76+
OPENSSL_INSTALL = \
77+
mkdir -p $2$$(build_shlibdir) && \
78+
$$(MAKE) -C $1 install_dev $$(MAKE_COMMON) bindir=$$(build_shlibdir) $3 DESTDIR="$2"
79+
80+
OPENSSL_POST_INSTALL := \
81+
$(WIN_MAKE_HARD_LINK) $(build_bindir)/libcrypto-*.dll $(build_bindir)/libcrypto.dll && \
82+
$(WIN_MAKE_HARD_LINK) $(build_bindir)/libssl-*.dll $(build_bindir)/libssl.dll && \
83+
$(INSTALL_NAME_CMD)libcrypto.$(SHLIB_EXT) $(build_shlibdir)/libcrypto.$(SHLIB_EXT) && \
84+
$(INSTALL_NAME_CMD)libssl.$(SHLIB_EXT) $(build_shlibdir)/libssl.$(SHLIB_EXT) && \
85+
$(INSTALL_NAME_CHANGE_CMD) $(build_shlibdir)/libcrypto.3.dylib @rpath/libcrypto.$(SHLIB_EXT) $(build_shlibdir)/libssl.$(SHLIB_EXT)
86+
7587
$(eval $(call staged-install, \
7688
openssl,openssl-$(OPENSSL_VER), \
77-
MAKE_INSTALL,,, \
78-
$$(WIN_MAKE_HARD_LINK) $(build_bindir)/libcrypto-*.dll $(build_bindir)/libcrypto.dll && \
79-
$$(WIN_MAKE_HARD_LINK) $(build_bindir)/libssl-*.dll $(build_bindir)/libssl.dll && \
80-
$$(INSTALL_NAME_CMD)libcrypto.$$(SHLIB_EXT) $$(build_shlibdir)/libcrypto.$$(SHLIB_EXT) && \
81-
$$(INSTALL_NAME_CMD)libssl.$$(SHLIB_EXT) $$(build_shlibdir)/libssl.$$(SHLIB_EXT) && \
82-
$$(INSTALL_NAME_CHANGE_CMD) $$(build_shlibdir)/libcrypto.3.dylib @rpath/libcrypto.$$(SHLIB_EXT) $$(build_shlibdir)/libssl.$$(SHLIB_EXT)))
89+
OPENSSL_INSTALL,,,$(OPENSSL_POST_INSTALL)))
8390

8491
clean-openssl:
8592
-rm -f $(BUILDDIR)/-openssl-$(OPENSSL_VER)/build-configured $(BUILDDIR)/-openssl-$(OPENSSL_VER)/build-compiled

0 commit comments

Comments
 (0)