Skip to content

aws-c-cal: update from 0.9.10 to 0.9.13 - #2637

Open
apache-hb wants to merge 1 commit into
mesonbuild:masterfrom
apache-hb:aws-c-cal-0.9.13
Open

aws-c-cal: update from 0.9.10 to 0.9.13#2637
apache-hb wants to merge 1 commit into
mesonbuild:masterfrom
apache-hb:aws-c-cal-0.9.13

Conversation

@apache-hb

@apache-hb apache-hb commented Feb 8, 2026

Copy link
Copy Markdown
Contributor
  • Updates aws-c-cal from 0.9.10 to 0.9.13
  • Adds emscripten support, its not in CI but I've successfully used it in a wasm project
  • Adds support for the bring your own crypto option, which disables the default crypto provider and lets uses provide their own dynamically at runtime

@apache-hb
apache-hb marked this pull request as ready for review February 8, 2026 21:04

@bgilbert bgilbert left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm not 100% certain I've understood the intended behavior of the new logic. I've flagged some inconsistencies but please double-check the result to make sure it properly handles all the cases.

option(
'byo_crypto',
type: 'feature',
value: 'disabled',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Personally I'm okay with this, given how it's used, but it is surprising that a feature doesn't default to auto.

Comment on lines +29 to +32
if (
get_option('default_library') == 'shared'
and host_machine.system() == 'windows'
) or host_machine.system() != 'windows'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
if (
get_option('default_library') == 'shared'
and host_machine.system() == 'windows'
) or host_machine.system() != 'windows'
if host_machine.system() != 'windows' or get_option('default_library') == 'shared'

aws_c_common_dep = dependency('aws-c-common')
libcrypto_dep = dependency(
'libcrypto',
'openssl',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is this change correct? openssl implies both libcrypto and libssl, the actual TLS library.

ncrypt = cc.find_library(
'ncrypt',
required: host_machine.system() == 'windows',
required: false,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This, and the corresponding required: false for foundation, could theoretically produce a situation where byo_crypto is disabled and we also don't find the needed crypto library.

'libcrypto',
'openssl',
version: '>=1.1',
required: not byo_crypto.allowed(),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This requires (and, further down the file, enables) OpenSSL on Windows and Darwin, contrary to the earlier comment.

'source/unix/opensslcrypto_hmac.c',
)
else
error('Unsupported platform: ' + host_machine.system())

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Shouldn't we still error out in this case?

@bgilbert bgilbert added the needs fixes Pull request received review feedback and needs adjustments label Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs fixes Pull request received review feedback and needs adjustments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants