diff --git a/SOURCES/json-c-0.14-versioned-symbols.patch b/SOURCES/json-c-0.14-versioned-symbols.patch new file mode 100644 index 0000000..21a38bd --- /dev/null +++ b/SOURCES/json-c-0.14-versioned-symbols.patch @@ -0,0 +1,187 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 21e395ed3c..da0af963ed 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -325,6 +325,22 @@ if (NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")) + # XXX need cmake>=3.13 for this: + #add_link_options("-Wl,-Bsymbolic-functions") + endif() ++ ++ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym" "TEST { global: *; };") ++ list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym") ++ check_c_source_compiles( ++ " ++ int main (void) ++ { ++ return 0; ++ } ++ " ++ VERSION_SCRIPT_WORKS ++ ) ++ list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym") ++ if (VERSION_SCRIPT_WORKS) ++ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/json-c.sym") ++ endif() + endif() + + if ($ENV{VALGRIND}) +diff --git a/json-c.sym b/json-c.sym +new file mode 100644 +index 0000000000..bf78792b7e +--- /dev/null ++++ b/json-c.sym +@@ -0,0 +1,153 @@ ++JSONC_0.14 { ++ global: ++ _json_c_set_last_err; ++ _json_c_strerror; ++ _json_c_strerror_enable; ++ 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_c_get_random_seed; ++ json_c_object_sizeof; ++ json_c_set_serialization_double_format; ++ json_c_shallow_copy_default; ++ json_c_version; ++ 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; ++ json_object_array_del_idx; ++ json_object_array_get_idx; ++ json_object_array_length; ++ json_object_array_put_idx; ++ json_object_array_sort; ++ json_object_deep_copy; ++ json_object_double_to_json_string; ++ json_object_equal; ++ json_object_free_userdata; ++ json_object_from_fd; ++ json_object_from_fd_ex; ++ json_object_from_file; ++ json_object_get; ++ json_object_get_array; ++ json_object_get_boolean; ++ json_object_get_double; ++ json_object_get_int64; ++ json_object_get_int; ++ json_object_get_object; ++ json_object_get_string; ++ json_object_get_string_len; ++ json_object_get_type; ++ json_object_get_uint64; ++ json_object_get_userdata; ++ json_object_int_inc; ++ json_object_is_type; ++ json_object_iter_begin; ++ json_object_iter_end; ++ json_object_iter_equal; ++ json_object_iter_init_default; ++ json_object_iter_next; ++ json_object_iter_peek_name; ++ json_object_iter_peek_value; ++ json_object_new_array; ++ json_object_new_boolean; ++ json_object_new_double; ++ json_object_new_double_s; ++ json_object_new_int64; ++ json_object_new_int; ++ json_object_new_null; ++ json_object_new_object; ++ json_object_new_string; ++ json_object_new_string_len; ++ json_object_new_uint64; ++ json_object_object_add; ++ json_object_object_add_ex; ++ json_object_object_del; ++ json_object_object_get; ++ json_object_object_get_ex; ++ json_object_object_length; ++ json_object_put; ++ json_object_set_boolean; ++ json_object_set_double; ++ json_object_set_int64; ++ json_object_set_int; ++ json_object_set_serializer; ++ json_object_set_string; ++ json_object_set_string_len; ++ json_object_set_uint64; ++ json_object_set_userdata; ++ json_object_to_fd; ++ json_object_to_file; ++ json_object_to_file_ext; ++ json_object_to_json_string; ++ 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; ++ json_pointer_setf; ++ json_tokener_error_desc; ++ json_tokener_free; ++ json_tokener_get_error; ++ json_tokener_get_parse_end; ++ json_tokener_new; ++ json_tokener_new_ex; ++ json_tokener_parse; ++ json_tokener_parse_ex; ++ json_tokener_parse_verbose; ++ json_tokener_reset; ++ json_tokener_set_flags; ++ json_type_to_name; ++ json_util_get_last_err; ++ lh_char_equal; ++ 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: ++ *; ++}; ++ ++JSONC_0.15 { ++ global: ++ array_list_new2; ++ array_list_shrink; ++ json_object_array_shrink; ++ json_object_new_array_ext; ++} JSONC_0.14; + diff --git a/SPECS/json-c.spec b/SPECS/json-c.spec index 8f976e6..f8326ae 100644 --- a/SPECS/json-c.spec +++ b/SPECS/json-c.spec @@ -26,7 +26,7 @@ Name: json-c Version: 0.14 -Release: 10%{?dist} +Release: 11%{?dist} Summary: JSON implementation in C License: MIT @@ -41,6 +41,9 @@ Patch0004: %{url}/pull/618.patch#/%{name}-0.14-test_deep_copy_fix_assertion Patch0005: %{url}/pull/619.patch#/%{name}-0.14-cmake_fix_out_of_tree_build_for_Doxygen_documentation.patch Patch0006: %{url}/pull/622.patch#/%{name}-0.14-move_Doxyfile_into_doc_subdir.patch Patch0007: %{url}/commit/4a546e7b2f471157c6f479df1ef687864fcbd89e.patch#/%{name}-0.14-arraylist_optimizations.patch +# Start providing versioned symbols +# rhbz#2001067 +Patch0008: json-c-0.14-versioned-symbols.patch BuildRequires: cmake BuildRequires: gcc @@ -147,6 +150,10 @@ unset USE_VALGRIND %changelog +* Tue Sep 14 2021 Tomas Korbar - 0.14-11 +- Start providing versioned symbols +- Resolves: rhbz#2001067 + * Mon Aug 09 2021 Mohan Boddu - 0.14-10 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688