diff --git a/Makefile.am b/Makefile.am
index 4974a33182..53235df7e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -390,6 +390,11 @@ EXTRA_DIST += \
$(dbusinterfaces_DATA) \
introspection/meson.build
+check-docs:
+ $(srcdir)/tools/check-docs.sh "$(srcdir)"
+
+check_local += check-docs
+
###############################################################################
libnm_core_lib_h_pub_real = \
@@ -4840,6 +4845,7 @@ EXTRA_DIST += \
shared/nm-version-macros.h.in \
shared/meson.build \
\
+ tools/check-docs.sh \
tools/check-exports.sh \
tools/create-exports-NetworkManager.sh \
tools/debug-helper.py \
diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index 39a23b6a95..03b9ce065a 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -62,7 +62,6 @@ content_files = \
dbus-org.freedesktop.NetworkManager.Device.Vlan.xml \
dbus-org.freedesktop.NetworkManager.Device.Adsl.xml \
dbus-org.freedesktop.NetworkManager.AgentManager.xml \
- dbus-org.freedesktop.NetworkManager.Device.WiMax.xml \
dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml \
dbus-org.freedesktop.NetworkManager.Device.Tun.xml \
dbus-org.freedesktop.NetworkManager.Device.Bridge.xml \
diff --git a/docs/api/network-manager-docs.xml b/docs/api/network-manager-docs.xml
index 0521700c72..790cfb572a 100644
--- a/docs/api/network-manager-docs.xml
+++ b/docs/api/network-manager-docs.xml
@@ -189,17 +189,22 @@
+
+
+
+
+
-
+
@@ -240,10 +245,25 @@
+
+ The /org/freedesktop/NetworkManager/Checkpoint/* objects
+
+
+
+
Types
+
+
+
diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml
index 73098518fe..e76f7bb0f3 100644
--- a/docs/libnm/libnm-docs.xml
+++ b/docs/libnm/libnm-docs.xml
@@ -191,12 +191,13 @@ print ("NetworkManager version " + client.get_version())]]>
+
-
+
@@ -210,19 +211,27 @@ print ("NetworkManager version " + client.get_version())]]>
-
+
+
+
+
+
+
-
+
+
+
-
+
+
@@ -230,6 +239,7 @@ print ("NetworkManager version " + client.get_version())]]>Device and Runtime Configuration API Reference
+
@@ -243,12 +253,17 @@ print ("NetworkManager version " + client.get_version())]]>
+
+
+
+
+
@@ -257,6 +272,7 @@ print ("NetworkManager version " + client.get_version())]]>
+
@@ -267,10 +283,20 @@ print ("NetworkManager version " + client.get_version())]]>
VPN Plugin API Reference
-
+
+
+
+
+
+
Object Hierarchy
diff --git a/docs/meson.build b/docs/meson.build
index 78ace8b297..1fb21fb47d 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -10,3 +10,9 @@ if enable_libnm_glib
subdir('libnm-util')
subdir('libnm-glib')
endif
+
+test(
+ 'check-docs',
+ find_program(join_paths(meson.source_root(), 'tools', 'check-docs.sh')),
+ args: [meson.source_root()]
+)
diff --git a/tools/check-docs.sh b/tools/check-docs.sh
new file mode 100755
index 0000000000..9dcdb1ef3b
--- /dev/null
+++ b/tools/check-docs.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+SOURCEDIR=$1
+[ -n "$SOURCEDIR" ] && SOURCEDIR="$SOURCEDIR/"
+
+# Check that the D-Bus API docs contain all known interfaces
+if (sed -n 's/.*&2; then
+ echo "*** Error: D-Bus interfaces not included in docs/api/network-manager-docs.xml ***" >&2
+ exit 1
+fi
+
+# Check that files that define types that are in public libnm API are included in libnm documentation.
+# Don't complain about readability or I'll rewrite this in Perl.
+if (sed -n 's/.*&2; then
+ echo "*** Error: libnm classes not included in docs/libnm/libnm-docs.xml ***" >&2
+ exit 1
+fi
+
+exit 0