Software: add initial software-version mgmt

Change-Id: I3b50488b8383c595b4b41375ea0d62d62bdc0eed
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/xyz/openbmc_project/Software/ActivationBlocksTransition.interface.yaml b/xyz/openbmc_project/Software/ActivationBlocksTransition.interface.yaml
new file mode 100644
index 0000000..51fbc8e
--- /dev/null
+++ b/xyz/openbmc_project/Software/ActivationBlocksTransition.interface.yaml
@@ -0,0 +1,13 @@
+description: >
+    Empty interface to indicate that the associated `Software.Version` should
+    prevent a state transition of the associated managed element while the
+    `Software.Version` is in `Activating` state.
+
+    The specific state transition(s) to prevent are left to the implementation.
+    A typical use of this would be to prevent (delay) the power-on of a
+    managed host while the BIOS is being updated.  The managed host, via
+    systemd transitions, might start the power-on sequence and then wait for
+    any object with this `ActivationBlocksTransition` interface to no longer be
+    in `Activating` state.  Causal ordering of dbus operations can prove that
+    no update is currently being performed and the power-on sequence may safely
+    continue.