This change regenerates the Makefiles in an automated manner using the
output from gmake and some semi-complex templating logic written in
python using the Jinja2 templating framework.
Sources and headers have been moved to more appropriate areas and the
Makefiles have been partitioned in a way to better represent how the
upstream build functions in terms of the [intermediate] provided
libraries, e.g., libcommon.a, libdefault.a, liblegacy.a, etc.
This corrects the legacy provider by ensuring that legacy algorithms are
no longer loaded as part of the base/default providers, but instead are
only loaded as part of the legacy provider (where they should be). This
helps ensure that algorithms deemed legacy (generally insecure) aren't
enabled in libcrypto, etc, in the default configuration. Loading the
legacy provider (added in 3.0) has required one of the following be met:
- The administrator must specify the needed config file entries to load the base and legacy providers (if legacy is needed).
- Developers must explicitly load the base and legacy providers.
This change also builds in locale specific crypto providers like aria
(South Korea), sm2 (China), etc. This was done to ensure that the
version of libcrypto/libssl shipped with FreeBSD is universally
applicable to more global users.
Relnotes: yes