API break / so versioning



Hi,

in Debian we have a nice facility which allows to track the exported symbols of a shared library. Attached are the symbols files of libnm-util and libnm-glib for current NM 0.6.6 and NM 0.7.0~svn3712.

What you can easily notice (by running a diff), ist that not only a lot of symbols were added, but also quite a few were removed, which could result in application crashes. In case of an API break, you usually bump the SOVERSION, which leads to the more general question, if NM shouldn't start using proper soversioning [1].

I also wondered, if the separate library libnm_glib_vpn.so.0 is really necessary or should be folded into libnm_glib.so.0.

And last but not least, skimming through libnm-glib0-0.7.0.symbols, there are quite a few autogenerated symbols like
nm_marshal_VOID__OBJECT...
Are those expected to be part of the public API?

Please share your comments.

Cheers,
Michael


[1] http://www.gnu.org/software/libtool/manual.html#Versioning
--
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
libnm_glib.so.0 libnm-glib0 #MINVER#
 libnm_glib_get_network_state Base 0.6.4
 libnm_glib_init Base 0.6.4
 libnm_glib_register_callback Base 0.6.4
 libnm_glib_shutdown Base 0.6.4
 libnm_glib_unregister_callback Base 0.6.4
 nm_dbus_escape_object_path_item Base 0.6.6
 nm_dbus_unescape_object_path Base 0.6.4
 nm_utils_essid_to_utf8 Base 0.6.4
