Difference between revisions of "ABI Tracker"

From OpenSSLWiki
Jump to navigationJump to search
(Instructions on how to track ABI changes)
 
(Move the picture up to the top of the page)
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 34: Line 36:
 
  abi-tracker -build openssl.json
 
  abi-tracker -build openssl.json
  
The report (timeline/openssl/index.html) should look like:
+
The report should be generated to: timeline/openssl/index.html
 
 
[[File:openssl-abi-tracker.jpg]]
 
  
 
== Daily run ==
 
== Daily run ==

Revision as of 12:29, 17 December 2015

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

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 / /' 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!