1*1c60b9acSAndroid Build Coastguard WorkerABI Compatility Tracking 2*1c60b9acSAndroid Build Coastguard Worker======================== 3*1c60b9acSAndroid Build Coastguard Worker 4*1c60b9acSAndroid Build Coastguard WorkerThis directory contains files that can be used to generate an ABI compatibility 5*1c60b9acSAndroid Build Coastguard Workertimeline for libwebsockets. This gives users an idea of where the library has 6*1c60b9acSAndroid Build Coastguard Workerchanged and can be used by the developers to see when incompatible changes have 7*1c60b9acSAndroid Build Coastguard Workerbeen introduced and either increase the library SO version or fix the changes. 8*1c60b9acSAndroid Build Coastguard Worker 9*1c60b9acSAndroid Build Coastguard WorkerThe tools used are the abi-\* family available at https://github.com/lvc/ and 10*1c60b9acSAndroid Build Coastguard Workersome example output is here: http://abi-laboratory.pro/tracker/timeline/libuv/ 11*1c60b9acSAndroid Build Coastguard Worker 12*1c60b9acSAndroid Build Coastguard WorkerThe tools download existing source tarballs and git repository to generate this 13*1c60b9acSAndroid Build Coastguard Workerdata, so past versions are compared and in-development code can be compared as 14*1c60b9acSAndroid Build Coastguard Workerwell. 15*1c60b9acSAndroid Build Coastguard Worker 16*1c60b9acSAndroid Build Coastguard WorkerAlthough the application is not being included here, FYI the license is dual 17*1c60b9acSAndroid Build Coastguard WorkerLGPL2 / GPL2 at your choice. 18*1c60b9acSAndroid Build Coastguard Worker 19*1c60b9acSAndroid Build Coastguard Worker 20*1c60b9acSAndroid Build Coastguard WorkerInstallation 21*1c60b9acSAndroid Build Coastguard Worker------------ 22*1c60b9acSAndroid Build Coastguard Worker 23*1c60b9acSAndroid Build Coastguard WorkerThe abi monitoring stuff is now packaged in, eg, fedora, which is a lot 24*1c60b9acSAndroid Build Coastguard Workereasier than using the helper script. 25*1c60b9acSAndroid Build Coastguard Worker 26*1c60b9acSAndroid Build Coastguard Worker``` 27*1c60b9acSAndroid Build Coastguard Worker# dnf install abi-tracker vtable-dumper 28*1c60b9acSAndroid Build Coastguard Worker 29*1c60b9acSAndroid Build Coastguard WorkerOtherwise, the author provides an "easy way" to install the various tools he provides: 30*1c60b9acSAndroid Build Coastguard Worker 31*1c60b9acSAndroid Build Coastguard Worker git clone https://github.com/lvc/installer 32*1c60b9acSAndroid Build Coastguard Worker cd installer 33*1c60b9acSAndroid Build Coastguard Worker make prefix=/usr/local target=abi-tracker 34*1c60b9acSAndroid Build Coastguard Worker 35*1c60b9acSAndroid Build Coastguard WorkerIt will also list any dependencies that you need to install through normal 36*1c60b9acSAndroid Build Coastguard Workermeans. (Although in the case of needing "elfutils-libelf-devel", it may 37*1c60b9acSAndroid Build Coastguard Workercrash during install of vtable-dumper without giving a nice list) 38*1c60b9acSAndroid Build Coastguard Worker 39*1c60b9acSAndroid Build Coastguard Worker 40*1c60b9acSAndroid Build Coastguard WorkerGenerating the output 41*1c60b9acSAndroid Build Coastguard Worker--------------------- 42*1c60b9acSAndroid Build Coastguard Worker 43*1c60b9acSAndroid Build Coastguard WorkerUse the `lws-abi-update.sh` script to download the source files, build them and 44*1c60b9acSAndroid Build Coastguard Workergenerate the output html. The output can be deployed to a directory on a web 45*1c60b9acSAndroid Build Coastguard Workerserver for example. Modify the commented line in lws-abi-update.sh to do this. 46*1c60b9acSAndroid Build Coastguard Worker 47*1c60b9acSAndroid Build Coastguard WorkerAs it is configured, lws-abi-update.sh will only download new source - ones 48*1c60b9acSAndroid Build Coastguard Workerthat it hasn't built before - so is suitable for use with a cron job. 49*1c60b9acSAndroid Build Coastguard Worker 50*1c60b9acSAndroid Build Coastguard Worker 51*1c60b9acSAndroid Build Coastguard WorkerViewing the output 52*1c60b9acSAndroid Build Coastguard Worker------------------ 53*1c60b9acSAndroid Build Coastguard Worker 54*1c60b9acSAndroid Build Coastguard WorkerThe best place to start looking at the data is the `timeline/libwebsockets` 55*1c60b9acSAndroid Build Coastguard Workerdirectory. If your path is on a web server, navigate there, otherwise you could 56*1c60b9acSAndroid Build Coastguard Workertry: 57*1c60b9acSAndroid Build Coastguard Worker 58*1c60b9acSAndroid Build Coastguard Worker lynx timeline/libwebsockets/ 59