diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index a552072..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -OpenIPMI-2.0.16.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..18dbbc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +OpenIPMI-2.0.18.tar.gz +/OpenIPMI-2.0.19.tar.gz +/openipmi-2.0.21.tar.gz +/OpenIPMI-2.0.21.tar.gz +/OpenIPMI-2.0.22.tar.gz +/OpenIPMI-2.0.23.tar.gz +/OpenIPMI-2.0.24.tar.gz +/OpenIPMI-2.0.25.tar.gz +/OpenIPMI-2.0.27.tar.gz +/OpenIPMI-2.0.28.tar.gz +/OpenIPMI-2.0.29.tar.gz +/OpenIPMI-2.0.31.tar.gz +/OpenIPMI-2.0.32.tar.gz +/OpenIPMI-2.0.34.tar.gz +/OpenIPMI-2.0.35.tar.gz +/OpenIPMI-2.0.36.tar.gz diff --git a/0001-man.patch b/0001-man.patch new file mode 100644 index 0000000..da1a2fd --- /dev/null +++ b/0001-man.patch @@ -0,0 +1,543 @@ +From dfca464e5fe4c9107f08bff7e6e2730a504945b7 Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Thu, 2 Jun 2016 12:47:22 +0200 +Subject: [PATCH] Apply './OpenIPMI-2.0.19-man.patch' + +Signed-off-by: Boris Ranto +--- + 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\fP and \fI\fP are the user name and password of + the IPMI user to use for the connection. + The 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: + .RE + + .B fru +-- 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 [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: + .RE + + .B presence +-- 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: + - 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 + - Dump information about an entity. + .TP +-Reponse: ++Response: + .RS + .nf + Entity +@@ -784,7 +784,7 @@ Entity + .B fru + - Dump the FRU information about the given entity. + .TP +-Reponse: ++Response: + .RS + .nf + Entity +@@ -813,7 +813,7 @@ Entity + .B set_act_time + - Set the hot-swap auto-activate time. + .TP +-Reponse: ++Response: + .RS + .nf + Set act time: +@@ -981,7 +981,7 @@ Response: + .nf + Sensor + Name: +- Positivie Hysteresis: ++ Positive Hysteresis: + Negative Hysteresis: + .fi + .RE +@@ -1101,7 +1101,7 @@ Set done: + .RE + + .B get +-- 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: + .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 ++.BI + 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\ ,\ \fB\-\-execute\fR\ ++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 ] [-v] \n", progname); + printf("Where 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 + diff --git a/Makefile b/Makefile deleted file mode 100644 index 6d58452..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: OpenIPMI -# $Id$ -NAME := OpenIPMI -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attempt a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/OpenIPMI-py313compat.patch b/OpenIPMI-py313compat.patch new file mode 100644 index 0000000..fccde75 --- /dev/null +++ b/OpenIPMI-py313compat.patch @@ -0,0 +1,13 @@ +diff --git a/swig/python/OpenIPMI_lang.i b/swig/python/OpenIPMI_lang.i +index 67221fd..d150d81 100644 +--- a/swig/python/OpenIPMI_lang.i ++++ b/swig/python/OpenIPMI_lang.i +@@ -541,7 +541,7 @@ static void OI_put_py_state(int current) + #else + static void init_lang(void) + { +- PyEval_InitThreads(); ++ /* nothing */ + } + #define OI_PY_STATE PyGILState_STATE + #define OI_PY_STATE_GET() PyGILState_Ensure() diff --git a/OpenIPMI.spec b/OpenIPMI.spec index b22d8e5..7016dc2 100644 --- a/OpenIPMI.spec +++ b/OpenIPMI.spec @@ -1,23 +1,47 @@ -# TODO: uses private copy of libedit, should be modified to use system one +%global _hardened_build 1 + +%bcond_with python +%bcond_with perl -%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} Summary: IPMI (Intelligent Platform Management Interface) library and tools Name: OpenIPMI -Version: 2.0.16 -Release: 1%{?dist} -License: BSD and BSD with advertising and LGPLv2+ and GPLv2+ -Group: System Environment/Base -URL: http://sourceforge.net/projects/openipmi/ -Source: http://downloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz -Source1: openipmi.sysconf -Source2: openipmi.initscript -Source3: openipmigui.desktop -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: gdbm-devel swig glib2-devel net-snmp-devel ncurses-devel -BuildRequires: openssl-devel python-devel perl-devel tcl-devel tkinter -BuildRequires: desktop-file-utils -Requires(post): chkconfig -Requires(preun): chkconfig + +Version: 2.0.36 +Release: 5%{?dist} +License: LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause +URL: https://sourceforge.net/projects/openipmi/ +Source: https://downloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz +Source1: openipmi.sysconf +Source2: openipmi-helper +Source3: ipmi.service +Patch1: 0001-man.patch +Patch2: include-config-h-cmdlang.patch +Patch5: OpenIPMI-py313compat.patch + +BuildRequires: make +BuildRequires: gdbm-devel glib2-devel net-snmp-devel ncurses-devel +%if %{with python} || %{with perl} +BuildRequires: swig +%endif +BuildRequires: openssl-devel +%if %{with python} +BuildRequires: python3-devel +%endif +%if %{with perl} +BuildRequires: perl-devel perl-generators +%endif +BuildRequires: pkgconfig +BuildRequires: readline-devel +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: libtool +%{?systemd_requires} +BuildRequires: systemd + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +# Prevent bogus provides of private libs from perl +%global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{perl_vendorarch}/auto/.*\\.so$ %description The Open IPMI project aims to develop an open code base to allow access to @@ -25,146 +49,594 @@ platform information using Intelligent Platform Management Interface (IPMI). This package contains the tools of the OpenIPMI project. %package libs -Group: Development/Libraries Summary: The OpenIPMI runtime libraries %description libs The OpenIPMI-libs package contains the runtime libraries for shared binaries and applications. +%if %{with perl} %package perl -Group: Development/Libraries -Summary: IPMI Perl language bindings -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Summary: IPMI Perl language bindings +Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description perl The OpenIPMI-perl package contains the Perl language bindings for OpenIPMI. +%endif -%package python -Group: Development/Libraries -Summary: IPMI Python language bindings +%if %{with python} +%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 python +%description -n python3-openipmi The OpenIPMI-python package contains the Python language bindings for OpenIPMI. +%endif %package devel -Group: Development/Libraries -Summary: The development environment for the OpenIPMI project +Summary: The development environment for the OpenIPMI project Requires: pkgconfig -Requires: %{name} = %{version}-%{release} +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 gui -Group: System Environment/Base -Summary: IPMI graphical user interface tool -Requires: tix tkinter %{name}-python = %{version}-%{release} +%package lanserv +Summary: Emulates an IPMI network listener +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} -%description gui -The OpenIPMI-gui package contains the graphical user interface to monitor -and control IPMI-enabled devices. +%description lanserv +This package contains a network IPMI listener. %prep -%setup -q +%autosetup -p1 %build -export CFLAGS=-fPIC -%configure --with-pythoninstall=%{python_sitearch} --disable-dependency-tracking --with-tcl=no --disable-static -# get rid of rpath + +%configure \ + CFLAGS="-fPIC %{optflags} -z now -fno-strict-aliasing" \ + LDFLAGS="%{__global_ldflags} -Wl,--as-needed" \ + --disable-dependency-tracking \ + --disable-static \ +%if %{with python} + --with-pythoninstall=%{python3_sitearch} \ + --with-python=%{__python3} \ +%else + --with-python=no \ +%endif +%if %{without perl} + --with-perl=no \ +%endif + --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 +make # not %%{?_smp_mflags} safe %install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT -rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la +make install DESTDIR=%{buildroot} -# Remove python cruft in 32bit libdir on 64bit archs... -%ifarch ppc64 s390x x86_64 -rm -rf $RPM_BUILD_ROOT/usr/lib -%endif +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 -install -d ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig -install -m 644 %SOURCE1 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/ipmi -install -d ${RPM_BUILD_ROOT}%{_initrddir} -install -m 755 %SOURCE2 ${RPM_BUILD_ROOT}%{_initrddir}/ipmi +rm %{buildroot}/%{_mandir}/man1/openipmigui.1 %{buildroot}%{_libdir}/*.la -desktop-file-install --vendor="fedora" --dir=${RPM_BUILD_ROOT}%{_datadir}/applications %{SOURCE3} +# add missing documentation +echo ".so man1/openipmicmd.1" > %{buildroot}%{_mandir}/man1/ipmicmd.1 + +echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1 %post -/sbin/chkconfig --add ipmi +%systemd_post ipmi.service %preun -if [ $1 = 0 ]; then - service ipmi stop >/dev/null 2>&1 - /sbin/chkconfig --del ipmi -fi +%systemd_preun ipmi.service %postun -if [ "$1" -ge "1" ]; then - service ipmi condrestart >/dev/null 2>&1 || : -fi +%systemd_postun_with_restart ipmi.service -%post libs -p /sbin/ldconfig +%ldconfig_scriptlets libs +%ldconfig_scriptlets lanserv -%postun libs -p /sbin/ldconfig +### A sysv => systemd migration contains all of the same scriptlets as a +### systemd package. These are additional scriptlets -%clean -rm -rf $RPM_BUILD_ROOT +%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 -%defattr(-,root,root) +%license COPYING COPYING.BSD COPYING.LIB +%doc CONFIGURING_FOR_LAN FAQ README README.Force README.MotorolaMXP %config(noreplace) %{_sysconfdir}/sysconfig/ipmi -%{_initrddir}/ipmi +%{_libexecdir}/openipmi-helper %{_bindir}/ipmicmd -%{_bindir}/ipmilan %{_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* -%{_mandir}/man8/ipmilan* +%if %{with perl} %files perl -%defattr(-,root,root) %attr(644,root,root) %{perl_vendorarch}/OpenIPMI.pm -%{perl_vendorarch}/auto/OpenIPMI/ +%{perl_vendorarch}/auto/OpenIPMI +%endif -%files python -%defattr(-,root,root) -%{python_sitearch}/*OpenIPMI* +%if %{with python} +%files -n python3-openipmi +%{python3_sitearch}/*OpenIPMI* +%{python3_sitearch}/__pycache__/OpenIPMI.*.pyc +%endif %files libs -%defattr(-,root,root) -%{_libdir}/*.so.* +%{_libdir}/libOpenIPMI*.so.* %files devel -%defattr(-,root,root) %{_includedir}/OpenIPMI %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc -%files gui -%defattr(-,root,root) -%{_bindir}/openipmigui -%{_mandir}/man1/openipmigui* -%{python_sitearch}/openipmigui -%{_datadir}/applications/fedora-openipmigui.desktop +%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 Jan 16 2026 Fedora Release Engineering - 2.0.36-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Mon Jan 12 2026 Josef Ridky - 2.0.36-4 +- rebuild for new net-snmp release + +* Wed Jul 23 2025 Fedora Release Engineering - 2.0.36-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 2.0.36-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Aug 22 2024 Fedora Release Monitoring - 2.0.36-1 +- Update to 2.0.36 (#2302353) +- Resolves CVE-2024-42934 + +* Wed Jul 17 2024 Fedora Release Engineering - 2.0.35-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue May 7 2024 Pavel Cahyna - 2.0.35-1 +- Switch to https +- Update to 2.0.35 (rhbz#2278007) + drop patch integrated upstream + +* Sun Feb 11 2024 Pavel Cahyna - 2.0.34-1 +- Update to 2.0.34 (rhbz#2105023) +- Resolve issues found by rpmdiff + - add a patch to fix getaddrinfo detection to avoid using gethostbyname + - add explicit Requires: on subpackages to avoid the need to test + interoperability between the various combinations of old and new + subpackages +- Conditional Perl & Python module build, by default disabled + +* Mon Jan 22 2024 Fedora Release Engineering - 2.0.32-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.0.32-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 08 2024 Florian Weimer - 2.0.32-11 +- Fix C compatibility issues + +* Wed Jul 19 2023 Fedora Release Engineering - 2.0.32-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 18 2023 Josef Ridky - 2.0.32-9 +- Migrate to SPDX license format + +* Tue Jul 11 2023 Jitka Plesnikova - 2.0.32-8 +- Perl 5.38 rebuild + +* Tue Jun 13 2023 Python Maint - 2.0.32-7 +- Rebuilt for Python 3.12 + +* Wed Jan 18 2023 Fedora Release Engineering - 2.0.32-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 2.0.32-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2.0.32-4 +- Rebuilt for Python 3.11 + +* Tue May 31 2022 Jitka Plesnikova - 2.0.32-3 +- Perl 5.36 rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 2.0.32-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 10 2022 Josef Ridky - 2.0.32-1 +- new upstream release 2.0.32 (#2020717) + +* Tue Sep 14 2021 Sahana Prasad - 2.0.31-8 +- Rebuilt with OpenSSL 3.0.0 + +* Mon Aug 02 2021 Josef Ridky - 2.0.31-7 +- replace distutils and fix FTBFS (#1948437) +- fix collectd-ipmi crash (#1927022) + +* Wed Jul 21 2021 Fedora Release Engineering - 2.0.31-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 2.0.31-5 +- Rebuilt for Python 3.10 + +* Fri May 21 2021 Jitka Plesnikova - 2.0.31-4 +- Perl 5.34 rebuild + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.0.31-3 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Mon Jan 25 2021 Fedora Release Engineering - 2.0.31-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 25 2021 Josef Ridky - 2.0.31-1 +- New upstream release 2.0.31 (#1905768) + +* Thu Sep 17 2020 Josef Řídký - 2.0.29-1 +- New upstream release 2.0.29 (#1846675) + +* Thu Aug 27 2020 Josef Řídký - 2.0.28-7 +- Rebuilt for new net-snmp release + +* Mon Jul 27 2020 Fedora Release Engineering - 2.0.28-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 23 2020 Jitka Plesnikova - 2.0.28-5 +- Perl 5.32 rebuild + +* Tue May 26 2020 Miro Hrončok - 2.0.28-4 +- Rebuilt for Python 3.9 + +* Mon Feb 03 2020 Vaclav Dolezal - 2.0.28-3 +- Cleanup of openipmi-helper script; removed no-udev branch (#1579773) + +* Tue Jan 28 2020 Fedora Release Engineering - 2.0.28-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 16 2019 Vaclav Dolezal - 2.0.28-1 +- New upstream release 2.0.28 + +* Thu Oct 03 2019 Miro Hrončok - 2.0.27-5 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 2.0.27-4 +- Rebuilt for Python 3.8 + +* Thu Aug 01 2019 Vaclav Dolezal - 2.0.27-3 +- Prevent bogus Provides of libOpenIPMI.so.0 by OpenIPMI-perl (#1734407) + +* Wed Jul 24 2019 Fedora Release Engineering - 2.0.27-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 26 2019 Vaclav Dolezal - 2.0.27-1 +- New upstream release 2.0.27 + +* Fri May 31 2019 Jitka Plesnikova - 2.0.25-10 +- Perl 5.30 rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 2.0.25-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Sep 05 2018 Josef Ridky - 2.0.25-8 +- Fix man page self referencing error (#1612159) + +* Tue Jul 24 2018 Adam Williamson - 2.0.25-7 +- Rebuild for new net-snmp + +* Thu Jul 12 2018 Fedora Release Engineering - 2.0.25-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 03 2018 Petr Pisar - 2.0.25-5 +- Perl 5.28 rebuild + +* Fri Jun 29 2018 Jitka Plesnikova - 2.0.25-4 +- Perl 5.28 rebuild + +* Tue Jun 19 2018 Miro Hrončok - 2.0.25-3 +- Rebuilt for Python 3.7 + +* Wed Apr 18 2018 Josef Ridky - 2.0.25-2 +- Python3 update + +* Tue Apr 17 2018 Josef Ridky - 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 + +* Tue Mar 06 2018 Josef Ridky - 2.0.24-5 +- use ldconfig macros + +* Wed Feb 07 2018 Fedora Release Engineering - 2.0.24-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Jan 22 2018 Josef Ridky -2.0.14-3 +- remove old systemd dependencies + +* Mon Jan 22 2018 Josef Ridky -2.0.14-2 +- restore removed requirements + +* Thu Jan 18 2018 Tomasz Kłoczko - 2.0.24-1 +- remove pkgconfig from devel Requires +- remove libedit Requires (it is autogenerated as SONAME dependency) +- remove main package dependecy fron devell Requires (only libs is needed +- add use %%{?_isa} macro in Requires + +* Wed Jan 17 2018 Josef Ridky - 2.0.24-1 +- New upstream release 2.0.24 +- spec update (based on Tomasz Kłoczko's pull request) +- reduce the number of SONAME dependencies by use -Wl,--as-needed in LDFLAGS +- change COPYING COPYING.BSD COPYING.LIB files as %%license +- add %%{_sysconfdir}/ipmi directory to lanserv %%files list +- execute /sbin/ldconfig in %%post and %%postun section for lanserv sub-packages +- remove desktop-file-utils and GUI related packages from BuildRequires +- use roff links instead symlinks to gzipped man pages +- use %%autosetup in %%prep +- remove Group tags + +* Thu Oct 19 2017 Josef Ridky - 2.0.23-6 +- Rebuilt for python2 package + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 2.0.23-5 +- Add Provides for the old name without %%_isa + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 2.0.23-4 +- Python 2 binary package renamed to python2-openipmi + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Wed Aug 02 2017 Fedora Release Engineering - 2.0.23-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.0.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 15 2017 Josef Ridky - 2.0.23-1 +- New upstream release 2.0.23 (#1461606) + +* Sun Jun 04 2017 Jitka Plesnikova - 2.0.22-6 +- Perl 5.26 rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 2.0.22-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Oct 17 2016 Josef Ridky - 2.0.22-4 +- Add support for openssl-1.1.0 library (#1383995) + +* Tue Jul 19 2016 Fedora Release Engineering - 2.0.22-3 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Fri Jul 15 2016 Boris Ranto - 0:2.0.22-2 +- Rebuild for glibc hack + +* Thu Jun 02 2016 Boris Ranto - 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 - 2.0.21-13 +- Perl 5.24 rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 2.0.21-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Dec 09 2015 Boris Ranto - 2.0.21-11 +- Avoid warning on update/removal (#1256798) + +* Tue Nov 24 2015 Boris Ranto - 2.0.21-10 +- Remove duplicities in filelists + +* Tue Jun 16 2015 Fedora Release Engineering - 2.0.21-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Jun 05 2015 Jitka Plesnikova - 2.0.21-8 +- Perl 5.22 rebuild + +* Wed Apr 22 2015 Ales Ledvinka - 2.0.21-7 +- Remove modalias subpackage. + +* Tue Aug 26 2014 Jitka Plesnikova - 2.0.21-6 +- Perl 5.20 rebuild + +* Fri Aug 15 2014 Fedora Release Engineering - 2.0.21-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 12 2014 Ledvinka Ales - 2.0.21-4 +- Use system libedit instead of the old one bundled with source. + +* Fri Jun 06 2014 Fedora Release Engineering - 2.0.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 13 2014 Jaromir Capik - 2.0.21-2 +- Fixing FTBFS due to unpackaged files (#1075696) + +* Wed Jan 29 2014 Ledvinka Ales - 2.0.21-1 +- Update to new upstream (fixed case 2nd) release. + +* Tue Jan 14 2014 Ledvinka Ales - 2.0.19-11 +- Probe modules on installation. Do not wait until reboot. + +* Wed Nov 13 2013 Ledvinka Ales - 2.0.19-10 +- Correct aliases matching module strings. + +* Tue Nov 05 2013 Fedora Release Engineering - 2.0.19-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Aug 02 2013 Fedora Release Engineering - 2.0.19-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Jul 19 2013 Ledvinka Ales - 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 - 2.0.19-6 +- Perl 5.18 rebuild + +* Tue Jun 4 2013 Ledvinka Ales - 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 - 2.0.19-4 +- rpmdiff fixes + +* Wed Feb 13 2013 Fedora Release Engineering - 2.0.19-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Aug 27 2012 Jan Safranek - 2.0.19-2 +- Updated RPM scriptlets with latest systemd-rpm macros (#850246) +- Fixed fedora-review tool complaints + +* Wed Aug 8 2012 Jan Safranek - 2.0.19-1 +- Update to 2.0.19 + +* Wed Jul 18 2012 Fedora Release Engineering - 2.0.18-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 11 2012 Petr Pisar - 2.0.18-15 +- Perl 5.16 rebuild + +* Mon May 7 2012 Jan Safranek - 2.0.18-14 +- Added ipmi systemd unit + +* Thu Jan 12 2012 Fedora Release Engineering - 2.0.18-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Jul 21 2011 Petr Sabata - 2.0.18-12 +- Perl mass rebuild + +* Wed Jul 20 2011 Petr Sabata - 2.0.18-11 +- Perl mass rebuild + +* Fri Jul 8 2011 Jan Safranek - 2.0.18-10 +- Rebuilt for new Net-SNMP + +* Fri Jun 17 2011 Marcela Mašláňová - 2.0.18-9 +- Perl mass rebuild + +* Fri Jun 10 2011 Marcela Mašláňová - 2.0.18-8 +- Perl 5.14 mass rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 2.0.18-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Nov 1 2010 Jan Safranek - 2.0.18-6 +- Removed the openipmigui tool, it does not work with TCL without thread + support (#646184) + +* Tue Oct 26 2010 Jan Safranek - 2.0.18-5 +- Rebuilt for new Net-SNMP + +* Wed Jul 21 2010 David Malcolm - 2.0.18-4 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Thu Jul 8 2010 Jan Safranek - 2.0.18-3 +- added lincense files to OpenIPMI-libs subpackage as requested by + Fedora Licensing Guidelines + +* Tue Jun 01 2010 Marcela Maslanova - 2.0.18-2 +- Mass rebuild with perl-5.12.0 + +* Wed May 5 2010 Jan Safranek - 2.0.18-1 +- updated to OpenIPMI-2.0.18 +- fixed OpenIPMIpthread pkgconfig file (#468067) + +* Mon May 3 2010 Jan Safranek - 2.0.17-1 +- updated to OpenIPMI-2.0.17 + +* Thu Mar 18 2010 Jan Safranek - 2.0.16-12 +- implemented mandatory 'force-reload' command in ipmi service + +* Thu Mar 11 2010 Jan Safranek - 2.0.16-11 +- rebuild against new gdbm + +* Wed Mar 3 2010 Jan Safranek - 2.0.16-10 +- add README.initscript describing /etc/init.d/ipmi initscript exit codes + (#562151) + +* Mon Feb 22 2010 Jan Safranek - 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 - 2.0.16-8 +- fix package License: field, there is no source with BSD header + +* Mon Dec 7 2009 Stepan Kasal - 2.0.16-7 +- rebuild against perl 5.10.1 + +* Tue Dec 1 2009 Jan Safranek - 2.0.16-6 +- fix package compilation to remove rpmlint errors + +* Wed Sep 30 2009 Jan Safranek - 2.0.16-5 +- rebuilt with new net-snmp + +* Fri Aug 21 2009 Tomas Mraz - 2.0.16-4 +- rebuilt with new openssl + +* Fri Jul 24 2009 Fedora Release Engineering - 2.0.16-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Apr 15 2009 Jan Safranek - 2.0.16-2 +- fix compilation flags, debuginfo package is correctly generated now + * Thu Mar 19 2009 Jan Safranek - 2.0.16-1 - new upstream release diff --git a/include-config-h-cmdlang.patch b/include-config-h-cmdlang.patch new file mode 100644 index 0000000..4f9fcab --- /dev/null +++ b/include-config-h-cmdlang.patch @@ -0,0 +1,12 @@ +diff -up OpenIPMI-2.0.32/cmdlang/cmdlang.c~ OpenIPMI-2.0.32/cmdlang/cmdlang.c +--- OpenIPMI-2.0.32/cmdlang/cmdlang.c~ 2021-01-22 19:51:28.000000000 +0100 ++++ OpenIPMI-2.0.32/cmdlang/cmdlang.c 2022-01-28 11:55:42.375470392 +0100 +@@ -32,6 +32,8 @@ + */ + + ++#include ++ + #include + #include + #include diff --git a/ipmi.service b/ipmi.service new file mode 100644 index 0000000..fa14993 --- /dev/null +++ b/ipmi.service @@ -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 diff --git a/openipmi.initscript b/openipmi-helper similarity index 72% rename from openipmi.initscript rename to openipmi-helper index 3eda3f8..4f3d3d9 100644 --- a/openipmi.initscript +++ b/openipmi-helper @@ -1,24 +1,15 @@ #!/bin/sh ############################################################################# # -# ipmi: OpenIPMI Driver init script +# ipmi: OpenIPMI Driver helper script # -# Authors: Matt Domsch +# Authors: Jan Safranek +# Václav Doležal +# +# Based on IPMI init script by: +# Matt Domsch # Chris Poblete # -# chkconfig: - 13 87 -# description: OpenIPMI Driver init script -# -### BEGIN INIT INFO -# Provides: ipmidrv -# Required-Start: $local_fs $remote_fs $syslog -# Required-Stop: $local_fs $remote_fs $syslog -# Default-Start: -# Default-Stop: -# Short-Description: OpenIPMI Driver init script -# Description: OpenIPMI Driver init script -### END INIT INFO -# # Status return code bits # no bits set = no errors # bit 0 set = minimum modules aren't loaded @@ -28,54 +19,6 @@ # bit 4 set = lockfile doesn't exist # bit 5 set = modules are loaded even when asked to be unloaded -# -############################################################################# -# for log_success_msg and friends -if [ -r /lib/lsb/init-functions ]; then -# LSB, SLES, ... - . /lib/lsb/init-functions -elif [ -r /etc/init.d/functions ]; then -# Red Hat / VMware - . /etc/init.d/functions - my_log_message() - { - ACTION=$1 - shift - - case "$ACTION" in - success) - echo -n $* - success "$*" - echo - ;; - failure) - echo -n $* - failure "$*" - echo - ;; - warning) - echo -n $* - warning "$*" - echo - ;; - *) - ;; - esac - } - log_success_msg() - { - my_log_message success "$*" - } - log_failure_msg() - { - my_log_message failure "$*" - } - log_warning_msg() - { - my_log_message warning "$*" - } -fi - CONFIGFILE=/etc/sysconfig/ipmi # source config info [ -r ${CONFIGFILE} ] && . ${CONFIGFILE} @@ -88,11 +31,6 @@ 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" @@ -113,17 +51,6 @@ 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() @@ -131,7 +58,7 @@ modules_loaded_verbose() OnePlusLoaded=0 OnePlusUnloaded=0 for m in $@; do - if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then + if /sbin/lsmod | grep -q $m ; then echo "$m module loaded." OnePlusLoaded=1 else @@ -146,7 +73,7 @@ modules_loaded() OnePlusLoaded=0 OnePlusUnloaded=0 for m in $@; do - if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then + if /sbin/lsmod | grep -q $m ; then OnePlusLoaded=1 else OnePlusUnloaded=1 @@ -210,49 +137,33 @@ start_watchdog_common() modules_loaded ipmi_watchdog [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2)) && - log_failure_msg && + 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)) && - log_failure_msg && - return - fi - log_success_msg } start_watchdog_quiet() { [ "${IPMI_WATCHDOG}" != "yes" ] && return - echo -n $"Starting ipmi_watchdog driver: " start_watchdog_common } start_watchdog() { - echo -n $"Starting ipmi_watchdog driver: " [ "${IPMI_WATCHDOG}" != "yes" ] && RETVAL=$((RETVAL | 2)) && - log_failure_msg "not configured" && + echo "Watchdog not configured" && return start_watchdog_common } stop_watchdog() { - echo -n $"Stopping ipmi_watchdog driver: " modprobe -q -r ipmi_watchdog > /dev/null 2>&1 modules_loaded ipmi_watchdog if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) - log_failure_msg - else - if [ "${IPMI_WATCHDOG}" = "yes" ]; then - [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog - fi - log_success_msg + echo "Watchog shutdown failed: cannot unload ipmi_watchdog module" fi } @@ -262,10 +173,6 @@ stop_watchdog_quiet() 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 } @@ -274,48 +181,42 @@ 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 && \ + modinfo ipmi_poweroff 2>/dev/null | grep -q poweroff_control && \ poweroff_opts="poweroff_control=2" - modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \ + modinfo ipmi_poweroff 2>/dev/null | grep -q poweroff_powercycle && \ 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)) && - log_failure_msg && + echo "Powercontroll startup failed: cannot load ipmi_poweroff module" && return - log_success_msg } start_powercontrol_quiet() { [ "${IPMI_POWEROFF}" != "yes" ] && return - echo -n $"Starting ipmi_poweroff driver: " start_powercontrol_common } start_powercontrol() { - echo -n $"Starting ipmi_poweroff driver: " [ "${IPMI_POWEROFF}" != "yes" ] && RETVAL=$((RETVAL | 2)) && - log_failure_msg "not configured" && + echo "Powercontroll not configured" && return start_powercontrol_common } stop_powercontrol() { - echo -n $"Stopping ipmi_poweroff driver: " modprobe -q -r ipmi_poweroff > /dev/null 2>&1 modules_loaded ipmi_poweroff if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) - log_failure_msg - else - log_success_msg + echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module" fi } @@ -334,9 +235,6 @@ unload_all_ipmi_modules() 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() @@ -344,10 +242,7 @@ 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 + lsmod | grep -Eq "ipmi_(poweroff|watchdog)" if [ "$?" -ne "0" ]; then stop_watchdog_quiet stop_powercontrol_quiet @@ -371,14 +266,7 @@ load_ipmi_modules () 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} @@ -386,6 +274,8 @@ load_ipmi_modules () locdelay=$((locdelay - 1)) sleep 0.1 done + else + RETVAL=$((RETVAL | 2)) fi fi @@ -410,15 +300,14 @@ load_ipmi_modules () ############################################################################# start() { - echo -n "Starting ${MODULE_NAME} drivers: " load_ipmi_modules if [ ${RETVAL} -eq 0 ]; then - touch ${LOCKFILE} && log_success_msg + touch ${LOCKFILE} else if [ $((RETVAL & 1)) -eq 1 ]; then - log_failure_msg + echo "Startup failed." else - touch ${LOCKFILE} && log_warning_msg + touch ${LOCKFILE} && echo "Warning!?" fi fi start_watchdog_quiet @@ -428,29 +317,25 @@ start() ############################################################################# stop() { - echo -n "Stopping ${MODULE_NAME} drivers: " unload_ipmi_modules_leave_features modules_loaded ${MODULES_INTERFACES} if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) - log_failure_msg "may be in use" + echo "Shutdown failed, something may be in use" else rm -f ${LOCKFILE} - log_success_msg fi } stop_all() { - echo -n $"Stopping all ${MODULE_NAME} drivers: " unload_all_ipmi_modules modules_loaded ${MODULES} if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) - log_failure_msg "may be in use" + echo "Shutdown failed, something may be in use" else rm -f ${LOCKFILE} - log_success_msg fi } @@ -542,11 +427,12 @@ status_powercontrol() ############################################################################# usage () { - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart" 1>&2 + 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=1 + RETVAL=2 } condrestart () @@ -561,6 +447,7 @@ case "$1" in start) start ;; stop) stop ;; restart) restart ;; + force-reload) reload ;; reload) reload ;; status) status ;; status-all) status_all ;; diff --git a/openipmi.modalias b/openipmi.modalias new file mode 100644 index 0000000..58950a4 --- /dev/null +++ b/openipmi.modalias @@ -0,0 +1,10 @@ +# +# This configuration file was provided +# by OpenIPMI-modalias package. +# Feel free to update as needed. +# + +alias acpi:IPI000*:* ipmi_si +alias acpi:IPI000*:* ipmi_devintf +alias acpi:IPI000*:* ipmi_msghandler + diff --git a/openipmigui.desktop b/openipmigui.desktop deleted file mode 100644 index dcdd567..0000000 --- a/openipmigui.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Name=OpenIPMI GUI -Comment=Manage local or remote systems using IPMI protocol -Exec=/usr/bin/openipmigui -Terminal=false -Type=Application -Categories=System; diff --git a/sources b/sources index b517f02..1870111 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0ab2b336b169ff41c258383b032c5681 OpenIPMI-2.0.16.tar.gz +SHA512 (OpenIPMI-2.0.36.tar.gz) = a47725308336f200e88a1eb8641ed5ef03fc8bb43ee47f7a99e39df68640ff912b6842c1710d7e767aeb724fc41fa4ed3b244685812ee985e5200003a45f4015