diff options
10 files changed, 885 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch b/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch new file mode 100644 index 0000000000..d4e02be450 --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | Do not install pyc and pyo for python module | ||
| 2 | |||
| 3 | Upstream-Status: Inappropriate [embedded specific] | ||
| 4 | |||
| 5 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 6 | --- | ||
| 7 | swig/python/Makefile.am | 2 -- | ||
| 8 | 1 file changed, 2 deletions(-) | ||
| 9 | |||
| 10 | diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am | ||
| 11 | index da95a81..97a62bf 100644 | ||
| 12 | --- a/swig/python/Makefile.am | ||
| 13 | +++ b/swig/python/Makefile.am | ||
| 14 | @@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc | ||
| 15 | install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo | ||
| 16 | $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR) | ||
| 17 | $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)" | ||
| 18 | - $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)" | ||
| 19 | - $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)" | ||
| 20 | if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \ | ||
| 21 | $(INSTALL) -d $(DESTDIR)$(bindir); \ | ||
| 22 | $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\ | ||
| 23 | -- | ||
| 24 | 1.9.1 | ||
| 25 | |||
diff --git a/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch new file mode 100644 index 0000000000..9a568b2b22 --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | Author: Aws Ismail <aws.ismail@windriver.com> | ||
| 2 | Date: Thu Jun 7 16:00:13 2012 -0400 | ||
| 3 | |||
| 4 | This patch fixes the error during the install stage when | ||
| 5 | creating a symbolic link for opeipmish in openipmi/cmdlang | ||
| 6 | |||
| 7 | Upstream-Status: Pending | ||
| 8 | |||
| 9 | Signed-off-by: Aws Ismail <aws.ismail@windriver.com> | ||
| 10 | |||
| 11 | diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am | ||
| 12 | index 92d6e83..f6039f9 100644 | ||
| 13 | --- a/cmdlang/Makefile.am | ||
| 14 | +++ b/cmdlang/Makefile.am | ||
| 15 | @@ -36,6 +36,7 @@ CLEANFILES = libOpenIPMIcmdlang.map | ||
| 16 | # compatability. | ||
| 17 | install-data-local: | ||
| 18 | rm -f $(DESTDIR)$(bindir)/ipmish | ||
| 19 | + mkdir -p $(DESTDIR)$(bindir)/ | ||
| 20 | $(LN_S) openipmish $(DESTDIR)$(bindir)/ipmish | ||
| 21 | |||
| 22 | uninstall-local: | ||
diff --git a/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch new file mode 100644 index 0000000000..51a398ba53 --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | Subject: [PATCH] ipmi-init: fix the arguments | ||
| 2 | |||
| 3 | The functions success/failure/warning defined in /etc/init.d/functions | ||
| 4 | (provided by initscripts) only accepts numeric argument as return code, | ||
| 5 | not a string. | ||
| 6 | |||
| 7 | Upstream-Status: Inappropriate [OE specific] | ||
| 8 | |||
| 9 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
| 10 | --- | ||
| 11 | ipmi.init | 6 +++--- | ||
| 12 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/ipmi.init b/ipmi.init | ||
| 15 | index 2ebcd94..d8161c5 100644 | ||
| 16 | --- a/ipmi.init | ||
| 17 | +++ b/ipmi.init | ||
| 18 | @@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then | ||
| 19 | case "$ACTION" in | ||
| 20 | success) | ||
| 21 | echo -n $* | ||
| 22 | - success "$*" | ||
| 23 | + success 0 | ||
| 24 | echo | ||
| 25 | ;; | ||
| 26 | failure) | ||
| 27 | echo -n $* | ||
| 28 | - failure "$*" | ||
| 29 | + failure 1 | ||
| 30 | echo | ||
| 31 | ;; | ||
| 32 | warning) | ||
| 33 | echo -n $* | ||
| 34 | - warning "$*" | ||
| 35 | + warning 0 | ||
| 36 | echo | ||
| 37 | ;; | ||
| 38 | *) | ||
| 39 | -- | ||
| 40 | 1.9.1 | ||
| 41 | |||
diff --git a/meta-oe/recipes-support/openipmi/files/ipmi.service b/meta-oe/recipes-support/openipmi/files/ipmi.service new file mode 100644 index 0000000000..6fe1378191 --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/ipmi.service | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=IPMI Driver | ||
| 3 | After=network.target | ||
| 4 | |||
| 5 | [Service] | ||
| 6 | Type=oneshot | ||
| 7 | RemainAfterExit=yes | ||
| 8 | ExecStart=@LIBEXECDIR@/openipmi-helper start | ||
| 9 | ExecStop=@LIBEXECDIR@/openipmi-helper stop-all | ||
| 10 | |||
| 11 | [Install] | ||
| 12 | WantedBy=multi-user.target | ||
diff --git a/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch b/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch new file mode 100644 index 0000000000..271c5323fd --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | Add LDFLAGS variable to Makefile.am, make sure the extra linker flags can be passed. | ||
| 2 | |||
| 3 | Upstream-Status: Pending | ||
| 4 | |||
| 5 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 6 | |||
| 7 | diff --git a/swig/perl/Makefile.am b/swig/perl/Makefile.am | ||
| 8 | index 2f9ee4c..3a18892 100644 | ||
| 9 | --- a/swig/perl/Makefile.am | ||
| 10 | +++ b/swig/perl/Makefile.am | ||
| 11 | @@ -20,7 +20,7 @@ OpenIPMI_SRC = OpenIPMI_perl.c | ||
| 12 | OpenIPMI_OBJ = OpenIPMI_wrap.lo OpenIPMI_perl.lo | ||
| 13 | |||
| 14 | OpenIPMI.so: $(OpenIPMI_OBJ) | ||
| 15 | - $(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI | ||
| 16 | + $(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version $(LDFLAGS) -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI | ||
| 17 | rm -f OpenIPMI.so | ||
| 18 | mv .libs/OpenIPMI.so . | ||
| 19 | |||
diff --git a/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch b/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch new file mode 100644 index 0000000000..ee3c660433 --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | From bbd51cf010c80322034f7094e2c6a656aa1f17a7 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Wenzong Fan <wenzong.fan@windriver.com> | ||
| 3 | Date: Fri, 13 Feb 2015 06:55:33 +0000 | ||
| 4 | Subject: [PATCH] openipmi: don't rm .libs | ||
| 5 | |||
| 6 | Don't remove .libs after OpenIPMI.so generated, this may cause | ||
| 7 | dummystuff.so fails to link from the second build with error: | ||
| 8 | |||
| 9 | * error: .libs/dummystuff.o: No such file or directory | ||
| 10 | |||
| 11 | Upstream-Status: Pending | ||
| 12 | |||
| 13 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | ||
| 14 | --- | ||
| 15 | swig/perl/Makefile.am | 1 - | ||
| 16 | 1 file changed, 1 deletion(-) | ||
| 17 | |||
| 18 | diff --git a/swig/perl/Makefile.am b/swig/perl/Makefile.am | ||
| 19 | index 12a282c..2f9ee4c 100644 | ||
| 20 | --- a/swig/perl/Makefile.am | ||
| 21 | +++ b/swig/perl/Makefile.am | ||
| 22 | @@ -23,7 +23,6 @@ OpenIPMI.so: $(OpenIPMI_OBJ) | ||
| 23 | $(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI | ||
| 24 | rm -f OpenIPMI.so | ||
| 25 | mv .libs/OpenIPMI.so . | ||
| 26 | - rm -rf .libs | ||
| 27 | |||
| 28 | dummystuff.lo: dummystuff.c | ||
| 29 | $(LIBTOOL) --mode=compile $(COMPILE) -c $< | ||
| 30 | -- | ||
| 31 | 1.9.1 | ||
| 32 | |||
diff --git a/meta-oe/recipes-support/openipmi/files/openipmi-helper b/meta-oe/recipes-support/openipmi/files/openipmi-helper new file mode 100755 index 0000000000..4cebfb9c6a --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/openipmi-helper | |||
| @@ -0,0 +1,512 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | ############################################################################# | ||
| 3 | # | ||
| 4 | # ipmi: OpenIPMI Driver helper script | ||
| 5 | # | ||
| 6 | # Authors: Jan Safranek <jsafrane@redhat.com> | ||
| 7 | # | ||
| 8 | # Based on IPMI init script by: | ||
| 9 | # Matt Domsch <Matt_Domsch@dell.com> | ||
| 10 | # Chris Poblete <Chris_Poblete@dell.com> | ||
| 11 | # | ||
| 12 | # Status return code bits | ||
| 13 | # no bits set = no errors | ||
| 14 | # bit 0 set = minimum modules aren't loaded | ||
| 15 | # bit 1 set = requested feature module isn't loaded | ||
| 16 | # bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist | ||
| 17 | # bit 3 set = /dev/watchdog doesn't exist | ||
| 18 | # bit 4 set = lockfile doesn't exist | ||
| 19 | # bit 5 set = modules are loaded even when asked to be unloaded | ||
| 20 | |||
| 21 | CONFIGFILE=/etc/sysconfig/ipmi | ||
| 22 | # source config info | ||
| 23 | [ -r ${CONFIGFILE} ] && . ${CONFIGFILE} | ||
| 24 | |||
| 25 | ############################################################################# | ||
| 26 | # GLOBALS | ||
| 27 | ############################################################################# | ||
| 28 | MODULE_NAME="ipmi" | ||
| 29 | INTF_NUM=0 | ||
| 30 | |||
| 31 | IPMI_SMB_MODULE_NAME="ipmi_smb" | ||
| 32 | IPMI_SI_MODULE_NAME="ipmi_si" | ||
| 33 | kernel=`uname -r | cut -d. -f1-2` | ||
| 34 | if [ "${kernel}" == "2.4" ]; then | ||
| 35 | IPMI_SMB_MODULE_NAME="ipmi_smb_intf" | ||
| 36 | IPMI_SI_MODULE_NAME="ipmi_si_drv" | ||
| 37 | fi | ||
| 38 | |||
| 39 | MODULES_INTERFACES="" | ||
| 40 | [ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf" | ||
| 41 | [ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb" | ||
| 42 | |||
| 43 | MODULES_FEATURES="" | ||
| 44 | [ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog" | ||
| 45 | [ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff" | ||
| 46 | |||
| 47 | MODULES_HW="" | ||
| 48 | [ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}" | ||
| 49 | [ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}" | ||
| 50 | |||
| 51 | MODULES_BASE="ipmi_msghandler" | ||
| 52 | MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}" | ||
| 53 | |||
| 54 | RETVAL=0 | ||
| 55 | LOCKFILE=/var/lock/subsys/ipmi | ||
| 56 | DEV_IPMI_TIMEOUT=150 | ||
| 57 | |||
| 58 | UDEV_EXISTS=0 | ||
| 59 | if [ -e /sbin/udev -o -e /sbin/udevd ]; then | ||
| 60 | UDEV_EXISTS=1 | ||
| 61 | fi | ||
| 62 | |||
| 63 | ############################################################################# | ||
| 64 | # NOTES: | ||
| 65 | # * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload, | ||
| 66 | # because SLES9 and RHEL4 kernels don't send a message for udev to delete | ||
| 67 | # it for us. | ||
| 68 | # | ||
| 69 | ############################################################################# | ||
| 70 | |||
| 71 | modules_loaded_verbose() | ||
| 72 | { | ||
| 73 | OnePlusLoaded=0 | ||
| 74 | OnePlusUnloaded=0 | ||
| 75 | for m in $@; do | ||
| 76 | if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then | ||
| 77 | echo "$m module loaded." | ||
| 78 | OnePlusLoaded=1 | ||
| 79 | else | ||
| 80 | echo "$m module not loaded." | ||
| 81 | OnePlusUnloaded=1 | ||
| 82 | fi | ||
| 83 | done | ||
| 84 | } | ||
| 85 | |||
| 86 | modules_loaded() | ||
| 87 | { | ||
| 88 | OnePlusLoaded=0 | ||
| 89 | OnePlusUnloaded=0 | ||
| 90 | for m in $@; do | ||
| 91 | if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then | ||
| 92 | OnePlusLoaded=1 | ||
| 93 | else | ||
| 94 | OnePlusUnloaded=1 | ||
| 95 | fi | ||
| 96 | done | ||
| 97 | } | ||
| 98 | |||
| 99 | device_node_exists () | ||
| 100 | { | ||
| 101 | if [ -e "$1" ]; then | ||
| 102 | echo "$1 exists." | ||
| 103 | return 1 | ||
| 104 | fi | ||
| 105 | echo "$1 does not exist." | ||
| 106 | return 0 | ||
| 107 | } | ||
| 108 | |||
| 109 | minimum_modules_loaded() | ||
| 110 | { | ||
| 111 | rc_base=1 | ||
| 112 | rc_hw=1 | ||
| 113 | modules_loaded_verbose "${MODULES_BASE}" | ||
| 114 | [ ${OnePlusLoaded} -eq 0 ] && rc_base=0 | ||
| 115 | |||
| 116 | modules_loaded_verbose "${MODULES_HW}" | ||
| 117 | [ ${OnePlusLoaded} -eq 0 ] && rc_hw=0 | ||
| 118 | |||
| 119 | return $((rc_base && rc_hw)) | ||
| 120 | } | ||
| 121 | |||
| 122 | ############################################################################# | ||
| 123 | |||
| 124 | load_si() | ||
| 125 | { | ||
| 126 | if [ "${IPMI_SI}" = "yes" ]; then | ||
| 127 | modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1 | ||
| 128 | modules_loaded ${IPMI_SI_MODULE_NAME} | ||
| 129 | [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1)) | ||
| 130 | fi | ||
| 131 | } | ||
| 132 | |||
| 133 | load_smb() | ||
| 134 | { | ||
| 135 | if [ "${IPMI_SMB}" = "yes" ]; then | ||
| 136 | modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1 | ||
| 137 | modules_loaded ${IPMI_SMB_MODULE_NAME} | ||
| 138 | [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1)) | ||
| 139 | fi | ||
| 140 | } | ||
| 141 | |||
| 142 | load_hw_modules() | ||
| 143 | { | ||
| 144 | load_si | ||
| 145 | load_smb | ||
| 146 | } | ||
| 147 | |||
| 148 | start_watchdog_common() | ||
| 149 | { | ||
| 150 | load_hw_modules | ||
| 151 | modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1 | ||
| 152 | modules_loaded ipmi_watchdog | ||
| 153 | [ ${OnePlusUnloaded} -ne 0 ] && | ||
| 154 | RETVAL=$((RETVAL | 2)) && | ||
| 155 | echo "Watchdog startup failed: cannot load ipmi_watchdog module" && | ||
| 156 | return | ||
| 157 | if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then | ||
| 158 | mknod -m 0600 /dev/watchdog c 10 130 | ||
| 159 | [ $? -ne 0 ] && | ||
| 160 | RETVAL=$((RETVAL | 8)) && | ||
| 161 | echo "Watchdog startup failed: cannot create /dev/watchdog" && | ||
| 162 | return | ||
| 163 | fi | ||
| 164 | } | ||
| 165 | |||
| 166 | start_watchdog_quiet() | ||
| 167 | { | ||
| 168 | [ "${IPMI_WATCHDOG}" != "yes" ] && | ||
| 169 | return | ||
| 170 | start_watchdog_common | ||
| 171 | } | ||
| 172 | |||
| 173 | start_watchdog() | ||
| 174 | { | ||
| 175 | [ "${IPMI_WATCHDOG}" != "yes" ] && | ||
| 176 | RETVAL=$((RETVAL | 2)) && | ||
| 177 | echo "Watchdog not configured" && | ||
| 178 | return | ||
| 179 | start_watchdog_common | ||
| 180 | } | ||
| 181 | |||
| 182 | stop_watchdog() | ||
| 183 | { | ||
| 184 | modprobe -q -r ipmi_watchdog > /dev/null 2>&1 | ||
| 185 | modules_loaded ipmi_watchdog | ||
| 186 | if [ ${OnePlusLoaded} -ne 0 ]; then | ||
| 187 | RETVAL=$((RETVAL | 32)) | ||
| 188 | echo "Watchog shutdown failed: cannot unload ipmi_watchdog module" | ||
| 189 | else | ||
| 190 | if [ "${IPMI_WATCHDOG}" = "yes" ]; then | ||
| 191 | [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog | ||
| 192 | fi | ||
| 193 | fi | ||
| 194 | } | ||
| 195 | |||
| 196 | stop_watchdog_quiet() | ||
| 197 | { | ||
| 198 | modprobe -q -r ipmi_watchdog > /dev/null 2>&1 | ||
| 199 | modules_loaded ipmi_watchdog | ||
| 200 | if [ ${OnePlusLoaded} -ne 0 ]; then | ||
| 201 | RETVAL=$((RETVAL | 32)) | ||
| 202 | else | ||
| 203 | if [ "${IPMI_WATCHDOG}" = "yes" ]; then | ||
| 204 | [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog | ||
| 205 | fi | ||
| 206 | fi | ||
| 207 | } | ||
| 208 | |||
| 209 | start_powercontrol_common() | ||
| 210 | { | ||
| 211 | local poweroff_opts="" | ||
| 212 | load_hw_modules | ||
| 213 | if [ "${IPMI_POWERCYCLE}" == "yes" ]; then | ||
| 214 | modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \ | ||
| 215 | poweroff_opts="poweroff_control=2" | ||
| 216 | modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \ | ||
| 217 | poweroff_opts="poweroff_powercycle=1" | ||
| 218 | fi | ||
| 219 | modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1 | ||
| 220 | modules_loaded ipmi_poweroff | ||
| 221 | [ ${OnePlusUnloaded} -ne 0 ] && | ||
| 222 | RETVAL=$((RETVAL | 2)) && | ||
| 223 | echo "Powercontroll startup failed: cannot load ipmi_poweroff module" && | ||
| 224 | return | ||
| 225 | } | ||
| 226 | |||
| 227 | start_powercontrol_quiet() | ||
| 228 | { | ||
| 229 | [ "${IPMI_POWEROFF}" != "yes" ] && | ||
| 230 | return | ||
| 231 | start_powercontrol_common | ||
| 232 | } | ||
| 233 | |||
| 234 | start_powercontrol() | ||
| 235 | { | ||
| 236 | [ "${IPMI_POWEROFF}" != "yes" ] && | ||
| 237 | RETVAL=$((RETVAL | 2)) && | ||
| 238 | echo "Powercontroll not configured" && | ||
| 239 | return | ||
| 240 | start_powercontrol_common | ||
| 241 | } | ||
| 242 | |||
| 243 | stop_powercontrol() | ||
| 244 | { | ||
| 245 | modprobe -q -r ipmi_poweroff > /dev/null 2>&1 | ||
| 246 | modules_loaded ipmi_poweroff | ||
| 247 | if [ ${OnePlusLoaded} -ne 0 ]; then | ||
| 248 | RETVAL=$((RETVAL | 32)) | ||
| 249 | echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module" | ||
| 250 | fi | ||
| 251 | } | ||
| 252 | |||
| 253 | stop_powercontrol_quiet() | ||
| 254 | { | ||
| 255 | modprobe -q -r ipmi_poweroff > /dev/null 2>&1 | ||
| 256 | modules_loaded ipmi_poweroff | ||
| 257 | [ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32)) | ||
| 258 | } | ||
| 259 | |||
| 260 | ############################################################################# | ||
| 261 | unload_all_ipmi_modules() | ||
| 262 | { | ||
| 263 | stop_watchdog_quiet | ||
| 264 | stop_powercontrol_quiet | ||
| 265 | for m in ${MODULES}; do | ||
| 266 | modprobe -q -r ${m} > /dev/null 2>&1 | ||
| 267 | done | ||
| 268 | # delete interface node ONLY if ipmi_devintf is unloaded | ||
| 269 | [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] && | ||
| 270 | rm -f "/dev/ipmi${INTF_NUM}" | ||
| 271 | } | ||
| 272 | |||
| 273 | unload_ipmi_modules_leave_features() | ||
| 274 | { | ||
| 275 | for m in ${MODULES_INTERFACES}; do | ||
| 276 | modprobe -q -r ${m} > /dev/null 2>&1 | ||
| 277 | done | ||
| 278 | # delete interface node ONLY if ipmi_devintf is unloaded | ||
| 279 | [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] && | ||
| 280 | rm -f "/dev/ipmi${INTF_NUM}" | ||
| 281 | lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1 | ||
| 282 | if [ "$?" -ne "0" ]; then | ||
| 283 | stop_watchdog_quiet | ||
| 284 | stop_powercontrol_quiet | ||
| 285 | for m in ${MODULES}; do | ||
| 286 | modprobe -q -r ${m} > /dev/null 2>&1 | ||
| 287 | done | ||
| 288 | fi | ||
| 289 | } | ||
| 290 | |||
| 291 | ############################################################################# | ||
| 292 | load_ipmi_modules () | ||
| 293 | { | ||
| 294 | local locdelay | ||
| 295 | modprobe ipmi_msghandler > /dev/null 2>&1 | ||
| 296 | modules_loaded ipmi_msghandler | ||
| 297 | [ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return | ||
| 298 | load_hw_modules | ||
| 299 | [ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return | ||
| 300 | |||
| 301 | if [ "${DEV_IPMI}" = "yes" ]; then | ||
| 302 | modprobe ipmi_devintf > /dev/null 2>&1 | ||
| 303 | modules_loaded ipmi_devintf | ||
| 304 | RETVAL=$((RETVAL & ~2)) | ||
| 305 | [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) | ||
| 306 | if [ ${OnePlusLoaded} -eq 1 ]; then | ||
| 307 | if [ ${UDEV_EXISTS} -eq 0 ]; then | ||
| 308 | DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'` | ||
| 309 | rm -f /dev/ipmi${INTF_NUM} | ||
| 310 | mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4)) | ||
| 311 | fi | ||
| 312 | |||
| 313 | # udev can take several seconds to create /dev/ipmi0, | ||
| 314 | # but it happens asynchronously, so delay here | ||
| 315 | locdelay=${DEV_IPMI_TIMEOUT} | ||
| 316 | while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do | ||
| 317 | locdelay=$((locdelay - 1)) | ||
| 318 | sleep 0.1 | ||
| 319 | done | ||
| 320 | fi | ||
| 321 | fi | ||
| 322 | |||
| 323 | if [ "${IPMI_IMB}" = "yes" ]; then | ||
| 324 | modprobe ipmi_imb > /dev/null 2>&1 | ||
| 325 | modules_loaded ipmi_imb | ||
| 326 | RETVAL=$((RETVAL & ~2)) | ||
| 327 | [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) | ||
| 328 | if [ ${OnePlusLoaded} -eq 1 ]; then | ||
| 329 | DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'` | ||
| 330 | rm -f /dev/imb | ||
| 331 | mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4)) | ||
| 332 | fi | ||
| 333 | fi | ||
| 334 | |||
| 335 | # Per Corey Minyard, essentially no one uses ipmi_radisys | ||
| 336 | # and we don't want to encourage its further use | ||
| 337 | # so it won't be handled here. | ||
| 338 | return | ||
| 339 | } | ||
| 340 | |||
| 341 | ############################################################################# | ||
| 342 | start() | ||
| 343 | { | ||
| 344 | load_ipmi_modules | ||
| 345 | if [ ${RETVAL} -eq 0 ]; then | ||
| 346 | touch ${LOCKFILE} | ||
| 347 | else | ||
| 348 | if [ $((RETVAL & 1)) -eq 1 ]; then | ||
| 349 | echo "Startup failed." | ||
| 350 | else | ||
| 351 | touch ${LOCKFILE} && echo "Warning!?" | ||
| 352 | fi | ||
| 353 | fi | ||
| 354 | start_watchdog_quiet | ||
| 355 | start_powercontrol_quiet | ||
| 356 | } | ||
| 357 | |||
| 358 | ############################################################################# | ||
| 359 | stop() | ||
| 360 | { | ||
| 361 | unload_ipmi_modules_leave_features | ||
| 362 | modules_loaded ${MODULES_INTERFACES} | ||
| 363 | if [ ${OnePlusLoaded} -ne 0 ]; then | ||
| 364 | RETVAL=$((RETVAL | 32)) | ||
| 365 | echo "Shutdown failed, something may be in use" | ||
| 366 | else | ||
| 367 | rm -f ${LOCKFILE} | ||
| 368 | fi | ||
| 369 | } | ||
| 370 | |||
| 371 | stop_all() | ||
| 372 | { | ||
| 373 | unload_all_ipmi_modules | ||
| 374 | modules_loaded ${MODULES} | ||
| 375 | if [ ${OnePlusLoaded} -ne 0 ]; then | ||
| 376 | RETVAL=$((RETVAL | 32)) | ||
| 377 | echo "Shutdown failed, something may be in use" | ||
| 378 | else | ||
| 379 | rm -f ${LOCKFILE} | ||
| 380 | fi | ||
| 381 | } | ||
| 382 | |||
| 383 | ############################################################################# | ||
| 384 | restart() | ||
| 385 | { | ||
| 386 | stop_all | ||
| 387 | RETVAL=0 | ||
| 388 | start | ||
| 389 | } | ||
| 390 | |||
| 391 | ############################################################################# | ||
| 392 | |||
| 393 | reload() | ||
| 394 | { | ||
| 395 | stop_all | ||
| 396 | RETVAL=0 | ||
| 397 | start | ||
| 398 | } | ||
| 399 | |||
| 400 | ############################################################################# | ||
| 401 | |||
| 402 | status_all() | ||
| 403 | { | ||
| 404 | minimum_modules_loaded | ||
| 405 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) | ||
| 406 | |||
| 407 | modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES} | ||
| 408 | [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2)) | ||
| 409 | |||
| 410 | if [ "${DEV_IPMI}" = "yes" ]; then | ||
| 411 | device_node_exists /dev/ipmi${INTF_NUM} | ||
| 412 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) | ||
| 413 | fi | ||
| 414 | |||
| 415 | if [ "${IPMI_IMB}" = "yes" ]; then | ||
| 416 | device_node_exists /dev/imb | ||
| 417 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) | ||
| 418 | fi | ||
| 419 | |||
| 420 | if [ "${IPMI_WATCHDOG}" = "yes" ]; then | ||
| 421 | device_node_exists /dev/watchdog | ||
| 422 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 8)) | ||
| 423 | fi | ||
| 424 | |||
| 425 | [ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16)) | ||
| 426 | } | ||
| 427 | |||
| 428 | status() | ||
| 429 | { | ||
| 430 | minimum_modules_loaded | ||
| 431 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) | ||
| 432 | |||
| 433 | if [ "${DEV_IPMI}" = "yes" ]; then | ||
| 434 | modules_loaded_verbose ipmi_devintf | ||
| 435 | [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) | ||
| 436 | |||
| 437 | device_node_exists /dev/ipmi${INTF_NUM} | ||
| 438 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) | ||
| 439 | fi | ||
| 440 | |||
| 441 | if [ "${IPMI_IMB}" = "yes" ]; then | ||
| 442 | device_node_exists /dev/imb | ||
| 443 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) | ||
| 444 | fi | ||
| 445 | } | ||
| 446 | |||
| 447 | status_watchdog() | ||
| 448 | { | ||
| 449 | minimum_modules_loaded | ||
| 450 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) | ||
| 451 | |||
| 452 | modules_loaded_verbose ipmi_watchdog | ||
| 453 | [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) | ||
| 454 | |||
| 455 | device_node_exists /dev/watchdog | ||
| 456 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 8)) | ||
| 457 | } | ||
| 458 | |||
| 459 | status_powercontrol() | ||
| 460 | { | ||
| 461 | minimum_modules_loaded | ||
| 462 | [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) | ||
| 463 | |||
| 464 | modules_loaded_verbose ipmi_powercontrol | ||
| 465 | [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) | ||
| 466 | } | ||
| 467 | |||
| 468 | ############################################################################# | ||
| 469 | usage () | ||
| 470 | { | ||
| 471 | echo $"Usage: $0 {start|stop|status" 1>&2 | ||
| 472 | echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2 | ||
| 473 | echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2 | ||
| 474 | echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2 | ||
| 475 | echo $" stop-all|status-all}" 1>&2 | ||
| 476 | RETVAL=2 | ||
| 477 | } | ||
| 478 | |||
| 479 | condrestart () | ||
| 480 | { | ||
| 481 | [ -e ${LOCKFILE} ] && restart | ||
| 482 | } | ||
| 483 | |||
| 484 | ############################################################################# | ||
| 485 | # MAIN | ||
| 486 | ############################################################################# | ||
| 487 | case "$1" in | ||
| 488 | start) start ;; | ||
| 489 | stop) stop ;; | ||
| 490 | restart) restart ;; | ||
| 491 | force-reload) reload ;; | ||
| 492 | reload) reload ;; | ||
| 493 | status) status ;; | ||
| 494 | status-all) status_all ;; | ||
| 495 | condrestart) condrestart ;; | ||
| 496 | try-restart) condrestart ;; | ||
| 497 | start-watchdog) start_watchdog ;; | ||
| 498 | stop-watchdog) stop_watchdog ;; | ||
| 499 | status-watchdog) status_watchdog ;; | ||
| 500 | start-powercontrol) start_powercontrol ;; | ||
| 501 | stop-powercontrol) stop_powercontrol ;; | ||
| 502 | status-powercontrol) status_powercontrol ;; | ||
| 503 | stop-all) stop_all ;; | ||
| 504 | *) usage ;; | ||
| 505 | esac | ||
| 506 | |||
| 507 | exit ${RETVAL} | ||
| 508 | |||
| 509 | ############################################################################# | ||
| 510 | # end of file | ||
| 511 | ############################################################################# | ||
| 512 | |||
diff --git a/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch new file mode 100644 index 0000000000..1fa68f9bac --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | Author: Aws Ismail <aws.ismail@windriver.com> | ||
| 2 | Date: Thu Jun 7 12:28:34 2012 -0400 | ||
| 3 | |||
| 4 | This patch was carried over from WRL4.3 (openipmi v2.0.16) | ||
| 5 | |||
| 6 | It was updated for openipmi v2.0.19 | ||
| 7 | |||
| 8 | Disable making openipmigui man page since we don't need it | ||
| 9 | |||
| 10 | Upstream-Status: Pending | ||
| 11 | |||
| 12 | Signed-off-by: Aws Ismail <aws.ismail@windriver.com> | ||
| 13 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 14 | |||
| 15 | diff --git a/man/Makefile.am b/man/Makefile.am | ||
| 16 | index 632f55b..5ce79f5 100644 | ||
| 17 | --- a/man/Makefile.am | ||
| 18 | +++ b/man/Makefile.am | ||
| 19 | @@ -1,6 +1,6 @@ | ||
| 20 | |||
| 21 | man_MANS = ipmi_ui.1 openipmicmd.1 openipmish.1 ipmi_cmdlang.7 \ | ||
| 22 | - openipmigui.1 openipmi_conparms.7 solterm.1 rmcp_ping.1 \ | ||
| 23 | + openipmi_conparms.7 solterm.1 rmcp_ping.1 \ | ||
| 24 | openipmi_eventd.1 | ||
| 25 | |||
| 26 | EXTRA_DIST = $(man_MANS) | ||
diff --git a/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch new file mode 100644 index 0000000000..6f16234bc7 --- /dev/null +++ b/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jackie Huang <jackie.huang@windriver.com> | ||
| 3 | Date: Mon, 29 Dec 2014 18:16:04 +0800 | ||
| 4 | Subject: [PATCH] remove host path from la_LDFLAGS | ||
| 5 | |||
| 6 | Upstream-Status: Inappropriate [ cross compile specific ] | ||
| 7 | |||
| 8 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
| 9 | --- | ||
| 10 | cmdlang/Makefile.am | 2 +- | ||
| 11 | glib/Makefile.am | 4 ++-- | ||
| 12 | tcl/Makefile.am | 2 +- | ||
| 13 | unix/Makefile.am | 4 ++-- | ||
| 14 | 4 files changed, 6 insertions(+), 6 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am | ||
| 17 | index 00c3d2b..0fa85d7 100644 | ||
| 18 | --- a/cmdlang/Makefile.am | ||
| 19 | +++ b/cmdlang/Makefile.am | ||
| 20 | @@ -16,7 +16,7 @@ libOpenIPMIcmdlang_la_LIBADD = -lm \ | ||
| 21 | $(top_builddir)/utils/libOpenIPMIutils.la \ | ||
| 22 | $(top_builddir)/lib/libOpenIPMI.la | ||
| 23 | libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ | ||
| 24 | - -Wl,-Map -Wl,libOpenIPMIcmdlang.map -L$(libdir) | ||
| 25 | + -Wl,-Map -Wl,libOpenIPMIcmdlang.map | ||
| 26 | |||
| 27 | bin_PROGRAMS = openipmish | ||
| 28 | |||
| 29 | diff --git a/glib/Makefile.am b/glib/Makefile.am | ||
| 30 | index 671cae2..eff55f3 100644 | ||
| 31 | --- a/glib/Makefile.am | ||
| 32 | +++ b/glib/Makefile.am | ||
| 33 | @@ -11,14 +11,14 @@ libOpenIPMIglib_la_SOURCES = glib_os_hnd.c | ||
| 34 | libOpenIPMIglib_la_CFLAGS = $(GLIB_CFLAGS) $(AM_CFLAGS) | ||
| 35 | libOpenIPMIglib_la_LIBADD = $(GDBM_LIB) | ||
| 36 | libOpenIPMIglib_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ | ||
| 37 | - -Wl,-Map -Wl,libOpenIPMIglib.map $(GLIB_LIBS) -L$(libdir) \ | ||
| 38 | + -Wl,-Map -Wl,libOpenIPMIglib.map $(GLIB_LIBS) \ | ||
| 39 | -rpath $(libdir) | ||
| 40 | |||
| 41 | libOpenIPMIglib12_la_SOURCES = glib_os_hnd.c | ||
| 42 | libOpenIPMIglib12_la_CFLAGS = $(GLIB12_CFLAGS) $(AM_CFLAGS) | ||
| 43 | libOpenIPMIglib12_la_LIBADD = $(GDBM_LIB) | ||
| 44 | libOpenIPMIglib12_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ | ||
| 45 | - -Wl,-Map -Wl,libOpenIPMIglib12.map $(GLIB12_LIBS) -L$(libdir) \ | ||
| 46 | + -Wl,-Map -Wl,libOpenIPMIglib12.map $(GLIB12_LIBS) \ | ||
| 47 | -rpath $(libdir) | ||
| 48 | |||
| 49 | CLEANFILES = libOpenIPMIglib.map libOpenIPMIglib12.map | ||
| 50 | diff --git a/tcl/Makefile.am b/tcl/Makefile.am | ||
| 51 | index b702819..282619c 100644 | ||
| 52 | --- a/tcl/Makefile.am | ||
| 53 | +++ b/tcl/Makefile.am | ||
| 54 | @@ -11,7 +11,7 @@ libOpenIPMItcl_la_SOURCES = tcl_os_hnd.c | ||
| 55 | libOpenIPMItcl_la_CFLAGS = $(TCL_CFLAGS) $(AM_CFLAGS) | ||
| 56 | libOpenIPMItcl_la_LIBADD = $(GDBM_LIB) | ||
| 57 | libOpenIPMItcl_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ | ||
| 58 | - -Wl,-Map -Wl,libOpenIPMItcl.map $(TCL_LIBS) -L$(libdir) \ | ||
| 59 | + -Wl,-Map -Wl,libOpenIPMItcl.map $(TCL_LIBS) \ | ||
| 60 | -rpath $(libdir) | ||
| 61 | |||
| 62 | noinst_PROGRAMS = test_handlers | ||
| 63 | diff --git a/unix/Makefile.am b/unix/Makefile.am | ||
| 64 | index a792147..a108bc6 100644 | ||
| 65 | --- a/unix/Makefile.am | ||
| 66 | +++ b/unix/Makefile.am | ||
| 67 | @@ -11,13 +11,13 @@ libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c | ||
| 68 | libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \ | ||
| 69 | $(top_builddir)/utils/libOpenIPMIutils.la | ||
| 70 | libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ | ||
| 71 | - -Wl,-Map -Wl,libOpenIPMIpthread.map -L$(libdir) | ||
| 72 | + -Wl,-Map -Wl,libOpenIPMIpthread.map | ||
| 73 | |||
| 74 | libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c | ||
| 75 | libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \ | ||
| 76 | $(GDBM_LIB) | ||
| 77 | libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ | ||
| 78 | - -Wl,-Map -Wl,libOpenIPMIposix.map -L$(libdir) | ||
| 79 | + -Wl,-Map -Wl,libOpenIPMIposix.map | ||
| 80 | |||
| 81 | noinst_HEADERS = heap.h | ||
| 82 | |||
| 83 | -- | ||
| 84 | 1.7.1 | ||
| 85 | |||
diff --git a/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb b/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb new file mode 100644 index 0000000000..82e8cac3ec --- /dev/null +++ b/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb | |||
| @@ -0,0 +1,111 @@ | |||
| 1 | SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools" | ||
| 2 | DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \ | ||
| 3 | to allow full access to all IPMI information on a server \ | ||
| 4 | and to abstract it to a level that will make it easy to use" | ||
| 5 | |||
| 6 | HOMEPAGE = "http://openipmi.sourceforge.net" | ||
| 7 | |||
| 8 | DEPENDS = " \ | ||
| 9 | glib-2.0 \ | ||
| 10 | ncurses \ | ||
| 11 | net-snmp \ | ||
| 12 | openssl \ | ||
| 13 | popt \ | ||
| 14 | python \ | ||
| 15 | swig-native \ | ||
| 16 | " | ||
| 17 | |||
| 18 | LICENSE = "GPLv2 & LGPLv2.1 & BSD" | ||
| 19 | |||
| 20 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
| 21 | file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ | ||
| 22 | file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \ | ||
| 23 | " | ||
| 24 | |||
| 25 | SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \ | ||
| 26 | file://fix-symlink-install-error-in-cmdlang.patch \ | ||
| 27 | file://openipmi-no-openipmigui-man.patch \ | ||
| 28 | file://openipmi-remove-host-path-from-la_LDFLAGS.patch \ | ||
| 29 | file://openipmi-don-t-rm-.libs.patch \ | ||
| 30 | file://ipmi-init-fix-the-arguments.patch \ | ||
| 31 | file://makefile-add-ldflags.patch \ | ||
| 32 | file://do-not-install-pyc-and-pyo.patch \ | ||
| 33 | file://openipmi-helper \ | ||
| 34 | file://ipmi.service \ | ||
| 35 | " | ||
| 36 | |||
| 37 | SRC_URI[md5sum] = "9a4e1f6bb073379c494839201ea10aee" | ||
| 38 | SRC_URI[sha256sum] = "4988900043c35fcfa9b2bf275d6593904f6429221befb770ba6ecb5502108e55" | ||
| 39 | |||
| 40 | S = "${WORKDIR}/OpenIPMI-${PV}" | ||
| 41 | |||
| 42 | inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd | ||
| 43 | |||
| 44 | EXTRA_OECONF = "--disable-static \ | ||
| 45 | --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \ | ||
| 46 | --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \ | ||
| 47 | --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \ | ||
| 48 | --with-glibver=2.0 --with-glib12=no" | ||
| 49 | |||
| 50 | PACKAGECONFIG ??= "gdbm" | ||
| 51 | PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm," | ||
| 52 | |||
| 53 | PACKAGES += "${PN}-perl ${PN}-python" | ||
| 54 | |||
| 55 | FILES_${PN}-perl = " \ | ||
| 56 | ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \ | ||
| 57 | ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \ | ||
| 58 | " | ||
| 59 | |||
| 60 | FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" | ||
| 61 | |||
| 62 | FILES_${PN}-dbg += " \ | ||
| 63 | ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \ | ||
| 64 | ${PYTHON_SITEPACKAGES_DIR}/.debug \ | ||
| 65 | " | ||
| 66 | |||
| 67 | do_configure () { | ||
| 68 | |||
| 69 | # Let's perform regular configuration first then handle perl issues. | ||
| 70 | autotools_do_configure | ||
| 71 | |||
| 72 | perl_ver=`perl -V:version | cut -d\' -f 2` | ||
| 73 | |||
| 74 | # Force openipmi perl bindings to be compiled using perl-native instead of | ||
| 75 | # the host's perl. Set the proper install directory for the resulting | ||
| 76 | # openipmi.pm and openipmi.so | ||
| 77 | for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do | ||
| 78 | echo "SAL: i = $i" | ||
| 79 | echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE" | ||
| 80 | echo "SAL: libdir = $libdir" | ||
| 81 | sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i | ||
| 82 | sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i | ||
| 83 | done | ||
| 84 | } | ||
| 85 | |||
| 86 | do_install_append () { | ||
| 87 | echo "SAL: D = $D" | ||
| 88 | echo "SAL: libdir = $libdir" | ||
| 89 | install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d | ||
| 90 | install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi | ||
| 91 | install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi | ||
| 92 | # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory | ||
| 93 | # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv. | ||
| 94 | if [ -d ${D}${libdir}/perl5 ] | ||
| 95 | then | ||
| 96 | mv ${D}${libdir}/perl5 ${D}${libdir}/perl | ||
| 97 | fi | ||
| 98 | |||
| 99 | # for systemd | ||
| 100 | install -d ${D}${systemd_unitdir}/system | ||
| 101 | install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system | ||
| 102 | sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service | ||
| 103 | install -d ${D}${libexecdir} | ||
| 104 | install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir} | ||
| 105 | } | ||
| 106 | |||
| 107 | INITSCRIPT_NAME = "ipmi" | ||
| 108 | INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ." | ||
| 109 | |||
| 110 | SYSTEMD_SERVICE_${PN} = "ipmi.service" | ||
| 111 | SYSTEMD_AUTO_ENABLE = "disable" | ||