libnm_glib.so.0 libnm-glib0 #MINVER#
 dbus_glib_marshal_nm_exported_connection_BOOLEAN__POINTER_POINTER Base 0.7.0~svn3712
 dbus_glib_marshal_nm_exported_connection_VOID__BOXED_POINTER Base 0.7.0~svn3712
 dbus_glib_marshal_nm_exported_connection_VOID__STRING_BOXED_BOOLEAN_POINTER Base 0.7.0~svn3712
 dbus_glib_marshal_nm_settings_BOOLEAN__POINTER_POINTER Base 0.7.0~svn3712
 dbus_glib_nm_exported_connection_object_info Base 0.7.0~svn3712
 dbus_glib_nm_settings_object_info Base 0.7.0~svn3712
 libnm_glib_get_network_state Base 0.6.4
 libnm_glib_init Base 0.6.4
 libnm_glib_register_callback Base 0.6.4
 libnm_glib_shutdown Base 0.6.4
 libnm_glib_unregister_callback Base 0.6.4
 nm_access_point_get_flags Base 0.7.0~svn3712
 nm_access_point_get_frequency Base 0.7.0~svn3712
 nm_access_point_get_hw_address Base 0.7.0~svn3712
 nm_access_point_get_max_bitrate Base 0.7.0~svn3712
 nm_access_point_get_mode Base 0.7.0~svn3712
 nm_access_point_get_rsn_flags Base 0.7.0~svn3712
 nm_access_point_get_ssid Base 0.7.0~svn3712
 nm_access_point_get_strength Base 0.7.0~svn3712
 nm_access_point_get_type Base 0.7.0~svn3712
 nm_access_point_get_wpa_flags Base 0.7.0~svn3712
 nm_access_point_new Base 0.7.0~svn3712
 nm_active_connection_get_connection Base 0.7.0~svn3712
 nm_active_connection_get_default Base 0.7.0~svn3712
 nm_active_connection_get_devices Base 0.7.0~svn3712
 nm_active_connection_get_scope Base 0.7.0~svn3712
 nm_active_connection_get_service_name Base 0.7.0~svn3712
 nm_active_connection_get_shared_connection Base 0.7.0~svn3712
 nm_active_connection_get_shared_service_name Base 0.7.0~svn3712
 nm_active_connection_get_specific_object Base 0.7.0~svn3712
 nm_active_connection_get_state Base 0.7.0~svn3712
 nm_active_connection_get_type Base 0.7.0~svn3712
 nm_active_connection_new Base 0.7.0~svn3712
 nm_cdma_device_get_type Base 0.7.0~svn3712
 nm_cdma_device_new Base 0.7.0~svn3712
 nm_client_activate_connection Base 0.7.0~svn3712
 nm_client_deactivate_connection Base 0.7.0~svn3712
 nm_client_get_active_connections Base 0.7.0~svn3712
 nm_client_get_device_by_path Base 0.7.0~svn3712
 nm_client_get_devices Base 0.7.0~svn3712
 nm_client_get_manager_running Base 0.7.0~svn3712
 nm_client_get_state Base 0.7.0~svn3712
 nm_client_get_type Base 0.7.0~svn3712
 nm_client_new Base 0.7.0~svn3712
 nm_client_sleep Base 0.7.0~svn3712
 nm_client_wireless_get_enabled Base 0.7.0~svn3712
 nm_client_wireless_hardware_get_enabled Base 0.7.0~svn3712
 nm_client_wireless_set_enabled Base 0.7.0~svn3712
 nm_dbus_connection_get_type Base 0.7.0~svn3712
 nm_dbus_connection_new Base 0.7.0~svn3712
 nm_dbus_get_int_property Base 0.7.0~svn3712
 nm_dbus_get_object_path_property Base 0.7.0~svn3712
 nm_dbus_get_property Base 0.7.0~svn3712
 nm_dbus_get_string_property Base 0.7.0~svn3712
 nm_dbus_get_uint_property Base 0.7.0~svn3712
 nm_dbus_introspect Base 0.7.0~svn3712
 nm_dbus_set_property Base 0.7.0~svn3712
 nm_dbus_settings_get_connection_by_path Base 0.7.0~svn3712
 nm_dbus_settings_get_type Base 0.7.0~svn3712
 nm_dbus_settings_new Base 0.7.0~svn3712
 nm_dbus_settings_system_add_connection Base 0.7.0~svn3712
 nm_dbus_settings_system_get_type Base 0.7.0~svn3712
 nm_dbus_settings_system_get_unmanaged_devices Base 0.7.0~svn3712
 nm_dbus_settings_system_new Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_access_point_by_path Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_access_points Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_active_access_point Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_bitrate Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_capabilities Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_hw_address Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_mode Base 0.7.0~svn3712
 nm_device_802_11_wireless_get_type Base 0.7.0~svn3712
 nm_device_802_11_wireless_new Base 0.7.0~svn3712
 nm_device_802_11_wireless_set_wireless_enabled Base 0.7.0~svn3712
 nm_device_802_3_ethernet_get_carrier Base 0.7.0~svn3712
 nm_device_802_3_ethernet_get_hw_address Base 0.7.0~svn3712
 nm_device_802_3_ethernet_get_speed Base 0.7.0~svn3712
 nm_device_802_3_ethernet_get_type Base 0.7.0~svn3712
 nm_device_802_3_ethernet_new Base 0.7.0~svn3712
 nm_device_get_capabilities Base 0.7.0~svn3712
 nm_device_get_driver Base 0.7.0~svn3712
 nm_device_get_iface Base 0.7.0~svn3712
 nm_device_get_ip4_config Base 0.7.0~svn3712
 nm_device_get_managed Base 0.7.0~svn3712
 nm_device_get_product Base 0.7.0~svn3712
 nm_device_get_state Base 0.7.0~svn3712
 nm_device_get_type Base 0.7.0~svn3712
 nm_device_get_udi Base 0.7.0~svn3712
 nm_device_get_vendor Base 0.7.0~svn3712
 nm_device_new Base 0.7.0~svn3712
 nm_exported_connection_delete Base 0.7.0~svn3712
 nm_exported_connection_get_connection Base 0.7.0~svn3712
 nm_exported_connection_get_id Base 0.7.0~svn3712
 nm_exported_connection_get_type Base 0.7.0~svn3712
 nm_exported_connection_new Base 0.7.0~svn3712
 nm_exported_connection_register_object Base 0.7.0~svn3712
 nm_exported_connection_signal_removed Base 0.7.0~svn3712
 nm_exported_connection_signal_updated Base 0.7.0~svn3712
 nm_exported_connection_update Base 0.7.0~svn3712
 nm_gsm_device_get_type Base 0.7.0~svn3712
 nm_gsm_device_new Base 0.7.0~svn3712
 nm_ip4_config_get_addresses Base 0.7.0~svn3712
 nm_ip4_config_get_domains Base 0.7.0~svn3712
 nm_ip4_config_get_hostname Base 0.7.0~svn3712
 nm_ip4_config_get_nameservers Base 0.7.0~svn3712
 nm_ip4_config_get_nis_domain Base 0.7.0~svn3712
 nm_ip4_config_get_nis_servers Base 0.7.0~svn3712
 nm_ip4_config_get_type Base 0.7.0~svn3712
 nm_ip4_config_new Base 0.7.0~svn3712
 nm_marshal_VOID__OBJECT_OBJECT_ENUM Base 0.7.0~svn3712
 nm_marshal_VOID__OBJECT_POINTER Base 0.7.0~svn3712
 nm_marshal_VOID__OBJECT_STRING Base 0.7.0~svn3712
 nm_marshal_VOID__OBJECT_UINT Base 0.7.0~svn3712
 nm_marshal_VOID__OBJECT_UINT_UINT Base 0.7.0~svn3712
 nm_marshal_VOID__POINTER_STRING Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_INT Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_OBJECT Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_STRING Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_STRING_POINTER Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_STRING_STRING Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_UCHAR Base 0.7.0~svn3712
 nm_marshal_VOID__STRING_UINT Base 0.7.0~svn3712
 nm_marshal_VOID__UINT_UINT Base 0.7.0~svn3712
 nm_object_array_demarshal Base 0.7.0~svn3712
 nm_object_array_get_type Base 0.7.0~svn3712
 nm_object_cache_add Base 0.7.0~svn3712
 nm_object_cache_get Base 0.7.0~svn3712
 nm_object_cache_remove_by_object Base 0.7.0~svn3712
 nm_object_cache_remove_by_path Base 0.7.0~svn3712
 nm_object_demarshal_generic Base 0.7.0~svn3712
 nm_object_get_boolean_property Base 0.7.0~svn3712
 nm_object_get_byte_array_property Base 0.7.0~svn3712
 nm_object_get_byte_property Base 0.7.0~svn3712
 nm_object_get_connection Base 0.7.0~svn3712
 nm_object_get_double_property Base 0.7.0~svn3712
 nm_object_get_int_property Base 0.7.0~svn3712
 nm_object_get_object_path_property Base 0.7.0~svn3712
 nm_object_get_path Base 0.7.0~svn3712
 nm_object_get_property Base 0.7.0~svn3712
 nm_object_get_string_property Base 0.7.0~svn3712
 nm_object_get_type Base 0.7.0~svn3712
 nm_object_get_uint_property Base 0.7.0~svn3712
 nm_object_handle_properties_changed Base 0.7.0~svn3712
 nm_object_queue_notify Base 0.7.0~svn3712
 nm_object_set_property Base 0.7.0~svn3712
 nm_settings_error_quark Base 0.7.0~svn3712
 nm_settings_get_type Base 0.7.0~svn3712
 nm_settings_list_connections Base 0.7.0~svn3712
 nm_settings_signal_new_connection Base 0.7.0~svn3712
 nm_ssid_demarshal Base 0.7.0~svn3712
 nm_ssid_get_type Base 0.7.0~svn3712
 nm_string_array_demarshal Base 0.7.0~svn3712
 nm_string_array_get_type Base 0.7.0~svn3712
 nm_uint_array_demarshal Base 0.7.0~svn3712
 nm_uint_array_get_type Base 0.7.0~svn3712
 nm_vpn_connection_get_banner Base 0.7.0~svn3712
 nm_vpn_connection_get_type Base 0.7.0~svn3712
 nm_vpn_connection_get_vpn_state Base 0.7.0~svn3712
 nm_vpn_connection_new Base 0.7.0~svn3712
