diff options
author | Thomas Haller <thaller@redhat.com> | 2023-02-28 13:07:32 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-02-28 13:07:32 +0100 |
commit | 4e1320eda181452e9b03dee589a75f2dca857ff3 (patch) | |
tree | 5b98b5e17962238ad90a9bc3f2d6885f2f9dbfe2 | |
parent | 206bd71dbc5115e28b52f84bbb1620029094d6e9 (diff) | |
parent | fdec6a97e85987359fdf26c367b00a1f8ac27be3 (diff) | |
download | NetworkManager-4e1320eda181452e9b03dee589a75f2dca857ff3.tar.gz |
vapi: merge branch 'tintou/gir-fixes'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1545
-rw-r--r-- | Makefile.am | 8 | ||||
-rw-r--r-- | meson.build | 5 | ||||
-rw-r--r-- | src/libnm-client-impl/meson.build | 1 | ||||
-rw-r--r-- | src/libnm-core-impl/nm-connection.c | 33 | ||||
-rwxr-xr-x | tools/check-vapi.sh | 25 | ||||
-rw-r--r-- | vapi/NM-1.0.metadata | 94 |
6 files changed, 142 insertions, 24 deletions
diff --git a/Makefile.am b/Makefile.am index 49411f8c36..67bcdde132 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2019,7 +2019,7 @@ src_libnm_client_impl_NM_1_0_gir_FILES = \ $(libnm_lib_h_pub_real) \ $(src_libnm_client_public_mkenums_c) \ $(libnm_lib_c_real) -src_libnm_client_impl_NM_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm +src_libnm_client_impl_NM_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm --c-include="NetworkManager.h" src/libnm-client-impl/libnm.typelib: src/libnm-client-impl/libnm.gir $(INTROSPECTION_COMPILER) --includedir=$(srcdir)/src/libnm-core-public --includedir=$(builddir)/src/libnm-core-public --includedir=$(srcdir)/libnm-client-public --includedir=$(builddir)/libnm-client-public $< -o $@ @@ -5726,6 +5726,11 @@ EXTRA_DIST += \ vapi/libnm.deps \ vapi/meson.build +check-local-vapi: + $(srcdir)/tools/check-vapi.sh + +check_local += check-local-vapi + ############################################################################### girdir = $(datadir)/gir-1.0 @@ -5793,6 +5798,7 @@ EXTRA_DIST += \ tools/check-compare-generated.sh \ tools/check-gitlab-ci.sh \ tools/check-tree.sh \ + tools/check-vapi.sh \ tools/create-exports-NetworkManager.sh \ tools/debug-helper.py \ tools/meson-post-install.sh \ diff --git a/meson.build b/meson.build index b79240efc0..1327513b4c 100644 --- a/meson.build +++ b/meson.build @@ -941,6 +941,11 @@ if enable_vapi subdir('vapi') endif +test( + 'check-vapi', + find_program(join_paths(source_root, 'tools', 'check-vapi.sh')), +) + subdir('examples/C/glib') enable_qt = get_option('qt') diff --git a/src/libnm-client-impl/meson.build b/src/libnm-client-impl/meson.build index 143126c51a..fb879dca47 100644 --- a/src/libnm-client-impl/meson.build +++ b/src/libnm-client-impl/meson.build @@ -142,6 +142,7 @@ if enable_introspection src_inc, top_inc, ], + header: 'NetworkManager.h', dependencies: [ declare_dependency( compile_args: [ diff --git a/src/libnm-core-impl/nm-connection.c b/src/libnm-core-impl/nm-connection.c index 3a9eda0e18..994f08d5d2 100644 --- a/src/libnm-core-impl/nm-connection.c +++ b/src/libnm-core-impl/nm-connection.c @@ -759,15 +759,18 @@ diff_one_connection(NMConnection *a, return diff_found; } +/* Required until https://gitlab.gnome.org/GNOME/gtk-doc/-/merge_requests/71 */ +#ifndef __GTK_DOC_IGNORE__ /** * nm_connection_diff: * @a: a #NMConnection * @b: a second #NMConnection to compare with the first * @flags: compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT - * @out_settings: (element-type utf8 GLib.HashTable): if the - * connections differ, on return a hash table mapping setting names to - * second-level GHashTable (utf8 to guint32), which contains the key names that - * differ mapped to one or more of %NMSettingDiffResult as a bitfield + * @out_settings: (out) (element-type utf8 GLib.HashTable<utf8,uint32>) + * (optional) (allow-none): if the connections differ, on return a hash table + * mapping setting names to second-level GHashTable (utf8 to guint32), which + * contains the key names that differ mapped to one or more of + * %NMSettingDiffResult as a bitfield * * Compares two #NMConnection objects for similarity, with comparison behavior * modified by a set of flags. See nm_setting_compare() for a description of @@ -778,6 +781,28 @@ diff_one_connection(NMConnection *a, * Returns: %TRUE if the connections contain the same values, %FALSE if they do * not **/ +#else +/** + * nm_connection_diff: + * @a: a #NMConnection + * @b: a second #NMConnection to compare with the first + * @flags: compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT + * @out_settings: (out) (element-type utf8 GLib.HashTable<utf8,uint32>) + * (optional) (nullable): if the connections differ, on return a hash table + * mapping setting names to second-level GHashTable (utf8 to guint32), which + * contains the key names that differ mapped to one or more of + * %NMSettingDiffResult as a bitfield + * + * Compares two #NMConnection objects for similarity, with comparison behavior + * modified by a set of flags. See nm_setting_compare() for a description of + * each flag's behavior. If the connections differ, settings and keys within + * each setting that differ are added to the returned @out_settings hash table. + * No values are returned, only key names. + * + * Returns: %TRUE if the connections contain the same values, %FALSE if they do + * not + **/ +#endif gboolean nm_connection_diff(NMConnection *a, NMConnection *b, diff --git a/tools/check-vapi.sh b/tools/check-vapi.sh new file mode 100755 index 0000000000..da640cfd0f --- /dev/null +++ b/tools/check-vapi.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +die() { + printf "%s\n" "$*" >&2 + exit 1 +} + +cd "$(dirname "$(readlink -f "$0")")/.." || die "cannot change to srcdir" + +VAPI=./vapi/NM-1.0.metadata + +for s in $(grep -r -h '#define \+\<NM_SETTING_.*SETTING_NAME\>' -- ./src/libnm-core-public/ \ + | sed -n 's/^#define \+NM_\(SETTING_[A-Z0-9_]\+\)_SETTING_NAME\> \+.*/\1/p') ; do + grep -q "^$s" -- "$VAPI" || die "didn't see '$s' in \"$VAPI\"" +done + +for f in ./src/libnm-client-public/nm-device-*.h ; do + D=( $(sed -n 's/^#define \+NM_IS_DEVICE_\([A-Z0-9_]\+\)_CLASS\>(.*/\1/p' "$f") ) + test ${#D[@]} = 1 || die "did not detect device in \"$f\"" + s="${D[0]}" + c="$(grep -c "^DEVICE_${s}_\* *parent=" -- "$VAPI")" + test "$c" = 1 || die "didn't see device '$s' in \"$VAPI\"" +done diff --git a/vapi/NM-1.0.metadata b/vapi/NM-1.0.metadata index a86d4632ff..48df877b51 100644 --- a/vapi/NM-1.0.metadata +++ b/vapi/NM-1.0.metadata @@ -4,82 +4,138 @@ * The API is still unstable */ -* cheader_filename="NetworkManager.h" - +Client.new_async name="new_@async" +Device.lldp_neighbors type="GLib.GenericArray<NM.LldpNeighbor>" +Device.ports type="GLib.GenericArray<NM.Device>" DeviceWifi.request_scan_options_async finish_name="nm_device_wifi_request_scan_finish" -Setting.get_secret_flags#virtual_method skip -Setting.set_secret_flags#virtual_method skip -Setting.verify#virtual_method skip -VpnEditorPlugin.get_vt#virtual_method skip +IPConfig.addresses type="GLib.GenericArray<NM.IPAddress>" +VpnEditorPlugin.get_vt#virtual_method name="get_vt_impl" +.out_vt_size out + +SETTING_NAME parent="NM.Setting" +SETTING_6LOWPAN_* parent="NM.Setting6Lowpan" name="SETTING_6LOWPAN_(.+)" SETTING_802_1X_* parent="NM.Setting8021x" name="SETTING_802_1X_(.+)" SETTING_ADSL_* parent="NM.SettingAdsl" name="SETTING_ADSL_(.+)" SETTING_BLUETOOTH_* parent="NM.SettingBluetooth" name="SETTING_BLUETOOTH_(.+)" +SETTING_BOND_PORT_* parent="NM.SettingBondPort" name="SETTING_BOND_PORT_(.+)" SETTING_BOND_* parent="NM.SettingBond" name="SETTING_BOND_(.+)" +SETTING_BRIDGE_PORT_* parent="NM.SettingBridgePort" name="SETTING_BRIDGE_PORT_(.+)" SETTING_BRIDGE_* parent="NM.SettingBridge" name="SETTING_BRIDGE_(.+)" SETTING_CDMA_* parent="NM.SettingCdma" name="SETTING_CDMA_(.+)" SETTING_CONNECTION_* parent="NM.SettingConnection" name="SETTING_CONNECTION_(.+)" SETTING_DCB_* parent="NM.SettingDcb" name="SETTING_DCB_(.+)" +SETTING_DNS_OPTION_* parent="NM.SettingDnsOption" name="SETTING_DNS_OPTION_(.+)" +SETTING_DUMMY_* parent="NM.SettingDummy" name="SETTING_DUMMY_(.+)" +SETTING_ETHTOOL_* parent="NM.SettingEthtool" name="SETTING_ETHTOOL_(.+)" SETTING_GENERIC_* parent="NM.SettingGeneric" name="SETTING_GENERIC_(.+)" SETTING_GSM_* parent="NM.SettingGsm" name="SETTING_GSM_(.+)" +SETTING_HOSTNAME_* parent="NM.SettingHostname" name="SETTING_HOSTNAME_(.+)" SETTING_INFINIBAND_* parent="NM.SettingInfiniband" name="SETTING_INFINIBAND_(.+)" SETTING_IP4_CONFIG_* parent="NM.SettingIP4Config" name="SETTING_IP4_CONFIG_(.+)" SETTING_IP6_CONFIG_* parent="NM.SettingIP6Config" name="SETTING_IP6_CONFIG_(.+)" SETTING_IP_CONFIG_* parent="NM.SettingIPConfig" name="SETTING_IP_CONFIG_(.+)" SETTING_IP_TUNNEL_* parent="NM.SettingIPTunnel" name="SETTING_IP_TUNNEL_(.+)" +SETTING_LOOPBACK_* parent="NM.SettingLoopback" name="SETTING_LOOPBACK_(.+)" +SETTING_MACSEC_* parent="NM.SettingMacsec" name="SETTING_MACSEC_(.+)" SETTING_MACVLAN_* parent="NM.SettingMacvlan" name="SETTING_MACVLAN_(.+)" +SETTING_MATCH_* parent="NM.SettingMatch" name="SETTING_MATCH_(.+)" SETTING_OLPC_MESH_* parent="NM.SettingOlpcMesh" name="SETTING_OLPC_MESH_(.+)" +SETTING_OVS_BRIDGE_* parent="NM.SettingOvsBridge" name="SETTING_OVS_BRIDGE_(.+)" +SETTING_OVS_DPDK_* parent="NM.SettingOvsDpdk" name="SETTING_OVS_DPDK_(.+)" +SETTING_OVS_EXTERNAL_IDS_* parent="NM.SettingOvsExternalIDs" name="SETTING_OVS_EXTERNAL_IDS_(.+)" +SETTING_OVS_INTERFACE_* parent="NM.SettingOvsInterface" name="SETTING_OVS_INTERFACE_(.+)" +SETTING_OVS_OTHER_CONFIG_* parent="NM.SettingOvsOtherConfig" name="SETTING_OVS_OTHER_CONFIG_(.+)" +SETTING_OVS_PATCH_* parent="NM.SettingOvsPatch" name="SETTING_OVS_PATCH_(.+)" +SETTING_OVS_PORT_* parent="NM.SettingOvsPort" name="SETTING_OVS_PORT_(.+)" +SETTING_PARAM_* parent="NM.Setting" name="SETTING_PARAM_(.+)" SETTING_PPPOE_* parent="NM.SettingPppoe" name="SETTING_PPPOE_(.+)" SETTING_PPP_* parent="NM.SettingPpp" name="SETTING_PPP_(.+)" SETTING_PROXY_* parent="NM.SettingProxy" name="SETTING_PROXY_(.+)" SETTING_SERIAL_* parent="NM.SettingSerial" name="SETTING_SERIAL_(.+)" +SETTING_SRIOV_* parent="NM.SettingSriov" name="SETTING_SRIOV_(.+)" +SETTING_TC_CONFIG_* parent="NM.SettingTCConfig" name="SETTING_TC_CONFIG_(.+)" +SETTING_TEAM_PORT_* parent="NM.SettingTeamPort" name="SETTING_TEAM_PORT_(.+)" SETTING_TEAM_* parent="NM.SettingTeam" name="SETTING_TEAM_(.+)" SETTING_TUN_* parent="NM.SettingTun" name="SETTING_TUN_(.+)" +SETTING_USER_* parent="NM.SettingUser" name="SETTING_USER_(.+)" +SETTING_VETH_* parent="NM.SettingVeth" name="SETTING_VETH_(.+)" SETTING_VLAN_* parent="NM.SettingVlan" name="SETTING_VLAN_(.+)" SETTING_VPN_* parent="NM.SettingVpn" name="SETTING_VPN_(.+)" +SETTING_VRF_* parent="NM.SettingVrf" name="SETTING_VRF_(.+)" SETTING_VXLAN_* parent="NM.SettingVxlan" name="SETTING_VXLAN_(.+)" SETTING_WIFI_P2P_* parent="NM.SettingWifiP2P" name="SETTING_WIFI_P2P_(.+)" SETTING_WIMAX_* parent="NM.SettingWimax" name="SETTING_WIMAX_(.+)" SETTING_WIRED_* parent="NM.SettingWired" name="SETTING_WIRED_(.+)" SETTING_WIREGUARD_* parent="NM.SettingWireGuard" name="SETTING_WIREGUARD_(.+)" SETTING_WIRELESS_* parent="NM.SettingWireless" name="SETTING_WIRELESS_(.+)" +SETTING_WIRELESS_SECURITY_* parent="NM.SettingWirelessSecurity" name="SETTING_WIRELESS_SECURITY_(.+)" +SETTING_WPAN_* parent="NM.SettingWpan" name="SETTING_WPAN_(.+)" -VPN_* parent="NM.Vpn" name="VPN_(.+)" +WIREGUARD_*_KEY_LEN parent="NM.SettingWireGuard" name="WIREGUARD_(.+)" connection_error_quark parent="NM.Connection" name="connection_(.+)" -SETTING_PARAM_* parent="NM.Setting" name="SETTING_PARAM_(.+)" utils_* parent="NM.Utils" name="utils_(.+)" UTILS_* parent="NM.Utils" name="UTILS_(.+)" UtilsSecurityType parent="NM.Utils" name="SecurityType" -Client.new_finish symbol_type="function" - +ACCESS_POINT_* parent="NM.AccessPoint" name="ACCESS_POINT_(.+)" ACTIVE_CONNECTION_* parent="NM.ActiveConnection" name="ACTIVE_CONNECTION_(.+)" +BRIDGE_VLAN_* parent="NM.BridgeVlan" name="BRIDGE_VLAN_(.+)" +CHECKPOINT_* parent="NM.Checkpoint" name="CHECKPOINT_(.+)" CLIENT_* parent="NM.Client" name="CLIENT_(.+)" -ACCESS_POINT_* parent="NM.AccessPoint" name="ACCESS_POINT_(.+)" +CONNECTION_* parent="NM.Connection" name="CONNECTION_(.+)" +DHCP_CONFIG_* parent="NM.DhcpConfig" name="DHCP_CONFIG_(.+)" +IP_ADDRESS_ATTRIBUTE_* parent="NM.IPAddress" name="IP_ADDRESS_(.+)" +IP_CONFIG_* parent="NM.IPConfig" name="IP_CONFIG_(.+)" +IP_ROUTE_ATTRIBUTE_* parent="NM.IpRouteAttributes" name="IP_ROUTE_ATTRIBUTE_(.+)" +LLDP_ATTR_* parent="NM.LldpAttributes" name="LLDP_ATTR_(.+)" +OBJECT_* parent="NM.Object" name="OBJECT_(.+)" +REMOTE_CONNECTION_* parent="NM.RemoteConnection" name="REMOTE_CONNECTION_(.+)" +SECRET_AGENT_OLD_* parent="NM.SecretAgentOld" name="SECRET_AGENT_OLD_(.+)" +SRIOV_VF_ATTRIBUTE_* parent="NM.SriovVfAttributes" name="SRIOV_VF_ATTRIBUTE_(.+)" +TEAM_LINK_WATCHER_* parent="NM.TeamLinkWatcher" name="TEAM_LINK_WATCHER_(.+)" +VPN_* parent="NM.Vpn" name="VPN_(.+)" +VPN_CONNECTION_* parent="NM.VpnConnection" name="VPN_CONNECTION_(.+)" +WIFI_P2P_PEER_* parent="NM.WifiP2PPeer" name="WIFI_P2P_PEER_(.+)" +WIMAX_NSP_* parent="NM.WimaxNsp" name="WIMAX_NSP_(.+)" +WIREGUARD_PEER_ATTR_* parent="NM.WireguardPeerAttributes" name="WIREGUARD_PEER_ATTR_(.+)" -DEVICE_* parent="NM.Device" name="DEVICE_(.+)" +DEVICE_6LOWPAN_* parent="NM.Device6Lowpan" name="DEVICE_6LOWPAN_(.+)" DEVICE_ADSL_* parent="NM.DeviceAdsl" name="DEVICE_ADSL_(.+)" DEVICE_BOND_* parent="NM.DeviceBond" name="DEVICE_BOND_(.+)" DEVICE_BRIDGE_* parent="NM.DeviceBridge" name="DEVICE_BRIDGE_(.+)" DEVICE_BT_* parent="NM.DeviceBt" name="DEVICE_BT_(.+)" +DEVICE_DUMMY_* parent="NM.DeviceDummy" name="DEVICE_DUMMY_(.+)" DEVICE_ETHERNET_* parent="NM.DeviceEthernet" name="DEVICE_ETHERNET_(.+)" DEVICE_GENERIC_* parent="NM.DeviceGeneric" name="DEVICE_GENERIC_(.+)" -DEVICE_TEAM_* parent="NM.DeviceTeam" name="DEVICE_TEAM_(.+)" DEVICE_INFINIBAND_* parent="NM.DeviceInfiniband" name="DEVICE_INFINIBAND_(.+)" +DEVICE_IP_TUNNEL_* parent="NM.DeviceIPTunnel" name="DEVICE_IP_TUNNEL_(.+)" +DEVICE_LOOPBACK_* parent="NM.DeviceLoopback" name="DEVICE_LOOPBACK_(.+)" +DEVICE_MACSEC_* parent="NM.DeviceMacsec" name="DEVICE_MACSEC_(.+)" +DEVICE_MACVLAN_* parent="NM.DeviceMacvlan" name="DEVICE_MACVLAN_(.+)" DEVICE_MODEM_* parent="NM.DeviceModem" name="DEVICE_MODEM_(.+)" DEVICE_OLPC_MESH_* parent="NM.DeviceOlpcMesh" name="DEVICE_OLPC_(.+)" +DEVICE_OVS_BRIDGE_* parent="NM.DeviceOvsBridge" name="DEVICE_OVS_BRIDGE_(.+)" +DEVICE_OVS_INTERFACE_* parent="NM.DeviceOvsInterface" name="DEVICE_OVS_INTERFACE_(.+)" +DEVICE_OVS_PORT_* parent="NM.DeviceOvsPort" name="DEVICE_OVS_PORT_(.+)" +DEVICE_PPP_* parent="NM.DevicePpp" name="DEVICE_PPP_(.+)" +DEVICE_TEAM_* parent="NM.DeviceTeam" name="DEVICE_TEAM_(.+)" +DEVICE_TUN_* parent="NM.DeviceTun" name="DEVICE_TUN_(.+)" +DEVICE_VETH_* parent="NM.DeviceVeth" name="DEVICE_VETH_(.+)" DEVICE_VLAN_* parent="NM.DeviceVlan" name="DEVICE_VLAN_(.+)" +DEVICE_VRF_* parent="NM.DeviceVrf" name="DEVICE_VRF_(.+)" +DEVICE_VXLAN_* parent="NM.DeviceVxlan" name="DEVICE_VXLAN_(.+)" DEVICE_WIFI_* parent="NM.DeviceWifi" name="DEVICE_WIFI_(.+)" +DEVICE_WIFI_P2P_* parent="NM.DeviceWifiP2P" name="DEVICE_WIFI_P2P_(.+)" DEVICE_WIMAX_* parent="NM.DeviceWimax" name="DEVICE_WIMAX_(.+)" DEVICE_WIREGUARD_* parent="NM.DeviceWireGuard" name="DEVICE_WIREGUARD_(.+)" +DEVICE_WPAN_* parent="NM.DeviceWpan" name="DEVICE_WPAN_(.+)" +DEVICE_* parent="NM.Device" name="DEVICE_(.+)" -DHCP_CONFIG_OPTIONS parent="NM.DhcpConfig" name="DHCP_CONFIG_(.+)" -IP_CONFIG_* parent="NM.IPConfig" name="IP_CONFIG_(.+)" -OBJECT_* parent="NM.Object" name="OBJECT_(.+)" -REMOTE_CONNECTION_* parent="NM.RemoteConnection" name="REMOTE_CONNECTION_(.+)" -VPN_CONNECTION_* parent="NM.VpnConnection" name="VPN_CONNECTION_(.+)" -WIMAX_NSP_* parent="NM.WimaxNsp" name="WIMAX_NSP_(.+)" +ETHTOOL_OPTNAME_* parent="NM.EthtoolOptname" name="ETHTOOL_OPTNAME_(.+)" +ethtool_optname_* parent="NM.EthtoolOptname" name="ethtool_optname_(.+)" +VLAN_FLAGS_ALL parent="NM.VlanFlags" name="ALL" type="NM.VlanFlags" |