# When cleaning up this file: bump API version in corresponding Makefile.am and rename corresponding debian/lib*.install
# according to https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info
# In short:
# LIBVERSION=c:r:a
# If the library source code has changed at all since the last update, then increment revision: c:r + 1:a.
# If any interfaces have been added, removed, or changed since the last update: c + 1:0:0.
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library	what			description / commit summary line
core		msgb_queue_free()	add inline func to msgb.h
coding		gsm0503_rach_ext-encode()	add func to gsm0503_coding.h
codec		ecu.c / ecu.h			implement ECU for FR (Error Concealment Unit)
fsm		fsmc / fsm.h			added callback for graceful exit => ABI changed
gsm		gsm0480.c / gsm0480.h		the 'ss_request' struct extended with ussd_data,
						ussd_data_len, and ussd_data_dcs => ABI changed
