Automate exported constant management process #314
Closed
+2,261
−804
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Exported libssl/libcrypto constants are currently managed using
helper_script/regen_openssl_constants.pl
, which still involves following a lot of cumbersome and error-prone manual steps. See #313 for a detailed discussion of the problems with this script.Fully automate the constant management process with a new script,
helper_script/update-exported-constants
, which reads a list of libssl/libcrypto constants fromconstants.txt
and automatically generates or updates the necessary files in the repository. Make the following changes to accommodate the new script:regen_openssl_constants.pl
from the Makefile, but don't replace them with invocations of update-exported-constants: the new script is intended to be run as part of a commit that adds or removes constants, and should not need to be run by end users of the module.lib/Net/SSLeay.pm
, split the list of exportable symbols into two categories, defined in separate arrays: one for constants (which is automatically updated whenupdate-exported-constants
runs), and one for functions (which will continue to be managed manually).lib/Net/SSLeay.pod
, signpost the location of the code block containing the constants list by surrounding it with Pod comments; the Pod between these comments is automatically updated whenupdate-exported-constants
runs.Closes #313.