vapi: merge branch 'tintou/gir-fixes'

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1545
This commit is contained in:
Thomas Haller 2023-02-28 13:07:32 +01:00
commit 4e1320eda1
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
6 changed files with 143 additions and 25 deletions

View file

@ -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 \

View file

@ -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')

View file

@ -142,6 +142,7 @@ if enable_introspection
src_inc,
top_inc,
],
header: 'NetworkManager.h',
dependencies: [
declare_dependency(
compile_args: [

View file

@ -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&lt;utf8,uint32&gt;)
* (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,

25
tools/check-vapi.sh Executable file
View file

@ -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

View file

@ -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"
ACTIVE_CONNECTION_* parent="NM.ActiveConnection" name="ACTIVE_CONNECTION_(.+)"
CLIENT_* parent="NM.Client" name="CLIENT_(.+)"
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_(.+)"
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"