mapper: install systemd unit, dbus conf files

The same systemd and dbus unit/configuration files can work for everyone
now, so ship them.  Enable dbus activation, add unit file templates, and
move mapperx to libexec where it belongs.

Change-Id: Ieb021889605767ffdb9d72faad5f5b856312b935
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/src/dbus/xyz.openbmc_project.ObjectMapper.conf b/src/dbus/xyz.openbmc_project.ObjectMapper.conf
new file mode 100644
index 0000000..3d9fcc3
--- /dev/null
+++ b/src/dbus/xyz.openbmc_project.ObjectMapper.conf
@@ -0,0 +1,8 @@
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+  <policy user="root">
+    <allow own="xyz.openbmc_project.ObjectMapper"/>
+    <allow send_destination="xyz.openbmc_project.ObjectMapper"/>
+  </policy>
+</busconfig>
diff --git a/src/dbus/xyz.openbmc_project.ObjectMapper.service b/src/dbus/xyz.openbmc_project.ObjectMapper.service
new file mode 100644
index 0000000..9636606
--- /dev/null
+++ b/src/dbus/xyz.openbmc_project.ObjectMapper.service
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=xyz.openbmc_project.ObjectMapper
+Exec=/bin/false
+User=root
+SystemdService=dbus-xyz.openbmc_project.ObjectMapper.service
diff --git a/src/systemd/mapper-subtree-remove@.service.in b/src/systemd/mapper-subtree-remove@.service.in
new file mode 100644
index 0000000..c6a224b
--- /dev/null
+++ b/src/systemd/mapper-subtree-remove@.service.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=mapper subtree-remove %I
+
+[Service]
+Type=oneshot
+RemainAfterExit=no
+Restart=on-failure
+TimeoutStartSec=infinity
+ExecStart=@BINDIR@/mapper subtree-remove %I
diff --git a/src/systemd/mapper-wait@.service.in b/src/systemd/mapper-wait@.service.in
new file mode 100644
index 0000000..a3df21f
--- /dev/null
+++ b/src/systemd/mapper-wait@.service.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=Wait for %I
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+Restart=on-failure
+TimeoutStartSec=infinity
+ExecStart=@BINDIR@/mapper wait %I
diff --git a/src/systemd/xyz.openbmc_project.ObjectMapper.service.in b/src/systemd/xyz.openbmc_project.ObjectMapper.service.in
new file mode 100644
index 0000000..c14ba64
--- /dev/null
+++ b/src/systemd/xyz.openbmc_project.ObjectMapper.service.in
@@ -0,0 +1,14 @@
+[Unit]
+Description=Phosphor DBus Service Discovery Manager
+
+[Service]
+Restart=always
+Type=dbus
+ExecStart=@LIBEXECDIR@/phosphor-objmgr/mapperx
+BusName=xyz.openbmc_project.ObjectMapper
+TimeoutStartSec=300
+RestartSec=5
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-xyz.openbmc_project.ObjectMapper.service