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

Reply via email to