import OpenIPMI-2.0.31-3.el8

c8 imports/c8/OpenIPMI-2.0.31-3.el8
CentOS Sources 3 years ago committed by MSVSphere Packaging Team
commit 1ce525d752

@ -0,0 +1 @@
5b9494e61d8fbcee05d6cea3c688f7f69fded4e7 SOURCES/OpenIPMI-2.0.31.tar.gz

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/OpenIPMI-2.0.31.tar.gz

@ -0,0 +1,543 @@
From dfca464e5fe4c9107f08bff7e6e2730a504945b7 Mon Sep 17 00:00:00 2001
From: Boris Ranto <branto@redhat.com>
Date: Thu, 2 Jun 2016 12:47:22 +0200
Subject: [PATCH] Apply './OpenIPMI-2.0.19-man.patch'
Signed-off-by: Boris Ranto <branto@redhat.com>
---
lanserv/ipmilan.8 | 13 ++++++++++---
man/ipmi_cmdlang.7 | 36 ++++++++++++++++++------------------
man/ipmi_ui.1 | 10 +++++-----
man/openipmi_conparms.7 | 4 ++--
man/openipmicmd.1 | 6 +++---
man/openipmigui.1 | 12 ++++++------
man/openipmish.1 | 12 +++++++++++-
man/rmcp_ping.1 | 2 +-
man/solterm.1 | 6 +++---
sample/ipmicmd.c | 1 +
sample/rmcp_ping.c | 5 +++++
sample/solterm.c | 7 ++++++-
ui/basic_ui.c | 25 +++++++++++++++++++++++++
13 files changed, 96 insertions(+), 43 deletions(-)
diff --git a/lanserv/ipmilan.8 b/lanserv/ipmilan.8
index ff43d5c..9360507 100644
--- a/lanserv/ipmilan.8
+++ b/lanserv/ipmilan.8
@@ -29,18 +29,25 @@ address they came in.
.SH OPTIONS
.TP
-.BI \-c\ config-file
+\fB\-c\fR file,\ \fB\-\-config\-file\fR file
Set the configuration file to one other than the default of
.I "/etc/ipmi_lan.conf"
.TP
-.B \-n
+\fB\-i\fR device,\ \fB\-\-ipmi-dev\fR device
+Sets the desired device
+.TP
+\fB\-n\fR,\ \fB\-\-daemonize\fR
Stops the daemon from forking and detaching from the controlling
terminal. This is useful for running from init.
.TP
-.B \-d
+\fB\-d\fR,\ \fB\-\-debug\fR
Turns on debugging to standard output. You generally have to use
.B \-n
with this.
+.TP
+\fB\-?\fR,\ \fB\-\-help\fR,\ \fB\-\-usage\fR
+Prints brief usage hints message.
+
.SH CONFIGURATION
diff --git a/man/ipmi_cmdlang.7 b/man/ipmi_cmdlang.7
index 4d18e76..a6d73b9 100644
--- a/man/ipmi_cmdlang.7
+++ b/man/ipmi_cmdlang.7
@@ -246,7 +246,7 @@ instance, the command to create a domain is
The command to list all sensors in a domain named domain1 is
.B sensor list domain1.
-Each command has a reponse for each object operated on, which is
+Each command has a response for each object operated on, which is
listed after the command description. In those responses, anything
that begins with a
.B %
@@ -316,7 +316,7 @@ BMC. For that, notice that the LAN connection has an options extra IP
and port for the second IP address. OpenIPMI supports these IP
addresses and connection, detecting failures, switching between
addresses, and other fault-tolerant things. It does this
-transparently to the user. Mutiple connections may require special
+transparently to the user. Multiple connections may require special
OEM support, read the documentation about your specific system if you
need this.
@@ -336,7 +336,7 @@ or
\fI<name>\fP and \fI<password>\fP are the user name and password of
the IPMI user to use for the connection.
The <smi num> is the driver number, generally 0.
-Options enable and disable various automitic processing and are:
+Options enable and disable various automatic processing and are:
.PD 0
.HP
.B -[no]all
@@ -356,7 +356,7 @@ is false by default.
is false by default.
.HP
.B -[no]ipmbscan
-- IPMB bus scanning. This turns on scanning IPMB busses when they are found.
+- IPMB bus scanning. This turns on scanning IPMB buses when they are found.
This is false by default.
.HP
.B -[no]oeminit
@@ -461,7 +461,7 @@ available hacks are:
The -M option sets the maximum outstanding messages. The default is
2, ranges 1-63.
-Options enable and disable various automitic processing and are:
+Options enable and disable various automatic processing and are:
.PD 0
.HP
.B -[no]all
@@ -519,7 +519,7 @@ Domain Created: <domain>
.RE
.B fru <domain> <is_logical> <device_address> <device_id> <lun> <private_bus> <channel>
-- dump a fru given all it's insundry information.
+- dump a fru given all it's sundry information.
.TP
Response:
.RS
@@ -533,7 +533,7 @@ Domain
.B msg <domain> <channel> <ipmb> <LUN> <NetFN> <Cmd> [data...]
- Send a command to the given IPMB address on the given channel and
-display the response. Note that this does not require the existance
+display the response. Note that this does not require the existence
of an MC in OpenIPMI.
.TP
Response:
@@ -571,7 +571,7 @@ SEL Rescan done: <domain>
.RE
.B presence <domain>
-- Audit the presence of all enities in the domain. Note that this just
+- Audit the presence of all entities in the domain. Note that this just
starts the process; it will run in the background.
.TP
Response is:
@@ -689,7 +689,7 @@ FRU deleted: <fru>
- Set the value of a FRU element. The
name is the record name, or multi-record. The number is required
for fields that need it (custom and multi-record). The value is
-an a single value for integers. For strings it is a string
+a single value for integers. For strings it is a string
type (either binary, ascii, or unicode) and the info. Binary and
unicode data is specified as numbers. ascii data is specified in
a string. Note that setting a ascii value with no string will
@@ -770,7 +770,7 @@ Domain
.B info <entity>
- Dump information about an entity.
.TP
-Reponse:
+Response:
.RS
.nf
Entity
@@ -784,7 +784,7 @@ Entity
.B fru <entity>
- Dump the FRU information about the given entity.
.TP
-Reponse:
+Response:
.RS
.nf
Entity
@@ -813,7 +813,7 @@ Entity
.B set_act_time <entity>
- Set the hot-swap auto-activate time.
.TP
-Reponse:
+Response:
.RS
.nf
Set act time: <entity>
@@ -981,7 +981,7 @@ Response:
.nf
Sensor
Name: <sensor>
- Positivie Hysteresis: <integer>
+ Positive Hysteresis: <integer>
Negative Hysteresis: <integer>
.fi
.RE
@@ -1101,7 +1101,7 @@ Set done: <control>
.RE
.B get <control>
-- Get the value of a control. The reponse depends
+- Get the value of a control. The response depends
on the control type.
.TP
Response:
@@ -1128,7 +1128,7 @@ multiple lights. The options values (marked with
) will not be
present if local control is set to true. Local control means that
the LED takes whatever default function it does on the device
-(like disk activity, ethernet activity, hot-swap LED, etc.).
+(like disk activity, Ethernet activity, hot-swap LED, etc.).
Response for id control:
.RS
.nf
@@ -1325,7 +1325,7 @@ Channel Access
- Set information about the MC's channel access. There are two different
places where this is stored, the present in-use values (volatile) and the
non-volatile storage that is loaded at startup. Note if you specify
-channel 0xe, the modified channel will be the current channel. Parms
+channel 0xe, the modified channel will be the current channel. Parameters
are:
.RS
.nf
@@ -1547,7 +1547,7 @@ PET destroyed: <pet>
.SS pef
commands dealing with platform even filters. These are basically
connections to the PEF configuration parameters in an MC. You use a
-pef to fetch a pef config, which you can then modify and write back to
+pef to fetch a pef configuration, which you can then modify and write back to
the MC. Note that when you get a pef config, you claim a lock on the
MC that must be unlocked.
@@ -1780,7 +1780,7 @@ operational and finished all it SDR, FRU, and bus scans:
.fi
.RE
-The following comes out when domain connection infomration changes:
+The following comes out when domain connection information changes:
.RS
.nf
EVENT
diff --git a/man/ipmi_ui.1 b/man/ipmi_ui.1
index 9c5d9b6..011255f 100644
--- a/man/ipmi_ui.1
+++ b/man/ipmi_ui.1
@@ -4,7 +4,7 @@
ipmi_ui \- Crude interface to an IPMI system
.SH SYNOPSIS
-.B ipmiui
+.B ipmi_ui
.RB [\| \-dmsg \|]
.RB [\| \-dmem \|]
.RB [\| \-c \|]
@@ -34,7 +34,7 @@ Normally,
starts up in a full-screen format. The left window shows the output
of commands, the right window shows the logs from OpenIPMI. Both
windows are scrollable with page up and page down keys, press the "\fBF1\fP"
-key to choose the the left window to scroll, the "\fBF2\fP" key to choose
+key to choose the left window to scroll, the "\fBF2\fP" key to choose
the right window to scroll.
Note that you must set your environment \fBTERM\fP variable properly for
@@ -48,7 +48,7 @@ the connections are to the same IPMI domain through different
management controllers. Also, each LAN connection may have two IP
addresses. These are two different addresses to the same management
controller. So you may have a total of 4 IP addresses to an IPMI
-domain, two management controllers and two IP adresses to each
+domain, two management controllers and two IP addresses to each
management controller.
.SH OPTIONS
@@ -174,12 +174,12 @@ turns events on or off from the sensor (\fB0\fP or \fB1\fP).
turns scanning on or off for the sensor (\fB0\fP or \fB1\fP).
.I "assertion-bitmask"
specifies the bitmask of thresholds or states
-that should be enabled or disabled when a thrshold or state is
+that should be enabled or disabled when a threshold or state is
asserted. It is a bunch of 0's and 1's, where the first one is for
threshold/state 0, the second for threshold/state 1, etc.
.I "deassertion-bitmask"
specifies the bitmask of thresholds or states
-that should be enabled or disabled when a thrshold or state is
+that should be enabled or disabled when a threshold or state is
deasserted.
.SH CONTROLS
diff --git a/man/openipmi_conparms.7 b/man/openipmi_conparms.7
index 587da2a..9dc6404 100644
--- a/man/openipmi_conparms.7
+++ b/man/openipmi_conparms.7
@@ -1,7 +1,7 @@
.TH openipmi_conparms 7 05/13/03 OpenIPMI "Connection Parameters for OpenIPMI"
.SH NAME
-openipmi_cmdparms \- Connection parmeters for OpenIPMI
+openipmi_cmdparms \- Connection parameters for OpenIPMI
.SH SYNOPSIS
@@ -97,7 +97,7 @@ use.
.TP
.BI \-Rc\ confidentiality\ algorithm
The \fIRMCP+ confidentiality (encryption) algorithm\fP to use. This keeps
-evesdroppers from seeing the data. Valid values are: \fBbmcpick\fP,
+eavesdroppers from seeing the data. Valid values are: \fBbmcpick\fP,
\fBaes_cbc_128\fP, \fBxrc4_128\fP, and \fBxrc_40\fP. The \fBbmcpick\fP option is used by
default, which means the BMC picks the algorithm it wants to use.
diff --git a/man/openipmicmd.1 b/man/openipmicmd.1
index 6bd2401..5d206d1 100644
--- a/man/openipmicmd.1
+++ b/man/openipmicmd.1
@@ -22,7 +22,7 @@ interfaces.
Execute a single command an exit.
.TP
-.BI <connection parms>
+.BI <connection\ parms>
The parameters for the connection depend on the connection type.
These are all described in openipmi_conparms (7)
@@ -32,7 +32,7 @@ Once up, you can execute commands in the user interface. Note that
commands and responses are asynchronous, you issue a command and the
interface returns immediately. When the response comes back, it will
be dumped on your console. That's a little strange looking, but IPMI
-is ansychronous underneath. Note that the \fB\-k\fP option is synchronous,
+is asynchronous underneath. Note that the \fB\-k\fP option is synchronous,
it will wait for the response or a timeout before returning.
.TP
@@ -82,7 +82,7 @@ Remove a command registration.
.BR openipmi_conparms (7)
.SH "KNOWN PROBLEMS"
-The asychronous nature of the program can be annoying.
+The asynchronous nature of the program can be annoying.
.SH AUTHOR
.PP
diff --git a/man/openipmigui.1 b/man/openipmigui.1
index 04f880b..0c8c10f 100644
--- a/man/openipmigui.1
+++ b/man/openipmigui.1
@@ -38,7 +38,7 @@ Turn on message debugging, this will dump all messages to debug log output.
.TP
.B \-\-drawmsg
Turn on raw message debugging, this will dump all low-level messages to
-debug log output. This differes from normal message debugging in that all
+debug log output. This differs from normal message debugging in that all
protocol messages are also dumped, not just IPMI messages.
.TP
.B \-\-dmem
@@ -81,7 +81,7 @@ tree.
The tree window has a top-level list of all the domains for which
OpenIPMI has connections (or pending connection). Each domain
-exapands into domain-specific information and a list of entities and
+expands into domain-specific information and a list of entities and
Management Controllers (MCs) for that domain.
Right click drives most of the operations in the tree window. Many
@@ -92,7 +92,7 @@ Color is used in the GUI to denote error status, and shading is used
to denote availability. If a sensor has an error, the tree entry for
that sensor will change colors. Black means no error, yellow means
warning, red means critical, and blue means non-recoverable. These
-errors propigate up, so the entity containing that sensor will be the
+errors propagate up, so the entity containing that sensor will be the
same color as the most critical error for the sensors underneath it.
The same goes for domain, it will be the same color as the most
critical error for the entities underneath it. This way, if you watch
@@ -146,7 +146,7 @@ that sensor.
.SH CONTROLS
-Controls are available under the entity they belong to. control
+Controls are available under the entity they belong to. Control
information is beyond the scope of this document, as IPMI controls are
very complex. See the IPMI document from OpenIPMI for information
about controls.
@@ -214,7 +214,7 @@ channel listing. Note that some user setting (the name and password)
are global to all channels on the MC.
Due to the IPMI spec and some unfortunate implementation bugs, some
-wierd issues exist with this information. The user has an Enabled
+weird issues exist with this information. The user has an Enabled
value that tells whether the user is enabled or not. When initially
displayed, this field shows as a "?" because this field is not
readable. It will displayed as the actual value when it is modified,
@@ -247,7 +247,7 @@ changed.
.SH SOLPARMS
In the channel display on a 8023_LAN channel, a LANPARM configuration
-command is available if the MC supporte SOL (Serial Over LAN). This
+command is available if the MC supports SOL (Serial Over LAN). This
pulls up all the parameters for the LAN and allows them to be set.
Right-clicking on an item allows it to be changed.
diff --git a/man/openipmish.1 b/man/openipmish.1
index 36b1e43..2c902e4 100644
--- a/man/openipmish.1
+++ b/man/openipmish.1
@@ -26,7 +26,7 @@ Turn on message debugging, this will dump all messages to debug log output.
.TP
.B \-\-drawmsg
Turn on raw message debugging, this will dump all low-level messages to
-debug log output. This differes from normal message debugging in that all
+debug log output. This differs from normal message debugging in that all
protocol messages are also dumped, not just IPMI messages.
.TP
.B \-\-dmem
@@ -34,11 +34,21 @@ Turn on memory debugging, this will cause memory allocation and
deallocations to be checked. When the program terminates, it will
dump all memory that was not properly freed (leaked).
.TP
+.B \-\-dmsgerr
+Turn on printing out low-level message errors.
+.TP
.B \-\-dlock
Turn on lock debugging, this will check lock operations to make sure
that locks are help in all the proper places and make sure that locks
are properly nested.
.TP
+\fB-x\fR\ <string>,\ \fB\-\-execute\fR\ <string>
+Execute the given string at startup. This may be entered multiple times
+for multiple commands.
+.TP
+.B \-\-glib
+Use glib for the OS handler.
+.TP
.B \-\-snmp
Enable the SNMP trap handler.
.B openipmish
diff --git a/man/rmcp_ping.1 b/man/rmcp_ping.1
index d60019a..ce5cab0 100644
--- a/man/rmcp_ping.1
+++ b/man/rmcp_ping.1
@@ -38,7 +38,7 @@ starttag. This is zero by default
Turns on debugging to standard output.
.TP
.I destination
-The target address, default is the boradcast address (default 255.255.255.255)
+The target address, default is the broadcast address (default 255.255.255.255)
.SH AUTHOR
.PP
diff --git a/man/solterm.1 b/man/solterm.1
index 1479a1b..ada15d8 100644
--- a/man/solterm.1
+++ b/man/solterm.1
@@ -37,9 +37,9 @@ These are all described in openipmi_conparms (7)
.TP
.BI \-e\ escape_char
The character to use to escape, or exit, the program. Entering this
-chatacter right after a newline is entered causes the program to go
+character right after a newline is entered causes the program to go
into command mode. A single character after this performs a command.
-The default escape character is "~" as shown below. Suppported
+The default escape character is "~" as shown below. Supported
commands are:
.RS
.IP ~.
@@ -98,7 +98,7 @@ the SoL session. This is the default.
.TP
.BI \-holdoff
Specifies that CTS, DTR, and DSR are to be deasserted at the start of
-the SoL session so that the configuration may be modifeid before the
+the SoL session so that the configuration may be modified before the
handshake is released.
.TP
diff --git a/sample/ipmicmd.c b/sample/ipmicmd.c
index 6cbcdc5..5f5c1ec 100644
--- a/sample/ipmicmd.c
+++ b/sample/ipmicmd.c
@@ -124,6 +124,7 @@ void usage(void)
printf("%s [-k <command>] [-v] <con_parms>\n", progname);
printf("Where <con_parms> is one of:");
ipmi_parse_args_iter_help(con_usage, NULL);
+ printf("\n");
}
char *
diff --git a/sample/rmcp_ping.c b/sample/rmcp_ping.c
index 7814792..5778fea 100644
--- a/sample/rmcp_ping.c
+++ b/sample/rmcp_ping.c
@@ -156,6 +156,11 @@ main(int argc, char *argv[])
if (strcmp(argv[i], "--") == 0) {
i++;
break;
+ } else if ((strcmp(argv[i], "--help") == 0) ||
+ (strcmp(argv[i], "-?") == 0) ||
+ (strcmp(argv[i], "-h") == 0)) {
+ i++;
+ usage();
} else if (strcmp(argv[i], "-p") == 0) {
i++;
if (i >= argc) {
diff --git a/sample/solterm.c b/sample/solterm.c
index 38a3f9d..a3e52de 100644
--- a/sample/solterm.c
+++ b/sample/solterm.c
@@ -743,7 +743,12 @@ int main(int argc, char *argv[])
/* Now we make sure "lan" is the first argument so we get the
right connection type... */
- if (strcmp(argv[1], "lan") != 0) {
+ if ((strcmp(argv[1], "-h") == 0) ||
+ (strcmp(argv[1], "--help") == 0) ||
+ (strcmp(argv[1], "-?") == 0)) {
+ usage();
+ exit(1);
+ } else if (strcmp(argv[1], "lan") != 0) {
fprintf(stderr, "main: %s only supports lan connections\n",
progname);
exit(1);
diff --git a/ui/basic_ui.c b/ui/basic_ui.c
index 6993eb2..84889cb 100644
--- a/ui/basic_ui.c
+++ b/ui/basic_ui.c
@@ -306,6 +306,26 @@ snmp_init(os_handler_t *os_hnd)
static void snmp_setup_fds(os_handler_t *os_hnd) { }
#endif /* HAVE_UCDSNMP */
+void help(void)
+{
+ fprintf(stdout, "ipmi_ui [ options ] smi smi-num\n");
+ fprintf(stdout, "ipmi_ui [ oprions ] lan IP port [IP2 port2] auth priv user pass\n");
+ fprintf(stdout, "\n");
+ fprintf(stdout, "Options:\n");
+ fprintf(stdout, " -c Command line mode\n");
+ fprintf(stdout, " -dlock Lock debugging ON\n");
+ fprintf(stdout, " -dmem Memory debugging ON\n");
+ fprintf(stdout, " -drawmsg Raw message ON\n");
+ fprintf(stdout, " -dmsg Dump all messages.\n");
+#ifdef HAVE_UCDSNMP
+ fprintf(stdout, " -snmp SNMP trap handler ON\n");
+#endif
+ fprintf(stdout, "Auth:\n");
+ fprintf(stdout, " none | straight | md5 | md2\n");
+ fprintf(stdout, "Priv:\n");
+ fprintf(stdout, " callback | user | operator | admin\n");
+}
+
int
main(int argc, char *argv[])
{
@@ -327,6 +347,11 @@ main(int argc, char *argv[])
curr_arg++;
if (strcmp(arg, "--") == 0) {
break;
+ } else if (strcmp(arg, "-?") == 0 ||
+ strcmp(arg, "-h") == 0 ||
+ strcmp(arg, "--help") == 0) {
+ help();
+ return(1);
} else if (strcmp(arg, "-c") == 0) {
full_screen = 0;
} else if (strcmp(arg, "-dlock") == 0) {
--
2.7.4

@ -0,0 +1,12 @@
diff -urNp a/unix/posix_thread_os_hnd.c b/unix/posix_thread_os_hnd.c
--- a/unix/posix_thread_os_hnd.c 2021-08-02 15:36:49.536860558 +0200
+++ b/unix/posix_thread_os_hnd.c 2021-08-02 15:38:48.990041616 +0200
@@ -140,8 +140,6 @@ add_fd(os_handler_t *handler,
fd_data->data_ready = data_ready;
fd_data->handler = handler;
fd_data->freed = freed;
- sel_set_fd_write_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
- sel_set_fd_except_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
rv = sel_set_fd_handlers(posix_sel, fd, fd_data, fd_handler, NULL, NULL,
free_fd_data);
if (rv) {

@ -0,0 +1,12 @@
[Unit]
Description=IPMI Driver
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/libexec/openipmi-helper start
ExecStop=/usr/libexec/openipmi-helper stop
[Install]
WantedBy=multi-user.target

@ -0,0 +1,512 @@
#!/bin/sh
#############################################################################
#
# ipmi: OpenIPMI Driver helper script
#
# Authors: Jan Safranek <jsafrane@redhat.com>
#
# Based on IPMI init script by:
# Matt Domsch <Matt_Domsch@dell.com>
# Chris Poblete <Chris_Poblete@dell.com>
#
# Status return code bits
# no bits set = no errors
# bit 0 set = minimum modules aren't loaded
# bit 1 set = requested feature module isn't loaded
# bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist
# bit 3 set = /dev/watchdog doesn't exist
# bit 4 set = lockfile doesn't exist
# bit 5 set = modules are loaded even when asked to be unloaded
CONFIGFILE=/etc/sysconfig/ipmi
# source config info
[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}
#############################################################################
# GLOBALS
#############################################################################
MODULE_NAME="ipmi"
INTF_NUM=0
IPMI_SMB_MODULE_NAME="ipmi_smb"
IPMI_SI_MODULE_NAME="ipmi_si"
kernel=`uname -r | cut -d. -f1-2`
if [ "${kernel}" == "2.4" ]; then
IPMI_SMB_MODULE_NAME="ipmi_smb_intf"
IPMI_SI_MODULE_NAME="ipmi_si_drv"
fi
MODULES_INTERFACES=""
[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf"
[ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb"
MODULES_FEATURES=""
[ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog"
[ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff"
MODULES_HW=""
[ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}"
[ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}"
MODULES_BASE="ipmi_msghandler"
MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}"
RETVAL=0
LOCKFILE=/var/lock/subsys/ipmi
DEV_IPMI_TIMEOUT=150
UDEV_EXISTS=0
if [ -e /sbin/udev -o -e /sbin/udevd ]; then
UDEV_EXISTS=1
fi
#############################################################################
# NOTES:
# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload,
# because SLES9 and RHEL4 kernels don't send a message for udev to delete
# it for us.
#
#############################################################################
modules_loaded_verbose()
{
OnePlusLoaded=0
OnePlusUnloaded=0
for m in $@; do
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
echo "$m module loaded."
OnePlusLoaded=1
else
echo "$m module not loaded."
OnePlusUnloaded=1
fi
done
}
modules_loaded()
{
OnePlusLoaded=0
OnePlusUnloaded=0
for m in $@; do
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
OnePlusLoaded=1
else
OnePlusUnloaded=1
fi
done
}
device_node_exists ()
{
if [ -e "$1" ]; then
echo "$1 exists."
return 1
fi
echo "$1 does not exist."
return 0
}
minimum_modules_loaded()
{
rc_base=1
rc_hw=1
modules_loaded_verbose "${MODULES_BASE}"
[ ${OnePlusLoaded} -eq 0 ] && rc_base=0
modules_loaded_verbose "${MODULES_HW}"
[ ${OnePlusLoaded} -eq 0 ] && rc_hw=0
return $((rc_base && rc_hw))
}
#############################################################################
load_si()
{
if [ "${IPMI_SI}" = "yes" ]; then
modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1
modules_loaded ${IPMI_SI_MODULE_NAME}
[ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
fi
}
load_smb()
{
if [ "${IPMI_SMB}" = "yes" ]; then
modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1
modules_loaded ${IPMI_SMB_MODULE_NAME}
[ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
fi
}
load_hw_modules()
{
load_si
load_smb
}
start_watchdog_common()
{
load_hw_modules
modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1
modules_loaded ipmi_watchdog
[ ${OnePlusUnloaded} -ne 0 ] &&
RETVAL=$((RETVAL | 2)) &&
echo "Watchdog startup failed: cannot load ipmi_watchdog module" &&
return
if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then
mknod -m 0600 /dev/watchdog c 10 130
[ $? -ne 0 ] &&
RETVAL=$((RETVAL | 8)) &&
echo "Watchdog startup failed: cannot create /dev/watchdog" &&
return
fi
}
start_watchdog_quiet()
{
[ "${IPMI_WATCHDOG}" != "yes" ] &&
return
start_watchdog_common
}
start_watchdog()
{
[ "${IPMI_WATCHDOG}" != "yes" ] &&
RETVAL=$((RETVAL | 2)) &&
echo "Watchdog not configured" &&
return
start_watchdog_common
}
stop_watchdog()
{
modprobe -q -r ipmi_watchdog > /dev/null 2>&1
modules_loaded ipmi_watchdog
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
echo "Watchog shutdown failed: cannot unload ipmi_watchdog module"
else
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
fi
fi
}
stop_watchdog_quiet()
{
modprobe -q -r ipmi_watchdog > /dev/null 2>&1
modules_loaded ipmi_watchdog
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
else
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
fi
fi
}
start_powercontrol_common()
{
local poweroff_opts=""
load_hw_modules
if [ "${IPMI_POWERCYCLE}" == "yes" ]; then
modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \
poweroff_opts="poweroff_control=2"
modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \
poweroff_opts="poweroff_powercycle=1"
fi
modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1
modules_loaded ipmi_poweroff
[ ${OnePlusUnloaded} -ne 0 ] &&
RETVAL=$((RETVAL | 2)) &&
echo "Powercontroll startup failed: cannot load ipmi_poweroff module" &&
return
}
start_powercontrol_quiet()
{
[ "${IPMI_POWEROFF}" != "yes" ] &&
return
start_powercontrol_common
}
start_powercontrol()
{
[ "${IPMI_POWEROFF}" != "yes" ] &&
RETVAL=$((RETVAL | 2)) &&
echo "Powercontroll not configured" &&
return
start_powercontrol_common
}
stop_powercontrol()
{
modprobe -q -r ipmi_poweroff > /dev/null 2>&1
modules_loaded ipmi_poweroff
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module"
fi
}
stop_powercontrol_quiet()
{
modprobe -q -r ipmi_poweroff > /dev/null 2>&1
modules_loaded ipmi_poweroff
[ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32))
}
#############################################################################
unload_all_ipmi_modules()
{
stop_watchdog_quiet
stop_powercontrol_quiet
for m in ${MODULES}; do
modprobe -q -r ${m} > /dev/null 2>&1
done
# delete interface node ONLY if ipmi_devintf is unloaded
[ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
rm -f "/dev/ipmi${INTF_NUM}"
}
unload_ipmi_modules_leave_features()
{
for m in ${MODULES_INTERFACES}; do
modprobe -q -r ${m} > /dev/null 2>&1
done
# delete interface node ONLY if ipmi_devintf is unloaded
[ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
rm -f "/dev/ipmi${INTF_NUM}"
lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1
if [ "$?" -ne "0" ]; then
stop_watchdog_quiet
stop_powercontrol_quiet
for m in ${MODULES}; do
modprobe -q -r ${m} > /dev/null 2>&1
done
fi
}
#############################################################################
load_ipmi_modules ()
{
local locdelay
modprobe ipmi_msghandler > /dev/null 2>&1
modules_loaded ipmi_msghandler
[ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
load_hw_modules
[ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
if [ "${DEV_IPMI}" = "yes" ]; then
modprobe ipmi_devintf > /dev/null 2>&1
modules_loaded ipmi_devintf
RETVAL=$((RETVAL & ~2))
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
if [ ${OnePlusLoaded} -eq 1 ]; then
if [ ${UDEV_EXISTS} -eq 0 ]; then
DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
rm -f /dev/ipmi${INTF_NUM}
mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
fi
# udev can take several seconds to create /dev/ipmi0,
# but it happens asynchronously, so delay here
locdelay=${DEV_IPMI_TIMEOUT}
while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do
locdelay=$((locdelay - 1))
sleep 0.1
done
fi
fi
if [ "${IPMI_IMB}" = "yes" ]; then
modprobe ipmi_imb > /dev/null 2>&1
modules_loaded ipmi_imb
RETVAL=$((RETVAL & ~2))
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
if [ ${OnePlusLoaded} -eq 1 ]; then
DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
rm -f /dev/imb
mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
fi
fi
# Per Corey Minyard, essentially no one uses ipmi_radisys
# and we don't want to encourage its further use
# so it won't be handled here.
return
}
#############################################################################
start()
{
load_ipmi_modules
if [ ${RETVAL} -eq 0 ]; then
touch ${LOCKFILE}
else
if [ $((RETVAL & 1)) -eq 1 ]; then
echo "Startup failed."
else
touch ${LOCKFILE} && echo "Warning!?"
fi
fi
start_watchdog_quiet
start_powercontrol_quiet
}
#############################################################################
stop()
{
unload_ipmi_modules_leave_features
modules_loaded ${MODULES_INTERFACES}
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
echo "Shutdown failed, something may be in use"
else
rm -f ${LOCKFILE}
fi
}
stop_all()
{
unload_all_ipmi_modules
modules_loaded ${MODULES}
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
echo "Shutdown failed, something may be in use"
else
rm -f ${LOCKFILE}
fi
}
#############################################################################
restart()
{
stop_all
RETVAL=0
start
}
#############################################################################
reload()
{
stop_all
RETVAL=0
start
}
#############################################################################
status_all()
{
minimum_modules_loaded
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES}
[ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2))
if [ "${DEV_IPMI}" = "yes" ]; then
device_node_exists /dev/ipmi${INTF_NUM}
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
fi
if [ "${IPMI_IMB}" = "yes" ]; then
device_node_exists /dev/imb
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
fi
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
device_node_exists /dev/watchdog
[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
fi
[ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16))
}
status()
{
minimum_modules_loaded
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
if [ "${DEV_IPMI}" = "yes" ]; then
modules_loaded_verbose ipmi_devintf
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
device_node_exists /dev/ipmi${INTF_NUM}
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
fi
if [ "${IPMI_IMB}" = "yes" ]; then
device_node_exists /dev/imb
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
fi
}
status_watchdog()
{
minimum_modules_loaded
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
modules_loaded_verbose ipmi_watchdog
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
device_node_exists /dev/watchdog
[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
}
status_powercontrol()
{
minimum_modules_loaded
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
modules_loaded_verbose ipmi_powercontrol
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
}
#############################################################################
usage ()
{
echo $"Usage: $0 {start|stop|status" 1>&2
echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2
echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2
echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2
echo $" stop-all|status-all}" 1>&2
RETVAL=2
}
condrestart ()
{
[ -e ${LOCKFILE} ] && restart
}
#############################################################################
# MAIN
#############################################################################
case "$1" in
start) start ;;
stop) stop ;;
restart) restart ;;
force-reload) reload ;;
reload) reload ;;
status) status ;;
status-all) status_all ;;
condrestart) condrestart ;;
try-restart) condrestart ;;
start-watchdog) start_watchdog ;;
stop-watchdog) stop_watchdog ;;
status-watchdog) status_watchdog ;;
start-powercontrol) start_powercontrol ;;
stop-powercontrol) stop_powercontrol ;;
status-powercontrol) status_powercontrol ;;
stop-all) stop_all ;;
*) usage ;;
esac
exit ${RETVAL}
#############################################################################
# end of file
#############################################################################

