diff --git a/.gitignore b/.gitignore index 18dbbc6..6ca4d11 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,2 @@ 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/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/0001-man.patch b/OpenIPMI-2.0.19-man.patch similarity index 80% rename from 0001-man.patch rename to OpenIPMI-2.0.19-man.patch index da1a2fd..42959d9 100644 --- a/0001-man.patch +++ b/OpenIPMI-2.0.19-man.patch @@ -1,63 +1,7 @@ -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 +diff -up ./man/ipmi_cmdlang.7.manscan ./man/ipmi_cmdlang.7 +--- ./man/ipmi_cmdlang.7.manscan 2013-06-05 10:21:15.742099865 +0200 ++++ ./man/ipmi_cmdlang.7 2013-06-05 10:40:49.767658999 +0200 +@@ -246,7 +246,7 @@ instance, the command to create a domain The command to list all sensors in a domain named domain1 is .B sensor list domain1. @@ -66,7 +10,7 @@ index 4d18e76..a6d73b9 100644 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 +@@ -316,7 +316,7 @@ BMC. For that, notice that the LAN conn 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 @@ -183,7 +127,7 @@ index 4d18e76..a6d73b9 100644 on the control type. .TP Response: -@@ -1128,7 +1128,7 @@ multiple lights. The options values (marked with +@@ -1128,7 +1128,7 @@ multiple lights. The options values (ma ) 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 @@ -210,7 +154,7 @@ index 4d18e76..a6d73b9 100644 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: +@@ -1780,7 +1780,7 @@ operational and finished all it SDR, FRU .fi .RE @@ -219,10 +163,41 @@ index 4d18e76..a6d73b9 100644 .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 +diff -up ./man/ipmilan.8.manscan ./man/ipmilan.8 +--- ./man/ipmilan.8.manscan 2013-06-04 15:43:43.597127168 +0200 ++++ ./man/ipmilan.8 2013-06-05 13:36:31.282753184 +0200 +@@ -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 -up ./man/ipmi_ui.1.manscan ./man/ipmi_ui.1 +--- ./man/ipmi_ui.1.manscan 2013-06-04 15:33:32.206892146 +0200 ++++ ./man/ipmi_ui.1 2013-06-05 10:44:52.592882502 +0200 @@ -4,7 +4,7 @@ ipmi_ui \- Crude interface to an IPMI system @@ -241,7 +216,7 @@ index 9c5d9b6..011255f 100644 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 +@@ -48,7 +48,7 @@ the connections are to the same IPMI dom 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 @@ -250,7 +225,7 @@ index 9c5d9b6..011255f 100644 management controller. .SH OPTIONS -@@ -174,12 +174,12 @@ turns events on or off from the sensor (\fB0\fP or \fB1\fP). +@@ -174,12 +174,12 @@ turns events on or off from the sensor ( turns scanning on or off for the sensor (\fB0\fP or \fB1\fP). .I "assertion-bitmask" specifies the bitmask of thresholds or states @@ -265,10 +240,39 @@ index 9c5d9b6..011255f 100644 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 +diff -up ./man/openipmicmd.1.manscan ./man/openipmicmd.1 +--- ./man/openipmicmd.1.manscan 2013-06-04 13:57:08.825074711 +0200 ++++ ./man/openipmicmd.1 2013-06-05 10:45:54.938921332 +0200 +@@ -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 + 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 -up ./man/openipmi_conparms.7.manscan ./man/openipmi_conparms.7 +--- ./man/openipmi_conparms.7.manscan 2013-06-05 10:46:13.818932142 +0200 ++++ ./man/openipmi_conparms.7 2013-06-05 10:47:48.332980969 +0200 @@ -1,7 +1,7 @@ .TH openipmi_conparms 7 05/13/03 OpenIPMI "Connection Parameters for OpenIPMI" @@ -287,42 +291,10 @@ index 587da2a..9dc6404 100644 \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. +diff -up ./man/openipmigui.1.manscan ./man/openipmigui.1 +--- ./man/openipmigui.1.manscan 2013-06-05 10:48:43.389006143 +0200 ++++ ./man/openipmigui.1 2013-06-05 10:51:13.372066408 +0200 +@@ -38,7 +38,7 @@ Turn on message debugging, this will dum .TP .B \-\-drawmsg Turn on raw message debugging, this will dump all low-level messages to @@ -340,7 +312,7 @@ index 04f880b..0c8c10f 100644 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 +@@ -92,7 +92,7 @@ Color is used in the GUI to denote error 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 @@ -358,7 +330,7 @@ index 04f880b..0c8c10f 100644 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) +@@ -214,7 +214,7 @@ channel listing. Note that some user se are global to all channels on the MC. Due to the IPMI spec and some unfortunate implementation bugs, some @@ -376,11 +348,10 @@ index 04f880b..0c8c10f 100644 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. +diff -up ./man/openipmish.1.manscan ./man/openipmish.1 +--- ./man/openipmish.1.manscan 2013-06-05 10:52:26.787092815 +0200 ++++ ./man/openipmish.1 2013-06-05 14:01:12.004559270 +0200 +@@ -26,7 +26,7 @@ Turn on message debugging, this will dum .TP .B \-\-drawmsg Turn on raw message debugging, this will dump all low-level messages to @@ -389,7 +360,7 @@ index 36b1e43..2c902e4 100644 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 +@@ -34,11 +34,21 @@ Turn on memory debugging, this will caus deallocations to be checked. When the program terminates, it will dump all memory that was not properly freed (leaked). .TP @@ -411,10 +382,9 @@ index 36b1e43..2c902e4 100644 .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 +diff -up ./man/rmcp_ping.1.manscan ./man/rmcp_ping.1 +--- ./man/rmcp_ping.1.manscan 2013-06-05 10:52:59.704104189 +0200 ++++ ./man/rmcp_ping.1 2013-06-05 10:53:09.788107626 +0200 @@ -38,7 +38,7 @@ starttag. This is zero by default Turns on debugging to standard output. .TP @@ -424,11 +394,10 @@ index d60019a..ce5cab0 100644 .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) +diff -up ./man/solterm.1.manscan ./man/solterm.1 +--- ./man/solterm.1.manscan 2013-06-05 10:53:46.923120093 +0200 ++++ ./man/solterm.1 2013-06-05 10:55:59.442162744 +0200 +@@ -37,9 +37,9 @@ These are all described in openipmi_conp .TP .BI \-e\ escape_char The character to use to escape, or exit, the program. Entering this @@ -449,10 +418,9 @@ index 1479a1b..ada15d8 100644 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 +diff -up ./sample/ipmicmd.c.manscan ./sample/ipmicmd.c +--- ./sample/ipmicmd.c.manscan 2013-06-05 13:55:04.191611230 +0200 ++++ ./sample/ipmicmd.c 2013-06-05 13:55:10.988610133 +0200 @@ -124,6 +124,7 @@ void usage(void) printf("%s [-k ] [-v] \n", progname); printf("Where is one of:"); @@ -461,10 +429,9 @@ index 6cbcdc5..5f5c1ec 100644 } 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 +diff -up ./sample/rmcp_ping.c.manscan ./sample/rmcp_ping.c +--- ./sample/rmcp_ping.c.manscan 2013-06-05 15:17:40.073957820 +0200 ++++ ./sample/rmcp_ping.c 2013-06-05 14:21:05.778697883 +0200 @@ -156,6 +156,11 @@ main(int argc, char *argv[]) if (strcmp(argv[i], "--") == 0) { i++; @@ -477,10 +444,9 @@ index 7814792..5778fea 100644 } 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 +diff -up ./sample/solterm.c.manscan ./sample/solterm.c +--- ./sample/solterm.c.manscan 2013-06-05 15:17:55.264961190 +0200 ++++ ./sample/solterm.c 2013-06-05 15:15:14.037921308 +0200 @@ -743,7 +743,12 @@ int main(int argc, char *argv[]) /* Now we make sure "lan" is the first argument so we get the @@ -495,12 +461,11 @@ index 38a3f9d..a3e52de 100644 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) { } +diff -up ./ui/basic_ui.c.manscan ./ui/basic_ui.c +--- ./ui/basic_ui.c.manscan 2013-06-04 14:08:04.538642560 +0200 ++++ ./ui/basic_ui.c 2013-06-05 11:17:41.394541158 +0200 +@@ -225,6 +225,26 @@ snmp_init(selector_t *sel) + } #endif /* HAVE_UCDSNMP */ +void help(void) @@ -526,7 +491,7 @@ index 6993eb2..84889cb 100644 int main(int argc, char *argv[]) { -@@ -327,6 +347,11 @@ main(int argc, char *argv[]) +@@ -249,6 +269,11 @@ main(int argc, char *argv[]) curr_arg++; if (strcmp(arg, "--") == 0) { break; @@ -538,6 +503,3 @@ index 6993eb2..84889cb 100644 } else if (strcmp(arg, "-c") == 0) { full_screen = 0; } else if (strcmp(arg, "-dlock") == 0) { --- -2.7.4 - diff --git a/OpenIPMI-aarch64.patch b/OpenIPMI-aarch64.patch new file mode 100644 index 0000000..f8369fc --- /dev/null +++ b/OpenIPMI-aarch64.patch @@ -0,0 +1,1149 @@ +diff -urN OpenIPMI-2.0.19/config.guess OpenIPMI-2.0.19-aarch64/config.guess +--- OpenIPMI-2.0.19/config.guess 2010-05-09 08:32:53.000000000 -0500 ++++ OpenIPMI-2.0.19-aarch64/config.guess 2013-03-03 06:56:09.267032676 -0600 +@@ -1,10 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2009-12-30' ++timestamp='2012-09-25' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -17,9 +17,7 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -57,8 +55,8 @@ + + Originally written by Per Bothner. + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +-Software Foundation, Inc. ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 ++Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -145,7 +143,7 @@ + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -181,7 +179,7 @@ + fi + ;; + *) +- os=netbsd ++ os=netbsd + ;; + esac + # The OS release +@@ -202,6 +200,10 @@ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -224,7 +226,7 @@ + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -270,7 +272,10 @@ + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -296,12 +301,12 @@ + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 ++ echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -395,23 +400,23 @@ + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; +@@ -481,8 +486,8 @@ + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -495,7 +500,7 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -552,7 +557,7 @@ + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[456]) ++ *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -595,52 +600,52 @@ + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include ++ #include + +- #define _HPUX_SOURCE +- #include +- #include +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -731,22 +736,22 @@ + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; +@@ -770,14 +775,14 @@ + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +@@ -789,30 +794,35 @@ + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) +- # uname -m includes "-pc" on this system. +- echo ${UNAME_MACHINE}-mingw32 ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) +- case ${UNAME_MACHINE} in ++ case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; +@@ -858,6 +868,13 @@ + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +@@ -867,7 +884,7 @@ + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; +- esac ++ esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} +@@ -879,20 +896,29 @@ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ++ fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu +@@ -934,7 +960,7 @@ + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu +@@ -960,7 +986,7 @@ + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -968,14 +994,17 @@ + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. +@@ -984,11 +1013,11 @@ + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) +@@ -1020,7 +1049,7 @@ + fi + exit ;; + i*86:*:5:[678]*) +- # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; +@@ -1048,13 +1077,13 @@ + exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i586. ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp +- exit ;; ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; +@@ -1089,8 +1118,8 @@ + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ +@@ -1133,10 +1162,10 @@ + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says +- echo i586-unisys-sysv4 +- exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm +@@ -1162,11 +1191,11 @@ + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; +@@ -1179,6 +1208,9 @@ + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1231,7 +1263,10 @@ + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1276,13 +1311,13 @@ + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} ++ echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) +- UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; +@@ -1300,11 +1335,11 @@ + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c < + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + +diff -urN OpenIPMI-2.0.19/config.sub OpenIPMI-2.0.19-aarch64/config.sub +--- OpenIPMI-2.0.19/config.sub 2010-05-09 08:32:53.000000000 -0500 ++++ OpenIPMI-2.0.19-aarch64/config.sub 2013-03-03 06:56:09.276031637 -0600 +@@ -1,10 +1,10 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2010-01-22' ++timestamp='2012-10-10' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -21,9 +21,7 @@ + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -76,8 +74,8 @@ + GNU config.sub ($timestamp) + + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +-Software Foundation, Inc. ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 ++Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -124,13 +122,18 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ +- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ ++ knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; ++ android-linux) ++ os=-linux-android ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] +@@ -153,12 +156,12 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple | -axis | -knuth | -cray | -microblaze) ++ -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; +- -bluegene*) +- os=-cnk ++ -bluegene*) ++ os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= +@@ -174,10 +177,10 @@ + os=-chorusos + basic_machine=$1 + ;; +- -chorusrdb) +- os=-chorusrdb ++ -chorusrdb) ++ os=-chorusrdb + basic_machine=$1 +- ;; ++ ;; + -hiux*) + os=-hiuxwe2 + ;; +@@ -222,6 +225,12 @@ + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -lynx*178) ++ os=-lynxos178 ++ ;; ++ -lynx*5) ++ os=-lynxos5 ++ ;; + -lynx*) + os=-lynxos + ;; +@@ -246,20 +255,25 @@ + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | be32 | be64 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ ++ | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ ++ | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | mcore | mep | metag \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +@@ -282,29 +296,39 @@ + | moxie \ + | mt \ + | msp430 \ ++ | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ ++ | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ +- | rx \ ++ | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu | strongarm \ +- | tahoe | thumb | tic4x | tic80 | tron \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ +- | v850 | v850e \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ +- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; +- m6811 | m68hc11 | m6812 | m68hc12 | picochip) +- # Motorola 68HC11/12. ++ c54x) ++ basic_machine=tic54x-unknown ++ ;; ++ c55x) ++ basic_machine=tic55x-unknown ++ ;; ++ c6x) ++ basic_machine=tic6x-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; +@@ -314,6 +338,21 @@ + basic_machine=mt-unknown + ;; + ++ strongarm | thumb | xscale) ++ basic_machine=arm-unknown ++ ;; ++ xgate) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ xscaleeb) ++ basic_machine=armeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=armel-unknown ++ ;; ++ + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +@@ -328,25 +367,30 @@ + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ ++ | be32-* | be64-* \ + | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ ++ | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +@@ -368,26 +412,29 @@ + | mmix-* \ + | mt-* \ + | msp430-* \ ++ | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ +- | romp-* | rs6000-* | rx-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ++ | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile-* | tilegx-* \ ++ | tile*-* \ + | tron-* \ + | ubicom32-* \ +- | v850-* | v850e-* | vax-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) +@@ -412,7 +459,7 @@ + basic_machine=a29k-amd + os=-udi + ;; +- abacus) ++ abacus) + basic_machine=abacus-unknown + ;; + adobe68k) +@@ -482,11 +529,20 @@ + basic_machine=powerpc-ibm + os=-cnk + ;; ++ c54x-*) ++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c55x-*) ++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c6x-*) ++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; +- cegcc) ++ cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; +@@ -518,7 +574,7 @@ + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16) ++ cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; +@@ -676,7 +732,6 @@ + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +-# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 +@@ -734,9 +789,13 @@ + basic_machine=ns32k-utek + os=-sysv + ;; +- microblaze) ++ microblaze*) + basic_machine=microblaze-xilinx + ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ os=-mingw64 ++ ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 +@@ -773,10 +832,18 @@ + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; ++ msys) ++ basic_machine=i386-pc ++ os=-msys ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ++ nacl) ++ basic_machine=le32-unknown ++ os=-nacl ++ ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 +@@ -841,6 +908,12 @@ + np1) + basic_machine=np1-gould + ;; ++ neo-tandem) ++ basic_machine=neo-tandem ++ ;; ++ nse-tandem) ++ basic_machine=nse-tandem ++ ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; +@@ -923,9 +996,10 @@ + ;; + power) basic_machine=power-ibm + ;; +- ppc) basic_machine=powerpc-unknown ++ ppc | ppcbe) basic_machine=powerpc-unknown + ;; +- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ppc-* | ppcbe-*) ++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +@@ -1019,6 +1093,9 @@ + basic_machine=i860-stratus + os=-sysv4 + ;; ++ strongarm-* | thumb-*) ++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -1075,25 +1152,8 @@ + basic_machine=t90-cray + os=-unicos + ;; +- tic54x | c54x*) +- basic_machine=tic54x-unknown +- os=-coff +- ;; +- tic55x | c55x*) +- basic_machine=tic55x-unknown +- os=-coff +- ;; +- tic6x | c6x*) +- basic_machine=tic6x-unknown +- os=-coff +- ;; +- # This must be matched before tile*. +- tilegx*) +- basic_machine=tilegx-unknown +- os=-linux-gnu +- ;; + tile*) +- basic_machine=tile-unknown ++ basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) +@@ -1163,6 +1223,9 @@ + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; + ymp) + basic_machine=ymp-cray + os=-unicos +@@ -1260,11 +1323,11 @@ + if [ x"$os" != x"" ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. ++ # First match some system type aliases ++ # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. +- -auroraux) +- os=-auroraux ++ -auroraux) ++ os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` +@@ -1294,14 +1357,15 @@ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -openbsd* | -solidbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ +- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +@@ -1348,7 +1412,7 @@ + -opened*) + os=-openedition + ;; +- -os400*) ++ -os400*) + os=-os400 + ;; + -wince*) +@@ -1397,7 +1461,7 @@ + -sinix*) + os=-sysv4 + ;; +- -tpf*) ++ -tpf*) + os=-tpf + ;; + -triton*) +@@ -1442,8 +1506,8 @@ + -dicos*) + os=-dicos + ;; +- -nacl*) +- ;; ++ -nacl*) ++ ;; + -none) + ;; + *) +@@ -1466,10 +1530,10 @@ + # system, and we'll never get to this point. + + case $basic_machine in +- score-*) ++ score-*) + os=-elf + ;; +- spu-*) ++ spu-*) + os=-elf + ;; + *-acorn) +@@ -1481,8 +1545,20 @@ + arm*-semi) + os=-aout + ;; +- c4x-* | tic4x-*) +- os=-coff ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ hexagon-*) ++ os=-elf ++ ;; ++ tic54x-*) ++ os=-coff ++ ;; ++ tic55x-*) ++ os=-coff ++ ;; ++ tic6x-*) ++ os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) +@@ -1502,14 +1578,11 @@ + ;; + m68000-sun) + os=-sunos3 +- # This also exists in the configure program, but was not the +- # default. +- # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; +- mep-*) ++ mep-*) + os=-elf + ;; + mips*-cisco) +@@ -1536,7 +1609,7 @@ + *-ibm) + os=-aix + ;; +- *-knuth) ++ *-knuth) + os=-mmixware + ;; + *-wec) 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..819877f 100644 --- a/OpenIPMI.spec +++ b/OpenIPMI.spec @@ -1,124 +1,110 @@ %global _hardened_build 1 +# TODO: uses private copy of libedit, should be modified to use system one -%bcond_with python -%bcond_with perl - +%{!?python_sitearch: %global 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.19 +Release: 9%{?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-helper +Source3: ipmi.service +Source4: openipmi.modalias +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 +BuildRequires: systemd-units -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 +# aarch64 workaround remove once released package's config.sub contains aarch64 +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: libtool +# aarch64 end -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(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires(post): systemd-sysv +Requires:%{name}-libs = %{version}-%{release} -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 +Patch2: OpenIPMI-2.0.19-man.patch %description The Open IPMI project aims to develop an open code base to allow access to platform information using Intelligent Platform Management Interface (IPMI). This package contains the tools of the OpenIPMI project. +%package modalias +Group: System Environment/Kernel +Summary: Module aliases for IPMI subsystem + +%description modalias +The OpenIPMI-modalias provides configuration file with module aliases +of ACPI and PNP wildcards. + %package libs +Group: Development/Libraries Summary: The OpenIPMI runtime libraries +Requires:%{name}-modalias = %{version}-%{release} %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)) +Requires: %{name}-libs = %{version}-%{release} %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 +Requires: %{name}-libs = %{version}-%{release} -%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} +Requires: %{name}-libs = %{version}-%{release} %description devel The OpenIPMI-devel package contains the development libraries and header files of the OpenIPMI project. -%package lanserv -Summary: Emulates an IPMI network listener -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -%description lanserv -This package contains a network IPMI listener. - - %prep -%autosetup -p1 +%setup -q +%patch1 -p1 -b .pthread +%patch2 -p1 -b .manscan %build +export CFLAGS="-fPIC $RPM_OPT_FLAGS -fno-strict-aliasing" + +# aarch64 workaround remove once released package's config.sub contains aarch64 +%{__libtoolize} --copy --force --automake +%{__aclocal} +%{__autoheader} +%{__automake} --add-missing --copy --foreign --force-missing +%{__autoconf} +# aarch64 end %configure \ - CFLAGS="-fPIC %{optflags} -z now -fno-strict-aliasing" \ - LDFLAGS="%{__global_ldflags} -Wl,--as-needed" \ + --with-pythoninstall=%{python_sitearch} \ --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 \ + --disable-static \ --with-tkinter=no # https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Beware_of_Rpath @@ -126,23 +112,31 @@ This package contains a network IPMI listener. 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} +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}%{_libexecdir} +install -m 755 %SOURCE2 ${RPM_BUILD_ROOT}%{_libexecdir}/openipmi-helper +install -d ${RPM_BUILD_ROOT}%{_unitdir} +install -m 644 %SOURCE3 ${RPM_BUILD_ROOT}%{_unitdir}/ipmi.service +install -d ${RPM_BUILD_ROOT}%{_sysconfdir}/modprobe.d +install -m 644 %SOURCE4 ${RPM_BUILD_ROOT}%{_sysconfdir}/modprobe.d/OpenIPMI.conf -rm %{buildroot}/%{_mandir}/man1/openipmigui.1 %{buildroot}%{_libdir}/*.la +rm ${RPM_BUILD_ROOT}/%{_mandir}/man1/openipmigui.1 -# add missing documentation -echo ".so man1/openipmicmd.1" > %{buildroot}%{_mandir}/man1/ipmicmd.1 +# add missing documentation symlinks +if test -L ${RPM_BUILD_ROOT}/%{_bindir}/ipmicmd && ! test -a ${RPM_BUILD_ROOT}/%{_mandir}/man1/ipmicmd.1.gz ; then + %{__ln_s} openipmicmd.1.gz ${RPM_BUILD_ROOT}/%{_mandir}/man1/ipmicmd.1.gz +fi -echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1 +if test -L ${RPM_BUILD_ROOT}/%{_bindir}/ipmish && ! test -a ${RPM_BUILD_ROOT}/%{_mandir}/man1/ipmish.1.gz ; then + %{__ln_s} openipmish.1.gz ${RPM_BUILD_ROOT}/%{_mandir}/man1/ipmish.1.gz +fi %post %systemd_post ipmi.service @@ -153,8 +147,9 @@ echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1 %postun %systemd_postun_with_restart ipmi.service -%ldconfig_scriptlets libs -%ldconfig_scriptlets lanserv +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig ### A sysv => systemd migration contains all of the same scriptlets as a ### systemd package. These are additional scriptlets @@ -170,18 +165,17 @@ echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1 /bin/systemctl try-restart ipmi.service >/dev/null 2>&1 || : %files -%license COPYING COPYING.BSD COPYING.LIB -%doc CONFIGURING_FOR_LAN FAQ README README.Force README.MotorolaMXP +%doc CONFIGURING_FOR_LAN COPYING COPYING.BSD COPYING.LIB FAQ README README.Force README.MotorolaMXP %config(noreplace) %{_sysconfdir}/sysconfig/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* @@ -190,329 +184,29 @@ echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1 %{_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 %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 +%{python_sitearch}/*OpenIPMI* %files libs -%{_libdir}/libOpenIPMI*.so.* +%{_libdir}/*.so.* %files devel %{_includedir}/OpenIPMI %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc -%files lanserv -%config(noreplace) %{_sysconfdir}/ipmi/ipmisim1.emu -%config(noreplace) %{_sysconfdir}/ipmi/lan.conf -%dir %{_sysconfdir}/ipmi -%{_bindir}/ipmilan -%{_bindir}/ipmi_sim -%{_bindir}/sdrcomp -%{_libdir}/libIPMIlanserv.so.* -%{_mandir}/man8/ipmilan.8* -%{_mandir}/man1/ipmi_sim.1* -%{_mandir}/man5/ipmi_lan.5* -%{_mandir}/man5/ipmi_sim_cmd.5* +%files modalias +%config(noreplace) %{_sysconfdir}/modprobe.d/OpenIPMI.conf %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 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/openipmi-helper b/openipmi-helper index 4f3d3d9..4cebfb9 100644 --- a/openipmi-helper +++ b/openipmi-helper @@ -4,7 +4,6 @@ # ipmi: OpenIPMI Driver helper script # # Authors: Jan Safranek -# Václav Doležal # # Based on IPMI init script by: # Matt Domsch @@ -31,6 +30,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 +55,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 +73,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 +88,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 @@ -139,6 +154,13 @@ start_watchdog_common() RETVAL=$((RETVAL | 2)) && echo "Watchdog startup failed: cannot load ipmi_watchdog module" && return + if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then + mknod -m 0600 /dev/watchdog c 10 130 + [ $? -ne 0 ] && + RETVAL=$((RETVAL | 8)) && + echo "Watchdog startup failed: cannot create /dev/watchdog" && + return + fi } start_watchdog_quiet() @@ -164,6 +186,10 @@ stop_watchdog() if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) echo "Watchog shutdown failed: cannot unload ipmi_watchdog module" + else + if [ "${IPMI_WATCHDOG}" = "yes" ]; then + [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog + fi fi } @@ -173,6 +199,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,9 +211,9 @@ 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 @@ -235,6 +265,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 +275,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 +302,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 +317,6 @@ load_ipmi_modules () locdelay=$((locdelay - 1)) sleep 0.1 done - else - RETVAL=$((RETVAL | 2)) fi fi diff --git a/sources b/sources index 1870111..5553fc7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenIPMI-2.0.36.tar.gz) = a47725308336f200e88a1eb8641ed5ef03fc8bb43ee47f7a99e39df68640ff912b6842c1710d7e767aeb724fc41fa4ed3b244685812ee985e5200003a45f4015 +e96e68b972d4b376f239d32cd3629328 OpenIPMI-2.0.19.tar.gz