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