summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-02-28 13:07:32 +0100
committerThomas Haller <thaller@redhat.com>2023-02-28 13:07:32 +0100
commit4e1320eda181452e9b03dee589a75f2dca857ff3 (patch)
tree5b98b5e17962238ad90a9bc3f2d6885f2f9dbfe2
parent206bd71dbc5115e28b52f84bbb1620029094d6e9 (diff)
parentfdec6a97e85987359fdf26c367b00a1f8ac27be3 (diff)
downloadNetworkManager-4e1320eda181452e9b03dee589a75f2dca857ff3.tar.gz
vapi: merge branch 'tintou/gir-fixes'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1545
-rw-r--r--Makefile.am8
-rw-r--r--meson.build5
-rw-r--r--src/libnm-client-impl/meson.build1
-rw-r--r--src/libnm-core-impl/nm-connection.c33
-rwxr-xr-xtools/check-vapi.sh25
-rw-r--r--vapi/NM-1.0.metadata94
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&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,
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"