Skip to content

Openssl workflow - #386

Draft
PTR-inc wants to merge 2 commits into
Ylianst:masterfrom
PTR-inc:openssl-workflow
Draft

Openssl workflow#386
PTR-inc wants to merge 2 commits into
Ylianst:masterfrom
PTR-inc:openssl-workflow

Conversation

@PTR-inc

@PTR-inc PTR-inc commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Update openssl libraries to 1.1.1w

This adds workflows with which default and specific openssl libraries can be compiled.
Through the main workflow (build-openssl-job/Build OpenSSL static lib (single target)), you can enter the openssl version (see openssl/libstatic/openssl-versions-sha.txt) and how you want them.
Defaults are for 1.1.1w, last release of that branch.
For going to openssl v3 there need to be done some adjustments. Most targets will compile, but especially the older ones need to be checked. But that's for the next development step, first to 1.1.1w.
Also added windows arm64 and riscv64-generic.
Riscv64-generic for a future new archid in the meshagent makefile, as current archid=45 riscv64 is hardware specific.

  • 🧠 I used LLMs/AI in this contribution and reviewed all generated content.
    I understand that I am responsible for and able to explain every line of code I submit.
  • 🛠️ I have self-reviewed my code and self-tested it against a MeshCentral server to ensure it works as expected.
  • 🖥️ My change compiles on every platform it affects (Windows / Linux / macOS / FreeBSD), and I have considered
    the impact on platforms and architectures I could not test.
  • 🤖 I ran the agent self-test where appropriate (see "Self Test" in readme.md).
  • 🧰 Updates to vendored dependencies (OpenSSL, zlib, ...) are listed and explained.
  • ⚠️ CI passes and is green (Windows / Linux / macOS / FreeBSD builds and CodeQL).

Testing

I have extended the base testscripts already available with extra auto-test functionality with qemu support to test almost all platforms, which I will PR after all that testing (which is taking a lot of time) is done.
Also almost ready is a PR with crosscompile build scripts for linux and windows originally made for testing all this. This will make it easier to built agents for the current and new platforms.
Testing of the workflows was done with help of act to locally test first.

Linux 64/32, Windows 32/64, */BSD and macos (intel/Mx) have been specifically tested.

N.B.:

  • armhf2=armhf
  • armada370 is an annoyance to compile because the download from dd-wrt is very flaky.

 - Verified, per target, OpenSSL library build workflows
- Build libraries optionally pushed through a PR (manual verification)
- version check to prevent unneccessary build. Can be forced.
- build with a version suffix option, for future new versions next to current (migration > v3)
- !! armada370-hf is excluded from 'all' because the dd-wrt site has issues with downloading the toolchain
Compiled on github through the workflow
@PTR-inc
PTR-inc marked this pull request as draft August 21, 2026 23:09
@PTR-inc

PTR-inc commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Mistakenly made osx/alpine no-asm. Also think the buildscripts need to be added to this PR to keep it complete and useable.

@PTR-inc

PTR-inc commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

...aaand some more snags from the not-so-properly maintained makefile.
I'm going to have to do a 'makeover', as not all toolchains are available anymore. And the glibc floor of the original linux agent being 2.11 isn't helping.

@si458 This is a discussion point, lifting the minimum supported libc version of the agents.

  • For the linux agents this could be 2.24 for example. That's a jump from 2009 to 2016 and makes everything a lot easier while still supporting older setups.
  • The builds in the current linux workflow use ubuntu 24.04, that makes the glibc floor 2.38, which excludes a lot of older, still running, systems (deb12 and older, ubu22lts and older).

I'm building an updated, cleaned up makefile in which everything is configurable, but tries to stay as close as possible to the original builds to not break stuff.

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.

1 participant