libnm_glib_vpn.so.0 libnm-glib0 #MINVER#
 dbus_glib_marshal_nm_vpn_plugin_BOOLEAN__BOXED_POINTER Base 0.7.0~svn3712
 dbus_glib_marshal_nm_vpn_plugin_BOOLEAN__BOXED_POINTER_POINTER Base 0.7.0~svn3712
 dbus_glib_marshal_nm_vpn_plugin_BOOLEAN__POINTER Base 0.7.0~svn3712
 dbus_glib_marshal_nm_vpn_plugin_BOOLEAN__STRING_POINTER Base 0.7.0~svn3712
 dbus_glib_nm_vpn_plugin_object_info Base 0.7.0~svn3712
 nm_vpn_plugin_disconnect Base 0.7.0~svn3712
 nm_vpn_plugin_error_get_type Base 0.7.0~svn3712
 nm_vpn_plugin_error_quark Base 0.7.0~svn3712
 nm_vpn_plugin_failure Base 0.7.0~svn3712
 nm_vpn_plugin_get_connection Base 0.7.0~svn3712
 nm_vpn_plugin_get_state Base 0.7.0~svn3712
 nm_vpn_plugin_get_type Base 0.7.0~svn3712
 nm_vpn_plugin_set_ip4_config Base 0.7.0~svn3712
 nm_vpn_plugin_set_login_banner Base 0.7.0~svn3712
 nm_vpn_plugin_set_state Base 0.7.0~svn3712
