ABI Tracker
One can set up a local ABI tracker in order to automate binary compatibility analysis for sequential releases of the OpenSSL by following the instructions below.
You can find live setup of this tracker on this page maintained by Andrey P.
Prepare configuration file
The initial point is to create main configuration file (openssl.json):
{ "Name": "openssl", "Title": "OpenSSL", "SourceUrl": "https://www.openssl.org/source/", "Git": "https://github.com/openssl/openssl.git", "Maintainer": "Maintainer Name", "BuildScript": "build_script/openssl.sh", "SkipObjects": [ "engines/" ], "HeadersDiff": "Off", "LetterReleases": "On" }
The referred build script (build_script/openssl.sh) is:
./config -d --prefix="$INSTALL_TO" shared sed -i -e 's/ \-O0 / -g -Og /' Makefile sed -i -e 's/ \-g/ -g -Og/' Makefile make make install_sw
Download and build previous releases
The second step is to install abi-monitor tool and then download and build sources of previous releases of the library:
abi-monitor -get -build openssl.json
This command will extend the openssl.json file with the list of built versions.
Perform the analysis
The final step is to install abi-tracker, abi-compliance-checker and abi-dumper tools and then create ABI dumps and compatibility reports for all built versions of the library:
abi-tracker -build openssl.json
The report should be generated to: timeline/openssl/index.html
Daily run
To perform daily update of the report you can add these commands to your crontab:
abi-monitor -get -build-new openssl.json # download and build new releases only abi-tracker -build openssl.json # update ABI dumps and report
Enjoy!