commit:     cb0066ceaed2332a3b7e376a31b7085d8056a802
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  4 02:21:40 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Nov  4 02:23:52 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb0066ce

sys-libs/freeipmi: fix build w/ clang 16

Closes: https://bugs.gentoo.org/874072
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...c-Fix-Wimplicit-function-declaration-for-.patch |  27 ++
 ...re.ac-Fix-detecting-sighandler_t-on-glibc.patch |  27 ++
 ...c-Use-AC_USE_SYSTEM_EXTENSIONS-instead-of.patch | 331 +++++++++++++++++++++
 .../files/freeipmi-1.6.10-header-fixes.patch       | 118 ++++++++
 sys-libs/freeipmi/freeipmi-1.6.10-r1.ebuild        | 107 +++++++
 5 files changed, 610 insertions(+)

diff --git 
a/sys-libs/freeipmi/files/freeipmi-1.6.10-0001-configure.ac-Fix-Wimplicit-function-declaration-for-.patch
 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-0001-configure.ac-Fix-Wimplicit-function-declaration-for-.patch
new file mode 100644
index 000000000000..8d8cfcc2ae7a
--- /dev/null
+++ 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-0001-configure.ac-Fix-Wimplicit-function-declaration-for-.patch
@@ -0,0 +1,27 @@
+https://marc.info/?l=freeipmi-devel&m=166752785904895&w=2
+
+From 3ec9097fc558c888be9268344ea94a4caf5f7883 Mon Sep 17 00:00:00 2001
+From: Sam James <[email protected]>
+Date: Fri, 4 Nov 2022 01:58:38 +0000
+Subject: [PATCH 1/3] configure.ac: Fix -Wimplicit-function-declaration for
+ printf
+
+Clang 16 makes these errors fatal by default:
+```
+error: call to undeclared library function 'printf' with type 'int (const char 
*, ...)'; ISO C99 and later do not support implicit function declarations 
[-Werror,-Wimplicit-function-declaration]
+```
+
+printf(3) is provided by <stdio.h>, not <stdlib.h>.
+
+Signed-off-by: Sam James <[email protected]>
+--- a/configure.ac
++++ b/configure.ac
+@@ -692,7 +692,7 @@ fi
+ 
+ AM_CONDITIONAL(WITH_FREEIPMI_ARGP, test "$have_argp" = "no")
+ 
+-AC_TRY_COMPILE([#include <stdlib.h>],
++AC_TRY_COMPILE([#include <stdio.h>],
+                [printf("%s\n", __FUNCTION__);],
+                [AC_DEFINE([HAVE_FUNCTION_MACRO], [1], [Define is you have 
__FUNCTION__])])
+ 

diff --git 
a/sys-libs/freeipmi/files/freeipmi-1.6.10-0002-configure.ac-Fix-detecting-sighandler_t-on-glibc.patch
 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-0002-configure.ac-Fix-detecting-sighandler_t-on-glibc.patch
new file mode 100644
index 000000000000..4ffd569ae71d
--- /dev/null
+++ 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-0002-configure.ac-Fix-detecting-sighandler_t-on-glibc.patch
@@ -0,0 +1,27 @@
+https://marc.info/?l=freeipmi-devel&m=166752785904895&w=2
+
+From e3f759741ffc96c92c3a97e4518b09becce622b7 Mon Sep 17 00:00:00 2001
+From: Sam James <[email protected]>
+Date: Fri, 4 Nov 2022 02:01:51 +0000
+Subject: [PATCH 2/3] configure.ac: Fix detecting sighandler_t on glibc
+
+Fixes the following error/misdetection of sighandler_t:
+```
+config.log:2639:conftest.c:83:13: error: 'sighandler_t' undeclared (first use 
in this function); did you mean 'sa_handler'?
+```
+
+sighandler_t requires -D_GNU_SOURCE on glibc systems.
+
+Signed-off-by: Sam James <[email protected]>
+--- a/configure.ac
++++ b/configure.ac
+@@ -490,7 +490,8 @@ AC_CHECK_FUNCS([cbrt])
+ AC_CHECK_FUNCS([getmsg putmsg])
+ 
+ dnl sighandler_t apparently not defined in Apple/OS X
+-AC_CHECK_TYPES([sighandler_t], [], [], [[#include <signal.h>]])
++AC_CHECK_TYPES([sighandler_t], [], [], [[#define _GNU_SOURCE
++#include <signal.h>]])
+ 
+ # At least on freebsd, putc_unlocked is a macro, so the standard
+ # AC_CHECK_FUNCS doesn't work well.

diff --git 
a/sys-libs/freeipmi/files/freeipmi-1.6.10-0003-configure.ac-Use-AC_USE_SYSTEM_EXTENSIONS-instead-of.patch
 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-0003-configure.ac-Use-AC_USE_SYSTEM_EXTENSIONS-instead-of.patch
new file mode 100644
index 000000000000..2219ddd8719d
--- /dev/null
+++ 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-0003-configure.ac-Use-AC_USE_SYSTEM_EXTENSIONS-instead-of.patch
@@ -0,0 +1,331 @@
+https://marc.info/?l=freeipmi-devel&m=166752785904895&w=2
+
+From e89f234b9032ce5b2a9477c91a25ce982e14cc63 Mon Sep 17 00:00:00 2001
+From: Sam James <[email protected]>
+Date: Fri, 4 Nov 2022 02:05:53 +0000
+Subject: [PATCH 3/3] configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of
+ appending -D_GNU_SOURCE
+
+This achieves the same effect as it'll use -D_GNU_SOURCE when possible
+but it ensures we never forget it in an individual Makefile.am.
+
+AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60, so we bump
+the requirement from 2.57->2.60. Given the comment mentions "modern
+autoconf and automake", we could really justify bumping this to 2.69
+which itself is not exactly brand new, if we want.
+
+Signed-off-by: Sam James <[email protected]>
+--- a/bmc-device/Makefile.am
++++ b/bmc-device/Makefile.am
+@@ -7,7 +7,6 @@ bmc_device_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ bmc_device_LDADD = \
+--- a/bmc-info/Makefile.am
++++ b/bmc-info/Makefile.am
+@@ -7,7 +7,6 @@ bmc_info_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ bmc_info_LDADD = \
+--- a/bmc-watchdog/Makefile.am
++++ b/bmc-watchdog/Makefile.am
+@@ -7,7 +7,6 @@ bmc_watchdog_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT \
+       -DBMC_WATCHDOG_LOCALSTATEDIR='"$(localstatedir)"'
+ 
+--- a/common/debugutil/Makefile.am
++++ b/common/debugutil/Makefile.am
+@@ -5,7 +5,6 @@ libdebugutil_la_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libdebugutil_la_SOURCES = \
+--- a/common/miscutil/Makefile.am
++++ b/common/miscutil/Makefile.am
+@@ -2,7 +2,6 @@ noinst_LTLIBRARIES = \
+       libmiscutil.la
+ 
+ libmiscutil_la_CPPFLAGS = \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libmiscutil_la_SOURCES = \
+--- a/common/parsecommon/Makefile.am
++++ b/common/parsecommon/Makefile.am
+@@ -5,7 +5,6 @@ libparsecommon_la_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libparsecommon_la_SOURCES = \
+--- a/common/pingtool/Makefile.am
++++ b/common/pingtool/Makefile.am
+@@ -6,7 +6,6 @@ libpingtool_la_CPPFLAGS = \
+       -I$(top_srcdir)/common/toolcommon \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libpingtool_la_SOURCES = \
+--- a/common/portability/Makefile.am
++++ b/common/portability/Makefile.am
+@@ -16,7 +16,6 @@ noinst_LTLIBRARIES = \
+       libportability.la
+ 
+ libportability_la_CPPFLAGS = \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libportability_la_SOURCES = \
+--- a/common/toolcommon/Makefile.am
++++ b/common/toolcommon/Makefile.am
+@@ -11,7 +11,6 @@ libtoolcommon_la_CPPFLAGS = \
+       -I$(top_builddir)/libipmidetect \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libtoolcommon_la_SOURCES = \
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,7 +12,7 @@ AC_SUBST(FREEIPMI_PACKAGE_VERSION_MINOR)
+ AC_SUBST(FREEIPMI_PACKAGE_VERSION_PATCH)
+ 
+ dnl We require a modern autoconf and automake
+-AC_PREREQ([2.57])
++AC_PREREQ([2.60])
+ 
+ AC_CONFIG_AUX_DIR([config])
+ 
+@@ -304,6 +304,8 @@ AM_CONDITIONAL(WITH_GNU_LD, test "$with_gnu_ld" = "yes")
+ AC_PROG_MAKE_SET
+ AC_PROG_LN_S
+ 
++AC_USE_SYSTEM_EXTENSIONS
++
+ dnl Enable error tracing. Lower level calls will spit error messages
+ dnl on to the console
+ AC_ARG_ENABLE([trace],
+--- a/ipmi-chassis/Makefile.am
++++ b/ipmi-chassis/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_chassis_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_chassis_LDADD = \
+--- a/ipmi-config/Makefile.am
++++ b/ipmi-config/Makefile.am
+@@ -13,7 +13,6 @@ ipmi_config_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_config_LDADD = \
+--- a/ipmi-dcmi/Makefile.am
++++ b/ipmi-dcmi/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_dcmi_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_dcmi_LDADD = \
+--- a/ipmi-fru/Makefile.am
++++ b/ipmi-fru/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_fru_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_fru_LDADD = \
+--- a/ipmi-locate/Makefile.am
++++ b/ipmi-locate/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_locate_CPPFLAGS = \
+       -I$(top_srcdir)/common/miscutil \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_locate_LDADD = \
+--- a/ipmi-oem/Makefile.am
++++ b/ipmi-oem/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_oem_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_oem_LDADD = \
+--- a/ipmi-pet/Makefile.am
++++ b/ipmi-pet/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_pet_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_pet_LDADD = \
+--- a/ipmi-raw/Makefile.am
++++ b/ipmi-raw/Makefile.am
+@@ -7,7 +7,6 @@ ipmi_raw_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_raw_LDADD = \
+--- a/ipmi-sel/Makefile.am
++++ b/ipmi-sel/Makefile.am
+@@ -8,7 +8,6 @@ ipmi_sel_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_sel_LDADD = \
+--- a/ipmi-sensors/Makefile.am
++++ b/ipmi-sensors/Makefile.am
+@@ -9,7 +9,6 @@ ipmi_sensors_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmi_sensors_LDADD = \
+--- a/ipmiconsole/Makefile.am
++++ b/ipmiconsole/Makefile.am
+@@ -8,7 +8,6 @@ ipmiconsole_CPPFLAGS = \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+       -I$(top_builddir)/libipmiconsole/ \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ 
+--- a/ipmidetect/Makefile.am
++++ b/ipmidetect/Makefile.am
+@@ -10,7 +10,6 @@ ipmidetect_CPPFLAGS = \
+       -I$(top_srcdir)/common/miscutil \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libipmidetect/ \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmidetect_LDADD = \
+--- a/ipmidetectd/Makefile.am
++++ b/ipmidetectd/Makefile.am
+@@ -12,7 +12,6 @@ ipmidetectd_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT \
+       -DIPMIDETECTD_LOCALSTATEDIR='"$(localstatedir)"'
+ 
+--- a/ipmiping/Makefile.am
++++ b/ipmiping/Makefile.am
+@@ -5,8 +5,7 @@ ipmiping_CPPFLAGS = \
+       -I$(top_srcdir)/common/debugutil \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+-      -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE
++      -I$(top_srcdir)/libfreeipmi/include
+ 
+ ipmiping_LDADD = \
+       $(top_builddir)/common/pingtool/libpingtool.la \
+--- a/ipmipower/Makefile.am
++++ b/ipmipower/Makefile.am
+@@ -11,7 +11,6 @@ ipmipower_CPPFLAGS = \
+       -I$(top_srcdir)/libfreeipmi/include \
+       -DWITH_LSD_FATAL_ERROR_FUNC=1 \
+       -DWITH_LSD_NOMEM_ERROR_FUNC=1 \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ ipmipower_LDADD = \
+--- a/ipmiseld/Makefile.am
++++ b/ipmiseld/Makefile.am
+@@ -13,7 +13,6 @@ ipmiseld_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT \
+       -DIPMISELD_LOCALSTATEDIR='"$(localstatedir)"'
+ 
+--- a/libfreeipmi/Makefile.am
++++ b/libfreeipmi/Makefile.am
+@@ -25,7 +25,6 @@ libfreeipmi_la_CPPFLAGS = \
+       -I$(top_srcdir)/libfreeipmi \
+       -DIPMI_IPCKEY=\"$(localstatedir)/lib/$(PACKAGE_NAME)/ipckey\" \
+       
-DIPMI_DEBUG_IPCKEY=\"$(top_builddir)/libfreeipmi/driver/ipmi-semaphores.h\" \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libfreeipmi_la_LDFLAGS = \
+--- a/libipmiconsole/Makefile.am
++++ b/libipmiconsole/Makefile.am
+@@ -21,7 +21,6 @@ libipmiconsole_la_CPPFLAGS = \
+         -I$(top_builddir)/libfreeipmi/include \
+         -I$(top_srcdir)/libfreeipmi/include \
+       -DWITH_PTHREADS=1 \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libipmiconsole_la_LDFLAGS = \
+--- a/libipmimonitoring/Makefile.am
++++ b/libipmimonitoring/Makefile.am
+@@ -30,7 +30,6 @@ libipmimonitoring_la_CPPFLAGS = \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+       -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE \
+       -D_REENTRANT
+ 
+ libipmimonitoring_la_LDFLAGS = \
+--- a/rmcpping/Makefile.am
++++ b/rmcpping/Makefile.am
+@@ -5,8 +5,7 @@ rmcpping_CPPFLAGS = \
+       -I$(top_srcdir)/common/debugutil \
+       -I$(top_srcdir)/common/portability \
+       -I$(top_builddir)/libfreeipmi/include \
+-      -I$(top_srcdir)/libfreeipmi/include \
+-      -D_GNU_SOURCE
++      -I$(top_srcdir)/libfreeipmi/include
+ 
+ rmcpping_LDADD = \
+       $(top_builddir)/common/pingtool/libpingtool.la \

diff --git a/sys-libs/freeipmi/files/freeipmi-1.6.10-header-fixes.patch 
b/sys-libs/freeipmi/files/freeipmi-1.6.10-header-fixes.patch
new file mode 100644
index 000000000000..ccd1262333db
--- /dev/null
+++ b/sys-libs/freeipmi/files/freeipmi-1.6.10-header-fixes.patch
@@ -0,0 +1,118 @@
+https://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=587b0cce3d0f146c9f97efbf33d599d23217d610
+https://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=9cc6f981b55d6aa784788674a5a77c5b970bcabe
+https://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=14c6e2d373173d06fa3f2148629b4d8bdedec0a2
+https://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=66cf8d0bb7e47d3360389ce427a6303cc0b63d00
+
+From 587b0cce3d0f146c9f97efbf33d599d23217d610 Mon Sep 17 00:00:00 2001
+From: Albert Chu <[email protected]>
+Date: Tue, 7 Jan 2020 13:48:12 -0800
+Subject: [PATCH 1/7] ipmi-sensors: Fix header guards
+
+--- a/ipmi-sensors/ipmi-sensors-oem-intel-quanta-qssc-s4r.h
++++ b/ipmi-sensors/ipmi-sensors-oem-intel-quanta-qssc-s4r.h
+@@ -17,7 +17,7 @@
+  */
+ 
+ #ifndef IPMI_SENSORS_OEM_INTEL_QUANTA_QSSC_S4R_H
+-#define IPMI_SENSORS_OEM_INTEL_H
++#define IPMI_SENSORS_OEM_INTEL_QUANTA_QSSC_S4R_H
+ 
+ #include "ipmi-sensors.h"
+ 
+--- a/ipmi-sensors/ipmi-sensors-oem-intel-s2600jf.h
++++ b/ipmi-sensors/ipmi-sensors-oem-intel-s2600jf.h
+@@ -17,7 +17,7 @@
+  */
+ 
+ #ifndef IPMI_SENSORS_OEM_INTEL_S2600JF_H
+-#define IPMI_SENSORS_OEM_INTEL_H
++#define IPMI_SENSORS_OEM_INTEL_S2600JF_H
+ 
+ #include "ipmi-sensors.h"
+ 
+--- a/ipmi-sensors/ipmi-sensors-oem-intel-s2600wp.h
++++ b/ipmi-sensors/ipmi-sensors-oem-intel-s2600wp.h
+@@ -17,7 +17,7 @@
+  */
+ 
+ #ifndef IPMI_SENSORS_OEM_INTEL_S2600WP_H
+-#define IPMI_SENSORS_OEM_INTEL_H
++#define IPMI_SENSORS_OEM_INTEL_S2600WP_H
+ 
+ #include "ipmi-sensors.h"
+ 
+--- a/ipmi-sensors/ipmi-sensors-oem-intel-s5500wb.h
++++ b/ipmi-sensors/ipmi-sensors-oem-intel-s5500wb.h
+@@ -17,7 +17,7 @@
+  */
+ 
+ #ifndef IPMI_SENSORS_OEM_INTEL_S5500WB_H
+-#define IPMI_SENSORS_OEM_INTEL_H
++#define IPMI_SENSORS_OEM_INTEL_S5500WB_H
+ 
+ #include "ipmi-sensors.h"
+ 
+From 9cc6f981b55d6aa784788674a5a77c5b970bcabe Mon Sep 17 00:00:00 2001
+From: Albert Chu <[email protected]>
+Date: Tue, 7 Jan 2020 14:06:27 -0800
+Subject: [PATCH 4/7] libipmiconsole: Move header guard macros to top of file
+
+--- a/libipmiconsole/ipmiconsole_defs.h
++++ b/libipmiconsole/ipmiconsole_defs.h
+@@ -24,6 +24,9 @@
+  *  with Ipmiconsole.  If not, see <http://www.gnu.org/licenses/>.
+ 
\*****************************************************************************/
+ 
++#ifndef IPMICONSOLE_DEFS_H
++#define IPMICONSOLE_DEFS_H
++
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif /* HAVE_CONFIG_H */
+@@ -54,9 +57,6 @@
+ 
+ #include "scbuf.h"
+ 
+-#ifndef IPMICONSOLE_DEFS_H
+-#define IPMICONSOLE_DEFS_H
+-
+ #ifndef MAXHOSTNAMELEN
+ #define MAXHOSTNAMELEN 64
+ #endif /* MAXHOSTNAMELEN */
+From 14c6e2d373173d06fa3f2148629b4d8bdedec0a2 Mon Sep 17 00:00:00 2001
+From: Albert Chu <[email protected]>
+Date: Tue, 7 Jan 2020 15:30:39 -0800
+Subject: [PATCH 6/7] libfreeipmi/sel: Add missing functions to header
+
+--- a/libfreeipmi/sel/ipmi-sel-string-supermicro-common.h
++++ b/libfreeipmi/sel/ipmi-sel-string-supermicro-common.h
+@@ -39,4 +39,14 @@ int 
sel_string_output_supermicro_overheat_event_data1_class_oem (ipmi_sel_ctx_t
+                                                                  unsigned int 
*wlen,
+                                                                  struct 
ipmi_sel_system_event_record_data *system_event_record_data);
+ 
++int sel_string_output_supermicro_dimm_event_data2_event_data3 (ipmi_sel_ctx_t 
ctx,
++                                                               struct 
ipmi_sel_entry *sel_entry,
++                                                               uint8_t 
sel_record_type,
++                                                               char *buf,
++                                                               unsigned int 
buflen,
++                                                               unsigned int 
flags,
++                                                               unsigned int 
*wlen,
++                                                               struct 
ipmi_sel_system_event_record_data *system_event_record_data,
++                                                               int *oem_rv);
++
+ #endif /* IPMI_SEL_STRING_SUPERMICRO_COMMON_H */
+From 66cf8d0bb7e47d3360389ce427a6303cc0b63d00 Mon Sep 17 00:00:00 2001
+From: Albert Chu <[email protected]>
+Date: Tue, 7 Jan 2020 15:32:22 -0800
+Subject: [PATCH 7/7] ipmi-sensors: Add missing header to file
+
+--- a/ipmi-sensors/ipmi-sensors-oem-intel.c
++++ b/ipmi-sensors/ipmi-sensors-oem-intel.c
+@@ -34,6 +34,7 @@
+ #include "ipmi-sensors-oem-intel.h"
+ #include "ipmi-sensors-oem-intel-s5500wb.h"
+ #include "ipmi-sensors-oem-intel-s2600jf.h"
++#include "ipmi-sensors-oem-intel-s2600wp.h"
+ #include "ipmi-sensors-oem-intel-quanta-qssc-s4r.h"
+ #include "ipmi-sensors-oem-intel-node-manager.h"
+ 

diff --git a/sys-libs/freeipmi/freeipmi-1.6.10-r1.ebuild 
b/sys-libs/freeipmi/freeipmi-1.6.10-r1.ebuild
new file mode 100644
index 000000000000..db22dec05250
--- /dev/null
+++ b/sys-libs/freeipmi/freeipmi-1.6.10-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+AT_M4DIR="config"
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Provides Remote-Console and System Management Software as per 
IPMI v1.5/2.0"
+HOMEPAGE="https://www.gnu.org/software/freeipmi/";
+
+MY_P="${P/_/.}"
+[[ ${MY_P} == *.beta* ]] && ALPHA="-alpha"
+SRC_URI="mirror://gnu${ALPHA}/${PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86"
+IUSE="debug nagios without-root"
+
+RDEPEND="dev-libs/libgcrypt:0="
+DEPEND="${RDEPEND}
+       virtual/os-headers"
+RDEPEND="${RDEPEND}
+       nagios? (
+               || ( net-analyzer/icinga net-analyzer/nagios )
+               dev-lang/perl
+       )
+"
+
+PATCHES=(
+       
"${FILESDIR}"/${PN}-1.6.10-0001-configure.ac-Fix-Wimplicit-function-declaration-for-.patch
+       
"${FILESDIR}"/${PN}-1.6.10-0002-configure.ac-Fix-detecting-sighandler_t-on-glibc.patch
+       
"${FILESDIR}"/${PN}-1.6.10-0003-configure.ac-Use-AC_USE_SYSTEM_EXTENSIONS-instead-of.patch
+       "${FILESDIR}"/${P}-header-fixes.patch
+)
+
+src_prepare() {
+       default
+
+       # Needed for configure.ac patches, drop if/when merged
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               $(use_enable debug)
+               $(usex without-root --with-dont-check-for-root "")
+               --disable-static
+               --disable-init-scripts
+               --localstatedir="${EPREFIX}"/var
+               ac_cv_path_CPP_FOR_BUILD="$(tc-getPROG CPP cpp)"
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+
+       # freeipmi by defaults install _all_ commands to /usr/sbin, but
+       # quite a few can be run remotely as standard user, so move them
+       # in /usr/bin afterwards.
+       dodir /usr/bin
+       local prog
+       for prog in ipmi{detect,ping,power,console}; do
+               mv "${ED}"/usr/{s,}bin/${prog} || die
+
+               # The default install symlinks these commands to add a dash
+               # after the ipmi prefix; we repeat those after move for
+               # consistency.
+               rm "${ED}"/usr/sbin/${prog/ipmi/ipmi-}
+               dosym ${prog} /usr/bin/${prog/ipmi/ipmi-}
+       done
+
+       # Install the nagios plugin in its proper place, if desired
+       if use nagios; then
+               dodir /usr/$(get_libdir)/nagios/plugins
+               mv 
"${ED}"/usr/share/doc/${PF}/contrib/nagios/nagios_ipmi_sensors.pl \
+                       "${ED}"/usr/$(get_libdir)/nagios/plugins/ || die
+               fperms 0755 
/usr/$(get_libdir)/nagios/plugins/nagios_ipmi_sensors.pl
+
+               insinto /etc/icinga/conf.d
+               newins "${FILESDIR}"/freeipmi.icinga freeipmi-command.cfg
+       fi
+
+       dodoc AUTHORS ChangeLog* DISCLAIMER* NEWS README* TODO doc/*.txt
+
+       keepdir \
+               /var/cache/ipmiseld \
+               /var/cache/ipmimonitoringsdrcache \
+               /var/lib/freeipmi \
+               /var/log/ipmiconsole
+
+       # starting from version 1.2.0 the two daemons are similar enough
+       newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmidetectd
+       newconfd "${FILESDIR}"/ipmidetectd.confd ipmidetectd
+
+       newinitd "${FILESDIR}"/bmc-watchdog.initd.4 bmc-watchdog
+       newconfd "${FILESDIR}"/bmc-watchdog.confd bmc-watchdog
+
+       newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmiseld
+       newconfd "${FILESDIR}"/ipmiseld.confd ipmiseld
+
+       find "${ED}" -type f -name "*.la" -delete || die
+}

Reply via email to