ABI Tracker

From OpenSSLWiki
Jump to navigationJump to search

Openssl-abi-tracker.jpg

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!