This allows us to find out the logical parent device, for instance in composite
devices with more than one firmware image for a single device.
We also allow lazily specifying the device parent using a GUID and the engine
then automatically sets the parent object when the GUIDs match, which allows
children and parents to exist in different plugins.
We need to show this agreement text in every fwupd frontend and exporting a
helper function allows us to do two things:
* Share the semi-complicated code (and fallback) to avoid copy and pasting
* Easily change the code in the future, for instance allowing merging Metainfo
and AppStream metadata without updating all the front ends with new logic.
Also, we now verify the version script is correct each time we run the tests;
the consequences of getting the version script wrong are terribly bad.
Note, we can't actually use generated .map file for two reasons:
1. We don't hard depend on GObject Introspection
2. The map file is required to build the lib that the GIR is built from
To avoid the circular dep, and to ensure we don't change exported API
accidentaly actually check in a version of the version script to git.
Automake and autoconf are impossible to fully understand and Meson now provides
everything we need for a much smaller, faster, and more understandable build.
See http://mesonbuild.com/ for more information.