draconisplusplus/subprojects/openssl-3.0.8
2025-02-20 14:49:18 -05:00
..
apps start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
Configurations start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
crypto start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
demos start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
doc start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
engines start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
external/perl start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
fuzz start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
generated-config/archs start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
include start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
ms start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
os-dep start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
providers start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
ssl start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
test start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
tools start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
util start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
VMS start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
.meson-subproject-wrap-hash.txt start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
ACKNOWLEDGEMENTS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
appveyor.yml start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
AUTHORS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
build.info start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
CHANGES.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
config start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
config.com start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
configdata.pm.in start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
Configure start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
CONTRIBUTING.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
crypto.def start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
e_os.h start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
FAQ.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
generate_def.py start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
generate_gypi.pl.patch start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
generator.sh start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
HACKING.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
INSTALL.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
LICENSE.build start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
LICENSE.txt start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
meson.build start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
meson.build.tmpl start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
meson_options.txt start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NEWS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-ANDROID.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-DJGPP.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-NONSTOP.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-PERL.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-UNIX.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-VALGRIND.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-VMS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
NOTES-WINDOWS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
README-ENGINES.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
README-FIPS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
README-PROVIDERS.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
README.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
ssl.def start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
SUPPORT.md start doing wraps and subprojects 2025-02-20 14:49:18 -05:00
VERSION.dat start doing wraps and subprojects 2025-02-20 14:49:18 -05:00

OpenSSL for Meson

How this works?

TL;DR: this wrap abuses OpenSSL build system within Node.js.

Node.js has OpenSSL built-in with additional scripting around it to generate configs for GYP build system and thus bypass OpenSSL's native build system.

This wrap abuses that feature by replacing bundled OpenSSL with upstream version, patching mentioned mechanism to also generate a bunch of meson.build files for different platforms and uses top-level meson.build to wire everything together.

During installation unmodified Node.js tarball will be downloaded, its bundled OpenSSL will be replaced with upstream version and patched with meson.build files, enabling ability to build OpenSSL with Meson 🎉.

How to update to newer release

Unless Node.js changes the mechanism we abuse above (unlikely, but possible, please check the diff between corresponding versions), generator.sh file can be used.

Just update OpenSSL version in wrap file, update Node.js version in generator.sh file to such that contains matching OpenSSL version bundled with it and run generator.sh from the root of the repository:

subprojects/packagefiles/openssl/generator.sh

Generated files in generated-config directory, after which you can try to build it. create_release.py will run it as part of the release process, so it doesn't need to be included in Git.

Acknowledgement

This OpenSSL port wouldn't be possible without Node.js project under MIT license, whose OpenSSL build system was decomposed and heavily refactored.