libnm-util.so.0 libnm-util0 #MINVER#
 cipher_bin2hexstr Base 0.6.4
 cipher_default_validate_func Base 0.6.4
 cipher_hexstr2bin Base 0.6.4
 cipher_wep128_ascii_new Base 0.6.4
 cipher_wep128_hex_new Base 0.6.4
 cipher_wep128_passphrase_new Base 0.6.4
 cipher_wep64_ascii_new Base 0.6.4
 cipher_wep64_hex_new Base 0.6.4
 cipher_wep64_passphrase_new Base 0.6.4
 cipher_wpa_psk_hex_new Base 0.6.4
 cipher_wpa_psk_hex_set_we_cipher Base 0.6.4
 cipher_wpa_psk_passphrase_new Base 0.6.4
 cipher_wpa_psk_passphrase_set_we_cipher Base 0.6.4
 dbus_method_dispatcher_dispatch Base 0.6.4
 dbus_method_dispatcher_new Base 0.6.4
 dbus_method_dispatcher_ref Base 0.6.4
 dbus_method_dispatcher_register_method Base 0.6.4
 dbus_method_dispatcher_unref Base 0.6.4
 hmac_sha1 Base 0.6.4
 hmac_sha1_vector Base 0.6.4
 ieee_802_11_cipher_get_input_max Base 0.6.4
 ieee_802_11_cipher_get_input_min Base 0.6.4
 ieee_802_11_cipher_get_we_cipher Base 0.6.4
 ieee_802_11_cipher_hash Base 0.6.4
 ieee_802_11_cipher_ref Base 0.6.4
 ieee_802_11_cipher_refcount Base 0.6.4
 ieee_802_11_cipher_unref Base 0.6.4
 ieee_802_11_cipher_validate Base 0.6.4
 nmu_create_dbus_error_message Base 0.6.4
 nmu_security_deserialize_leap Base 0.6.5
 nmu_security_deserialize_wep Base 0.6.4
 nmu_security_deserialize_wpa_eap Base 0.6.4
 nmu_security_deserialize_wpa_psk Base 0.6.4
 nmu_security_serialize_leap Base 0.6.5
 nmu_security_serialize_leap_with_cipher Base 0.6.5
 nmu_security_serialize_none_with_cipher Base 0.6.4
 nmu_security_serialize_wep Base 0.6.4
 nmu_security_serialize_wep_with_cipher Base 0.6.4
 nmu_security_serialize_wpa_eap Base 0.6.4
 nmu_security_serialize_wpa_eap_with_cipher Base 0.6.4
 nmu_security_serialize_wpa_psk Base 0.6.4
 nmu_security_serialize_wpa_psk_with_cipher Base 0.6.4
 pbkdf2_sha1 Base 0.6.4
 sha1_mac Base 0.6.4
 sha1_prf Base 0.6.4
 sha1_transform Base 0.6.4
 sha1_vector Base 0.6.4
