xref: /aosp_15_r20/external/libwebsockets/contrib/abi/README.md (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
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