diff --git a/.gitignore b/.gitignore index 18dbbc6..92ad568 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1 @@ 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 deleted file mode 100644 index da1a2fd..0000000 --- a/0001-man.patch +++ /dev/null @@ -1,543 +0,0 @@ -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/OpenIPMI-2.0.18-pthread-pkgconfig.patch b/OpenIPMI-2.0.18-pthread-pkgconfig.patch new file mode 100644 index 0000000..9a76208 --- /dev/null +++ b/OpenIPMI-2.0.18-pthread-pkgconfig.patch @@ -0,0 +1,18 @@ +468067 - "pkg-config --libs OpenIPMIpthread" fails + +Fix the pkgconfig file. + +Reported upstream as http://sourceforge.net/tracker/index.php?func=detail&aid=2188750&group_id=36127&atid=416301 + +diff -up OpenIPMI-2.0.18/OpenIPMIpthread.pc.in.orig OpenIPMI-2.0.18/OpenIPMIpthread.pc.in +--- OpenIPMI-2.0.18/OpenIPMIpthread.pc.in.orig 2005-08-17 05:56:02.000000000 +0200 ++++ OpenIPMI-2.0.18/OpenIPMIpthread.pc.in 2010-05-20 15:48:07.000000000 +0200 +@@ -6,6 +6,6 @@ includedir=@includedir@ + Name: OpenIPMIpthread + Description: Pthread OS handler for OpenIPMI + Version: @VERSION@ +-Requires: OpenIPMI pthread ++Requires: OpenIPMI + Libs: -L${libdir} -lOpenIPMIutils -lOpenIPMIpthread +-Cflags: -I${includedir} ++Cflags: -I${includedir} -pthread diff --git a/OpenIPMI-py313compat.patch b/OpenIPMI-py313compat.patch deleted file mode 100644 index fccde75..0000000 --- a/OpenIPMI-py313compat.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 7016dc2..8ceda82 100644 --- a/OpenIPMI.spec +++ b/OpenIPMI.spec @@ -1,47 +1,26 @@ -%global _hardened_build 1 - -%bcond_with python -%bcond_with perl +# TODO: uses private copy of libedit, should be modified to use system one +%{!?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.18 +Release: 4%{?dist} +License: LGPLv2+ and GPLv2+ or BSD +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 +Source4: README.initscript +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$ +Patch1: OpenIPMI-2.0.18-pthread-pkgconfig.patch %description The Open IPMI project aims to develop an open code base to allow access to @@ -49,542 +28,145 @@ 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 -Summary: IPMI Perl language bindings -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Group: Development/Libraries +Summary: IPMI Perl language bindings +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description perl The OpenIPMI-perl package contains the Perl language bindings for OpenIPMI. -%endif -%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} +%package python +Group: Development/Libraries +Summary: IPMI Python language bindings -%description -n python3-openipmi +%description python The OpenIPMI-python package contains the Python language bindings for OpenIPMI. -%endif %package devel -Summary: The development environment for the OpenIPMI project +Group: Development/Libraries +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} +Requires: %{name} = %{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} +%package gui +Group: System Environment/Base +Summary: IPMI graphical user interface tool +Requires: tix tkinter %{name}-python = %{version}-%{release} -%description lanserv -This package contains a network IPMI listener. +%description gui +The OpenIPMI-gui package contains the graphical user interface to monitor +and control IPMI-enabled devices. %prep -%autosetup -p1 +%setup -q +%patch1 -p1 %build - -%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 +export CFLAGS="-fPIC $RPM_OPT_FLAGS" +%configure --with-pythoninstall=%{python_sitearch} --disable-dependency-tracking --with-tcl=no --disable-static +# get rid of rpath 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 -make install DESTDIR=%{buildroot} +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la -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 +install -m 644 %SOURCE4 . %post -%systemd_post ipmi.service +/sbin/chkconfig --add ipmi %preun -%systemd_preun ipmi.service +if [ $1 = 0 ]; then + service ipmi stop >/dev/null 2>&1 + /sbin/chkconfig --del ipmi +fi %postun -%systemd_postun_with_restart ipmi.service +if [ "$1" -ge "1" ]; then + service ipmi condrestart >/dev/null 2>&1 || : +fi -%ldconfig_scriptlets libs -%ldconfig_scriptlets lanserv +%post libs -p /sbin/ldconfig -### A sysv => systemd migration contains all of the same scriptlets as a -### systemd package. These are additional scriptlets +%postun libs -p /sbin/ldconfig -%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 || : +%clean +rm -rf $RPM_BUILD_ROOT %files -%license COPYING COPYING.BSD COPYING.LIB -%doc CONFIGURING_FOR_LAN FAQ README README.Force README.MotorolaMXP +%defattr(-,root,root) +%doc CONFIGURING_FOR_LAN COPYING COPYING.BSD COPYING.LIB FAQ README README.Force README.MotorolaMXP README.initscript %config(noreplace) %{_sysconfdir}/sysconfig/ipmi -%{_libexecdir}/openipmi-helper +%{_initrddir}/ipmi %{_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 -%endif +%{perl_vendorarch}/auto/OpenIPMI/ -%if %{with python} -%files -n python3-openipmi -%{python3_sitearch}/*OpenIPMI* -%{python3_sitearch}/__pycache__/OpenIPMI.*.pyc -%endif +%files python +%defattr(-,root,root) +%{python_sitearch}/*OpenIPMI* %files libs -%{_libdir}/libOpenIPMI*.so.* +%defattr(-,root,root) +%{_libdir}/*.so.* %files devel +%defattr(-,root,root) %{_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* +%files gui +%defattr(-,root,root) +%{_bindir}/openipmigui +%{_mandir}/man1/openipmigui* +%{python_sitearch}/openipmigui +%{_datadir}/applications/fedora-openipmigui.desktop %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 diff --git a/README.initscript b/README.initscript new file mode 100644 index 0000000..38d60ca --- /dev/null +++ b/README.initscript @@ -0,0 +1,2 @@ +Please note that the /etc/init.d/ipmi init script is not LSB compliant and +uses non-standard exit codes. See the init script for detailed description. diff --git a/include-config-h-cmdlang.patch b/include-config-h-cmdlang.patch deleted file mode 100644 index 4f9fcab..0000000 --- a/include-config-h-cmdlang.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index fa14993..0000000 --- a/ipmi.service +++ /dev/null @@ -1,12 +0,0 @@ -[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-helper b/openipmi.initscript similarity index 72% rename from openipmi-helper rename to openipmi.initscript index 4f3d3d9..c847fa1 100644 --- a/openipmi-helper +++ b/openipmi.initscript @@ -1,15 +1,24 @@ #!/bin/sh ############################################################################# # -# ipmi: OpenIPMI Driver helper script +# ipmi: OpenIPMI Driver init script # -# Authors: Jan Safranek -# Václav Doležal -# -# Based on IPMI init script by: -# Matt Domsch +# Authors: 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 @@ -19,6 +28,54 @@ # 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} @@ -31,6 +88,11 @@ 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" @@ -51,6 +113,17 @@ 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() @@ -58,7 +131,7 @@ modules_loaded_verbose() OnePlusLoaded=0 OnePlusUnloaded=0 for m in $@; do - if /sbin/lsmod | grep -q $m ; then + if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then echo "$m module loaded." OnePlusLoaded=1 else @@ -73,7 +146,7 @@ modules_loaded() OnePlusLoaded=0 OnePlusUnloaded=0 for m in $@; do - if /sbin/lsmod | grep -q $m ; then + if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then OnePlusLoaded=1 else OnePlusUnloaded=1 @@ -137,33 +210,49 @@ start_watchdog_common() modules_loaded ipmi_watchdog [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2)) && - echo "Watchdog startup failed: cannot load ipmi_watchdog module" && + log_failure_msg && 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)) && - echo "Watchdog not configured" && + log_failure_msg "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)) - echo "Watchog shutdown failed: cannot unload ipmi_watchdog module" + log_failure_msg + else + if [ "${IPMI_WATCHDOG}" = "yes" ]; then + [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog + fi + log_success_msg fi } @@ -173,6 +262,10 @@ 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 } @@ -181,42 +274,48 @@ start_powercontrol_common() local poweroff_opts="" load_hw_modules if [ "${IPMI_POWERCYCLE}" == "yes" ]; then - modinfo ipmi_poweroff 2>/dev/null | grep -q poweroff_control && \ + 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 -q poweroff_powercycle && \ + 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" && + log_failure_msg && 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)) && - echo "Powercontroll not configured" && + log_failure_msg "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)) - echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module" + log_failure_msg + else + log_success_msg fi } @@ -235,6 +334,9 @@ 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() @@ -242,7 +344,10 @@ unload_ipmi_modules_leave_features() for m in ${MODULES_INTERFACES}; do modprobe -q -r ${m} > /dev/null 2>&1 done - lsmod | grep -Eq "ipmi_(poweroff|watchdog)" + # 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 @@ -266,7 +371,14 @@ 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} @@ -274,8 +386,6 @@ load_ipmi_modules () locdelay=$((locdelay - 1)) sleep 0.1 done - else - RETVAL=$((RETVAL | 2)) fi fi @@ -300,14 +410,15 @@ load_ipmi_modules () ############################################################################# start() { + echo -n "Starting ${MODULE_NAME} drivers: " load_ipmi_modules if [ ${RETVAL} -eq 0 ]; then - touch ${LOCKFILE} + touch ${LOCKFILE} && log_success_msg else if [ $((RETVAL & 1)) -eq 1 ]; then - echo "Startup failed." + log_failure_msg else - touch ${LOCKFILE} && echo "Warning!?" + touch ${LOCKFILE} && log_warning_msg fi fi start_watchdog_quiet @@ -317,25 +428,29 @@ 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)) - echo "Shutdown failed, something may be in use" + log_failure_msg "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)) - echo "Shutdown failed, something may be in use" + log_failure_msg "may be in use" else rm -f ${LOCKFILE} + log_success_msg fi } diff --git a/openipmi.modalias b/openipmi.modalias deleted file mode 100644 index 58950a4..0000000 --- a/openipmi.modalias +++ /dev/null @@ -1,10 +0,0 @@ -# -# 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 new file mode 100644 index 0000000..dcdd567 --- /dev/null +++ b/openipmigui.desktop @@ -0,0 +1,7 @@ +[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 1870111..8451ba1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenIPMI-2.0.36.tar.gz) = a47725308336f200e88a1eb8641ed5ef03fc8bb43ee47f7a99e39df68640ff912b6842c1710d7e767aeb724fc41fa4ed3b244685812ee985e5200003a45f4015 +8392539200fbda670503770292dfbb8f OpenIPMI-2.0.18.tar.gz