[oe] [meta-networking][PATCH 1/8] openhpi: add new recipe

Martin Jansa martin.jansa at gmail.com
Wed Apr 26 07:34:27 UTC 2017


On Wed, Apr 26, 2017 at 02:57:08PM +0800, jackie.huang at windriver.com wrote:
> From: Jackie Huang <jackie.huang at windriver.com>
> 
> OpenHPI is an open source project created with
> the intent of providing an implementation of
> the SA Forum's Hardware Platform Interface (HPI).
> 
> Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> ---
>  .../files/openhpi-add-libnetsnmp-when-link.patch   |  25 +++
>  .../files/openhpi-fix-alignment-issue.patch        |  23 +++
>  .../openhpi/files/openhpi-fix-host-gcc.patch       |  24 +++
>  .../files/openhpi-fix-testfail-errors.patch        |  31 +++
>  .../openhpi/files/openhpi-glib-cross-compile.patch |  33 +++
>  .../files/openhpi-hpi-shell-thread-fix.patch       |  29 +++
>  .../openhpi/files/openhpi-invalide-session.patch   |  21 ++
>  .../files/openhpi-libxml2-cross-compile.patch      |  21 ++
>  .../openhpi/files/openhpi-linkfix.patch            |  33 +++
>  .../files/openhpi-netsnmp-cross-compile.patch      |  48 +++++
>  .../files/openhpi-sysfs-cross-compile.patch        |  23 +++
>  ...i-use-serial-tests-config-needed-by-ptest.patch |  31 +++
>  .../recipes-daemons/openhpi/files/openhpi.init     | 230 +++++++++++++++++++++
>  .../recipes-daemons/openhpi/files/openhpid.service |  11 +
>  .../recipes-daemons/openhpi/files/run-ptest        |   5 +
>  .../recipes-daemons/openhpi/openhpi_3.6.1.bb       | 111 ++++++++++
>  16 files changed, 699 insertions(+)
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
>  create mode 100755 meta-networking/recipes-daemons/openhpi/files/openhpi.init
>  create mode 100644 meta-networking/recipes-daemons/openhpi/files/openhpid.service
>  create mode 100755 meta-networking/recipes-daemons/openhpi/files/run-ptest
>  create mode 100644 meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
> 
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch
> new file mode 100644
> index 000000000..4644910b7
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch
> @@ -0,0 +1,25 @@
> +[PATCH] add libnetsnmp when link
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Roy Li <rongqing.li at windriver.com>
> +---
> + plugins/snmp_bc/t/Makefile.am |    2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/plugins/snmp_bc/t/Makefile.am b/plugins/snmp_bc/t/Makefile.am
> +index 57e77ac..9894620 100644
> +--- a/plugins/snmp_bc/t/Makefile.am
> ++++ b/plugins/snmp_bc/t/Makefile.am
> +@@ -74,7 +74,7 @@ nodist_libsnmp_bc_la_SOURCES = $(GENERATED_EVENT_CODE) $(REMOTE_SIM_SOURCES)
> + # libopenhpi_la_LIBADD    = $(top_builddir)/utils/libopenhpiutils.la
> + # libopenhpi_la_LDFLAGS   = -L$(top_builddir)/utils -version-info @HPI_LIB_VERSION@ -export-symbols $(top_srcdir)/src/hpi.sym
> + 
> +-libsnmp_bc_la_LIBADD = -luuid @SNMPLIBS@ $(top_builddir)/utils/libopenhpiutils.la
> ++libsnmp_bc_la_LIBADD = -luuid @SNMPLIBS@ $(top_builddir)/utils/libopenhpiutils.la -lnetsnmp
> + libsnmp_bc_la_LDFLAGS = -L$(top_builddir)/utils -module -version-info @HPI_LIB_VERSION@
> + # libsnmp_bc_la_LDFLAGS = -version 0:0:0
> + 
> +-- 
> +1.7.10.4
> +
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch
> new file mode 100644
> index 000000000..077e26cbf
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch
> @@ -0,0 +1,23 @@
> +Fix alignment issue in ipmi_inventory.c
> +
> +Upstream-Status: Pending
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +diff --git a/plugins/ipmi/ipmi_inventory.c b/plugins/ipmi/ipmi_inventory.c
> +index 5382186..01655c6 100644
> +--- a/plugins/ipmi/ipmi_inventory.c
> ++++ b/plugins/ipmi/ipmi_inventory.c
> +@@ -2546,8 +2546,11 @@ static SaErrorT modify_inventory(SaHpiIdrFieldT *field,
> + 			if (tb->DataLength == 0) {
> + 				rv = ipmi_fru_set_board_info_mfg_time(fru, 0);
> + 			} else {
> ++                time_t the_time;
> ++                /* tb->Data is not aligned -- copy to temp */
> ++                memcpy(&the_time, tb->Data, sizeof(the_time));
> + 				rv = ipmi_fru_set_board_info_mfg_time(fru,
> +-					*(time_t *)tb->Data);
> ++					the_time);
> + 			}
> + 			break;
> + 		case SAHPI_IDR_FIELDTYPE_MANUFACTURER:
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch
> new file mode 100644
> index 000000000..029b857bc
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch
> @@ -0,0 +1,24 @@
> +fix host gcc warnings
> +
> +Remove gcc warnings when gcc is v3.2
> +
> +Upstream-Status: Pending
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +diff --git a/configure.ac b/configure.ac
> +index f5a5b74..4a20154 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -605,11 +605,6 @@ AC_ARG_ENABLE([werror],
> +     fi],
> +     [])
> + 
> +-if test -n "`gcc --version | grep ' 3.2'`" ; then
> +-        CC_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wno-strict-aliasing//g'`
> +-        CXX_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wno-strict-aliasing//g'`
> +-fi
> +-
> + case $host_os in
> +     solaris*)
> +         CC_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wcast-qual//g'`
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch
> new file mode 100644
> index 000000000..205696e65
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch
> @@ -0,0 +1,31 @@
> +Fix for saftest failures.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: yanjun.zhu <yanjun.zhu at windriver.com>
> +
> +diff -urpN a/openhpid/safhpi.c b/openhpid/safhpi.c
> +--- a/openhpid/safhpi.c
> ++++ b/openhpid/safhpi.c
> +@@ -1976,7 +1976,7 @@ SaErrorT SAHPI_API saHpiSensorThresholds
> +         oh_release_domain(d); /* Unlock domain */
> + 
> +         OH_CALL_ABI(h, set_sensor_thresholds, SA_ERR_HPI_INVALID_CMD, rv,
> +-                    ResourceId, SensorNum, SensorThresholds);
> ++                    ResourceId, SensorNum, &tmp);
> +         oh_release_handler(h);
> + 
> +         return rv;
> +diff -urpN a/utils/sahpi_struct_utils.c b/utils/sahpi_struct_utils.c
> +--- a/utils/sahpi_struct_utils.c
> ++++ b/utils/sahpi_struct_utils.c
> +@@ -3855,6 +3855,9 @@ SaHpiBoolT oh_valid_textbuffer(SaHpiText
> +                                         /* found a unpaired surrogate */
> +                                         return SAHPI_FALSE;
> +                                 }
> ++                        } else {
> ++                            /*the first 2 bytes wrong*/
> ++                            return SAHPI_FALSE;
> +                         }
> +                 }
> +                 break;
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch
> new file mode 100644
> index 000000000..1627c9797
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch
> @@ -0,0 +1,33 @@
> +Fix glib cross compile
> +
> +Uses proper PKG_CONFIG_PATH when cross-compiling
> +
> +Upstream-Status: Pending
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +diff --git a/configure.ac b/configure.ac
> +index b5f5aad..f5a5b74 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -110,13 +110,13 @@ else
> + *** GLIB is always available from ftp://ftp.gtk.org/.])
> + fi
> + 
> +-exact_version=`pkg-config --modversion $GLIB`;
> +-GLIB_CFLAGS=`pkg-config --cflags $GLIB $GTHREAD`
> +-GLIB_LIBS=`pkg-config --libs $GLIB $GTHREAD`
> +-GLIB_ONLY_CFLAGS=`pkg-config --cflags $GLIB`
> +-GLIB_ONLY_LIBS=`pkg-config --libs $GLIB`
> +-GMODULE_ONLY_CFLAGS=`pkg-config --cflags $GMODULE`
> +-GMODULE_ONLY_LIBS=`pkg-config --libs $GMODULE`
> ++exact_version=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --modversion $GLIB`;
> ++GLIB_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GLIB $GTHREAD`
> ++GLIB_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GLIB $GTHREAD`
> ++GLIB_ONLY_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GLIB`
> ++GLIB_ONLY_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GLIB`
> ++GMODULE_ONLY_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GMODULE`
> ++GMODULE_ONLY_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GMODULE`
> + 
> + # On some versions of Solaris the pkg-config file for gthread-2.0 contains a
> + # compiler option, '-mt', that is incompatible with gcc
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
> new file mode 100644
> index 000000000..7dac45318
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
> @@ -0,0 +1,29 @@
> +commit e9f9a73c9dba8dd59f3d6c3acd9988ec8361d55a
> +Author: Aws Ismail <aws.ismail at windriver.com>
> +Date:   Mon Dec 17 16:23:45 2012 -0500
> +
> +    Correct dangling g_thread_exit in session.c
> +    
> +    hpi_shell's session.c has its progress_bar
> +    thread created using pthread_create but
> +    exited using g_thread_exit. Use pthread_exit
> +    instead to avoid unpredictable GLIB thread
> +    errors.
> +    
> +    Upstream-Status: Pending
> +    
> +    Signed-off-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +diff --git a/hpi_shell/session.c b/hpi_shell/session.c
> +index 85c31bf..187da4c 100644
> +--- a/hpi_shell/session.c
> ++++ b/hpi_shell/session.c
> +@@ -66,7 +66,7 @@ static void* progress_bar(void *unused)
> + 		if (i < (PROGRESS_BUF_SIZE - mes_len - 1)) i++;
> + 		t++;
> + 	};
> +-        g_thread_exit(0);
> ++        pthread_exit(0);
> + 	return (void *)1;
> + }
> + 
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch
> new file mode 100644
> index 000000000..d03c97e18
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch
> @@ -0,0 +1,21 @@
> +Upstream-Status: Submitted
> +
> +Package saftest run a test case to pass invalid session id to function
> +saHpiResourceIdGet that expect return SA_ERR_HPI_INVALID_SESSION. But the check
> +for SA_ERR_HPI_INVALID_SESSION is missed somehow in function saHpiResourceIdGet.
> +
> +Add check for SA_ERR_HPI_INVALID_SESSION.
> +
> +Signed-off-by: Kai Kang <kai.kang at windriver.com>
> +-----
> +--- openhpi-3.4.0/baselib/safhpi.cpp.orig	2014-02-25 10:45:20.911734868 +0800
> ++++ openhpi-3.4.0/baselib/safhpi.cpp	2014-02-25 10:46:05.366925389 +0800
> +@@ -477,6 +477,8 @@
> +                                  &rpt_update_count );
> +     if ( rv == SA_ERR_HPI_NOT_PRESENT ) {
> +         return SA_ERR_HPI_NOT_PRESENT;
> ++    } else if ( rv == SA_ERR_HPI_INVALID_SESSION) {
> ++        return SA_ERR_HPI_INVALID_SESSION;
> +     } else if ( rv != SA_OK ) {
> +         return SA_ERR_HPI_UNKNOWN;
> +     }
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
> new file mode 100644
> index 000000000..6d3b6648a
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
> @@ -0,0 +1,21 @@
> +Fix libxml2 for cross-compiling
> +
> +Use proper XML2_INCLUDE path when cross-compiling
> +
> +Upstream-Status: Pending
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +diff --git a/configure.ac b/configure.ac
> +index 30a792c..b5f5aad 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -175,7 +175,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/md5.h openssl/bio.h openssl/ssl.h openss
> + 
> + dnl xml is used for XML-based communication in ilo2_ribcl and oa_soap
> + AC_CHECK_LIB([xml2],[xmlParseMemory],[XML2_LIB=-lxml2],[XML2_LIB=])
> +-AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE])
> ++AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE])
> + AC_SUBST(XML2_LIB)
> + AC_SUBST(XML2_INCLUDE)
> + 
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch
> new file mode 100644
> index 000000000..3222f5d13
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch
> @@ -0,0 +1,33 @@
> +Fix ipmi plugin's test dir compilation
> +
> +The ipmi plugin's test dir is not included
> +in compilation since it does not compile
> +properly with SSL
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Wenzong Fan <wenzong.fan at windriver.com>
> +---
> + plugins/ipmi/Makefile.in | 4 +++-
> + 1 file changed, 3 insertions(+), 1 deletion(-)
> +
> +diff --git a/plugins/ipmi/Makefile.in b/plugins/ipmi/Makefile.in
> +index 7c6b0a4..6204dbe 100644
> +--- a/plugins/ipmi/Makefile.in
> ++++ b/plugins/ipmi/Makefile.in
> +@@ -448,7 +448,9 @@ top_srcdir = @top_srcdir@
> + MAINTAINERCLEANFILES = Makefile.in
> + AM_CPPFLAGS = -DG_LOG_DOMAIN=\"ipmi\" @OPENHPI_INCLUDES@
> + EXTRA_DIST = ipmi.sym ekeyfru.h
> +-SUBDIRS = t
> ++#SUBDIRS = t
> ++#Tests don't compile wih SSL properly so comment them out
> ++SUBDIRS =
> + AM_CFLAGS = @OPENIPMI_CFLAGS@
> + pkglib_LTLIBRARIES = libipmi.la
> + libipmi_la_SOURCES = ipmi.c 		\
> +-- 
> +1.9.1
> +
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
> new file mode 100644
> index 000000000..95b0abc91
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
> @@ -0,0 +1,48 @@
> +Fix net-snmp when cross-compiling
> +
> +Remove irrelevant references to net-snmp libs and flags
> +when cross-compiling net-snmp
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Wenzong Fan <wenzong.fan at windriver.com>
> +---
> + acinclude.m4 | 4 ++--
> + configure    | 4 ++--
> + 2 files changed, 4 insertions(+), 4 deletions(-)
> +
> +diff --git a/acinclude.m4 b/acinclude.m4
> +index 82c33f6..727e461 100644
> +--- a/acinclude.m4
> ++++ b/acinclude.m4
> +@@ -160,8 +160,8 @@ AC_DEFUN([OH_CHECK_NETSNMP],
> +     ],
> +     [
> +         have_netsnmp=yes
> +-        SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'`
> +-        SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs`
> ++        SNMPFLAGS=""
> ++        SNMPLIBS=""
> +         AC_MSG_RESULT(yes)
> +     ],
> +     [AC_MSG_RESULT(no.  No SNMP based plugins can be built!)])
> +diff --git a/configure b/configure
> +index 00067bc..36b913c 100755
> +--- a/configure
> ++++ b/configure
> +@@ -15949,8 +15949,8 @@ _ACEOF
> + if ac_fn_c_try_link "$LINENO"; then :
> + 
> +         have_netsnmp=yes
> +-        SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'`
> +-        SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs`
> ++        SNMPFLAGS=""
> ++        SNMPLIBS=""
> +         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
> + $as_echo "yes" >&6; }
> + 
> +-- 
> +1.9.1
> +
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch
> new file mode 100644
> index 000000000..38d9a6742
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch
> @@ -0,0 +1,23 @@
> +Fix sysfs when cross-compiling
> +
> +Use proper paths for sysfs plugins when cross-compiling
> +
> +Signed-of-by: Aws Ismail <aws.ismail at windriver.com>
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Wenzong Fan <wenzong.fan at windriver.com>
> +
> +diff --git a/plugins/sysfs/sysfs2hpi.c b/plugins/sysfs/sysfs2hpi.c
> +index a745214..3685598 100644
> +--- a/plugins/sysfs/sysfs2hpi.c
> ++++ b/plugins/sysfs/sysfs2hpi.c
> +@@ -18,7 +18,7 @@
> + 
> + #include <stdlib.h>
> + #include <string.h>
> +-#include <libsysfs.h>
> ++#include <sysfs/libsysfs.h>
> + 
> + #include <SaHpi.h>
> + #include <oh_utils.h>
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
> new file mode 100644
> index 000000000..51537ef12
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
> @@ -0,0 +1,31 @@
> +From 36fbaa27e7299f63c1324b0ad22b970e9365d6a7 Mon Sep 17 00:00:00 2001
> +From: Jackie Huang <jackie.huang at windriver.com>
> +Date: Wed, 24 Dec 2014 10:54:59 +0800
> +Subject: [PATCH] openhpi: use serial-tests config needed by ptest
> +
> +ptest needs buildtest-TESTS and runtest-TESTS targets.
> +serial-tests is required to generate those targets.
> +
> +Upstream-Status: Inappropriate [default automake behavior incompatible with ptest]
> +
> +Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> +---
> + configure.ac |    2 +-
> + 1 files changed, 1 insertions(+), 1 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 4b51971..16136b3 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -7,7 +7,7 @@ dnl   various hacks by Sean Dague <http://dague.net/sean> 4/23/03
> + AC_PREREQ(2.57)
> + AC_INIT(openhpi, 3.5.0)
> + AC_CONFIG_SRCDIR(openhpi.spec.in)
> +-AM_INIT_AUTOMAKE([1.8])
> ++AM_INIT_AUTOMAKE([1.8 serial-tests])
> + 
> + AM_CONFIG_HEADER(config.h)
> + AH_TOP([#ifndef __OPENHPI_CONFIG_H
> +-- 
> +1.7.1
> +
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi.init b/meta-networking/recipes-daemons/openhpi/files/openhpi.init
> new file mode 100755
> index 000000000..3a5f4a06a
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi.init
> @@ -0,0 +1,230 @@
> +#! /bin/sh
> +#
> +### BEGIN INIT INFO
> +# Provides:          openhpid
> +# Required-Start:    $network $remote_fs $syslog
> +# Required-Stop:     $network $remote_fs $syslog
> +# Should-Start:      $named
> +# Should-Stop:       $named
> +# Default-Start:     2 3 4 5
> +# Default-Stop:      0 1 6
> +# Short-Description: Start OpenHPI daemon at boot time
> +# Description:       Enable OpenHPI service which is provided by openhpid.
> +### END INIT INFO
> +#
> +# openhpid.sh    Start/Stop the openhpi daemon.
> +#
> +# description: openhpid is standard UNIX program which uses the OpenHPI \
> +#              APIs and provides a standard internet server to access those \
> +#              APIs for client programs.
> +# processname: openhpid
> +# config: the standard openhpi conf file specified on the command line or the env.
> +# pidfile: /var/run/openhpid.pid
> +#
> +# Author(s):
> +#	W. David Ashley <dashley at us.ibm.com>
> +#	Daniel de Araujo <ddearauj at us.ibm.com>
> +
> +# Source function library.
> +PATH=/sbin:/bin:/usr/sbin:/usr/bin
> +prog="OpenHPI"
> +
> +# If the openhpid executable is not available, we can't do any of this
> +test -f /usr/sbin/openhpid || exit 0
> +
> +# Determine whether the lsb package is installed
> +# If it is, determine which lsb is installed:
> +# redhat, suse, or standard lsb
> +
> +if test -f /etc/init.d/functions
> +then
> +   lsbtype="rh"
> +   . /etc/init.d/functions
> +elif test -f /etc/rc.status
> +then
> +   lsbtype="suse"
> +   . /etc/rc.status
> +elif test -f /lib/lsb/init-functions
> +then
> +   lsbtype="lsb"
> +   . /lib/lsb/init-functions
> +elif test -f /etc/gentoo-release
> +then
> +   lsbtype="gentoo"
> +   . /sbin/functions.sh
> +else
> +   lsbtype="nolsb"
> +fi
> +
> +print_outcome()
> +{
> +
> +	case "${lsbtype}" in
> +
> +		suse)
> + 			rc_status -v
> +			;;
> +
> +		lsb)
> +			if test "$?" -eq 0
> +   			then
> +      			log_success_msg "success"
> +   			else
> +				log_failure_msg "failed"
> +   			fi
> +  			;;
> +  
> +  		gentoo)
> +  			eend $?
> +  			;;
> +
> +		nolsb | rh)
> +			if test "$?" -eq 0
> +			then
> +				echo " ... success"
> +			fi
> +			if test "$?" -ne 0
> +			then
> +				echo " ... failed"
> +			fi
> +			;;
> +   	esac
> +}
> +
> +start() {
> +	case "${lsbtype}" in
> +
> +		suse)
> +			echo -n "Starting $prog: "
> +			startproc /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf
> +			RETVAL=$?
> +			;;
> +		lsb)
> +			echo -n "Starting $prog: "
> +			start_daemon /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf
> +			RETVAL=$?
> +			;;
> +		gentoo | rh)
> +			echo "Starting $prog: "
> +			start-stop-daemon --start --quiet --exec /usr/sbin/openhpid -- -c /etc/openhpi/openhpi.conf
> +			RETVAL=$?
> +			;;
> +		nolsb)
> +			echo -n "Starting $prog: "
> +			/usr/sbin/openhpid -c /etc/openhpi/openhpi.conf
> +			RETVAL=$?
> +			;;
> +
> +	esac
> +
> +	print_outcome
> +
> +}
> +
> +stop() {
> +	case "${lsbtype}" in
> +
> +		lsb | suse)
> +			echo -n "Stopping $prog: "
> +			killproc /usr/sbin/openhpid
> +			RETVAL=$?
> +			;;
> +
> +		gentoo)
> +			echo "Stopping $prog: "
> +			start-stop-daemon --stop --quiet --exec /usr/sbin/openhpid
> +			RETVAL=$?
> +			;;
> +
> +		nolsb | rh)
> +			echo -n "Stopping $prog: "
> +			if test -f /var/run/openhpid.pid && test "`cat /var/run/openhpid.pid`" != ""
> +         		then
> +            			kill "`cat /var/run/openhpid.pid`"
> +				RETVAL=$?
> +			else
> +				RETVAL=0
> +			fi
> +			;;
> +
> +	esac
> +
> +	print_outcome
> +
> +	if test "$RETVAL" -eq 0 && test -f /var/run/openhpid.pid
> +	then
> +		rm -f /var/lock/openhpid
> +		rm -f /var/run/openhpid.pid
> +	fi
> +
> +}
> +
> +dstatus() {
> +	echo "Checking for $prog daemon: "
> +
> +	case "${lsbtype}" in
> +
> +		suse)
> +			checkproc /usr/sbin/openhpid
> +			rc_status -v
> +			;;
> +		lsb)
> +			pid="`pidofproc /usr/sbin/openhpid`"
> +         		if test "${pid}" != ""
> +			then
> +				log_success_msg "$prog is running"
> +			else
> +				log_success_msg "$prog is not running"
> +			fi
> +			;;
> +		gentoo | nolsb | rh)
> +			if test -f /var/run/openhpid.pid &&
> +				test "`cat /var/run/openhpid.pid`" != "" &&
> +				kill -s 0 "`cat /var/run/openhpid.pid`"
> +			then
> +				echo "$prog is running"
> +			else
> +				echo "$prog is not running"
> +			fi
> +
> +			;;
> +
> +	esac
> +
> +
> +
> +}
> +
> +restart() {
> +  	stop
> +	start
> +}
> +
> +force_reload() {
> +	# We don't currently support a reload, but can do a restart
> +	stop
> +	start
> +}
> +
> +# See how we were called.
> +
> +case "$1" in
> +  start)
> +  	start
> +	;;
> +  stop)
> +  	stop
> +	;;
> +  restart)
> +  	restart
> +	;;
> +  status)
> +  	dstatus
> +	;;
> +  force-reload)
> +  	force_reload
> +	;;
> +  *)
> +	echo "Usage: $0 {start|stop|restart|status|force-reload}"
> +	exit 1
> +esac
> diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpid.service b/meta-networking/recipes-daemons/openhpi/files/openhpid.service
> new file mode 100644
> index 000000000..cd4168f8e
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/openhpid.service
> @@ -0,0 +1,11 @@
> +[Unit]
> +Description=Daemon providing access to the SAF Hardware Platform Interface
> +After=syslog.target
> +
> +[Service]
> +Type=forking
> +PIDFile=/var/run/openhpid.pid
> +ExecStart=@SBINDIR@/openhpid -c @SYSCONFDIR@/openhpi/openhpi.conf
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/meta-networking/recipes-daemons/openhpi/files/run-ptest b/meta-networking/recipes-daemons/openhpi/files/run-ptest
> new file mode 100755
> index 000000000..5b187d908
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/files/run-ptest
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +for x in `find ./ -name Makefile`;
> +do
> +	make -C `dirname ${x}` -k runtest-TESTS
> +done
> diff --git a/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
> new file mode 100644
> index 000000000..19bd40abe
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
> @@ -0,0 +1,111 @@
> +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"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
> +
> +DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs"
> +
> +SRC_URI = "${SOURCEFORGE_MIRROR}/openhpi/openhpi-${PV}.tar.gz \

Use BPN and BP

> +           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-hpi-shell-thread-fix.patch \
> +           file://openhpi-fix-testfail-errors.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://openhpi.init \
> +           file://openhpid.service \
> +           file://run-ptest \
> +"
> +
> +SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23"
> +SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc"
> +
> +S = "${WORKDIR}/openhpi-${PV}"

Isn't this the default?

> +
> +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"
> +PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
> +PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
> +
> +do_install_append () {
> +    install -m 0755 -d ${D}${sysconfdir}/${BPN}
> +    install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf
> +    install -m 0700 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf
> +    install -m 0755 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data
> +    install -m 0755 ${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, at SBINDIR@,${sbindir},g" -e "s, at 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}`
> +        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;
> +
> +    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"
> -- 
> 2.11.0
> 
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20170426/8935e31e/attachment-0002.sig>


More information about the Openembedded-devel mailing list