From 6fa8b7ff4205b9f88d71eb63a3629eb7bf2f4f86 Mon Sep 17 00:00:00 2001 From: Eric Haszlakiewicz Date: Sat, 4 Jul 2020 18:58:56 +0000 Subject: [PATCH] Don't export json-c symbols starting with an underscore, put deprecated exports into a "JSONC_PRIVATE" version, and note stuff to do during releases. See also PR #639 and issue #621 --- RELEASE_CHECKLIST.txt | 7 ++++ json-c.sym | 76 +++++++++++++++++++++++++------------------ 2 files changed, 51 insertions(+), 32 deletions(-) diff --git a/RELEASE_CHECKLIST.txt b/RELEASE_CHECKLIST.txt index 9ad708c..20c08fd 100644 --- a/RELEASE_CHECKLIST.txt +++ b/RELEASE_CHECKLIST.txt @@ -18,6 +18,8 @@ * https://github.com/lvc/abi-compliance-checker * If the new release is not backwards compatible, then this is a MAJOR release. * Mention removed features in ChangeLog + * Consider re-adding backwards compatible support, through symbol + aliases and appropriate entries in json-c.sym * Update the AUTHORS file * Exclude mentioning changes that have already been included in a point release of the previous release branch. @@ -63,6 +65,11 @@ to git commit -a -m "Bump version to ${release}" +If we're doing a major release (SONAME bump), also bump the version + of ALL symbols in json-c.sym. + See explanation at https://github.com/json-c/json-c/issues/621 + More info at: https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf + ------------ Generate the doxygen documentation: diff --git a/json-c.sym b/json-c.sym index bf78792..a348204 100644 --- a/json-c.sym +++ b/json-c.sym @@ -1,17 +1,53 @@ -JSONC_0.14 { - global: - _json_c_set_last_err; - _json_c_strerror; - _json_c_strerror_enable; + +/* + * Symbol versioning for libjson-c. + * All exported symbols must be listed here. + * + * See + * https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf + */ + +/* + * Symbols in JSONC_PRIVATE are exported for historical + * reasons, but should not be used outside of json-c. + */ +JSONC_PRIVATE { array_list_add; - array_list_bsearch; array_list_del_idx; array_list_free; - array_list_get_idx; - array_list_length; array_list_new; array_list_put_idx; array_list_sort; + json_hex_chars; + json_parse_double; + json_parse_int64; + json_parse_uint64; + lh_table_delete; + lh_table_delete_entry; + lh_table_free; + lh_table_insert; + lh_table_insert_w_hash; + lh_table_new; + lh_table_resize; + mc_debug; + mc_error; + mc_get_debug; + mc_info; + mc_set_debug; + mc_set_syslog; + printbuf_free; + printbuf_memappend; + printbuf_memset; + printbuf_new; + printbuf_reset; + sprintbuf; +}; + +JSONC_0.14 { + global: + array_list_bsearch; + array_list_get_idx; + array_list_length; json_c_get_random_seed; json_c_object_sizeof; json_c_set_serialization_double_format; @@ -20,7 +56,6 @@ JSONC_0.14 { json_c_version_num; json_c_visit; json_global_set_string_hash; - json_hex_chars; json_number_chars; json_object_array_add; json_object_array_bsearch; @@ -91,9 +126,6 @@ JSONC_0.14 { json_object_to_json_string_ext; json_object_to_json_string_length; json_object_userdata_to_json_string; - json_parse_double; - json_parse_int64; - json_parse_uint64; json_pointer_get; json_pointer_getf; json_pointer_set; @@ -115,30 +147,10 @@ JSONC_0.14 { lh_kchar_table_new; lh_kptr_table_new; lh_ptr_equal; - lh_table_delete; - lh_table_delete_entry; - lh_table_free; - lh_table_insert; - lh_table_insert_w_hash; lh_table_length; - lh_table_lookup; lh_table_lookup_entry; lh_table_lookup_entry_w_hash; lh_table_lookup_ex; - lh_table_new; - lh_table_resize; - mc_debug; - mc_error; - mc_get_debug; - mc_info; - mc_set_debug; - mc_set_syslog; - printbuf_free; - printbuf_memappend; - printbuf_memset; - printbuf_new; - printbuf_reset; - sprintbuf; local: *; -- 2.50.0