Merge pull request #425 from williamspatrick/increase-oldest-kernel
Force OLDEST_KERNEL to 4.4.0
diff --git a/classes/config-in-skeleton.bbclass b/classes/config-in-skeleton.bbclass
index 72249ff..907f226 100644
--- a/classes/config-in-skeleton.bbclass
+++ b/classes/config-in-skeleton.bbclass
@@ -4,9 +4,13 @@
inherit allarch
inherit setuptools
inherit pythonnative
+inherit skeleton-rev
+inherit obmc-phosphor-license
+
+HOMEPAGE = "http://github.com/openbmc/skeleton"
DEPENDS += "python"
-SRC_URI += "git://github.com/openbmc/skeleton;subpath=configs"
+SRC_URI += "${SKELETON_URI};subpath=configs"
S = "${WORKDIR}/configs"
python() {
diff --git a/classes/obmc-phosphor-image_types_uboot.bbclass b/classes/obmc-phosphor-image_types_uboot.bbclass
index c44139e..23903d8 100644
--- a/classes/obmc-phosphor-image_types_uboot.bbclass
+++ b/classes/obmc-phosphor-image_types_uboot.bbclass
@@ -52,6 +52,8 @@
uinitrd="${initrd}.u-boot"
rootfs="${IMAGE_LINK_NAME}.${IMAGE_BASETYPE}"
rwfs="rwfs.${OVERLAY_BASETYPE}"
+ rofsimg=rofs.${IMAGE_BASETYPE}.cpio
+ netimg=initramfs-netboot.cpio
if [ ! -f $ddir/$kernel ]; then
bbfatal "Kernel file ${ddir}/${kernel} does not exist"
@@ -77,11 +79,11 @@
dst="${ddir}/${FLASH_IMAGE_NAME}"
rm -rf $dst
mk_nor_image ${dst} ${FLASH_SIZE}
- dd if=${ddir}/${uboot} of=${dst} bs=1k seek=${FLASH_UBOOT_OFFSET}
- dd if=${ddir}/${kernel} of=${dst} bs=1k seek=${FLASH_KERNEL_OFFSET}
- dd if=${ddir}/${uinitrd} of=${dst} bs=1k seek=${FLASH_INITRD_OFFSET}
- dd if=${ddir}/${rootfs} of=${dst} bs=1k seek=${FLASH_ROFS_OFFSET}
- dd if=${ddir}/${rwfs} of=${dst} bs=1k seek=${FLASH_RWFS_OFFSET}
+ dd if=${ddir}/${uboot} of=${dst} bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET}
+ dd if=${ddir}/${kernel} of=${dst} bs=1k conv=notrunc seek=${FLASH_KERNEL_OFFSET}
+ dd if=${ddir}/${uinitrd} of=${dst} bs=1k conv=notrunc seek=${FLASH_INITRD_OFFSET}
+ dd if=${ddir}/${rootfs} of=${dst} bs=1k conv=notrunc seek=${FLASH_ROFS_OFFSET}
+ dd if=${ddir}/${rwfs} of=${dst} bs=1k conv=notrunc seek=${FLASH_RWFS_OFFSET}
dstlink="${ddir}/${FLASH_IMAGE_LINK}"
rm -rf $dstlink
ln -sf ${FLASH_IMAGE_NAME} $dstlink
@@ -95,5 +97,13 @@
tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.all.tar -C ${ddir} image-bmc
tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.tar -C ${ddir} image-u-boot image-kernel image-initramfs image-rofs image-rwfs
+
+ # Package the root image (rofs layer) with the initramfs for net booting.
+ # Uses the symlink above to get the desired name in the cpio
+ ( cd $ddir && echo image-rofs | cpio -oHnewc -L > ${rofsimg} )
+ # Prepend the rofs cpio -- being uncompressed it must be 4-byte aligned
+ cat ${ddir}/${rofsimg} ${ddir}/${initrd} > ${ddir}/${netimg}
+ oe_mkimage "${netimg}" "${INITRD_CTYPE}"
+
}
do_generate_flash[vardepsexclude] = "DATETIME"
diff --git a/classes/obmc-phosphor-initfs.bbclass b/classes/obmc-phosphor-initfs.bbclass
deleted file mode 100644
index de7923e..0000000
--- a/classes/obmc-phosphor-initfs.bbclass
+++ /dev/null
@@ -1,4 +0,0 @@
-# Common code for recipes that implement Phosphor OpenBMC filesystem
-
-RPROVIDES_${PN} += "obmc-phosphor-initfs"
-PROVIDES += "obmc-phosphor-initfs"
diff --git a/classes/obmc-phosphor-systemd.bbclass b/classes/obmc-phosphor-systemd.bbclass
index b07174f..f882bfc 100644
--- a/classes/obmc-phosphor-systemd.bbclass
+++ b/classes/obmc-phosphor-systemd.bbclass
@@ -7,32 +7,31 @@
# and these files will be added to the main package if they exist.
#
# Alternatively this class can just be inherited and
-# ${BPN}.service will be added to the main package.
+# ${PN}.service will be added to the main package.
inherit systemd
python() {
- bpn = d.getVar('BPN', True)
+ pn = d.getVar('PN', True)
searchpaths = d.getVar('FILESPATH', True)
- services = d.getVar('SYSTEMD_SERVICE_' + bpn, True)
+ services = d.getVar('SYSTEMD_SERVICE_' + pn, True)
if services:
services = services.split()
else:
- services = [bpn + '.service']
+ services = [pn + '.service']
for s in services:
file = s
path = bb.utils.which(searchpaths, file)
if os.path.isfile(path):
d.appendVar('SRC_URI', ' file://' + file)
- d.appendVar(
- 'FILES_' + bpn, ' ' +
- d.getVar('systemd_system_unitdir', True) + file)
+ d.appendVar("FILES_%s" %(pn), " %s/%s" \
+ % (d.getVar('systemd_system_unitdir', True), file))
d.appendVar('OBMC_SYSTEMD_SERVICES', ' ' + file)
- if file not in (d.getVar('SYSTEMD_SERVICE_' + bpn, True) or "").split():
- d.appendVar('SYSTEMD_SERVICE_' + bpn, ' ' + file)
+ if file not in (d.getVar('SYSTEMD_SERVICE_' + pn, True) or "").split():
+ d.appendVar('SYSTEMD_SERVICE_' + pn, ' ' + file)
else:
bb.error("Could not find service file: %s" % file)
}
diff --git a/classes/obmc-phosphor-utils.bbclass b/classes/obmc-phosphor-utils.bbclass
index 4f55629..44ca7ad 100644
--- a/classes/obmc-phosphor-utils.bbclass
+++ b/classes/obmc-phosphor-utils.bbclass
@@ -2,13 +2,16 @@
inherit utils
+
def df_enabled(feature, value, d):
- return base_contains("DISTRO_FEATURES", feature, value, "", d)
+ return base_contains("DISTRO_FEATURES", feature, value, "", d)
+
def mf_enabled(feature, value, d):
- return base_contains("MACHINE_FEATURES", feature, value, "", d)
+ return base_contains("MACHINE_FEATURES", feature, value, "", d)
+
def cf_enabled(feature, value, d):
- return value if df_enabled(feature, value, d) \
- and mf_enabled(feature, value, d) \
- else ""
+ return value if df_enabled(feature, value, d) \
+ and mf_enabled(feature, value, d) \
+ else ""
diff --git a/classes/skeleton-gdbus.bbclass b/classes/skeleton-gdbus.bbclass
new file mode 100644
index 0000000..58df398
--- /dev/null
+++ b/classes/skeleton-gdbus.bbclass
@@ -0,0 +1,7 @@
+inherit skeleton
+
+DEPENDS += "glib-2.0 obmc-libobmc-intf"
+
+do_install_append() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/classes/skeleton-python.bbclass b/classes/skeleton-python.bbclass
new file mode 100644
index 0000000..5464e2d
--- /dev/null
+++ b/classes/skeleton-python.bbclass
@@ -0,0 +1,5 @@
+inherit skeleton
+inherit allarch
+inherit setuptools
+
+DEPENDS += "python"
diff --git a/classes/skeleton-rev.bbclass b/classes/skeleton-rev.bbclass
new file mode 100644
index 0000000..93544de
--- /dev/null
+++ b/classes/skeleton-rev.bbclass
@@ -0,0 +1,2 @@
+SRCREV ?= "b4140b888f586c98c5d03893166c5074a98cf951"
+SKELETON_URI ?= "git://github.com/openbmc/skeleton"
diff --git a/classes/skeleton-sdbus.bbclass b/classes/skeleton-sdbus.bbclass
new file mode 100644
index 0000000..627ce76
--- /dev/null
+++ b/classes/skeleton-sdbus.bbclass
@@ -0,0 +1,7 @@
+inherit skeleton
+
+DEPENDS += "systemd"
+
+do_install_append() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/classes/skeleton.bbclass b/classes/skeleton.bbclass
new file mode 100644
index 0000000..1f67333
--- /dev/null
+++ b/classes/skeleton.bbclass
@@ -0,0 +1,7 @@
+inherit obmc-phosphor-license
+inherit skeleton-rev
+
+HOMEPAGE = "http://github.com/openbmc/skeleton"
+
+SRC_URI += "${SKELETON_URI}"
+S = "${WORKDIR}/git/${SKELETON_DIR}"
diff --git a/common/recipes-core/os-release/os-release.bbappend b/common/recipes-core/os-release/os-release.bbappend
index 3dd203b..f9befa6 100644
--- a/common/recipes-core/os-release/os-release.bbappend
+++ b/common/recipes-core/os-release/os-release.bbappend
@@ -17,3 +17,4 @@
OS_RELEASE_FIELDS_append = " BUILD_ID"
do_compile[nostamp] = "1"
+do_compile_remove[vardeps] = "BUILD_ID"
diff --git a/common/recipes-core/systemd/systemd/obmc-standby.target b/common/recipes-core/systemd/systemd/obmc-standby.target
new file mode 100644
index 0000000..d8cd72f
--- /dev/null
+++ b/common/recipes-core/systemd/systemd/obmc-standby.target
@@ -0,0 +1,2 @@
+[Unit]
+Description=OpenBMC System
diff --git a/common/recipes-core/systemd/systemd_%.bbappend b/common/recipes-core/systemd/systemd_%.bbappend
index 9ad6a40..e2995dc 100644
--- a/common/recipes-core/systemd/systemd_%.bbappend
+++ b/common/recipes-core/systemd/systemd_%.bbappend
@@ -2,11 +2,16 @@
PACKAGECONFIG_remove = "machined hibernate ldconfig binfmt backlight quotacheck localed kdbus ima smack polkit"
FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
SRC_URI += "file://default.network"
+SRC_URI += "file://obmc-standby.target"
FILES_${PN} += "${libdir}/systemd/network/default.network"
+FILES_${PN} += "${systemd_system_unitdir}/obmc-standby.target"
do_install_append() {
install -m 644 ${WORKDIR}/default.network ${D}${libdir}/systemd/network/
+ install -m 644 ${WORKDIR}/obmc-standby.target ${D}${systemd_system_unitdir}
+ ln -sf ../obmc-standby.target \
+ ${D}${systemd_system_unitdir}/multi-user.target.wants/obmc-standby.target
#TODO Remove after this issue is resolved
#https://github.com/openbmc/openbmc/issues/152
diff --git a/common/recipes-phosphor/dbus/obmc-mapper/obmc-mapper.service b/common/recipes-phosphor/dbus/obmc-mapper/obmc-mapper.service
index 05d1e80..ff863ea 100644
--- a/common/recipes-phosphor/dbus/obmc-mapper/obmc-mapper.service
+++ b/common/recipes-phosphor/dbus/obmc-mapper/obmc-mapper.service
@@ -7,6 +7,7 @@
ExecStart=/usr/sbin/phosphor-mapper
BusName=org.openbmc.ObjectMapper
TimeoutStartSec=300
+Environment="PYTHONUNBUFFERED=1"
[Install]
WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/dbus/obmc-rest/obmc-rest.service b/common/recipes-phosphor/dbus/obmc-rest/obmc-rest.service
index a78c86b..8612b98 100644
--- a/common/recipes-phosphor/dbus/obmc-rest/obmc-rest.service
+++ b/common/recipes-phosphor/dbus/obmc-rest/obmc-rest.service
@@ -6,6 +6,7 @@
[Service]
Restart=always
ExecStart=/usr/sbin/obmc-rest
+Environment="PYTHONUNBUFFERED=1"
[Install]
WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/host-ipmid/host-ipmi-hw-example.bb b/common/recipes-phosphor/host-ipmid/host-ipmi-hw-example.bb
index 13b07ad..3c4766e 100644
--- a/common/recipes-phosphor/host-ipmid/host-ipmi-hw-example.bb
+++ b/common/recipes-phosphor/host-ipmid/host-ipmi-hw-example.bb
@@ -2,16 +2,11 @@
DESCRIPTION = "Phosphor OpenBMC host IPMI to DBUS example implementation."
PR = "r1"
-RDEPENDS_${PN} += "python-subprocess"
+RDEPENDS_${PN} += "python-subprocess python-dbus python-pygobject"
SYSTEMD_SERVICE_${PN} = "host-ipmi-hw.service"
-inherit obmc-phosphor-pydbus-service
inherit obmc-phosphor-host-ipmi-hw
+inherit skeleton-python
-S = "${WORKDIR}/git"
-SRC_URI += "git://github.com/openbmc/skeleton.git;subpath=bin;destsuffix=git"
-SRCREV="2f9ee83356fba3f6f843bf2584f3e7e95763ec98"
-
-SCRIPT_NAME = "ipmi_debug.py"
-INSTALL_NAME = "host-ipmi-hw"
+SKELETON_DIR = "pyipmitest"
diff --git a/common/recipes-phosphor/host-ipmid/host-ipmid.bb b/common/recipes-phosphor/host-ipmid/host-ipmid.bb
index 2a761de..a891df6 100644
--- a/common/recipes-phosphor/host-ipmid/host-ipmid.bb
+++ b/common/recipes-phosphor/host-ipmid/host-ipmid.bb
@@ -19,7 +19,7 @@
RDEPENDS_${PN} += "network"
SRC_URI += "git://github.com/openbmc/phosphor-host-ipmid"
-SRCREV = "b7bcda57ee39616e8937194d281e2476e6ea8df2"
+SRCREV = "87e080b537aff3fd22ec56ef72660937bed38422"
S = "${WORKDIR}/git"
INSTALL_NAME = "ipmid"
diff --git a/common/recipes-phosphor/network/network/network.service b/common/recipes-phosphor/network/network/network.service
index 6d0aad7..70df7c5 100644
--- a/common/recipes-phosphor/network/network/network.service
+++ b/common/recipes-phosphor/network/network/network.service
@@ -3,6 +3,7 @@
[Service]
ExecStart=/usr/sbin/netman.py
+Environment="PYTHONUNBUFFERED=1"
[Install]
WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-button-power.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-button-power.bb
new file mode 100644
index 0000000..7adda51
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-button-power.bb
@@ -0,0 +1,7 @@
+SUMMARY = "OpenBMC org.openbmc.Button example implementation"
+DESCRIPTION = "A sample implementation for a button controlling a power domain."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "pwrbutton"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-button-reset.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-button-reset.bb
new file mode 100644
index 0000000..ba83a26
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-button-reset.bb
@@ -0,0 +1,6 @@
+SUMMARY = "OpenBMC org.openbmc.Button example implementation"
+DESCRIPTION = "A sample implementation for a reset button."
+PR = "r1"
+
+inherit skeleton-gdbus
+SKELETON_DIR = "rstbutton"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-control-chassis.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-control-chassis.bb
new file mode 100644
index 0000000..ca80715
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-control-chassis.bb
@@ -0,0 +1,14 @@
+SUMMARY = "OpenBMC org.openbmc.control.Chassis example implementation"
+DESCRIPTION = "An example implementation of the org.openbmc.control.Chassis DBUS API."
+PR = "r1"
+
+inherit skeleton-python
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-pygobject \
+ python-netclient \
+ pyphosphor \
+ "
+
+SKELETON_DIR = "pychassisctl"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-hostcheckstop.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-hostcheckstop.bb
new file mode 100644
index 0000000..d054694
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-hostcheckstop.bb
@@ -0,0 +1,8 @@
+SUMMARY = "OpenBMC checkstop monitor."
+DESCRIPTION = "The checkstop monitor watches a GPIO for a checkstop signal \
+and reboots a server."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "hostcheckstop"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-mgr-inventory.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-mgr-inventory.bb
new file mode 100644
index 0000000..8c1a309
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-mgr-inventory.bb
@@ -0,0 +1,18 @@
+SUMMARY = "OpenBMC inventory manager"
+DESCRIPTION = "OpenBMC inventory manager."
+PR = "r1"
+
+inherit skeleton-python
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-json \
+ python-pickle \
+ python-pygobject \
+ pyphosphor \
+ ${VIRTUAL-RUNTIME_skeleton_workbook} \
+ "
+
+SKELETON_DIR = "pyinventorymgr"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-op-control-power.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-op-control-power.bb
new file mode 100644
index 0000000..e724472
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-op-control-power.bb
@@ -0,0 +1,7 @@
+SUMMARY = "org.openbmc.control.Power implemention for OpenPOWER"
+DESCRIPTION = "A power control implementation suitable for OpenPOWER systems."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "op-pwrctl"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-pcie-detect.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-pcie-detect.bb
new file mode 100644
index 0000000..e134cf0
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-pcie-detect.bb
@@ -0,0 +1,7 @@
+SUMMARY = "OpenBMC PCIE slot detection utility"
+DESCRIPTION = "OpenBMC PCIE slot detection utility."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "pciedetect"
diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-watchdog.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-watchdog.bb
new file mode 100644
index 0000000..821b7f0
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-watchdog.bb
@@ -0,0 +1,7 @@
+SUMMARY = "OpenBMC org.openbmc.Watchdog example implementation"
+DESCRIPTION = "A sample implementation for the org.openbmc.Watchdog DBUS API."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "hostwatchdog"
diff --git a/common/recipes-phosphor/obmc-phosphor-devtools/obmc-pydevtools.bb b/common/recipes-phosphor/obmc-phosphor-devtools/obmc-pydevtools.bb
new file mode 100644
index 0000000..296a399
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-devtools/obmc-pydevtools.bb
@@ -0,0 +1,17 @@
+SUMMARY = "OpenBMC python devtools"
+DESCRIPTION = "Shortcut scripts for developers."
+PR = "r1"
+
+inherit skeleton-python
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-json \
+ python-xml \
+ python-pygobject \
+ ${VIRTUAL-RUNTIME_skeleton_workbook} \
+ "
+
+SKELETON_DIR = "pytools"
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
index 2b59b58..1f4ce90 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
@@ -86,8 +86,7 @@
bus = dbus.SystemBus()
services = []
- services.append(dbus.service.BusName(SERVICE_PREFIX + '.PythonService0', bus))
- services.append(dbus.service.BusName(SERVICE_PREFIX + '.PythonService1', bus))
+ services.append(dbus.service.BusName(SERVICE_PREFIX + '.PythonService', bus))
objs = []
objs.append(SampleObjectOne(bus, BASE_OBJ_PATH + 'path0/PythonObj'))
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service
index fbc50d3..27d9bfe 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service
@@ -4,6 +4,7 @@
[Service]
Restart=always
ExecStart=/usr/sbin/obmc-phosphor-example-pydbus
+Environment="PYTHONUNBUFFERED=1"
[Install]
WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService0.conf b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService.conf
similarity index 63%
rename from common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService0.conf
rename to common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService.conf
index 45af4f4..6c4a713 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService0.conf
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService.conf
@@ -2,7 +2,7 @@
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
- <allow own="org.openbmc.examples.SDBusService0"/>
- <allow send_destination="org.openbmc.examples.SDBusService0"/>
+ <allow own="org.openbmc.examples.PythonService"/>
+ <allow send_destination="org.openbmc.examples.PythonService"/>
</policy>
</busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService0.conf b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService0.conf
deleted file mode 100644
index fad0b81..0000000
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService0.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-<!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="org.openbmc.examples.PythonService0"/>
- <allow send_destination="org.openbmc.examples.PythonService0"/>
- </policy>
-</busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService1.conf b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService1.conf
deleted file mode 100644
index 0f7114e..0000000
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService1.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-<!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="org.openbmc.examples.PythonService1"/>
- <allow send_destination="org.openbmc.examples.PythonService1"/>
- </policy>
-</busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/pyclient-sample.py b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/pyclient-sample.py
index e1010a5..138865d 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/pyclient-sample.py
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/pyclient-sample.py
@@ -36,9 +36,9 @@
bus = dbus.SystemBus()
- obj0 = bus.get_object(SERVICE_PREFIX + '.PythonService0',
+ obj0 = bus.get_object(SERVICE_PREFIX + '.PythonService',
BASE_OBJ_PATH + 'path0/PythonObj')
- obj1 = bus.get_object(SERVICE_PREFIX + '.PythonService1',
+ obj1 = bus.get_object(SERVICE_PREFIX + '.PythonService',
BASE_OBJ_PATH + 'path1/PythonObj')
echo0= dbus.Interface(obj0,
dbus_interface=IFACE_PREFIX + '.Echo')
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb b/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
index 1446a73..57e27cf 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
@@ -3,8 +3,7 @@
PR = "r1"
DBUS_SERVICES = " \
- org.openbmc.examples.PythonService0 \
- org.openbmc.examples.PythonService1 \
+ org.openbmc.examples.PythonService \
"
inherit obmc-phosphor-pydbus-service
diff --git a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/obmc-phosphor-example-sdbus.c b/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/obmc-phosphor-example-sdbus.c
index a66bb55..769a208 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/obmc-phosphor-example-sdbus.c
+++ b/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/obmc-phosphor-example-sdbus.c
@@ -79,13 +79,7 @@
}
/* Take a well-known service name so that clients can find us */
- r = sd_bus_request_name(bus, "org.openbmc.examples.SDBusService0", 0);
- if (r < 0) {
- fprintf(stderr, "Failed to acquire service name: %s\n", strerror(-r));
- goto finish;
- }
-
- r = sd_bus_request_name(bus, "org.openbmc.examples.SDBusService1", 0);
+ r = sd_bus_request_name(bus, "org.openbmc.examples.SDBusService", 0);
if (r < 0) {
fprintf(stderr, "Failed to acquire service name: %s\n", strerror(-r));
goto finish;
diff --git a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService0.conf b/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService.conf
similarity index 62%
copy from common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService0.conf
copy to common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService.conf
index 45af4f4..86e2a53 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService0.conf
+++ b/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService.conf
@@ -2,7 +2,7 @@
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
- <allow own="org.openbmc.examples.SDBusService0"/>
- <allow send_destination="org.openbmc.examples.SDBusService0"/>
+ <allow own="org.openbmc.examples.SDBusService"/>
+ <allow send_destination="org.openbmc.examples.SDBusService"/>
</policy>
</busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService1.conf b/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService1.conf
deleted file mode 100644
index 5a7bfb8..0000000
--- a/common/recipes-phosphor/obmc-phosphor-example-sdbus/files/org.openbmc.examples.SDBusService1.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-<!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="org.openbmc.examples.SDBusService1"/>
- <allow send_destination="org.openbmc.examples.SDBusService1"/>
- </policy>
-</busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb b/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb
index f1a9eb9..9a3018d 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb
+++ b/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb
@@ -3,8 +3,7 @@
PR = "r1"
DBUS_SERVICES = " \
- org.openbmc.examples.SDBusService0 \
- org.openbmc.examples.SDBusService1 \
+ org.openbmc.examples.SDBusService \
"
S = "${WORKDIR}"
diff --git a/common/recipes-phosphor/obmc-phosphor-fan/obmc-control-fan.bb b/common/recipes-phosphor/obmc-phosphor-fan/obmc-control-fan.bb
new file mode 100644
index 0000000..a4bd005
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-fan/obmc-control-fan.bb
@@ -0,0 +1,12 @@
+SUMMARY = "OpenBMC fan control"
+DESCRIPTION = "OpenBMC fan control."
+PR = "r1"
+
+inherit skeleton-python
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-pygobject \
+ pyphosphor \
+ "
+SKELETON_DIR = "pyfanctl"
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/obmc-flash-bios.bb b/common/recipes-phosphor/obmc-phosphor-flash/obmc-flash-bios.bb
new file mode 100644
index 0000000..8f7b766
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/obmc-flash-bios.bb
@@ -0,0 +1,9 @@
+SUMMARY = "OpenBMC org.openbmc.Flash example implementation"
+DESCRIPTION = "A sample implementation for the org.openbmc.Flash DBUS API. \
+org.openbmc.Flash provides APIs for functions like BIOS flash access control \
+and updating."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "flashbios"
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/obmc-flash-bmc.bb b/common/recipes-phosphor/obmc-phosphor-flash/obmc-flash-bmc.bb
new file mode 100644
index 0000000..3c41220
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/obmc-flash-bmc.bb
@@ -0,0 +1,17 @@
+SUMMARY = "OpenBMC BMC update utility"
+DESCRIPTION = "OpenBMC BMC update utility."
+PR = "r1"
+
+inherit skeleton-python
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-compression \
+ python-shell \
+ python-pygobject \
+ python-subprocess \
+ python-io \
+ pyphosphor \
+ "
+
+SKELETON_DIR = "pyflashbmc"
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/obmc-mgr-download.bb b/common/recipes-phosphor/obmc-phosphor-flash/obmc-mgr-download.bb
new file mode 100644
index 0000000..d3a5ecd
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/obmc-mgr-download.bb
@@ -0,0 +1,17 @@
+SUMMARY = "OpenBMC org.openbmc.managers.Download example implementation"
+DESCRIPTION = "An example implementation for the org.openbmc.managers.Download DBUS API."
+PR = "r1"
+
+inherit skeleton-python
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-pygobject \
+ python-subprocess \
+ pyphosphor \
+ ${VIRTUAL-RUNTIME_skeleton_workbook} \
+ "
+
+SKELETON_DIR = "pydownloadmgr"
diff --git a/common/recipes-phosphor/obmc-phosphor-flash/obmc-op-flasher.bb b/common/recipes-phosphor/obmc-phosphor-flash/obmc-op-flasher.bb
new file mode 100644
index 0000000..9908500
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-flash/obmc-op-flasher.bb
@@ -0,0 +1,11 @@
+SUMMARY = "OpenPOWER flashing utility."
+DESCRIPTION = "A BMC/BIOS flashing utility for use on OpenPOWER system."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+# DEPEND,RDEPEND on pflash if the openpower-pflash machine feature is set.
+PACKAGECONFIG ??= "${@bb.utils.contains('MACHINE_FEATURES', 'openpower-pflash', 'openpower-pflash', '', d)}"
+PACKAGECONFIG[openpower-pflash] = ",,pflash,pflash"
+
+SKELETON_DIR = "op-flasher"
diff --git a/common/recipes-phosphor/obmc-phosphor-host/obmc-op-control-host.bb b/common/recipes-phosphor/obmc-phosphor-host/obmc-op-control-host.bb
new file mode 100644
index 0000000..b301101
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-host/obmc-op-control-host.bb
@@ -0,0 +1,7 @@
+SUMMARY = "org.openbmc.control.Host implementation for OpenPOWER"
+DESCRIPTION = "A host control implementation suitable for OpenPOWER systems."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "op-hostctl"
diff --git a/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-init.sh b/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-init.sh
index c37b3d5..70af93d 100644
--- a/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-init.sh
+++ b/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-init.sh
@@ -184,6 +184,7 @@
fsck=$fsckbase$rwfst
fsckopts=-a
optfile=/run/initramfs/init-options
+optbase=/run/initramfs/init-options-base
urlfile=/run/initramfs/init-download-url
update=/run/initramfs/update
@@ -192,9 +193,16 @@
cp /${optfile##*/} $optfile
fi
+if test -e /${optbase##*/}
+then
+ cp /${optbase##*/} $optbase
+else
+ touch $optbase
+fi
+
if test ! -f $optfile
then
- cat /proc/cmdline > $optfile
+ cat /proc/cmdline $optbase > $optfile
get_fw_env_var openbmcinit >> $optfile
get_fw_env_var openbmconce >> $optfile
fi
diff --git a/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh b/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh
index 8d5d0c9..8d5c672 100644
--- a/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh
+++ b/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh
@@ -44,6 +44,14 @@
if test -x $update
then
$update --clean-saved-files
+ remaining=$(ls $image*)
+ if test -n "$remaining"
+ then
+ echo 1>&2 "Flash update failed to flash these images:"
+ echo 1>&2 "$remaining"
+ else
+ echo "Flash update completed."
+ fi
else
echo 1>&2 "Flash update requested but $update program missing!"
fi
diff --git a/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh b/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh
index aa8fd89..f0c41a7 100755
--- a/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh
+++ b/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh
@@ -2,8 +2,9 @@
echo update: "$@"
-export PS1=update-sh#\
-# exec /bin/sh
+echoerr() {
+ echo 1>&2 "ERROR: $@"
+}
cd /
if ! test -r /proc/mounts || ! test -f /proc/mounts
@@ -21,12 +22,43 @@
mkdir -p /dev
mount -t devtmpfs dev dev
fi
-while grep mtd /proc/mounts
-do
- echo 1>&2 "Error: A mtd device is mounted."
- sulogin
- # exec /bin/sh
-done
+
+# mtd number N with mtd name Name can be mounted via mtdN, or mtd:Name
+# (with a mtd aware fs) or by /dev/mtdblockN (with a mtd or block fs).
+mtdismounted() {
+ m=${1##mtd}
+ if grep -s "mtdblock$m " /proc/mounts || grep -s "mtd$m " /proc/mounts
+ then
+ return 0
+ fi
+ n=$(cat /sys/class/mtd/mtd$m/name)
+ if test -n "$n" && grep -s "mtd:$n " /proc/mounts
+ then
+ return 0
+ fi
+ return 1
+}
+
+# Detect child partitions when the whole flash is to be updated.
+# Ignore mtdNro and mtdblockN names in the class subsystem directory.
+childmtds() {
+ for m in /sys/class/mtd/$1/mtd*
+ do
+ m=${m##*/}
+ if test "${m%ro}" = "${m#mtdblock}"
+ then
+ echo $m
+ fi
+ done
+}
+
+toobig() {
+ if test $(stat -L -c "%s" "$1") -gt $(cat /sys/class/mtd/"$2"/size)
+ then
+ return 0
+ fi
+ return 1
+}
findmtd() {
m=$(grep -xl "$1" /sys/class/mtd/*/name)
@@ -60,17 +92,39 @@
save=/run/save/${upper##*/}
mounted=
+doflash=y
doclean=
dosave=y
dorestore=y
toram=
+checksize=y
+checkmount=y
whitelist=/run/initramfs/whitelist
image=/run/initramfs/image-
+imglist=
while test "$1" != "${1#-}"
do
case "$1" in
+ --help)
+ cat <<HERE
+Usage: $0 [options] -- Write images in /run/initramfs to flash (/dev/mtd*)
+ --help Show this message
+ --no-flash Don't attempt to write images to flash
+ --ignore-size Don't compare image size to mtd device size
+ --ignore-mount Don't check if destination is mounted
+ --save-files Copy whitelisted files to save directory in RAM
+ --no-save-files Don't copy whitelisted files to save directory
+ --copy-files Copy files from save directory to rwfs mountpoint
+ --restore-files Restore files from save directory to rwfs layer
+ --no-restore-files Don't restore saved files from ram to rwfs layer
+ --clean-saved-files Delete saved whitelisted files from RAM
+ --no-clean-saved-files Retain saved whitelisted files in RAM
+HERE
+
+ exit 0 ;;
+
--no-clean-saved-files)
doclean=
shift ;;
@@ -89,11 +143,21 @@
--restore-files)
dorestore=y
shift ;;
+ --no-flash)
+ doflash=
+ shift ;;
+ --ignore-size)
+ checksize=
+ shift ;;
+ --ignore-mount)
+ checkmount=
+ doflash=
+ shift ;;
--copy-files)
toram=y
shift ;;
*)
- echo 2>&1 "Unknown option $1"
+ echoerr "Unknown option $1. Try $0 --help."
exit 1 ;;
esac
done
@@ -109,13 +173,24 @@
while read f
do
- if ! test -e $upper/$f
+ # Entries shall start with /, no trailing /.. or embedded /../
+ if test "/${f#/}" != "$f" -o "${f%/..}" != "${f#*/../}"
+ then
+ echo 1>&2 "WARNING: Skipping bad whitelist entry $f."
+ continue
+ fi
+ if ! test -e "$upper/$f"
then
continue
fi
d="$save/$f"
+ while test "${d%/}" != "${d%/.}"
+ do
+ d="${d%/.}"
+ d="${d%/}"
+ done
mkdir -p "${d%/*}"
- cp -rp $upper/$f "${d%/*}/"
+ cp -rp "$upper/$f" "${d%/*}/"
done < $whitelist
if test -n "$mounted"
@@ -124,30 +199,54 @@
fi
fi
-for f in $image*
+imglist=$(echo $image*)
+if test "$imglist" = "$image*" -a ! -e "$imglist"
+then
+ # shell didn't expand the wildcard, so no files exist
+ echo "No images found to update."
+ imglist=
+fi
+
+for f in $imglist
do
m=$(findmtd ${f#$image})
if test -z "$m"
then
- echo 1>&2 "Unable to find mtd partiton for ${f##*/}."
- exec /bin/sh
+ echoerr "Unable to find mtd partiton for ${f##*/}."
+ exit 1
fi
-done
-
-for f in $image*
-do
- if test ! -s $f
+ if test -n "$checksize" && toobig "$f" "$m"
then
- echo "Skipping empty update of ${f#$image}."
- rm $f
- continue
+ echoerr "Image ${f##*/} too big for $m."
+ exit 1
fi
- m=$(findmtd ${f#$image})
- echo "Updating ${f#$image}..."
- flashcp -v $f /dev/$m && rm $f
+ for s in $m $(childmtds $m)
+ do
+ if test -n "$checkmount" && mtdismounted $s
+ then
+ echoerr "Device $s is mounted, ${f##*/} is busy."
+ exit 1
+ fi
+ done
done
-if test "x$toram" = xy
+if test -n "$doflash"
+then
+ for f in $imglist
+ do
+ if test ! -s $f
+ then
+ echo "Skipping empty update of ${f#$image}."
+ rm $f
+ continue
+ fi
+ m=$(findmtd ${f#$image})
+ echo "Updating ${f#$image}..."
+ flashcp -v $f /dev/$m && rm $f
+ done
+fi
+
+if test -d $save -a "x$toram" = xy
then
mkdir -p $upper
cp -rp $save/. $upper/
@@ -173,11 +272,3 @@
fi
exit
-
-# NOT REACHED without edit
-# NOT REACHED without edit
-
-echo "Flash completed. Inspect, cleanup and reboot -f to continue."
-
-export PS1=update-sh#\
-exec /bin/sh
diff --git a/common/recipes-phosphor/obmc-phosphor-initfs/files/whitelist b/common/recipes-phosphor/obmc-phosphor-initfs/files/whitelist
index 603cec7..c35a552 100644
--- a/common/recipes-phosphor/obmc-phosphor-initfs/files/whitelist
+++ b/common/recipes-phosphor/obmc-phosphor-initfs/files/whitelist
@@ -6,4 +6,4 @@
/etc/group
/etc/shadow
/etc/gshadow
-/var/lib/obmc/events/
+/var/lib/obmc/events
diff --git a/common/recipes-phosphor/obmc-phosphor-initfs/obmc-phosphor-init.bb b/common/recipes-phosphor/obmc-phosphor-initfs/obmc-phosphor-initfs.bb
similarity index 96%
rename from common/recipes-phosphor/obmc-phosphor-initfs/obmc-phosphor-init.bb
rename to common/recipes-phosphor/obmc-phosphor-initfs/obmc-phosphor-initfs.bb
index 3fa88c9..f81e21d 100644
--- a/common/recipes-phosphor/obmc-phosphor-initfs/obmc-phosphor-init.bb
+++ b/common/recipes-phosphor/obmc-phosphor-initfs/obmc-phosphor-initfs.bb
@@ -3,7 +3,6 @@
PR = "r1"
inherit obmc-phosphor-license
-inherit obmc-phosphor-initfs
S = "${WORKDIR}"
SRC_URI += "file://obmc-init.sh"
diff --git a/common/recipes-phosphor/obmc-phosphor-led/obmc-control-led.bb b/common/recipes-phosphor/obmc-phosphor-led/obmc-control-led.bb
new file mode 100644
index 0000000..94fa7cb
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-led/obmc-control-led.bb
@@ -0,0 +1,10 @@
+SUMMARY = "OpenBMC org.openbmc.Led example implementation"
+DESCRIPTION = "A sample implementation for the org.openbmc.Led DBUS API. \
+The org.openbmc.Led provides APIs for controlling LEDs."
+PR = "r1"
+
+inherit skeleton-sdbus
+
+RDEPENDS_${PN} += "libsystemd"
+
+SKELETON_DIR = "ledctl"
diff --git a/common/recipes-phosphor/obmc-phosphor-libobmc/obmc-libobmc-intf.bb b/common/recipes-phosphor/obmc-phosphor-libobmc/obmc-libobmc-intf.bb
new file mode 100644
index 0000000..a53deba
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-libobmc/obmc-libobmc-intf.bb
@@ -0,0 +1,16 @@
+SUMMARY = "OpenBMC gdbus library"
+DESCRIPTION = "libopenbmc_intf provides a set of gpio access \
+methods and the GDBUS skeleton code for the org.openbmc DBUS API."
+PR = "r1"
+
+inherit skeleton
+
+DEPENDS += "glib-2.0"
+
+SKELETON_DIR = "libopenbmc_intf"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/obmc-hwmon.bb b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-hwmon.bb
new file mode 100644
index 0000000..78442b8
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-hwmon.bb
@@ -0,0 +1,18 @@
+SUMMARY = "OpenBMC hwmon poller"
+DESCRIPTION = "OpenBMC hwmon poller."
+PR = "r1"
+
+inherit skeleton-python
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-json \
+ python-shell \
+ python-pygobject \
+ pyphosphor \
+ ${VIRTUAL-RUNTIME_skeleton_workbook} \
+ "
+
+SKELETON_DIR = "pyhwmon"
diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/obmc-mgr-sensor.bb b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-mgr-sensor.bb
new file mode 100644
index 0000000..ca90c43
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-mgr-sensor.bb
@@ -0,0 +1,17 @@
+SUMMARY = "OpenBMC sensor manager"
+DESCRIPTION = "OpenBMC sensor manager."
+PR = "r1"
+
+inherit skeleton-python
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-json \
+ python-pygobject\
+ pyphosphor \
+ ${VIRTUAL-RUNTIME_skeleton_workbook} \
+ "
+
+SKELETON_DIR = "pysensormgr"
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/obmc-control-bmc.bb b/common/recipes-phosphor/obmc-phosphor-sys/obmc-control-bmc.bb
new file mode 100644
index 0000000..bfc3326
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/obmc-control-bmc.bb
@@ -0,0 +1,8 @@
+SUMMARY = "OpenBMC org.openbmc.control.Bmc example implementation"
+DESCRIPTION = "A sample implementation for the org.openbmc.control.Bmc DBUS API. \
+org.openbmc.control.Bmc provides APIs for functions like resetting the BMC."
+PR = "r1"
+
+inherit skeleton-gdbus
+
+SKELETON_DIR = "bmcctl"
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-state.bb b/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-state.bb
new file mode 100644
index 0000000..125fd65
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-state.bb
@@ -0,0 +1,16 @@
+SUMMARY = "OpenBMC state manager"
+DESCRIPTION = "OpenBMC state manager."
+PR = "r1"
+
+inherit skeleton-python
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-json \
+ python-subprocess \
+ python-pygobject \
+ "
+
+SKELETON_DIR = "pystatemgr"
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-system.bb b/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-system.bb
new file mode 100644
index 0000000..accd7da
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-system.bb
@@ -0,0 +1,27 @@
+SUMMARY = "OpenBMC system manager"
+DESCRIPTION = "OpenBMC system manager."
+PR = "r1"
+
+inherit skeleton-python
+inherit obmc-phosphor-systemd
+
+VIRTUAL-RUNTIME_skeleton_workbook ?= ""
+
+RDEPENDS_${PN} += "\
+ python-dbus \
+ python-json \
+ python-subprocess \
+ python-pygobject \
+ pyphosphor \
+ ${VIRTUAL-RUNTIME_skeleton_workbook} \
+ "
+
+SKELETON_DIR = "pysystemmgr"
+
+do_compile_append() {
+ oe_runmake -C ../hacks
+}
+
+do_install_append() {
+ oe_runmake -C ../hacks install DESTDIR=${D}
+}
diff --git a/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-system/obmc-mgr-system.service b/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-system/obmc-mgr-system.service
new file mode 100644
index 0000000..9cb04cf
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-sys/obmc-mgr-system/obmc-mgr-system.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenBMC system manager
+Requires=obmc-mapper.service
+After=obmc-mapper.service
+
+[Service]
+Restart=always
+ExecStart=/usr/sbin/system_manager.py
+
+[Install]
+WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-user/files/obmc-phosphor-user.service b/common/recipes-phosphor/obmc-phosphor-user/files/obmc-phosphor-user.service
index fecf835..fc436c1 100644
--- a/common/recipes-phosphor/obmc-phosphor-user/files/obmc-phosphor-user.service
+++ b/common/recipes-phosphor/obmc-phosphor-user/files/obmc-phosphor-user.service
@@ -3,6 +3,7 @@
[Service]
ExecStart=/usr/sbin/obmc-phosphor-userd
+Environment="PYTHONUNBUFFERED=1"
[Install]
WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/rest-dbus/files/rest-dbus.service b/common/recipes-phosphor/rest-dbus/files/rest-dbus.service
index 5ad582f..d3bddab 100644
--- a/common/recipes-phosphor/rest-dbus/files/rest-dbus.service
+++ b/common/recipes-phosphor/rest-dbus/files/rest-dbus.service
@@ -4,3 +4,4 @@
[Service]
Restart=always
ExecStart=/usr/sbin/rest-dbus
+Environment="PYTHONUNBUFFERED=1"
diff --git a/common/recipes-phosphor/settings/settings/settings.service b/common/recipes-phosphor/settings/settings/settings.service
index deed98f..816ebea 100755
--- a/common/recipes-phosphor/settings/settings/settings.service
+++ b/common/recipes-phosphor/settings/settings/settings.service
@@ -3,6 +3,7 @@
[Service]
ExecStart=/usr/sbin/settings_manager.py
+Environment="PYTHONUNBUFFERED=1"
[Install]
WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/skeleton/skeleton.bb b/common/recipes-phosphor/skeleton/skeleton.bb
index 77a2980..f5c5fbf 100644
--- a/common/recipes-phosphor/skeleton/skeleton.bb
+++ b/common/recipes-phosphor/skeleton/skeleton.bb
@@ -3,47 +3,36 @@
HOMEPAGE = "http://github.com/openbmc/skeleton"
PR = "r1"
+inherit packagegroup
inherit obmc-phosphor-license
-inherit obmc-phosphor-systemd
+
inherit obmc-phosphor-chassis-mgmt
inherit obmc-phosphor-fan-mgmt
inherit obmc-phosphor-flash-mgmt
inherit obmc-phosphor-policy-mgmt
inherit obmc-phosphor-sensor-mgmt
inherit obmc-phosphor-system-mgmt
-inherit pythonnative
-inherit python-dir
-VIRTUAL-RUNTIME_skeleton_workbook ?= ""
-
-DEPENDS += "glib-2.0 systemd python"
-RDEPENDS_${PN} += "python-json python-subprocess python-compression libsystemd ${VIRTUAL-RUNTIME_skeleton_workbook}"
-SRC_URI += "git://github.com/openbmc/skeleton"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/*"
-
-# RDEPEND on pflash if the openpower-pflash machine feature is set.
-PACKAGECONFIG ??= "${@bb.utils.contains('MACHINE_FEATURES', 'openpower-pflash', 'openpower-pflash', '', d)}"
-PACKAGECONFIG[openpower-pflash] = ",,,pflash"
-
-SRCREV = "fa8f6166a05410472e8a3ef6a2f2e3b9b5f8d8e4"
-
-S = "${WORKDIR}"
-
-# needed to invoke setuptools
-export STAGING_INCDIR
-export STAGING_LIBDIR
-export BUILD_SYS
-export HOST_SYS
-export PYTHON_SITEPACKAGES_DIR
-
-do_compile() {
- oe_runmake -C git PYTHON=${PYTHON}
-}
-
-do_install() {
- oe_runmake -C git install \
- PYTHON=${PYTHON} \
- DESTDIR=${D} \
- PREFIX=/usr
-}
+RDEPENDS_${PN} += " \
+ obmc-button-power \
+ obmc-button-reset \
+ obmc-control-chassis \
+ obmc-hostcheckstop \
+ obmc-mgr-inventory \
+ obmc-op-control-power \
+ obmc-pcie-detect \
+ obmc-watchdog \
+ obmc-pydevtools \
+ obmc-control-fan \
+ obmc-flash-bios \
+ obmc-flash-bmc \
+ obmc-mgr-download \
+ obmc-op-flasher \
+ obmc-op-control-host \
+ obmc-control-led \
+ obmc-hwmon \
+ obmc-mgr-sensor \
+ obmc-control-bmc \
+ obmc-mgr-state \
+ obmc-mgr-system \
+ "
diff --git a/common/recipes-phosphor/skeleton/skeleton/skeleton.service b/common/recipes-phosphor/skeleton/skeleton/skeleton.service
deleted file mode 100755
index 35b6e6c..0000000
--- a/common/recipes-phosphor/skeleton/skeleton/skeleton.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Temp placeholder for skeleton function
-
-[Service]
-Restart=always
-ExecStart=/usr/sbin/system_manager.py
-
-[Install]
-WantedBy=multi-user.target