Skip to content

Build in statically linked libssh2 for openssl1.1#11

Open
eddymoulton wants to merge 7 commits into
octopus/masterfrom
octopus/em/build-for-multiple-openssls
Open

Build in statically linked libssh2 for openssl1.1#11
eddymoulton wants to merge 7 commits into
octopus/masterfrom
octopus/em/build-for-multiple-openssls

Conversation

@eddymoulton
Copy link
Copy Markdown
Collaborator

@eddymoulton eddymoulton commented May 7, 2026

We have a requirement to support targets still running OpenSSL1.1 for at least another 4 months.

Since we preference OpenSSL3, this will remain the default pathway. But we also build a fully contained OpenSSL1.1 version that can be used where needed. LibGit2Sharp will determine which binaries to load in depending on the host.

I've chosen to statically link libssh2 for only OpenSSL1.1 so we retain the previous solution for the OpenSSL3 path, which has a much simpler build process. This change isn't what we want to keep long term, but is required for now.

@eddymoulton eddymoulton changed the title feat: build libssh2 for multiple openssl backends Build in statically linked libssh2 for openssl1.1 May 8, 2026
Comment thread .github/workflows/ci.yml
Comment on lines +15 to +16
RID: ${{ matrix.rid }}
VARIANT: ${{ matrix.variant }}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

We explicitly build openssl1.1 variants where needed (only linux targets)

@eddymoulton eddymoulton marked this pull request as ready for review May 8, 2026 03:49
Copy link
Copy Markdown

@liam-mackie liam-mackie left a comment

Choose a reason for hiding this comment

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

LGTM from a review perspective. By god it's a complicated build architecture though.

Comment thread .github/workflows/ci.yml
uses: actions/download-artifact@v8.0.1
with:
path: nuget.package/runtimes/
- name: Merge variant artifacts into RID directories
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nit: this bash, while working (and dense) reads like code golf. Possibly worth adding a small comment around exactly what we expect this to do in a future PR (if this survives the test of time, I'll be seen as a good reviewer)

@@ -0,0 +1,34 @@
ARG BASE_IMAGE=debian:bookworm-slim
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nit: use what we always use for the actual build?

Suggested change
ARG BASE_IMAGE=debian:bookworm-slim
ARG BASE_IMAGE=debian:bullseye-slim

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.

2 participants