Skip to content

fix(CI): Fix Ubuntu 20.04 with OpenSSL 3 installed: undefined reference to ERR_peek_last_error_all#2342

Open
Samunroyu wants to merge 3 commits intoapache:masterfrom
Samunroyu:dev/yjw/fix_ubuntu_2002
Open

fix(CI): Fix Ubuntu 20.04 with OpenSSL 3 installed: undefined reference to ERR_peek_last_error_all#2342
Samunroyu wants to merge 3 commits intoapache:masterfrom
Samunroyu:dev/yjw/fix_ubuntu_2002

Conversation

@Samunroyu
Copy link
Copy Markdown
Collaborator

@Samunroyu Samunroyu commented Dec 25, 2025

fix #2340

Different OS Versions are using the same thirdparty-bin-src images. We need to set ENV in DockerFile when OS Version is ubuntu 2004. And avoiding ENV affect other OS.

@Samunroyu Samunroyu changed the title fix(FQDN): fix rocksdb compile fix(FQDN): Fix Ubuntu 20.04 with OpenSSL 3 installed: undefined reference to ERR_peek_last_error_all Jan 6, 2026
@Samunroyu Samunroyu changed the title fix(FQDN): Fix Ubuntu 20.04 with OpenSSL 3 installed: undefined reference to ERR_peek_last_error_all fix(CI): Fix Ubuntu 20.04 with OpenSSL 3 installed: undefined reference to ERR_peek_last_error_all Jan 6, 2026
@Samunroyu Samunroyu marked this pull request as ready for review January 6, 2026 11:44
Copy link
Copy Markdown

@acelyc111-bot acelyc111-bot left a comment

Choose a reason for hiding this comment

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

Review: Fix Ubuntu 20.04 with OpenSSL 3 build issues

Summary: Fixes Docker build failures on Ubuntu 20.04 when OpenSSL 3 is installed by adding proper symlinks for shared libraries and setting environment variables for CMake/pkg-config/ld.

What's good:

  • Symlinks libssl.so.3 and libcrypto.so.3 into system library path — this is the key fix for the "undefined reference" errors
  • Proper env vars set (CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, LD_LIBRARY_PATH, LIBRARY_PATH, CPATH) so downstream tools can find OpenSSL 3
  • Multi-stage build pattern (stage-${OS_VERSION}) allows OS-specific config without duplication
  • Copies headers to /usr/include/openssl/ for compatibility with projects expecting system paths

Minor notes:

  • ldconfig -v changed to ldconfig — removes verbose output from build logs, good call
  • The multi-stage approach is clean but the intermediate stages (stage-rockylinux9, stage-ubuntu2204, stage-ubuntu1804) are just pass-throughs — consider adding a comment explaining they're placeholders for future OS-specific configs

Verdict: ✅ Approve — Correct fix for a real build blocker. Ready to merge.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Building Pegasus on Ubuntu 20.04 with OpenSSL 3 installed: undefined reference to ERR_peek_last_error_all

2 participants