@ -0,0 +1,68 @@
## Path: Hardware/IPMI
## Description: Enable standard hardware interfaces (KCS, BT, SMIC)
## Type: yesno
## Default: "yes"
## Config: ipmi
# Enable standard hardware interfaces (KCS, BT, SMIC)
# You probably want this enabled.
IPMI_SI=yes
## Path: Hardware/IPMI
## Description: Enable /dev/ipmi0 interface, used by ipmitool, ipmicmd,
## Type: yesno
## Default: "yes"
## Config: ipmi
# Enable /dev/ipmi0 interface, used by ipmitool, ipmicmd,
# and other userspace IPMI-using applications.
# You probably want this enabled.
DEV_IPMI=yes
## Path: Hardware/IPMI
## Description: Enable IPMI_WATCHDOG if you want the IPMI watchdog
## Type: yesno
## Default: "no"
## Config: ipmi
# Enable IPMI_WATCHDOG if you want the IPMI watchdog
# to reboot the system if it hangs
IPMI_WATCHDOG=no
## Path: Hardware/IPMI
## Description: Watchdog options - modinfo ipmi_watchdog for details
## Type: string
## Default: "timeout=60"
## Config: ipmi
# Watchdog options - modinfo ipmi_watchdog for details
# watchdog timeout value in seconds
# as there is no userspace ping application that runs during shutdown,
# be sure to give it enough time for any device drivers to
# do their cleanup (e.g. megaraid cache flushes)
# without the watchdog triggering prematurely
IPMI_WATCHDOG_OPTIONS="timeout=60"
## Path: Hardware/IPMI
## Description: Enable IPMI_POWEROFF if you want the IPMI poweroff module to be loaded.
## Type: yesno
## Default: "no"
## Config: ipmi
# Enable IPMI_POWEROFF if you want the IPMI
# poweroff module to be loaded.
IPMI_POWEROFF=no
## Path: Hardware/IPMI
## Description: Enable IPMI_POWERCYCLE if you want the system to be power-cycled on reboot
## Type: yesno
## Default: "no"
## Config: ipmi
# Enable IPMI_POWERCYCLE if you want the system to be power-cycled (power
# down, delay briefly, power on) rather than power off, on systems
# that support such. IPMI_POWEROFF=yes is also required.
IPMI_POWERCYCLE=no
## Path: Hardware/IPMI
## Description: Enable "legacy" interfaces for applications
## Type: yesno
## Default: "no"
## Config: ipmi
# Enable "legacy" interfaces for applications
# Intel IMB driver interface
IPMI_IMB=no

