mcelog: remove bashism and create ptest subpackage

Create ptest subpackage. Add a patch to remove bashism and then only
ptest package depends on bash.

Inherit autotools-brokensep and re-write do_install as well.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Kai Kang 2015-12-04 15:09:16 +08:00 committed by Martin Jansa
parent 906cb0dcf0
commit e91bab3746
3 changed files with 60 additions and 11 deletions

View File

@ -0,0 +1,36 @@
From 8f57d35747a3b3fabc33466563077373090f869c Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 2 Sep 2014 07:05:15 -0700
Subject: [PATCH] cache-error-trigger: remove bashism
Use "$(cat $F)" to instead of "$(< $F)" to debash.
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
triggers/cache-error-trigger | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/triggers/cache-error-trigger b/triggers/cache-error-trigger
index e32bfd6..785526f 100755
--- a/triggers/cache-error-trigger
+++ b/triggers/cache-error-trigger
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# cache error trigger. This shell script is executed by mcelog in daemon mode
# when a CPU reports excessive corrected cache errors. This could be a indication
# for future uncorrected errors.
@@ -28,7 +28,7 @@ for i in $AFFECTED_CPUS ; do
logger -s -p daemon.crit -t mcelog "Offlining CPU $i due to cache error threshold"
F=$(printf "/sys/devices/system/cpu/cpu%d/online" $i)
echo 0 > $F
- if [ "$(< $F)" != "0" ] ; then
+ if [ "$(cat $F)" != "0" ] ; then
logger -s -p daemon.warn -t mcelog "Offlining CPU $i failed"
EXIT=1
fi
--
1.7.9.5

View File

@ -0,0 +1,3 @@
#!/bin/sh
make -C tests test

View File

@ -4,23 +4,33 @@ and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks
and should run on all Linux systems that need error handling."
HOMEPAGE = "http://mcelog.org/"
SECTION = "System Environment/Base"
DEPENDS += "bash"
SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git"
SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git \
file://mcelog-debash.patch \
file://run-ptest \
"
SRCREV = "0fc9f702232cb2d9969916f899c67c3e64deedda"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://README;md5=3eb76ca64fa07ad53ebb0ebb5b4c8ede"
S = "${WORKDIR}/git"
do_install() {
install -d ${D}/${sbindir}
install -m 0755 ${S}/mcelog ${D}/${sbindir}
install -d ${D}/${mandir}/man8
install -m 0644 ${S}/mcelog.8 ${D}/${mandir}/man8/
install -d ${D}/etc/cron.hourly
install -m 0755 ${S}/mcelog.cron ${D}/etc/cron.hourly/
}
inherit autotools-brokensep ptest
COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
RDEPENDS_${PN} = "bash"
do_install_append() {
install -d ${D}${sysconfdir}/cron.hourly
install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
}
do_install_ptest() {
install -d ${D}${PTEST_PATH}
cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
}
RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject"