Skip to content

THRIFT-4724: dlang dub.json dependency for openssl is too restrictive: new fix tested and update openssl version >=2.0.3 - #3999

Open
mw66 wants to merge 1 commit into
apache:masterfrom
mw66:fix
Open

mw66 wants to merge 1 commit into
apache:masterfrom
mw66:fix

Conversation

@mw66

@mw66 mw66 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

The currently thrift D build only works for openssl 2.0.3 < version 3.0

But openssl has many new version updates:

https://code.dlang.org/packages/openssl

Versions:
3.4.0 2025-Aug-08
3.3.4 2024-Sep-26
3.3.3 2023-Sep-14
3.3.2 2023-Aug-21
3.3.1 2023-Aug-10

This simple fix has been tested and working with upto the latest version 3.4.0, so relax the openssl dependency.

  • If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
    THRIFT-4724 - dlang dub.json dependency for openssl is too restrictive
  • Did you squash your changes to a single commit? (not required, but preferred)
    Yes
  • Did you do your best to avoid breaking changes?

No breaking changes.

  • If your change does not involve any code, include [skip ci] anywhere in the commit message to free up build resources.

But the change affect the build.

@mergeable mergeable Bot added the d Pull requests that update D code label Oct 3, 2026
@Jens-G

Jens-G commented Oct 18, 2026

Copy link
Copy Markdown
Member

Code review

No blocking issues found. Checked for bugs and CLAUDE.md compliance.

Two suggestions, below the bar for an issue but verified:

  • dub resolves the dependencies of all configurations together (Configuration-only dependencies should not take part in version resolution dlang/dub#1217), so the ~>1.1.6 of use_openssl_1_0 and the >=2.0.3 of use_openssl_1_1 both apply to the one package openssl, and they do not overlap. With dub 1.16.0 (the one in the ubuntu-jammy docker image), dub describe --config=use_openssl_1_1 on this head, and a consumer that selects use_openssl_1_1 through subConfigurations, both stop with

    Unresolvable dependencies to package openssl:
      apache-thrift ~master depends on openssl ~>1.1.6
      apache-thrift ~master depends on openssl >=2.0.3
    

    The merge base fails the same way with ~>2.0.3, so this predates the PR, but it means the change alone does not let a fresh resolve pick up the newer bindings; only a hand-written dub.selections.json gets past it. Sub-packages, or a single range with the API picked through versions, would avoid the conflict.

thrift/dub.json

Lines 15 to 34 in 9f36a52

"configurations": [
{
"name": "use_openssl_1_0",
"versions": ["use_openssl_1_0_x"],
"dependencies": {
"openssl": {
"version": "~>1.1.6"
}
}
},
{
"name": "use_openssl_1_1",
"versions": ["use_openssl_1_1_x"],
"dependencies": {
"openssl": {
"version": ">=2.0.3"
}
}
}
],

  • A small formality: CONTRIBUTING.md asks for the ticket id and a colon at the start of the commit subject and a Client: d line below it. The commit is currently tested and update openssl version to >=2.0.3.

thrift/CONTRIBUTING.md

Lines 22 to 27 in 9f36a52

1. Commit messages must follow this pattern for code changes (deviations will not be merged):
THRIFT-9999: [summary of fix, one line if possible]
Client: [language(s) affected, comma separated, for example: "cpp,erl,perl"]

🤖 Generated with Claude Code

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

d Pull requests that update D code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants