diff --git a/Makefile.am b/Makefile.am
index de88f38281..cdb5cfc9d5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -382,6 +382,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 = \
@@ -4815,6 +4820,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 343a739834..625c3d57a4 100644
--- a/docs/api/network-manager-docs.xml
+++ b/docs/api/network-manager-docs.xml
@@ -192,13 +192,16 @@
+
+
+
+
-
@@ -239,10 +242,25 @@
+
+ The /org/freedesktop/NetworkManager/Checkpoint/* objects
+
+
+
+
Types
+
+
+
diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml
index b03efc33f7..dc968f30b5 100644
--- a/docs/libnm/libnm-docs.xml
+++ b/docs/libnm/libnm-docs.xml
@@ -194,8 +194,8 @@ print ("NetworkManager version " + client.get_version())]]>
-
+
@@ -209,19 +209,26 @@ print ("NetworkManager version " + client.get_version())]]>
-
+
+
+
+
+
+
-
+
+
+
-
+
@@ -242,6 +249,10 @@ print ("NetworkManager version " + client.get_version())]]>
+
+
+
+
@@ -256,6 +267,7 @@ print ("NetworkManager version " + client.get_version())]]>
+
@@ -266,10 +278,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