You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: honest wolfssl version resolution + fix sanitizer WOLFSSL_CONFIG_CFLAGS
Two real bugs the latest sanitizer + osp-version failures surfaced.
Sanitizer build failure
=======================
sanitizers.yml's overridden WOLFSSL_CONFIG_CFLAGS dropped all the
defaults that scripts/utils-wolfssl.sh would have provided when the
env var is unset. wolfprov then built without -DWC_RSA_NO_PADDING and
the compiler treated wc_RsaDirect as an implicit declaration:
src/wp_rsa_sig.c:817: error: implicit declaration of function
'wc_RsaDirect'; did you mean 'wc_ReadDirNext'?
Fix: spell out the defaults explicitly in the workflow and append the
sanitizer flags. (Keep this in sync with the default in
scripts/utils-wolfssl.sh -- if that default changes, the workflow
needs to track it.)
wolfssl_ref now reflects the actual .deb on ghcr
================================================
The old _discover-versions.yml computed wolfssl_ref via
`git ls-remote upstream wolfssl/wolfssl 'v*-stable'`. That gives
"what's the latest -stable tag" (v5.9.1-stable today), but the OSP
workflows install the wolfprov .deb on ghcr.io which Jenkins built
against a different tag (v5.8.4-stable today). The matrix label lied.
_discover-versions.yml now probes the actual non-FIPS .deb:
oras pull ghcr.io/wolfssl/wolfprovider/debs:nonfips
-> parse libwolfssl_<VER>+...amd64.deb filename for VER
-> wolfssl_ref = "v<VER>-stable"
Two outputs now:
wolfssl_ref / wolfssl_ref_array
Actual version installed by the wolfprov .deb on ghcr.
Used by the 40 OSP workflows (they use the .deb).
wolfssl_latest_ref / wolfssl_latest_ref_array
Latest upstream v*-stable tag. Used by source-built workflows
(smoke, simple, sanitizers, libtss2, cmdline, seed-src,
openssl-version) that clone wolfssl from git.
If the .deb probe fails (network blip, packages-read scope missing
on a fork PR token, future filename change), the resolver falls back
to upstream-latest with a ::warning:: so it's visible in the run log.
Updates to consumer workflows:
simple, smoke-test, libtss2, sanitizers, cmdline, seed-src,
openssl-version -> switch from wolfssl_ref to wolfssl_latest_ref
echo "::error::Could not resolve latest wolfSSL -stable tag"
63
122
exit 1
64
123
fi
65
124
125
+
# If the .deb probe failed (no auth, or .deb naming changed),
126
+
# fall back to the upstream-latest value so downstream jobs
127
+
# still have a valid ref to use. Log loud so we notice.
128
+
if [ -z "${WOLFSSL_DEB_REF:-}" ]; then
129
+
echo "::warning::Could not probe wolfssl version from ghcr .deb; falling back to upstream latest ($WOLFSSL_LATEST). Matrix label may not match the actual installed library."
130
+
WOLFSSL_DEB_REF="$WOLFSSL_LATEST"
131
+
fi
132
+
66
133
# ---- OpenSSL (Debian Bookworm stock) ----
67
134
# The wolfprov-patched .deb on ghcr.io is built by patching
68
-
# Bookworm's stock libssl3 source, so this is the actual
69
-
# OpenSSL the Debian-container workflows end up linking against.
70
-
# Use docker to ask Bookworm's apt directly, then strip the
0 commit comments