Introducing the Phosphor OpenBMC OE layer

 -Codifies the IBM vision for an OpenBMC build system.
 -Structured around a core DBUS API architecture.
 -Provides implementation flexibility within that architecture.
 -Provides sample qemuarm BSP layer.
diff --git a/common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb b/common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb
new file mode 100644
index 0000000..519db4a
--- /dev/null
+++ b/common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Sample image recipe using Phosphor, an OpenBMC \
+framework, illustrating the removal of a default image feature."
+
+require obmc-phosphor-image.bb
+
+IMAGE_FEATURES_remove = " \
+        obmc-phosphor-system-mgmt \
+        "
diff --git a/common/recipes-phosphor/images/obmc-phosphor-image.bb b/common/recipes-phosphor/images/obmc-phosphor-image.bb
new file mode 100644
index 0000000..8e481a1
--- /dev/null
+++ b/common/recipes-phosphor/images/obmc-phosphor-image.bb
@@ -0,0 +1,3 @@
+DESCRIPTION = "Image with Phosphor, an OpenBMC framework."
+
+inherit obmc-phosphor-image
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py
new file mode 100644
index 0000000..a68f2e5
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import time
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+if __name__ == '__main__':
+	print "obmc-phosphor-chassisd starting..."
+
+	while 1:
+		time.sleep(5)
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service
new file mode 100644
index 0000000..7711511
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC chassis management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-chassisd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb
new file mode 100644
index 0000000..2ff0dcf
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC Chassis Management"
+DESCRIPTION = "Phosphor OpenBMC chassis management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-chassis-mgmt
+inherit obmc-phosphor-py-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py
new file mode 100644
index 0000000..ed45068
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import time
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+if __name__ == '__main__':
+	print "obmc-phosphor-eventd starting..."
+
+	while 1:
+		time.sleep(5)
diff --git a/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service
new file mode 100644
index 0000000..8e0266b
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC event management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-eventd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb b/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb
new file mode 100644
index 0000000..92b0ded
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC Event Management"
+DESCRIPTION = "Phosphor OpenBMC event management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-event-mgmt
+inherit obmc-phosphor-py-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-fan/files/Makefile b/common/recipes-phosphor/obmc-phosphor-fan/files/Makefile
new file mode 100644
index 0000000..b8f103d
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-fan/files/Makefile
@@ -0,0 +1,15 @@
+EXE     = obmc-phosphor-fand
+OBJS    = $(EXE).o
+DEPPKGS = gio-unix-2.0 glib-2.0
+CC      = $(CROSS_COMPILE)gcc
+INCLUDES += $(shell pkg-config --cflags $(DEPPKGS))
+LIBS += $(shell pkg-config --libs $(DEPPKGS))
+
+%.o : %.c
+	$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
+$(EXE): $(OBJS)
+	$(CC) $(LDFLAGS) $(LIBS) $^ -o $@
+clean:
+	rm -f $(OBJS) $(EXE) *.o *.d
+distclean: clean
+	rm -f *.c~ *.h~ *.sh~ Makefile~ config.mk~
diff --git a/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c
new file mode 100644
index 0000000..558ba10
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c
@@ -0,0 +1,29 @@
+/* Contributors Listed Below - COPYRIGHT 2015                             */
+/* [+] International Business Machines Corp.                              */
+/*                                                                        */
+/*                                                                        */
+/* Licensed under the Apache License, Version 2.0 (the "License");        */
+/* you may not use this file except in compliance with the License.       */
+/* You may obtain a copy of the License at                                */
+/*                                                                        */
+/*     http://www.apache.org/licenses/LICENSE-2.0                         */
+/*                                                                        */
+/* Unless required by applicable law or agreed to in writing, software    */
+/* distributed under the License is distributed on an "AS IS" BASIS,      */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        */
+/* implied. See the License for the specific language governing           */
+/* permissions and limitations under the License.                         */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gio/gio.h>
+
+int main(int argc, char *argv[])
+{
+	printf("obmc-phosphor-fand starting...\n");
+
+	while(1)
+		sleep(5);
+
+	exit(EXIT_SUCCESS);
+}
diff --git a/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service
new file mode 100644
index 0000000..0dc2b02
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC fan management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-fand
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb b/common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb
new file mode 100644
index 0000000..c83e825
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC Fan Management."
+DESCRIPTION = "Phosphor OpenBMC fan management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-fan-mgmt
+inherit obmc-phosphor-c-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py
new file mode 100644
index 0000000..5e5dd8f
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import time
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+if __name__ == '__main__':
+	print "obmc-phosphor-flashd starting..."
+
+	while 1:
+		time.sleep(5)
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service
new file mode 100644
index 0000000..2f518f3
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC flash management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-flashd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb b/common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb
new file mode 100644
index 0000000..8221019
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC Flash Management"
+DESCRIPTION = "Phosphor OpenBMC flash management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-flash-mgmt
+inherit obmc-phosphor-py-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py
new file mode 100644
index 0000000..48f19d4
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import time
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+if __name__ == '__main__':
+	print "obmc-phosphor-policyd starting..."
+
+	while 1:
+		time.sleep(5)
diff --git a/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service
new file mode 100644
index 0000000..9a1f6fe
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC policy management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-policyd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb b/common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb
new file mode 100644
index 0000000..6c8d6fc
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC Policy Management"
+DESCRIPTION = "Phosphor OpenBMC policy management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-policy-mgmt
+inherit obmc-phosphor-py-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile b/common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile
new file mode 100644
index 0000000..6517af0
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile
@@ -0,0 +1,15 @@
+EXE     = obmc-phosphor-qemu
+OBJS    = $(EXE).o
+PACKAGES= gio-unix-2.0 glib-2.0
+INCLUDES += $(shell pkg-config --cflags $(PACKAGES))
+LIBS += $(shell pkg-config --libs $(PACKAGES))
+CC      = $(CROSS_COMPILE)gcc
+
+%.o : %.c
+	$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
+$(EXE): $(OBJS)
+	$(CC) $(LDFLAGS) $(LIBS) $^ -o $@
+clean:
+	rm -f $(OBJS) $(EXE) *.o *.d
+distclean: clean
+	rm -f *.c~ *.h~ *.sh~ Makefile~ config.mk~
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c
new file mode 100644
index 0000000..8076132
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <gio/gio.h>
+
+int main(int argc, char *argv[])
+{
+	printf("obmc-phosphor-qemu...\n");
+
+	while(1)
+		sleep(5);
+
+	exit(EXIT_SUCCESS);
+}
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service
new file mode 100644
index 0000000..0cf4e15
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC QEMU application example
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-qemu
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb b/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb
new file mode 100644
index 0000000..3e4541d
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb
@@ -0,0 +1,5 @@
+SUMMARY = "Phosphor OpenBMC BSP Example Application"
+DESCRIPTION = "Phosphor OpenBMC QEMU BSP example implementation."
+PR = "r1"
+
+inherit obmc-phosphor-c-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py
new file mode 100644
index 0000000..c9771ac
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import time
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+if __name__ == '__main__':
+	print "obmc-phosphor-sensord starting..."
+
+	while 1:
+		time.sleep(5)
diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service
new file mode 100644
index 0000000..233ca47
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC sensor management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-sensord
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb
new file mode 100644
index 0000000..382d055
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC Sensor Management"
+DESCRIPTION = "Phosphor OpenBMC sensor management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-sensor-mgmt
+inherit obmc-phosphor-py-daemon
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py
new file mode 100644
index 0000000..c8080ac
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import time
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+if __name__ == '__main__':
+	print "obmc-phosphor-watchdogd starting..."
+
+	while 1:
+		time.sleep(5)
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service
new file mode 100644
index 0000000..d3d954d
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Phosphor OpenBMC system management daemon
+
+[Service]
+ExecStart=/usr/sbin/obmc-phosphor-sysd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb b/common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb
new file mode 100644
index 0000000..99927db
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Phosphor OpenBMC System Management"
+DESCRIPTION = "Phosphor OpenBMC system management reference implementation."
+PR = "r1"
+
+inherit obmc-phosphor-system-mgmt
+inherit obmc-phosphor-py-daemon
diff --git a/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb b/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb
new file mode 100644
index 0000000..634f5d8
--- /dev/null
+++ b/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb
@@ -0,0 +1,68 @@
+SUMMARY = "Phosphor OpenBMC - Applications"
+PR = "r1"
+
+inherit packagegroup
+inherit obmc-phosphor-utils
+inherit obmc-phosphor-license
+
+VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl ?= "virtual/obmc-phosphor-fan-ctl"
+VIRTUAL-RUNTIME_obmc-phosphor-sensor-ctl ?= "virtual/obmc-phosphor-sensor-ctl"
+VIRTUAL-RUNTIME_obmc-phosphor-chassis-ctl ?= "virtual/obmc-phosphor-chassis-ctl"
+VIRTUAL-RUNTIME_obmc-phosphor-flash-ctl ?= "virtual/obmc-phosphor-flash-ctl"
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = " \
+        ${@mf_enabled("obmc-phosphor-fan-mgmt", "packagegroup-obmc-phosphor-apps-fan-mgmt", d)} \
+        ${@mf_enabled("obmc-phosphor-chassis-mgmt", "packagegroup-obmc-phosphor-apps-chassis-mgmt", d)} \
+        ${@mf_enabled("obmc-phosphor-sensor-mgmt", "packagegroup-obmc-phosphor-apps-sensor-mgmt", d)} \
+        ${@mf_enabled("obmc-phosphor-flash-mgmt", "packagegroup-obmc-phosphor-apps-flash-mgmt", d)} \
+        ${@df_enabled("obmc-phosphor-event-mgmt", "packagegroup-obmc-phosphor-apps-event-mgmt", d)} \
+        ${@df_enabled("obmc-phosphor-policy-mgmt", "packagegroup-obmc-phosphor-apps-policy-mgmt", d)} \
+        ${@df_enabled("obmc-phosphor-system-mgmt", "packagegroup-obmc-phosphor-apps-system-mgmt", d)} \
+        "
+
+SUMMARY_packagegroup-obmc-phosphor-apps-fan-mgmt = "Fan management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-fan-mgmt = \
+        "${@cf_enabled("obmc-phosphor-fan-mgmt", " \
+                virtual/obmc-phosphor-fan-mgmt \
+                ${VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl} \
+        ", d)}"
+
+SUMMARY_packagegroup-obmc-phosphor-apps-chassis-mgmt = "Chassis management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-chassis-mgmt = "\
+        ${@cf_enabled("obmc-phosphor-chassis-mgmt", " \
+                virtual/obmc-phosphor-chassis-mgmt \
+                ${VIRTUAL-RUNTIME_obmc-phosphor-chassis-ctl} \
+        ", d)}"
+
+SUMMARY_packagegroup-obmc-phosphor-apps-sensor-mgmt = "Sensor management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-sensor-mgmt = "\
+        ${@cf_enabled("obmc-phosphor-sensor-mgmt", " \
+                virtual/obmc-phosphor-sensor-mgmt \
+                ${VIRTUAL-RUNTIME_obmc-phosphor-sensor-ctl} \
+        ", d)}"
+
+SUMMARY_packagegroup-obmc-phosphor-apps-flash-mgmt = "Flash management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-flash-mgmt = "\
+        ${@cf_enabled("obmc-phosphor-flash-mgmt", " \
+                virtual/obmc-phosphor-flash-mgmt \
+                ${VIRTUAL-RUNTIME_obmc-phosphor-flash-ctl} \
+        ", d)}"
+
+SUMMARY_packagegroup-obmc-phosphor-apps-event-mgmt = "Event management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-event-mgmt = " \
+        ${@df_enabled("obmc-phosphor-event-mgmt", " \
+                virtual/obmc-phosphor-event-mgmt \
+        ", d)}"
+
+SUMMARY_packagegroup-obmc-phosphor-apps-policy-mgmt = "Policy management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-policy-mgmt = " \
+        ${@df_enabled("obmc-phosphor-policy-mgmt", " \
+                virtual/obmc-phosphor-policy-mgmt \
+        ", d)}"
+
+SUMMARY_packagegroup-obmc-phosphor-apps-system-mgmt = "System management support"
+RDEPENDS_packagegroup-obmc-phosphor-apps-system-mgmt = " \
+        ${@df_enabled("obmc-phosphor-system-mgmt", " \
+                virtual/obmc-phosphor-system-mgmt \
+        ", d)}"
diff --git a/common/recipes.txt b/common/recipes.txt
new file mode 100644
index 0000000..c2c88b7
--- /dev/null
+++ b/common/recipes.txt
@@ -0,0 +1 @@
+recipes-phosphor      - Phosphor OpenBMC applications and configuration