@ -0,0 +1,870 @@
diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
index 9326e3ea..192623f3 100644
--- a/cmdlang/Makefile.am
+++ b/cmdlang/Makefile.am
@@ -2,8 +2,6 @@
LIB_VERSION = 0.0.5
LD_VERSION = 0:5:0
-noinst_HEADERS = cmdlang.h
-
AM_CFLAGS = -Wall -Wsign-compare -I$(top_builddir)/include \
-I$(top_srcdir)/include \
-DIPMI_CHECK_LOCKS $(GLIB_CFLAGS) \
diff --git a/cmdlang/cmd_conn.c b/cmdlang/cmd_conn.c
index cdd700b6..338e9c77 100644
--- a/cmdlang/cmd_conn.c
+++ b/cmdlang/cmd_conn.c
@@ -38,7 +38,6 @@
#include <stdio.h>
#include <OpenIPMI/ipmiif.h>
#include <OpenIPMI/ipmi_cmdlang.h>
-#include "cmdlang.h"
static void
con_list_handler(ipmi_domain_t *domain, int conn, void *cb_data)
diff --git a/cmdlang/cmd_control.c b/cmdlang/cmd_control.c
index feefe73c..06cf1c27 100644
--- a/cmdlang/cmd_control.c
+++ b/cmdlang/cmd_control.c
@@ -41,7 +41,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
static void
control_list_handler(ipmi_entity_t *entity, ipmi_control_t *control,
diff --git a/cmdlang/cmd_domain.c b/cmdlang/cmd_domain.c
index dec5765d..0ca0b25d 100644
--- a/cmdlang/cmd_domain.c
+++ b/cmdlang/cmd_domain.c
@@ -45,7 +45,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
/* Don't pollute the namespace iwth ipmi_fru_t. */
void ipmi_cmdlang_dump_fru_info(ipmi_cmd_info_t *cmd_info, ipmi_fru_t *fru);
diff --git a/cmdlang/cmd_entity.c b/cmdlang/cmd_entity.c
index e88854ac..a5ad1475 100644
--- a/cmdlang/cmd_entity.c
+++ b/cmdlang/cmd_entity.c
@@ -42,7 +42,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
/* Don't pollute the namespace iwth ipmi_fru_t. */
void ipmi_cmdlang_dump_fru_info(ipmi_cmd_info_t *cmd_info, ipmi_fru_t *fru);
diff --git a/cmdlang/cmd_fru.c b/cmdlang/cmd_fru.c
index 5cc2a1ac..cea4b70c 100644
--- a/cmdlang/cmd_fru.c
+++ b/cmdlang/cmd_fru.c
@@ -43,7 +43,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
/* Don't pollute the namespace iwth ipmi_fru_t. */
void ipmi_cmdlang_dump_fru_info(ipmi_cmd_info_t *cmd_info, ipmi_fru_t *fru);
diff --git a/cmdlang/cmd_lanparm.c b/cmdlang/cmd_lanparm.c
index b6e86701..7afd7dd2 100644
--- a/cmdlang/cmd_lanparm.c
+++ b/cmdlang/cmd_lanparm.c
@@ -44,7 +44,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
#include <OpenIPMI/internal/locked_list.h>
-#include "cmdlang.h"
static locked_list_t *lancs;
diff --git a/cmdlang/cmd_mc.c b/cmdlang/cmd_mc.c
index 645506e7..0a3f6440 100644
--- a/cmdlang/cmd_mc.c
+++ b/cmdlang/cmd_mc.c
@@ -47,7 +47,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
static void
mc_list_handler(ipmi_domain_t *domain, ipmi_mc_t *mc, void *cb_data)
diff --git a/cmdlang/cmd_pef.c b/cmdlang/cmd_pef.c
index c8503299..47ab2bd1 100644
--- a/cmdlang/cmd_pef.c
+++ b/cmdlang/cmd_pef.c
@@ -44,7 +44,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
#include <OpenIPMI/internal/locked_list.h>
-#include "cmdlang.h"
static locked_list_t *pefs;
diff --git a/cmdlang/cmd_pet.c b/cmdlang/cmd_pet.c
index 5730159e..77d3f90d 100644
--- a/cmdlang/cmd_pet.c
+++ b/cmdlang/cmd_pet.c
@@ -40,7 +40,6 @@
#include <OpenIPMI/ipmi_pet.h>
#include <OpenIPMI/ipmi_mc.h>
#include <OpenIPMI/ipmi_cmdlang.h>
-#include "cmdlang.h"
static void
diff --git a/cmdlang/cmd_sel.c b/cmdlang/cmd_sel.c
index 660f58a7..545b12f2 100644
--- a/cmdlang/cmd_sel.c
+++ b/cmdlang/cmd_sel.c
@@ -42,7 +42,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
static int
discrete_event_handler(ipmi_sensor_t *sensor,
diff --git a/cmdlang/cmd_sensor.c b/cmdlang/cmd_sensor.c
index a4abc77c..99b8a634 100644
--- a/cmdlang/cmd_sensor.c
+++ b/cmdlang/cmd_sensor.c
@@ -41,7 +41,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
-#include "cmdlang.h"
static void
sensor_list_handler(ipmi_entity_t *entity, ipmi_sensor_t *sensor,
diff --git a/cmdlang/cmd_solparm.c b/cmdlang/cmd_solparm.c
index f584f8f3..df32c3f7 100644
--- a/cmdlang/cmd_solparm.c
+++ b/cmdlang/cmd_solparm.c
@@ -44,7 +44,6 @@
/* Internal includes, do not use in your programs */
#include <OpenIPMI/internal/ipmi_malloc.h>
#include <OpenIPMI/internal/locked_list.h>
-#include "cmdlang.h"
static locked_list_t *solcs;
diff --git a/cmdlang/cmdlang.c b/cmdlang/cmdlang.c
index b690e24c..416fce7f 100644
--- a/cmdlang/cmdlang.c
+++ b/cmdlang/cmdlang.c
@@ -54,7 +54,6 @@
#include <OpenIPMI/internal/ipmi_locks.h>
#include <OpenIPMI/internal/ipmi_malloc.h>
#include <OpenIPMI/internal/winsock_compat.h>
-#include "cmdlang.h"
/*
* This is the value passed to a command handler.
@@ -2480,6 +2479,8 @@ event_done(ipmi_cmdlang_t *cmdlang)
ipmi_mem_free(cmdlang->errstr);
} else if (ipmi_cmdlang_event_rpt) {
ipmi_cmdlang_event_rpt(event);
+ } else if (ipmi_cmdlang_report_event) {
+ ipmi_cmdlang_report_event(event);
}
if (cmdlang->objstr)
diff --git a/cmdlang/cmdlang.h b/cmdlang/cmdlang.h
deleted file mode 100644
index 0758cb5d..00000000
--- a/cmdlang/cmdlang.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * cmdlang.h
- *
- * A command interpreter for OpenIPMI
- *
- * Author: MontaVista Software, Inc.
- * Corey Minyard <minyard@mvista.com>
- * source@mvista.com
- *
- * Copyright 2020 MontaVista Software Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef CMDLANG_H
-#define CMDLANG_H
-
-/* Used to log errors inside the cmdlang. */
-void ipmi_cmdlang_global_err(char *objstr,
- char *location,
- char *errstr,
- int errval);
-
-#endif /* CMDLANG_H */
diff --git a/include/OpenIPMI/Makefile.am b/include/OpenIPMI/Makefile.am
index 8e86afc8..644cc84a 100644
--- a/include/OpenIPMI/Makefile.am
+++ b/include/OpenIPMI/Makefile.am
@@ -8,7 +8,7 @@ pkginclude_HEADERS = \
ipmi_conn.h ipmi_lan.h ipmi_pet.h ipmi_ui.h \
ipmi_debug.h ipmi_lanparm.h ipmi_picmg.h ipmi_string.h \
ipmi_sol.h ipmi_solparm.h ipmi_tcl.h deprecator.h \
- dllvisibility.h
+ dllvisibility.h weaksyms.h
SUBDIRS = internal
diff --git a/include/OpenIPMI/ipmi_cmdlang.h b/include/OpenIPMI/ipmi_cmdlang.h
index 80e5cb8a..682279e9 100644
--- a/include/OpenIPMI/ipmi_cmdlang.h
+++ b/include/OpenIPMI/ipmi_cmdlang.h
@@ -35,6 +35,7 @@
#define OPENIPMI_CMDLANG_H
#include <OpenIPMI/dllvisibility.h>
+#include <OpenIPMI/weaksyms.h>
#include <OpenIPMI/selector.h>
#include <OpenIPMI/ipmi_bits.h>
#include <OpenIPMI/ipmi_types.h>
@@ -44,6 +45,14 @@
extern "C" {
#endif
+#ifdef BUILDING_IPMI_CMDLANG_DLL
+ #define IPMI_CMDLANG_WEAK(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
+ #define IPMI_CMDLANG_WEAK_DEFAULT(ret, sym, decl) IPMI_WEAK_DLL_DEFAULT(ret, sym, decl)
+#else
+ #define IPMI_CMDLANG_WEAK(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
+ #define IPMI_CMDLANG_WEAK_DEFAULT(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
+#endif
+
#if defined _WIN32 || defined __CYGWIN__
#ifdef BUILDING_IPMI_CMDLANG_DLL
#ifdef __GNUC__
@@ -427,10 +436,15 @@ extern void (*ipmi_cmdlang_err_rpt)(char *objstr,
char *location,
char *errstr,
int errval);
+IPMI_CMDLANG_WEAK_DEFAULT(void, ipmi_cmdlang_global_err, (char *objstr,
+ char *location,
+ char *errstr,
+ int errval));
/* Supplied by the user to report events. */
IPMI_CMDLANG_DLL_PUBLIC
extern void (*ipmi_cmdlang_event_rpt)(ipmi_cmdlang_event_t *event);
+IPMI_CMDLANG_WEAK(void, ipmi_cmdlang_report_event, (ipmi_cmdlang_event_t *event));
/* In callbacks, you must use these to lock the cmd_info structure. */
IPMI_CMDLANG_DLL_PUBLIC
diff --git a/include/OpenIPMI/ipmi_posix.h b/include/OpenIPMI/ipmi_posix.h
index f3000eca..0d7e82ee 100644
--- a/include/OpenIPMI/ipmi_posix.h
+++ b/include/OpenIPMI/ipmi_posix.h
@@ -43,6 +43,19 @@
extern "C" {
#endif
+/* These are the defined OS handlers for POSIX with and without
+ threading. If you use these (and thus link with the OpenIPMIposix
+ or OpenIPMIpthread libraries) you must provide posix_vlog(). It is
+ not provided by the library. */
+/* DEPRECATED - This should no longer be used, you should use the
+ OS-handler function to set your log handler. If you do not supply
+ your own os_vlog handler, logs will go to stderr. If you supply a
+ posix_vlog handler and don't call set_log_handler in the OS handler,
+ posix_vlog() will still be used. */
+IPMI_SEL_WEAK(void, posix_vlog, (char *format,
+ enum ipmi_log_type_e log_type,
+ va_list ap));
+
/* Non-threaded os handler operations */
/**********************************************************************
diff --git a/include/OpenIPMI/selector.h b/include/OpenIPMI/selector.h
index ca1f7f9c..d803d9f4 100644
--- a/include/OpenIPMI/selector.h
+++ b/include/OpenIPMI/selector.h
@@ -46,6 +46,14 @@
typedef int sigset_t;
#endif
+#include <OpenIPMI/weaksyms.h>
+
+#if defined BUILDING_IPMI_SELECTOR_DLL
+ #define IPMI_SEL_WEAK(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
+#else
+ #define IPMI_SEL_WEAK(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
+#endif
+
#if defined _WIN32 || defined __CYGWIN__
#ifdef BUILDING_IPMI_SELECTOR_DLL
#ifdef __GNUC__
diff --git a/include/OpenIPMI/weaksyms.h b/include/OpenIPMI/weaksyms.h
new file mode 100644
index 00000000..07004243
--- /dev/null
+++ b/include/OpenIPMI/weaksyms.h
@@ -0,0 +1,80 @@
+/*
+ * weaksyms.h
+ *
+ * MontaVista IPMI weak symbol defines
+ *
+ * Author: MontaVista Software, Inc.
+ * Corey Minyard <minyard@mvista.com>
+ * source@mvista.com
+ *
+ * Copyright 2003,2004,2005 MontaVista Software Inc.
+ *
+ * This software is available to you under a choice of one of two
+ * licenses. You may choose to be licensed under the terms of the GNU
+ * Lesser General Public License (GPL) Version 2 or the modified BSD
+ * license below. The following disclamer applies to both licenses:
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+` * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * GNU Lesser General Public Licence
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modified BSD Licence
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ */
+
+#ifndef __WEAKSYMS_H
+#define __WEAKSYMS_H
+
+#include <stddef.h>
+
+#if defined _WIN32 || defined __CYGWIN__
+ // Calling back to user code not supported, set the weak symbol to NULL always.
+ #define IPMI_WEAK_DLL(ret, sym, decl) static ret (*sym)decl = NULL
+ // Weak symbol with a default value, do not set to zero
+ #define IPMI_WEAK_DLL_DEFAULT(ret, sym, decl) ret sym decl
+ #define IPMI_WEAK_USER(ret, sym, decl) // Nothing, omit the prototype
+#else
+ #ifdef __GNUC__
+ #define IPMI_WEAK_DLL(ret, sym, decl) __attribute__ ((weak)) ret sym decl
+ #define IPMI_WEAK_DLL_DEFAULT(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
+ #define IPMI_WEAK_USER(ret, sym, decl) ret sym decl
+ #else
+ // Weak symbol not supported as we can not generate #pragma nor _Pragma from cpp
+ #define IPMI_WEAK_DLL(ret, sym, decl) static ret (*sym)decl = NULL
+ #define IPMI_WEAK_DLL_DEFAULT(ret, sym, decl) ret sym decl
+ #define IPMI_WEAK_USER(ret, sym, decl) // Nothing, omit the prototype
+ #endif
+#endif
+
+#endif /* __WEAKSYMS_H */
diff --git a/lanserv/Makefile.am b/lanserv/Makefile.am
index 371ec52d..e4409423 100644
--- a/lanserv/Makefile.am
+++ b/lanserv/Makefile.am
@@ -30,7 +30,7 @@ bin_PROGRAMS = ipmi_sim $(IPMILAN_PROG)
noinst_PROGRAMS = ipmi_checksum
-noinst_HEADERS = emu.h bmc.h ipmi_sim.h sol.h
+noinst_HEADERS = emu.h bmc.h ipmi_sim.h sol.h callback.h
libIPMIlanserv_la_SOURCES = lanserv_ipmi.c lanserv_asf.c priv_table.c \
lanserv_oem_force.c lanserv_config.c config.c serv.c serial_ipmi.c \
diff --git a/lanserv/OpenIPMI/Makefile.am b/lanserv/OpenIPMI/Makefile.am
index 80fb44ea..f9fbf2cf 100644
--- a/lanserv/OpenIPMI/Makefile.am
+++ b/lanserv/OpenIPMI/Makefile.am
@@ -1,3 +1,3 @@
pkginclude_HEADERS = lanserv.h serserv.h serv.h extcmd.h persist.h msg.h \
- mcserv.h ipmbserv.h lanserv_dllvisibility.h
+ mcserv.h ipmbserv.h lanserv_dllvisibility.h lanserv_weaksyms.h
diff --git a/lanserv/OpenIPMI/lanserv.h b/lanserv/OpenIPMI/lanserv.h
index 57ed757e..867f2741 100644
--- a/lanserv/OpenIPMI/lanserv.h
+++ b/lanserv/OpenIPMI/lanserv.h
@@ -57,6 +57,7 @@
#define __LANSERV_H
#include <OpenIPMI/lanserv_dllvisibility.h>
+#include <OpenIPMI/lanserv_weaksyms.h>
#include <stdint.h>
#include <stdio.h>
@@ -236,6 +237,8 @@ typedef struct ipmi_tick_handler_s {
struct ipmi_tick_handler_s *next;
} ipmi_tick_handler_t;
+IPMI_LANSERV_WEAK(void, ipmi_register_tick_handler, (ipmi_tick_handler_t *handler));
+
typedef struct oem_handlers_s
{
void *oem_data;
diff --git a/lanserv/OpenIPMI/lanserv_weaksyms.h b/lanserv/OpenIPMI/lanserv_weaksyms.h
new file mode 100644
index 00000000..e68d6bd2
--- /dev/null
+++ b/lanserv/OpenIPMI/lanserv_weaksyms.h
@@ -0,0 +1,67 @@
+/*
+ * lanserv.h
+ *
+ * MontaVista IPMI LAN server include file
+ *
+ * Author: MontaVista Software, Inc.
+ * Corey Minyard <minyard@mvista.com>
+ * source@mvista.com
+ *
+ * Copyright 2003,2004,2005 MontaVista Software Inc.
+ *
+ * This software is available to you under a choice of one of two
+ * licenses. You may choose to be licensed under the terms of the GNU
+ * Lesser General Public License (GPL) Version 2 or the modified BSD
+ * license below. The following disclamer applies to both licenses:
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+` * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * GNU Lesser General Public Licence
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modified BSD Licence
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ */
+
+#ifndef __LANSERV_WEAKSYMS_H
+#define __LANSERV_WEAKSYMS_H
+
+#include <OpenIPMI/weaksyms.h>
+
+#if defined BUILDING_IPMI_LANSERV_DLL
+ #define IPMI_LANSERV_WEAK(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
+#else
+ #define IPMI_LANSERV_WEAK(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
+#endif
+
+#endif /* __LANSERV_WEAKSYMS_H */
diff --git a/lanserv/OpenIPMI/mcserv.h b/lanserv/OpenIPMI/mcserv.h
index c2a04648..de8d1440 100644
--- a/lanserv/OpenIPMI/mcserv.h
+++ b/lanserv/OpenIPMI/mcserv.h
@@ -84,6 +84,19 @@ void ipmi_mc_set_chassis_control_func(lmc_data_t *mc,
void *cb_data),
void *cb_data);
+IPMI_LANSERV_WEAK(int, ipmi_mc_alloc_unconfigured, (sys_data_t *sys, unsigned char ipmb,
+ lmc_data_t **rmc));
+
+IPMI_LANSERV_WEAK(unsigned char, ipmi_mc_get_ipmb, (lmc_data_t *mc));
+IPMI_LANSERV_WEAK(channel_t **, ipmi_mc_get_channelset, (lmc_data_t *mc));
+IPMI_LANSERV_WEAK(ipmi_sol_t *, ipmi_mc_get_sol, (lmc_data_t *mc));
+IPMI_LANSERV_WEAK(startcmd_t *, ipmi_mc_get_startcmdinfo, (lmc_data_t *mc));
+IPMI_LANSERV_WEAK(user_t *, ipmi_mc_get_users, (lmc_data_t *mc));
+IPMI_LANSERV_WEAK(pef_data_t *, ipmi_mc_get_pef, (lmc_data_t *mc));
+
+IPMI_LANSERV_WEAK(void, ipmi_resend_atn, (channel_t *chan));
+IPMI_LANSERV_WEAK(msg_t *, ipmi_mc_get_next_recv_q, (channel_t *chan));
+
/*
* FRUs have a semaphore that can be use to grant exclusive access.
* The semaphore is attempted to get before read and write operations,
@@ -165,6 +178,8 @@ int check_msg_length(msg_t *msg,
unsigned int len,
unsigned char *rdata,
unsigned int *rdata_len);
+IPMI_LANSERV_WEAK(void, ipmi_set_chassis_control_prog,
+ (lmc_data_t *mc, const char *prog));
void ipmi_mc_set_dev_revision(lmc_data_t *mc, unsigned char dev_revision);
void ipmi_mc_set_fw_revision(lmc_data_t *mc, unsigned char fw_revision_major,
@@ -172,6 +187,10 @@ void ipmi_mc_set_fw_revision(lmc_data_t *mc, unsigned char fw_revision_major,
void ipmi_mc_set_aux_fw_revision(lmc_data_t *mc,
unsigned char aux_fw_revision[4]);
const char *get_lanserv_version(void);
+IPMI_LANSERV_WEAK(int, sol_read_config,
+ (char **tokptr, sys_data_t *sys, const char **err));
+
+IPMI_LANSERV_WEAK(int, ipmi_mc_users_changed, (lmc_data_t *mc));
/*
* Types and functions for registering handlers with the MC emulator.
diff --git a/lanserv/callback.h b/lanserv/callback.h
new file mode 100644
index 00000000..eb9f18fa
--- /dev/null
+++ b/lanserv/callback.h
@@ -0,0 +1,68 @@
+/*
+ * callback.h
+ *
+ * MontaVista IPMI LAN server include file
+ *
+ * Author: MontaVista Software, Inc.
+ * Corey Minyard <minyard@mvista.com>
+ * source@mvista.com
+ *
+ * Copyright 2003,2004,2005 MontaVista Software Inc.
+ *
+ * This software is available to you under a choice of one of two
+ * licenses. You may choose to be licensed under the terms of the GNU
+ * Lesser General Public License (GPL) Version 2 or the modified BSD
+ * license below. The following disclamer applies to both licenses:
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+` * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * GNU Lesser General Public Licence
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modified BSD Licence
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ */
+
+#ifndef __CALLBACK_H
+#define __CALLBACK_H
+
+/*
+ * Macros to get callbacks that exist either as function pointers in some structure
+ * or as functions in user code.
+ * Pointers take precedence, functions exist for backward compatibility.
+ */
+
+#define LANSERV_CB(obj, field, name) ( (obj)->field ? (obj)->field : (name) )
+#define LANSERV_CB_IPMI(obj, name) LANSERV_CB(obj, name, ipmi_ ## name)
+
+#endif /* __CALLBACK_H */
diff --git a/lanserv/config.c b/lanserv/config.c
index 453750eb..d59e93fe 100644
--- a/lanserv/config.c
+++ b/lanserv/config.c
@@ -65,6 +65,9 @@
#include <OpenIPMI/serserv.h>
#include <OpenIPMI/ipmbserv.h>
#include <OpenIPMI/persist.h>
+#include <OpenIPMI/mcserv.h>
+
+#include "callback.h"
void
read_persist_users(sys_data_t *sys)
@@ -80,11 +83,11 @@ read_persist_users(sys_data_t *sys)
if (!mc)
continue;
- p = read_persist("users.mc%2.2x", sys->mc_get_ipmb(mc));
+ p = read_persist("users.mc%2.2x", LANSERV_CB_IPMI(sys, mc_get_ipmb)(mc));
if (!p)
continue;
- users = sys->mc_get_users(mc);
+ users = LANSERV_CB_IPMI(sys, mc_get_users)(mc);
for (j = 0; j <= MAX_USERS; j++) {
void *data;
unsigned int len;
@@ -124,14 +127,14 @@ write_persist_users(sys_data_t *sys)
user_t *users;
persist_t *p;
- if (!mc || !sys->mc_users_changed(mc))
+ if (!mc || !LANSERV_CB_IPMI(sys, mc_users_changed)(mc))
continue;
- p = alloc_persist("users.mc%2.2x", sys->mc_get_ipmb(mc));
+ p = alloc_persist("users.mc%2.2x", LANSERV_CB_IPMI(sys, mc_get_ipmb)(mc));
if (!p)
return ENOMEM;
- users = sys->mc_get_users(mc);
+ users = LANSERV_CB_IPMI(sys, mc_get_users)(mc);
for (j = 0; j <= MAX_USERS; j++) {
add_persist_int(p, users[j].valid, "%d.valid", j);
add_persist_int(p, users[j].link_auth, "%d.link_auth", j);
@@ -834,12 +837,13 @@ read_config(sys_data_t *sys,
} else if (strcmp(tok, "serial") == 0) {
err = serserv_read_config(&tokptr, sys, &errstr);
} else if (strcmp(tok, "sol") == 0) {
- err = sys->sol_read_config(&tokptr, sys, &errstr);
+ err = LANSERV_CB(sys, sol_read_config, sol_read_config)
+ (&tokptr, sys, &errstr);
} else if (strcmp(tok, "chassis_control") == 0) {
char *prog;
err = get_delim_str(&tokptr, &prog, &errstr);
if (!err)
- sys->set_chassis_control_prog(sys->mc, prog);
+ LANSERV_CB_IPMI(sys, set_chassis_control_prog)(sys->mc, prog);
} else if (strcmp(tok, "name") == 0) {
err = get_delim_str(&tokptr, &sys->name, &errstr);
} else if (strcmp(tok, "startcmd") == 0) {
@@ -860,7 +864,7 @@ read_config(sys_data_t *sys,
err = get_uchar(&tokptr, &ipmb, &errstr);
if (!err) {
lmc_data_t *mc;
- err = sys->mc_alloc_unconfigured(sys, ipmb, &mc);
+ err = LANSERV_CB_IPMI(sys, mc_alloc_unconfigured)(sys, ipmb, &mc);
if (err == ENOMEM) {
errstr = "Out of memory";
err = -1;
@@ -869,11 +873,11 @@ read_config(sys_data_t *sys,
err = -1;
} else {
sys->mc = mc;
- sys->cusers = sys->mc_get_users(mc);
- sys->chan_set = sys->mc_get_channelset(mc);
- sys->cpef = sys->mc_get_pef(mc);
- sys->startcmd = sys->mc_get_startcmdinfo(mc);
- sys->sol = sys->mc_get_sol(mc);
+ sys->cusers = LANSERV_CB_IPMI(sys, mc_get_users)(mc);
+ sys->chan_set = LANSERV_CB_IPMI(sys, mc_get_channelset)(mc);
+ sys->cpef = LANSERV_CB_IPMI(sys, mc_get_pef)(mc);
+ sys->startcmd = LANSERV_CB_IPMI(sys, mc_get_startcmdinfo)(mc);
+ sys->sol = LANSERV_CB_IPMI(sys, mc_get_sol)(mc);
}
}
} else if (strcmp(tok, "console") == 0) {
diff --git a/lanserv/lanserv_ipmi.c b/lanserv/lanserv_ipmi.c
index ccd60015..c3c2cdbe 100644
--- a/lanserv/lanserv_ipmi.c
+++ b/lanserv/lanserv_ipmi.c
@@ -73,6 +73,9 @@
#include <OpenIPMI/persist.h>
#include <OpenIPMI/extcmd.h>
+#include <OpenIPMI/mcserv.h>
+
+#include "callback.h"
static int
is_authval_null(uint8_t *val)
@@ -512,7 +515,7 @@ lan_return_rsp(channel_t *chan, msg_t *msg, rsp_msg_t *rsp)
return_rsp(lan, msg, NULL, rsp);
- msg = lan->sysinfo->mc_get_next_recv_q(chan);
+ msg = LANSERV_CB_IPMI(lan->sysinfo, mc_get_next_recv_q)(chan);
if (!msg)
return;
while (msg) {
@@ -531,7 +534,7 @@ lan_return_rsp(channel_t *chan, msg_t *msg, rsp_msg_t *rsp)
chan->free(chan, msg);
- msg = lan->sysinfo->mc_get_next_recv_q(chan);
+ msg = LANSERV_CB_IPMI(lan->sysinfo, mc_get_next_recv_q)(chan);
}
if (chan->recv_in_q)
chan->recv_in_q(chan, 0);
@@ -729,7 +732,7 @@ handle_get_channel_cipher_suites(lanserv_data_t *lan, msg_t *msg)
if (chan == 0xe)
chan = lan->channel.channel_num;
- channels = lan->sysinfo->mc_get_channelset(lan->channel.mc);
+ channels = LANSERV_CB_IPMI(lan->sysinfo, mc_get_channelset)(lan->channel.mc);
channel = channels[chan];
if (!channel) {
return_err(lan, msg, NULL, IPMI_NOT_PRESENT_CC);
@@ -3202,7 +3205,7 @@ ipmi_lan_init(lanserv_data_t *lan)
lan->tick_handler.handler = ipmi_lan_tick;
lan->tick_handler.info = lan;
- lan->sysinfo->register_tick_handler(&lan->tick_handler);
+ LANSERV_CB_IPMI(lan->sysinfo, register_tick_handler)(&lan->tick_handler);
out:
return rv;
diff --git a/lanserv/marvell-bmc/marvell_mod.c b/lanserv/marvell-bmc/marvell_mod.c
index b5b15e05..41a07b5c 100644
--- a/lanserv/marvell-bmc/marvell_mod.c
+++ b/lanserv/marvell-bmc/marvell_mod.c
@@ -72,6 +72,7 @@
#include <OpenIPMI/lanserv.h>
#include <OpenIPMI/mcserv.h>
+#include "callback.h"
#include "wiw.h"
#define PVERSION "2.0.12"
@@ -3052,7 +3053,7 @@ ipmi_sim_module_init(sys_data_t *sys, const char *initstr_i)
}
}
- rv = sys->mc_alloc_unconfigured(sys, 0x20, &bmc_mc);
+ rv = LANSERV_CB_IPMI(sys, mc_alloc_unconfigured)(sys, 0x20, &bmc_mc);
if (rv) {
sys->log(sys, OS_ERROR, NULL,
"Unable to allocate an mc: %s", strerror(rv));
@@ -3099,7 +3100,7 @@ ipmi_sim_module_init(sys_data_t *sys, const char *initstr_i)
}
}
- rv = sys->mc_alloc_unconfigured(sys, board_ipmb[num], &mc);
+ rv = LANSERV_CB_IPMI(sys, mc_alloc_unconfigured)(sys, board_ipmb[num], &mc);
if (rv) {
sys->log(sys, OS_ERROR, NULL,
"Unable to allocate an mc: %s", strerror(rv));
@@ -3285,7 +3286,7 @@ ipmi_sim_module_post_init(sys_data_t *sys)
*/
unsigned char data[13];
memset(data, 0, sizeof(data));
- data[4] = sys->mc_get_ipmb(bmc_mc);
+ data[4] = LANSERV_CB_IPMI(sys, mc_get_ipmb)(bmc_mc);
data[5] = 0; /* LUN */
data[6] = 0x04; /* Event message revision for IPMI 1.5. */
data[7] = 0x1d; /* System boot initiated. */
diff --git a/lanserv/serial_ipmi.c b/lanserv/serial_ipmi.c
index 8ba8f7d0..b7255341 100644
--- a/lanserv/serial_ipmi.c
+++ b/lanserv/serial_ipmi.c
@@ -63,6 +63,7 @@
#include <OpenIPMI/ipmi_mc.h>
#include <OpenIPMI/ipmi_msgbits.h>
#include <OpenIPMI/serserv.h>
+#include <OpenIPMI/mcserv.h>
#define EVENT_BUFFER_GLOBAL_ENABLE (1 << 2)
#define EVENT_LOG_GLOBAL_ENABLE (1 << 3)
@@ -1008,6 +1009,8 @@ vm_connected(serserv_data_t *si)
si->connected = 1;
if (si->sysinfo->resend_atn)
si->sysinfo->resend_atn(&si->channel);
+ else if (ipmi_resend_atn)
+ ipmi_resend_atn(&si->channel);
}
static void
diff --git a/unix/posix_os_hnd.c b/unix/posix_os_hnd.c
index f84ba270..54910c4b 100644
--- a/unix/posix_os_hnd.c
+++ b/unix/posix_os_hnd.c
@@ -376,6 +376,8 @@ sposix_vlog(os_handler_t *handler,
if (log_handler)
log_handler(handler, format, log_type, ap);
+ else if (posix_vlog)
+ posix_vlog((char *) format, log_type, ap);
else
default_vlog(format, log_type, ap);
}
diff --git a/unix/posix_thread_os_hnd.c b/unix/posix_thread_os_hnd.c
index cb315c5e..3bec32f6 100644
--- a/unix/posix_thread_os_hnd.c
+++ b/unix/posix_thread_os_hnd.c
@@ -377,6 +377,8 @@ sposix_vlog(os_handler_t *handler,
if (log_handler)
log_handler(handler, format, log_type, ap);
+ else if (posix_vlog)
+ posix_vlog((char *) format, log_type, ap);
else
default_vlog(format, log_type, ap);
}

@ -0,0 +1,629 @@
%global _hardened_build 1
Summary: IPMI (Intelligent Platform Management Interface) library and tools
Name: OpenIPMI
Version: 2.0.31
Release: 3%{?dist}
License: LGPLv2+ and GPLv2+ or BSD
URL: http://sourceforge.net/projects/openipmi/
Source: http://downloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz
Source1: openipmi.sysconf
Source2: openipmi-helper
Source3: ipmi.service
Patch1: 0001-man.patch
Patch4: OpenIPMI-collectd.patch
Patch5: restore-api-compatibility.patch
BuildRequires: gdbm-devel swig glib2-devel net-snmp-devel ncurses-devel
BuildRequires: openssl-devel python3-devel perl-devel perl-generators
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: libtool
%{?systemd_requires}
BuildRequires: systemd
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description
The Open IPMI project aims to develop an open code base to allow access to
platform information using Intelligent Platform Management Interface (IPMI).
This package contains the tools of the OpenIPMI project.
%package libs
Summary: The OpenIPMI runtime libraries
%description libs
The OpenIPMI-libs package contains the runtime libraries for shared binaries
and applications.
%package perl
Summary: IPMI Perl language bindings
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description perl
The OpenIPMI-perl package contains the Perl language bindings for OpenIPMI.
%package -n python3-openipmi
%{?python_provide:%python_provide python3-openipmi}
%{?python_provide:%python_provide python3-OpenIPMI}
# Remove before F30
Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python2 < %{version}-%{release}
Summary: IPMI Python language bindings
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description -n python3-openipmi
The OpenIPMI-python package contains the Python language bindings for OpenIPMI.
%package devel
Summary: The development environment for the OpenIPMI project
Requires: pkgconfig
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-lanserv%{?_isa} = %{version}-%{release}
%description devel
The OpenIPMI-devel package contains the development libraries and header files
of the OpenIPMI project.
%package lanserv
Summary: Emulates an IPMI network listener
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description lanserv
This package contains a network IPMI listener.
%prep
%autosetup -p1
%build
# Patch5 changes Makefile.am
%{__automake} --add-missing --copy --foreign
%configure \
CFLAGS="-fPIC %{optflags} -z now -fno-strict-aliasing" \
LDFLAGS="%{__global_ldflags} -Wl,--as-needed" \
--disable-dependency-tracking \
--disable-static \
--with-pythoninstall=%{python3_sitearch} \
--with-python=%{__python3} \
--with-tcl=no \
--with-tkinter=no
# https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Beware_of_Rpath
# get rid of rpath still present in OpenIPMI-perl package
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make # not %%{?_smp_mflags} safe
%install
make install DESTDIR=%{buildroot}
install -d %{buildroot}{%{_sysconfdir}/sysconfig,%{_unitdir},%{_libexecdir}}
install -m 644 %SOURCE1 %{buildroot}%{_sysconfdir}/sysconfig/ipmi
install -m 755 %SOURCE2 %{buildroot}%{_libexecdir}/openipmi-helper
install -m 644 %SOURCE3 %{buildroot}%{_unitdir}/ipmi.service
install -d %{buildroot}%{_sysconfdir}/modprobe.d
rm %{buildroot}/%{_mandir}/man1/openipmigui.1 %{buildroot}%{_libdir}/*.la
# add missing documentation
echo ".so man1/ipmicmd.1" > %{buildroot}%{_mandir}/man1/ipmicmd.1
echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1
%post
%systemd_post ipmi.service
%preun
%systemd_preun ipmi.service
%postun
%systemd_postun_with_restart ipmi.service
%ldconfig_scriptlets libs
%ldconfig_scriptlets lanserv
### A sysv => systemd migration contains all of the same scriptlets as a
### systemd package. These are additional scriptlets
%triggerun -- OpenIPMI < 2.0.18-14
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply httpd
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save ipmi >/dev/null 2>&1 ||:
/bin/systemctl --no-reload enable ipmi.service >/dev/null 2>&1 ||:
# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del ipmi >/dev/null 2>&1 || :
/bin/systemctl try-restart ipmi.service >/dev/null 2>&1 || :
%files
%license COPYING COPYING.BSD COPYING.LIB
%doc CONFIGURING_FOR_LAN FAQ README README.Force README.MotorolaMXP
%config(noreplace) %{_sysconfdir}/sysconfig/ipmi
%{_libexecdir}/openipmi-helper
%{_bindir}/ipmicmd
%{_bindir}/ipmish
%{_bindir}/ipmi_ui
%{_bindir}/openipmicmd
%{_bindir}/openipmish
%{_bindir}/rmcp_ping
%{_bindir}/solterm
%{_bindir}/openipmi_eventd
%{_unitdir}/ipmi.service
%{_mandir}/man1/ipmi_ui*
%{_mandir}/man1/openipmicmd*
%{_mandir}/man1/openipmish*
%{_mandir}/man1/rmcp_ping*
%{_mandir}/man1/solterm*
%{_mandir}/man1/ipmish*
%{_mandir}/man1/ipmicmd*
%{_mandir}/man1/openipmi_eventd*
%{_mandir}/man7/ipmi_cmdlang*
%{_mandir}/man7/openipmi_conparms*
%files perl
%attr(644,root,root) %{perl_vendorarch}/OpenIPMI.pm
%{perl_vendorarch}/auto/OpenIPMI
%files -n python3-openipmi
%{python3_sitearch}/*OpenIPMI*
%{python3_sitearch}/__pycache__/OpenIPMI.*.pyc
%files libs
%{_libdir}/libOpenIPMI*.so.*
%files devel
%{_includedir}/OpenIPMI
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%files lanserv
%config(noreplace) %{_sysconfdir}/ipmi/ipmisim1.emu
%config(noreplace) %{_sysconfdir}/ipmi/lan.conf
%dir %{_sysconfdir}/ipmi
%{_bindir}/ipmilan
%{_bindir}/ipmi_sim
%{_bindir}/sdrcomp
%{_libdir}/libIPMIlanserv.so.*
%{_mandir}/man8/ipmilan.8*
%{_mandir}/man1/ipmi_sim.1*
%{_mandir}/man5/ipmi_lan.5*
%{_mandir}/man5/ipmi_sim_cmd.5*
%changelog
* Fri Aug 27 2021 Pavel Cahyna <pcahyna@redhat.com> - 2.0.31-3
- Resolve issues found by rpmdiff
- add explicit Requires: on subpackages to avoid the need to test
interoperability between the various combinations of old and new
subpackages
- add code to restore binary compatibility in libIPMIlanserv.so
and libOpenIPMIcmdlang.so broken in 2.0.31, while keeping
compatibility with 2.0.31 as well.
* Fri Aug 6 2021 Pavel Cahyna <pcahyna@redhat.com> - 2.0.31-2
- fix collectd-ipmi crash (#1990072)
* Fri Jul 9 2021 Pavel Cahyna <pcahyna@redhat.com> - 2.0.31-1
- New upstream release 2.0.31 (#1923044)
* Wed Nov 18 2020 Josef Ridky <jridky@redhat.com> - 2.0.29-1
- New upstream release 2.0.29 (#1796588)
* Tue Oct 08 2019 Vaclav Dolezal <vdolezal@redhat.com> - 2.0.27-1
- New upstream release 2.0.27
* Thu Aug 09 2018 Josef Ridky <jridky@redhat.com> - 2.0.25-4
- Rebuild for Net-SNMP
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 2.0.25-3
- Rebuild with fixed binutils
* Wed Jul 25 2018 Petr Kubat <pkubat@redhat.com> - 2.0.25-2
- Rebuilt for gdbm
* Fri Apr 20 2018 Josef Ridky <jridky@redhat.com> - 2.0.25-1
- New upstream release 2.0.25 (#1568194)
- Replace Python2 with Python3
- Drop OpenIPMI-python2 and set it as Obsolete
- Introduce new OpenIPMI-python3 package
- use ldconfig macros
- remove old systemd dependencies
- use autosetup
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.23-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.23-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jun 15 2017 Josef Ridky <jridky@redhat.com> - 2.0.23-1
- New upstream release 2.0.23 (#1461606)
* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.22-6
- Perl 5.26 rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.22-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Oct 17 2016 Josef Ridky <jridky@redhat.com> - 2.0.22-4
- Add support for openssl-1.1.0 library (#1383995)
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.22-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Fri Jul 15 2016 Boris Ranto <branto@redhat.com> - 0:2.0.22-2
- Rebuild for glibc hack
* Thu Jun 02 2016 Boris Ranto <branto@redhat.com> - 0:2.0.22-1
- New version (0:2.0.22-1)
- Apply 'OpenIPMI-2.0.18-pthread-pkgconfig.patch'
- Apply './OpenIPMI-2.0.19-man.patch'
- Apply 'OpenIPMI-2.0.21-nobundle.patch'
* Tue May 17 2016 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.21-13
- Perl 5.24 rebuild
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.21-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Dec 09 2015 Boris Ranto <branto@redhat.com> - 2.0.21-11
- Avoid warning on update/removal (#1256798)
* Tue Nov 24 2015 Boris Ranto <branto@redhat.com> - 2.0.21-10
- Remove duplicities in filelists
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.21-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Jun 05 2015 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.21-8
- Perl 5.22 rebuild
* Wed Apr 22 2015 Ales Ledvinka <aledvink@redhat.com> - 2.0.21-7
- Remove modalias subpackage.
* Tue Aug 26 2014 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.21-6
- Perl 5.20 rebuild
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.21-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Aug 12 2014 Ledvinka Ales <aledvink@redhat.com> - 2.0.21-4
- Use system libedit instead of the old one bundled with source.
* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.21-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 13 2014 Jaromir Capik <jcapik@redhat.com> - 2.0.21-2
- Fixing FTBFS due to unpackaged files (#1075696)
* Wed Jan 29 2014 Ledvinka Ales <aledvink@redhat.com> - 2.0.21-1
- Update to new upstream (fixed case 2nd) release.
* Tue Jan 14 2014 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-11
- Probe modules on installation. Do not wait until reboot.
* Wed Nov 13 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-10
- Correct aliases matching module strings.
* Tue Nov 05 2013 Fedora Release Engineering <aledvink@redhat.com> - 2.0.19-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Aug 02 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.19-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Jul 19 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-7
- Hint compilation to avoid strict aliasing and prevent type-punned pointer issues.
- Fix rPath regression for OpenIPMI-perl library.
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 2.0.19-6
- Perl 5.18 rebuild
* Tue Jun 4 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-5
- Support aarch64 by replicating release toolchain.
- Configuration subpackage with kernel probed wildcard module aliases.
as workaround for bz#961878 and fesco#1110
- Man pages symlinks same as bin symlinks.
- ipmi_ui command help argument.
- ipmilan missing options.
- Fixed build requirements.
* Thu Apr 25 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-4
- rpmdiff fixes
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.19-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Aug 27 2012 Jan Safranek <jsafrane@redhat.com> - 2.0.19-2
- Updated RPM scriptlets with latest systemd-rpm macros (#850246)
- Fixed fedora-review tool complaints
* Wed Aug 8 2012 Jan Safranek <jsafrane@redhat.com> - 2.0.19-1
- Update to 2.0.19
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.18-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Mon Jun 11 2012 Petr Pisar <ppisar@redhat.com> - 2.0.18-15
- Perl 5.16 rebuild
* Mon May 7 2012 Jan Safranek <jsafrane@redhat.com> - 2.0.18-14
- Added ipmi systemd unit
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.18-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Thu Jul 21 2011 Petr Sabata <contyk@redhat.com> - 2.0.18-12
- Perl mass rebuild
* Wed Jul 20 2011 Petr Sabata <contyk@redhat.com> - 2.0.18-11
- Perl mass rebuild
* Fri Jul 8 2011 Jan Safranek <jsafrane@redhat.com> - 2.0.18-10
- Rebuilt for new Net-SNMP
* Fri Jun 17 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.0.18-9
- Perl mass rebuild
* Fri Jun 10 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.0.18-8
- Perl 5.14 mass rebuild
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.18-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon Nov 1 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-6
- Removed the openipmigui tool, it does not work with TCL without thread
support (#646184)
* Tue Oct 26 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-5
- Rebuilt for new Net-SNMP
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 2.0.18-4
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Thu Jul 8 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-3
- added lincense files to OpenIPMI-libs subpackage as requested by
Fedora Licensing Guidelines
* Tue Jun 01 2010 Marcela Maslanova <mmaslano@redhat.com> - 2.0.18-2
- Mass rebuild with perl-5.12.0
* Wed May 5 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-1
- updated to OpenIPMI-2.0.18
- fixed OpenIPMIpthread pkgconfig file (#468067)
* Mon May 3 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.17-1
- updated to OpenIPMI-2.0.17
* Thu Mar 18 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-12
- implemented mandatory 'force-reload' command in ipmi service
* Thu Mar 11 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-11
- rebuild against new gdbm
* Wed Mar 3 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-10
- add README.initscript describing /etc/init.d/ipmi initscript exit codes
(#562151)
* Mon Feb 22 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-9
- fix package License: field, there *are* sources with BSD header
- distribute README files and COPYING in package
* Tue Jan 5 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-8
- fix package License: field, there is no source with BSD header
* Mon Dec 7 2009 Stepan Kasal <skasal@redhat.com> - 2.0.16-7
- rebuild against perl 5.10.1
* Tue Dec 1 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-6
- fix package compilation to remove rpmlint errors
* Wed Sep 30 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-5
- rebuilt with new net-snmp
* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 2.0.16-4
- rebuilt with new openssl
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.16-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Apr 15 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-2
- fix compilation flags, debuginfo package is correctly generated now
* Thu Mar 19 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-1
- new upstream release
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.14-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sat Jan 17 2009 Tomas Mraz <tmraz@redhat.com> - 2.0.14-10
- rebuild with new openssl
* Thu Dec 11 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-9
- fix linking without rpath, prelink won't screw up the libraries
anymore (#475265)
* Wed Dec 10 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-8
- shorter probe interval is used in init script, making the service startup
quicker in most situations (#475101)
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 2.0.14-7
- Rebuild for Python 2.6
* Thu Oct 30 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-6
- removed static libraries from the -devel subpackage
- fixed openipmigui.desktop file
* Thu Oct 23 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-5
- fixed typos in the descriptions
- added .desktop file for openipmigui tool
* Mon Oct 20 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-4
- fixed description of the package
* Thu Oct 16 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-3
- split ipmitool to separate package
- added 'reload' functionality to init script
- added seraparate -gui subpackage
* Wed Jul 30 2008 Phil Knirsch <pknirsch@redhat.com> - 2.0.14-2
- Fixed rpath problem in libOpenIPMIposix.so.0.0.1
* Tue Jul 29 2008 Phil Knirsch <pknirsch@redhat.com> - 2.0.14-1
- Fixed several specfile problems (#453751)
- Update to OpenIPMI-2.0.14
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.0.13-2
- Autorebuild for GCC 4.3
* Wed Dec 05 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.13-1
- Updated to OpenIPMI-2.0.13
- Rebuild due to new openssl
* Wed Oct 10 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-3
- Added missing perl-devel buildrequires
* Mon Sep 24 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-2
- Added missing popt-devel buildrequires
* Fri Aug 17 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-2
- Fix rebuild problems due to glibc change
- License review and fixes
* Tue Apr 24 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-1
- Update to OpenIPMI-2.0.11
* Tue Feb 27 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.6-8
- Update for ipmitool-1.8.9
* Thu Dec 7 2006 Jeremy Katz <katzj@redhat.com> - 2.0.6-7
- rebuild for python 2.5
* Tue Nov 28 2006 Phil Knirsch <pknirsch@redhat.com> - 2.0.6-6.fc7
- Update due to new net-snmp-5.4
- Some specfile updates
* Tue Jul 18 2006 Phil Knirsch <pknirsch@redhat.com> - 2.0.6-5
- Fixed check for udev in initscript (#197956)
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 2.0.6-4.1
- rebuild
* Fri Jun 16 2006 Bill Nottingham <notting@redhat.com> 2.0.6-4
- don't include <linux/compiler.h>
* Fri Jun 16 2006 Jon Masters <jcm@redhat.com> 2.0.6-3
- Fix a build requires (needs glibc-kernheaders)
* Thu Jun 15 2006 Jesse Keating <jkeating@redhat.com> 2.0.6-2
- Bump for new glib2
* Tue May 16 2006 Phil Knirsch <pknirsch@redhat.com> 2.0.6-1
- Fixed bug with type conversion in ipmitool (#191091)
- Added python bindings
- Split off perl and python bindings in separate subpackages
- Dropped obsolete patches
- Added missing buildprereq on readline-devel
- Made it install the python bindings properly on 64bit archs
* Mon May 15 2006 Phil Knirsch <pknirsch@redhat.com>
- Updated ipmitool to 1.8.8
- Updated OpenIPMI to 2.0.6
* Fri Feb 17 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-19
- Added missing PreReq for chkconfig
* Mon Feb 13 2006 Jesse Keating <jkeating@redhat.com> - 1.4.14-18.2.1
- rebump for build order issues during double-long bump
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.4.14-18.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.4.14-18.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Mon Feb 06 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-18
- Updated ipmitool to latest upstream version.
- Removed 3 patches for already fixed bugs in latest ipmitool.
- Adapted warning message fix for ipmitool for latest version.
* Tue Jan 24 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-17
- Fixed some minor things in initscripts.
* Mon Jan 09 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-16
- Included FRU fix for displaying FRUs with ipmitool
- Included patch for new option to specify a BMC password for IPMI 2.0 sessions
* Tue Jan 03 2006 Radek Vokal <rvokal@redhat.com> 1.4.14-15
- Rebuilt against new libnetsnmp
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt
* Wed Nov 23 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-14
- Some more initscript and sysconfig updates from Dell.
* Wed Nov 09 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-13
- Rebuilt to link against latest openssl libs.
- Fixed ipmitool not setting session privilege level (#172312)
* Wed Nov 02 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-11
- Rebuild to link against new net-snmp libs.
* Tue Oct 11 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-10
- Updated initscript to fix missing redhat-lsb bug (#169901)
* Thu Sep 08 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-9
- Another update to latest initscripts from Dell
- Fixed some missing return statements for non-void functions (#164138)
* Thu Sep 01 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-8
- Updated initscript to latest version from Dell
* Fri Aug 12 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-7
- Fixed the unwanted output of failed module loading of the initscript. Behaves
now like all our other initscripts (#165476)
* Fri Aug 05 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-6
- Fixed build problem on 64bit machines
* Fri Jul 15 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-5
- Fixed missing change to not autostart in the initscript
* Wed Jul 06 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-4
- Made the initscript a replacing configfile
* Mon Jul 04 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-3
- Updated versions of the initscripts and sysconf files
- Fixed typo in preun script and changelog
* Mon Jun 27 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-2
- Updated to OpenIPMI-1.4.14
- Split the main package into normal and libs package for multilib support
- Added ipmitool-1.8.2 to OpenIPMI and put it in tools package
- Added sysconf and initscript (#158270)
- Fixed oob subscripts (#149142)
* Wed Mar 30 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.11-5
- Correctly put libs in the proper packages
* Thu Mar 17 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.11-4
- gcc4 rebuild fixes
- Added missing gdbm-devel buildprereq
* Wed Mar 02 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.11-3
- bump release and rebuild with gcc 4
* Tue Feb 08 2005 Karsten Hopp <karsten@redhat.de> 1.4.11-2
- update
* Tue Oct 26 2004 Phil Knirsch <pknirsch@redhat.com>
- Initial version
Loading…
Cancel
Save