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