Difference between revisions of "ABI Tracker"
Aponomarenko (talk | contribs) (Instructions on how to track ABI changes) |
Aponomarenko (talk | contribs) (→Prepare configuration file: fix for 1.1) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [[File:openssl-abi-tracker.jpg]] | ||
+ | |||
One can set up a local ABI tracker in order to automate [[Binary_Compatibility|binary compatibility]] analysis for sequential releases of the OpenSSL by following the instructions below. | One can set up a local ABI tracker in order to automate [[Binary_Compatibility|binary compatibility]] analysis for sequential releases of the OpenSSL by following the instructions below. | ||
Line 19: | Line 21: | ||
The referred build script (build_script/openssl.sh) is: | The referred build script (build_script/openssl.sh) is: | ||
./config -d --prefix="$INSTALL_TO" shared | ./config -d --prefix="$INSTALL_TO" shared | ||
− | sed -i -e 's/ \-O0 / /' Makefile | + | sed -i -e 's/ \-O0 / -g -Og /' Makefile |
− | sed -i -e 's/ \-g / -g -Og /' Makefile | + | sed -i -e 's/ \-g/ -g -Og/' Makefile |
make | make | ||
make install_sw | make install_sw | ||
Line 34: | Line 36: | ||
abi-tracker -build openssl.json | abi-tracker -build openssl.json | ||
− | The report | + | The report should be generated to: timeline/openssl/index.html |
− | |||
− | |||
== Daily run == | == Daily run == |
Latest revision as of 13:37, 13 September 2018
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[edit]
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[edit]
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[edit]
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[edit]
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!