diff options
author | Jackie Huang <jackie.huang@windriver.com> | 2017-04-26 16:22:06 +0800 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2017-04-27 11:14:58 +0200 |
commit | 5f4191269065d701ac0ac9e1127797b60923226d (patch) | |
tree | 454cd5feba20b4243cc12a5ecfccf6898feb265e | |
parent | ab68fcadbfa51e6cdd5edd950c4252da2d16de53 (diff) | |
download | meta-openembedded-5f4191269065d701ac0ac9e1127797b60923226d.tar.gz |
openipmi: add new recipe
OpenIPMI is an effort to create a full-function IPMI
system to allow full access to all IPMI information
on a server and to abstract it to a level that will
make it easy to use.
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
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 000000000..d4e02be45 --- /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 000000000..9a568b2b2 --- /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 000000000..51a398ba5 --- /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 000000000..6fe137819 --- /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 000000000..271c5323f --- /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 000000000..ee3c66043 --- /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 000000000..4cebfb9c6 --- /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 000000000..1fa68f9ba --- /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 000000000..6f16234bc --- /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 000000000..82e8cac3e --- /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" | ||