libnm-util.so.0 libnm-util0 #MINVER#
 crypto_decrypt Base 0.7.0~svn3712
 crypto_deinit Base 0.7.0~svn3712
 crypto_get_private_key Base 0.7.0~svn3712
 crypto_init Base 0.7.0~svn3712
 crypto_load_and_verify_certificate Base 0.7.0~svn3712
 crypto_md5_hash Base 0.7.0~svn3712
 crypto_verify_cert Base 0.7.0~svn3712
 nm_connection_add_setting Base 0.7.0~svn3712
 nm_connection_clear_secrets Base 0.7.0~svn3712
 nm_connection_compare Base 0.7.0~svn3712
 nm_connection_create_setting Base 0.7.0~svn3712
 nm_connection_dump Base 0.7.0~svn3712
 nm_connection_for_each_setting_value Base 0.7.0~svn3712
 nm_connection_get_path Base 0.7.0~svn3712
 nm_connection_get_scope Base 0.7.0~svn3712
 nm_connection_get_setting Base 0.7.0~svn3712
 nm_connection_get_setting_by_name Base 0.7.0~svn3712
 nm_connection_get_type Base 0.7.0~svn3712
 nm_connection_lookup_setting_type Base 0.7.0~svn3712
 nm_connection_need_secrets Base 0.7.0~svn3712
 nm_connection_new Base 0.7.0~svn3712
 nm_connection_new_from_hash Base 0.7.0~svn3712
 nm_connection_remove_setting Base 0.7.0~svn3712
 nm_connection_replace_settings Base 0.7.0~svn3712
 nm_connection_set_path Base 0.7.0~svn3712
 nm_connection_set_scope Base 0.7.0~svn3712
 nm_connection_to_hash Base 0.7.0~svn3712
 nm_connection_update_secrets Base 0.7.0~svn3712
 nm_connection_verify Base 0.7.0~svn3712
 nm_crypto_error_quark Base 0.7.0~svn3712
 nm_param_spec_specialized Base 0.7.0~svn3712
 nm_param_spec_specialized_get_type Base 0.7.0~svn3712
 nm_setting_802_1x_get_type Base 0.7.0~svn3712
 nm_setting_802_1x_new Base 0.7.0~svn3712
 nm_setting_802_1x_set_ca_cert Base 0.7.0~svn3712
 nm_setting_802_1x_set_client_cert Base 0.7.0~svn3712
 nm_setting_802_1x_set_phase2_ca_cert Base 0.7.0~svn3712
 nm_setting_802_1x_set_phase2_client_cert Base 0.7.0~svn3712
 nm_setting_802_1x_set_phase2_private_key Base 0.7.0~svn3712
 nm_setting_802_1x_set_private_key Base 0.7.0~svn3712
 nm_setting_cdma_get_type Base 0.7.0~svn3712
 nm_setting_cdma_new Base 0.7.0~svn3712
 nm_setting_clear_secrets Base 0.7.0~svn3712
 nm_setting_compare Base 0.7.0~svn3712
 nm_setting_connection_get_type Base 0.7.0~svn3712
 nm_setting_connection_new Base 0.7.0~svn3712
 nm_setting_duplicate Base 0.7.0~svn3712
 nm_setting_enumerate_values Base 0.7.0~svn3712
 nm_setting_from_hash Base 0.7.0~svn3712
 nm_setting_get_name Base 0.7.0~svn3712
 nm_setting_get_type Base 0.7.0~svn3712
 nm_setting_gsm_get_type Base 0.7.0~svn3712
 nm_setting_gsm_new Base 0.7.0~svn3712
 nm_setting_ip4_config_get_type Base 0.7.0~svn3712
 nm_setting_ip4_config_new Base 0.7.0~svn3712
 nm_setting_need_secrets Base 0.7.0~svn3712
 nm_setting_ppp_get_type Base 0.7.0~svn3712
 nm_setting_ppp_new Base 0.7.0~svn3712
 nm_setting_pppoe_get_type Base 0.7.0~svn3712
 nm_setting_pppoe_new Base 0.7.0~svn3712
 nm_setting_register Base 0.7.0~svn3712
 nm_setting_serial_get_type Base 0.7.0~svn3712
 nm_setting_serial_new Base 0.7.0~svn3712
 nm_setting_to_hash Base 0.7.0~svn3712
 nm_setting_to_string Base 0.7.0~svn3712
 nm_setting_unregister Base 0.7.0~svn3712
 nm_setting_update_secrets Base 0.7.0~svn3712
 nm_setting_verify Base 0.7.0~svn3712
 nm_setting_vpn_get_type Base 0.7.0~svn3712
 nm_setting_vpn_new Base 0.7.0~svn3712
 nm_setting_vpn_properties_get_type Base 0.7.0~svn3712
 nm_setting_vpn_properties_new Base 0.7.0~svn3712
 nm_setting_wired_get_type Base 0.7.0~svn3712
 nm_setting_wired_new Base 0.7.0~svn3712
 nm_setting_wireless_ap_security_compatible Base 0.7.0~svn3712
 nm_setting_wireless_get_type Base 0.7.0~svn3712
 nm_setting_wireless_new Base 0.7.0~svn3712
 nm_setting_wireless_security_get_type Base 0.7.0~svn3712
 nm_setting_wireless_security_new Base 0.7.0~svn3712
 nm_utils_escape_ssid Base 0.7.0~svn3712
 nm_utils_garray_to_string Base 0.7.0~svn3712
 nm_utils_gvalue_hash_dup Base 0.7.0~svn3712
 nm_utils_ip4_addresses_from_gvalue Base 0.7.0~svn3712
 nm_utils_ip4_addresses_to_gvalue Base 0.7.0~svn3712
 nm_utils_is_empty_ssid Base 0.7.0~svn3712
 nm_utils_register_value_transformations Base 0.7.0~svn3712
 nm_utils_same_ssid Base 0.7.0~svn3712
 nm_utils_security_valid Base 0.7.0~svn3712
 nm_utils_slist_free Base 0.7.0~svn3712
 nm_utils_ssid_to_utf8 Base 0.7.0~svn3712
 nm_utils_string_in_list Base 0.7.0~svn3712
 nm_utils_string_list_contains Base 0.7.0~svn3712
 nm_utils_string_slist_validate Base 0.7.0~svn3712

Attachment: signature.asc
Description: OpenPGP digital signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]