Source: ncurses Version: 5.9+20150516-2 Severity: wishlist Control: block 230990 by -1
For about half a year ncurses has a "--with-versioned-syms" configure option that enables symbol versioning. We should use this option in the upcoming ncurses 6.0 release and rebuild all reverse dependencies before the Stretch release so that we can switch to the new ABI afterwards. When using this option, quite a lot of internal symbols which are not part of the API are no longer exported, see the attached list. Fortunately according to codesearch.debian.net, very few packages seem to use any of those symbols: - fpc, in fpcsrc/packages/ncurses/src/form.pp, apparently declares _nc_Default_Form and _nc_Default_Field. Probably nobody really uses those, but I don't really have a clue of Pascal. - cmake has a lot of hits since it includes a very outdated copy of the form library which is apparently unused. The /usr/bin/ccmake binary from the cmake-curses-gui package is linked with the system form library and does not use any private symbols from it. - libncursesada and haskell_ncurses declare _nc_has_mouse, but only if NCURSES_VERSION_PATCH < 20081122. Prior to that date, _nc_has_mouse was actually part of the API so its removal might break some old programs. This might be a case where the symbol should actually be exported in order not to break the ABI.
_nc_Calculate_Item_Length_and_Width _nc_Calculate_Text_Width _nc_Connect_Items _nc_Copy_Argument _nc_Copy_Type _nc_Default_Field _nc_Default_FieldType _nc_Default_Form _nc_Default_Item _nc_Default_Menu _nc_Disconnect_Items _nc_Draw_Menu _nc_First_Active_Field _nc_Free_Argument _nc_Free_Type _nc_Internal_Validation _nc_Link_Items _nc_Make_Argument _nc_Match_Next_Character_In_Item_Name _nc_New_TopRow_and_CurrentItem _nc_Position_Form_Cursor _nc_Post_Item _nc_Refresh_Current_Field _nc_Set_Current_Field _nc_Set_Form_Page _nc_Show_Menu _nc_Synchronize_Attributes _nc_Synchronize_Options _nc_Widen_String _nc_baudrate _nc_build_wch _nc_captoinfo _nc_comment_end _nc_comment_start _nc_copy_entry _nc_curr_file_pos _nc_curr_token _nc_delink_entry _nc_do_color _nc_expand_try _nc_expanded _nc_format_slks _nc_free_entry _nc_freewin _nc_fty_generic _nc_get_fieldbuffer _nc_get_hash_info _nc_get_token _nc_has_mouse _nc_hash_map _nc_hashed_db _nc_init_entry _nc_init_keytry _nc_init_wacs _nc_insert_ch _nc_insert_wch _nc_is_charable _nc_keyname _nc_make_oldhash _nc_makenew _nc_menu_cursor_pos _nc_merge_entry _nc_msec_cost _nc_mvcur _nc_mvcur_init _nc_mvcur_resume _nc_mvcur_wrap _nc_nulls_sent _nc_oldnums _nc_ospeed _nc_panic_mode _nc_parse_entry _nc_printf_string _nc_push_token _nc_read_termcap _nc_remove_key _nc_remove_string _nc_render _nc_reset_colors _nc_save_str _nc_screen_init _nc_screen_resume _nc_screen_wrap _nc_scroll_oldhash _nc_scroll_optimize _nc_scroll_window _nc_scrolln _nc_setenv_num _nc_setup_tinfo _nc_setupscreen _nc_signal_handler _nc_slk_initialize _nc_start_line _nc_synchook _nc_tinfo_cmdch _nc_to_char _nc_to_widechar _nc_unctrl _nc_ungetch _nc_varargs _nc_vsscanf _nc_waddch_nosync _nc_wrap_entry

