Skip to content

Conversation

@ahojnnes
Copy link
Contributor

@ahojnnes ahojnnes commented Jan 4, 2025

Fixes two issues:

  • curl[openssl] does not pick up certificates from the system automatically. Now, we instead use Windows native schannel for this purpose.
  • OpenSSL::Crypto leads to segfaults under Windows/ARM64. Here, we switch to CryptoPP as an alternative.

@ahojnnes ahojnnes requested review from B1ueber2y and sarlinpe January 4, 2025 12:19
if(CURL_FOUND AND OpenSSL_FOUND)
set(CRYPTO_FOUND FALSE)
if(IS_MSVC AND IS_ARM64)
# OpenSSL crashes for ARM64 under Windows. We therefore fall back to
Copy link
Member

Choose a reason for hiding this comment

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

Is this a temporary issue that we can expect to see fixed soon? If not, why using OpenSSL at all instead of Crypto++ on all platforms? Is it because Crypto++ is more difficult to install? It's unideal to have such complex dependency logic for such a small feature.

Copy link
Contributor Author

@ahojnnes ahojnnes Jan 5, 2025

Choose a reason for hiding this comment

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

I would expect this to be fixed eventually and then we can hopefully remove this workaround again. The reason for not defaulting to CryptoPP is that I wanted to keep dependencies minimal on all other platforms. We already transitively depend on OpenSSL on all platforms. I expect essentially nobody to use colmap under Windows ARM except myself in a VM on my MacBook for debugging.

@ahojnnes ahojnnes merged commit 474e096 into main Jan 5, 2025
16 checks passed
@ahojnnes ahojnnes deleted the user/jsch/fix-download-windows branch January 5, 2025 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants