aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
blob: bacf984e7493a72cd8c3fe5ce0e2438bdae6eeca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
SUMMARY = "Hardware Platform Interface Library and Tools"

DESCRIPTION = "\
OpenHPI is an open source project created with the intent of providing an \
implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \
provides an abstracted interface to managing computer hardware, typically for \
chassis and rack based servers. HPI includes resource modeling; access to and \
control over sensor, control, watchdog, and inventory data associated with \
resources; abstracted System Event Log interfaces; hardware events and alerts; \
and a managed hotswap interface. \
\
OpenHPI provides a modular mechanism for adding new hardware and device support \
easily. Many plugins exist in the OpenHPI source tree to provide access to \
various types of hardware. This includes, but is not limited to, IPMI based \
servers, Blade Center, and machines which export data via sysfs. \
"

HOMEPAGE = "http://openhpi.sourceforge.net/Home"
SECTION = "net"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"

DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs \
           autoconf-archive-native os-release"

SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
           file://openhpi.init \
           file://openhpid.service \
           file://run-ptest \
           file://openhpi-netsnmp-cross-compile.patch \
           file://openhpi-sysfs-cross-compile.patch \
           file://openhpi-libxml2-cross-compile.patch \
           file://openhpi-glib-cross-compile.patch \
           file://openhpi-linkfix.patch \
           file://openhpi-fix-host-gcc.patch \
           file://openhpi-fix-function-saHpiSensorThresholds.patch \
           file://openhpi-add-libnetsnmp-when-link.patch \
           file://openhpi-invalide-session.patch \
           file://openhpi-use-serial-tests-config-needed-by-ptest.patch \
           file://openhpi-fix-alignment-issue.patch \
           file://c++11.patch \
           file://clang-c++11.patch \
           file://fix-narrowing-warning.patch \
           file://0001-session-close-socket.patch \
           file://openhpi-3.6.1-ssl.patch \
           file://0001-Do-not-poke-at-build-host-s-etc-os-release.patch \
           file://cross_899198.patch \
           file://no-md2.patch \
           file://0001-include-iostream-for-cout.patch \
           "
SRC_URI[md5sum] = "fffda3deea8a0d3671a72eea9d13a4df"
SRC_URI[sha256sum] = "c94332a29160dd75cb799c027e614690c00263b0fabed87417707bec04c38723"

inherit autotools pkgconfig ptest update-rc.d systemd

PACKAGES =+ "${PN}-libs"

FILES:${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"

INSANE_SKIP:${PN}-libs = "dev-so"
RDEPENDS:${PN} += "${PN}-libs"

PACKAGECONFIG ??= "libgcrypt non32bit snmp-bc"
PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
PACKAGECONFIG[snmp-bc] = "--enable-snmp_bc,--disable-snmp_bc"

export DISTRO

do_install:append () {
    install -m 0755 -d ${D}${sysconfdir}/${BPN}
    install -m 0644 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf
    install -m 0600 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf
    install -m 0644 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data
    install -m 0644 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data
    install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid

    install -d ${D}${systemd_unitdir}/system
    install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system
    sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \
        ${D}${systemd_unitdir}/system/openhpid.service
}

do_compile_ptest () {
    for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
        dir=`dirname ${x}`
        case $dir in
            *cpp/t)      ;;
            *snmp_bc/t)  if ${@bb.utils.contains('PACKAGECONFIG','snmp-bc','true','false',d)}
                         then
                           oe_runmake -C ${dir} buildtest-TESTS
                         fi
                         ;;
            *)           oe_runmake -C ${dir} buildtest-TESTS ;;
        esac
    done
}

ack_do_compile_ptest () {
    for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
        dir=`dirname ${x}`
        upper=`dirname ${dir}`
        if [ `basename ${upper}` != "cpp" ]; then
            oe_runmake -C ${dir} buildtest-TESTS
        fi
    done
}

do_install_ptest () {
    cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/
    TESTS="utils marshal openhpid"
    for subtest in ${TESTS}; do
        mkdir -p ${D}${PTEST_PATH}/${subtest}/t
        cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t
    done

    for x in `find ${D}${PTEST_PATH} -name Makefile`; do
        sed -i "s:${S}:${PTEST_PATH}/:g" ${x};
        sed -i "s/^Makefile:/MM:/g" ${x};
    done;

    install -m 644 ${S}/openhpid/t/ohpi/openhpi.conf ${D}${PTEST_PATH}/openhpid/t/ohpi/
    sed -i "s:OPENHPI_CONF=[^ ]*:OPENHPI_CONF=./openhpi.conf:g" ${D}${PTEST_PATH}/openhpid/t/ohpi/Makefile

    mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/
    cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/
    cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/
    find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \;
    find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
    find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \;
}

INITSCRIPT_NAME = "openhpid"
INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."

SYSTEMD_SERVICE:${PN} = "openhpid.service"
SYSTEMD_AUTO_ENABLE = "disable"