From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 29147158011 for ; Sat, 10 Sep 2022 03:38:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DEA41E085A; Sat, 10 Sep 2022 03:38:18 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id BA30FE085A for ; Sat, 10 Sep 2022 03:38:18 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B020B33BF5B for ; Sat, 10 Sep 2022 03:38:17 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id C654E5BD for ; Sat, 10 Sep 2022 03:38:15 +0000 (UTC) From: "John Helmert III" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "John Helmert III" Message-ID: <1662781092.9bace2960c71f0384e949596feae06b0bc71b6f9.ajak@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-apps/ipmitool/Manifest sys-apps/ipmitool/files/exchange-bmc-os-info.initd sys-apps/ipmitool/files/ipmievd.confd sys-apps/ipmitool/files/ipmievd.initd sys-apps/ipmitool/files/ipmitool-1.8.19-CVE-2011-4339.patch sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch sys-apps/ipmitool/files/log_bmc.initd sys-apps/ipmitool/ipmitool-1.8.19.ebuild X-VCS-Directories: sys-apps/ipmitool/ sys-apps/ipmitool/files/ X-VCS-Committer: ajak X-VCS-Committer-Name: John Helmert III X-VCS-Revision: 9bace2960c71f0384e949596feae06b0bc71b6f9 X-VCS-Branch: master Date: Sat, 10 Sep 2022 03:38:15 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: ac78ae98-2764-4dca-94af-de5d07774d74 X-Archives-Hash: 27f9e199269f7b8442caf43e1303ffb8 commit: 9bace2960c71f0384e949596feae06b0bc71b6f9 Author: John Helmert III gentoo org> AuthorDate: Thu Sep 8 04:46:37 2022 +0000 Commit: John Helmert III gentoo org> CommitDate: Sat Sep 10 03:38:12 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9bace296 sys-apps/ipmitool: add 1.8.19 Don't use a tarball for patches, stop tying initscript to PV, drop obolete Debian handling cruft, various other simplifications and style fixes. Signed-off-by: John Helmert III gentoo.org> sys-apps/ipmitool/Manifest | 2 + sys-apps/ipmitool/files/exchange-bmc-os-info.initd | 23 ++++ sys-apps/ipmitool/files/ipmievd.confd | 27 ++++ sys-apps/ipmitool/files/ipmievd.initd | 28 ++++ .../files/ipmitool-1.8.19-CVE-2011-4339.patch | 20 +++ .../ipmitool-1.8.19-fix-buffer-overflow.patch | 21 +++ .../files/ipmitool-1.8.19-manpage-longlines.patch | 55 ++++++++ .../files/ipmitool-1.8.19-nvidia-iana.patch | 23 ++++ sys-apps/ipmitool/files/log_bmc.initd | 25 ++++ sys-apps/ipmitool/ipmitool-1.8.19.ebuild | 146 +++++++++++++++++++++ 10 files changed, 370 insertions(+) diff --git a/sys-apps/ipmitool/Manifest b/sys-apps/ipmitool/Manifest index 5c974ac3707b..a38bac6ab786 100644 --- a/sys-apps/ipmitool/Manifest +++ b/sys-apps/ipmitool/Manifest @@ -1,3 +1,5 @@ +DIST enterprise-numbers-1.8.19.xz 1500100 BLAKE2B 15c21792bf46220c5908ecf4f0ddafe2fdf13a1799c054a0cb0cb647e7f489768855c4c25fba8a4408505ff0cf02d1a43408d5c4de557b1b30fe8abb477a7926 SHA512 e88cb459a9c8a3172770bcfefbec0a7ad7d65395063c8c0173fce776ea0beb7ad9f3610e636dfbd71d0af8c952c2b9bc6c25c815daa4ab281bed983cbe2ebcc4 DIST enterprise-numbers.2020-10-21.xz 1426932 BLAKE2B bfe39ceea321ba47cd40eafa67862eb4dfd6dc29b192afb20ad0c908cd93a16b4103c5de64d042df012417c8cadc03000f2b2a00779bcc582a430603cad5f3cf SHA512 4a854a56e8ed51997c320cbfba041d43cb98b14743ef80b67e701942068d3729604abaedb617655a83ca21a7e20ea5a622ede4de317ca492cefd46da784d28f3 DIST ipmitool-1.8.18_p20201004.tar.gz 638493 BLAKE2B 52f4ec8c82336b88640d1b91fc17af8f2fe0948a5c48c16067867dcad0852168d48bb21fdd99bde7ed957b66df888fd369c909079d1f81c861acd8c7f8dfa6f2 SHA512 8d72eef3584f4d2c86bfe43f70b5d687f3b7bbdf75b8979f7132c5c98b01baae22c336e540c197652187749fc9bb221a92e546b56e5cf2eb5650fad5094e9433 +DIST ipmitool-1.8.19.tar.gz 641383 BLAKE2B e1db12bb7301cb4b551f87fbfcd405b3597a1f32c45447b2b239d9d43a2cdbe213ee5408291d50801035cc80e28078fb3a778ab28335665bc3316798c13ea1fc SHA512 2d91706e9feba4b2ce4808eca087b81b842c4292a5840830001919c06ec8babd8f8761b74bb9dcf8fbc7765f028a5b1a192a3c1b643f2adaa157fed6fb0d1ee3 DIST ipmitool_1.8.18-9.debian-ported-gentoo.tar.xz 3208 BLAKE2B b37a127eff361039b3b810e19dd97f0c395462b658803f56f10f2dd1abbbe92743dc409ce6b83560db15621b7fa7a3c0f989100077893993df18108a082e49d2 SHA512 0f7646a2307ac98425e99dece9d3e3b23026136a97524151efdecc910fb537af41a91702782989046e44163da98610fa05792878473e228b45c16351f6015a45 diff --git a/sys-apps/ipmitool/files/exchange-bmc-os-info.initd b/sys-apps/ipmitool/files/exchange-bmc-os-info.initd new file mode 100644 index 000000000000..9c63983f21f3 --- /dev/null +++ b/sys-apps/ipmitool/files/exchange-bmc-os-info.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/exchange-bmc-os-info + +name="exchange-bmc-os-info" +description="Exchange Information between BMC and OS" +command=/usr/libexec/exchange-bmc-os-info +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use hostname modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + "${command}" start +} +stop() { + "${command}" stop +} diff --git a/sys-apps/ipmitool/files/ipmievd.confd b/sys-apps/ipmitool/files/ipmievd.confd new file mode 100644 index 000000000000..b860c23c7f89 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmievd.confd @@ -0,0 +1,27 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/conf.d/ipmievd + +# Interfaces: +# open Linux OpenIPMI Interface +# imb Intel IMB Interface +# bmc IPMI v2.0 BMC interface +# lan IPMI v1.5 LAN Interface +# lanplus IPMI v2.0 RMCP+ LAN Interface + +INTERFACE="open" + +# Commands: +# open Use OpenIPMI for asyncronous notification of events +# sel Poll SEL for notification of events +# +# 'pidfile=...' will be appended! +COMMAND="open daemon" + +# Options. + +OPTIONS="" + +# Device number: +# Used to target a specific BMC on a multi-node, multi-BMC system via the open interface +DEVICENUM=0 diff --git a/sys-apps/ipmitool/files/ipmievd.initd b/sys-apps/ipmitool/files/ipmievd.initd new file mode 100644 index 000000000000..e8ef2c39d454 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmievd.initd @@ -0,0 +1,28 @@ +#!/sbin/openrc-run +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/ipmievd + +depend() { + use logger modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +# TODO: ipmievd has a mode where it could be used to monitor multiple BMCs via +# DEVICENUM or remote systems, and it would be valid to run multiple instances. +# That is not supported by this init script at this time. + +description="IPMI event daemon for sending events to syslog LOCAL4" + +: "${DEVICENUM:=0}" +: "${INTERFACE:=open}" +: "${COMMAND:=open daemon}" +: "${OPTIONS:=}" + +daemon=ipmievd + +pidfile=/run/${daemon}.pid${DEVICENUM} # see manpage re suffix +command=/usr/sbin/${daemon} +cachefile=/run/${daemon}.${DEVICENUM}.sdr-cache +command_args="-d ${DEVICENUM} -S ${cachefile} -I ${INTERFACE} ${OPTIONS} ${COMMAND} pidfile=${pidfile}" +required_files=/dev/ipmi$DEVICENUM diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-CVE-2011-4339.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-CVE-2011-4339.patch new file mode 100644 index 000000000000..4a25280662b5 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-CVE-2011-4339.patch @@ -0,0 +1,20 @@ +Description: CVE-2011-4339 + insecure file permission when creating PID files + based on 112_fix_CVE-2011-4339 +Author: Jörg Frings-Fürst +Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651917 +Forwarded: https://sourceforge.net/p/ipmitool/patches/99/ +Last-Update: 2020-10-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/helper.c ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/helper.c +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/helper.c 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/helper.c 2020-10-21 13:59:02.335206233 -0700 +@@ -917,7 +917,6 @@ + lprintf(LOG_ERR, "chdir failed: %s (%d)", strerror(errno), errno); + exit(1); + } +- umask(0); + + for (fd=0; fd<64; fd++) { + if (fd != intf->fd) diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch new file mode 100644 index 000000000000..ceeffde085a7 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch @@ -0,0 +1,21 @@ +Description: fix buffer overflow + based on 101_fix_buf_overflow from Leo Iannacone +Author: Jörg Frings-Fürst +Bug: TSOL buffer overflow +Bug-ubuntu: https://bugs.launchpad.net/ubuntu/+source/ipmitool/+bug/633054 +Forwarded: https://sourceforge.net/p/ipmitool/patches/100/ +Last-Update: 2020-20-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/ipmi_tsol.c ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/ipmi_tsol.c +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/ipmi_tsol.c 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/ipmi_tsol.c 2020-10-21 13:55:58.571536858 -0700 +@@ -374,7 +374,7 @@ + char *recvip = NULL; + char in_buff[IPMI_BUF_SIZE]; + char out_buff[IPMI_BUF_SIZE * 8]; +- char buff[IPMI_BUF_SIZE + 4]; ++ char buff[IPMI_BUF_SIZE * 8 + 4]; + int fd_socket, result, i; + int out_buff_fill, in_buff_fill; + int ip1, ip2, ip3, ip4; diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch new file mode 100644 index 000000000000..6c0e00da3e15 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch @@ -0,0 +1,55 @@ +Description: long lines in man-page + prevent "can't break line" warnings +Author: Jörg Frings-Fürst +Forwarded: not-needed +Last-Update: 2020-10-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/doc/ipmitool.1.in ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/doc/ipmitool.1.in +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/doc/ipmitool.1.in 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/doc/ipmitool.1.in 2020-10-21 14:00:23.383643880 -0700 +@@ -1038,7 +1038,7 @@ + AMC slot B2 topology: + Port 0 =====> On Carrier Device ID 0, Port 3 + Port 2 =====> AMC slot B1, Port 2 +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + From Carrier file: carrierfru + On Carrier Device ID 0 topology: + Port 0 =====> AMC slot B1, Port 4 +@@ -1094,7 +1094,7 @@ + \-Link Type: AMC.2 Ethernet + \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link + \-Link Group ID: 0 || Link Asym. Match: exact match +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + AMC slot B1 port 1 ==> On-Carrier Device 0 port 12 + Matching Result + - From On-Carrier Device ID 0 +@@ -1107,7 +1107,7 @@ + \-Link Type: AMC.2 Ethernet + \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link + \-Link Group ID: 0 || Link Asym. Match: exact match +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + On-Carrier Device vs AMC slot A2 + AMC slot A2 port 0 ==> On-Carrier Device 0 port 3 + Matching Result +@@ -1121,7 +1121,7 @@ + \-Link Type: AMC.2 Ethernet + \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link + \-Link Group ID: 0 || Link Asym. Match: exact match +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + AMC slot B1 vs AMC slot A2 + AMC slot A2 port 2 ==> AMC slot B1 port 2 + Matching Result +@@ -1135,7 +1135,7 @@ + \-Link Type: AMC.3 Storage + \-Link Type extension: Serial Attached SCSI (SAS/SATA) + \-Link Group ID: 0 || Link Asym. Match: FC or SAS interface {exact match} +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + .TP + \fIunmatch\fP <\fBxx=filename\fR> <\fBxx=filename\fR> \fB...\fr + .br diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch new file mode 100644 index 000000000000..31b1a42dcf59 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch @@ -0,0 +1,23 @@ +Description: Add IANA ID for NVIDIA hardware + Add the NVIDIA IANA ID to the hardcoded list used in ipmitool <= 1.8.18. + After upstream commit "9d41136 ID:491 - Fetch vendor IDs from IANA", ipmitool + generates a list of vendor IDs dynamically at build time, so we can drop this + patch in future releases. +Author: dann frazier +Origin: backport +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903616 +Forwarded: not-needed +Last-Update: 2020-10-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' --exclude '*.rej' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/include/ipmitool/ipmi.h ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/include/ipmitool/ipmi.h +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/include/ipmitool/ipmi.h 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/include/ipmitool/ipmi.h 2020-10-21 14:04:11.675128602 -0700 +@@ -281,6 +281,7 @@ + /* 4769 for [IBM Corporation] */ + IPMI_OEM_IBM_4769 = 4769, + IPMI_OEM_MAGNUM = 5593, ++ IPMI_OEM_NVIDIA = 5703, + IPMI_OEM_TYAN = 6653, + IPMI_OEM_QUANTA = 7244, + IPMI_OEM_VIKING = 9237, diff --git a/sys-apps/ipmitool/files/log_bmc.initd b/sys-apps/ipmitool/files/log_bmc.initd new file mode 100644 index 000000000000..4064edf3b84d --- /dev/null +++ b/sys-apps/ipmitool/files/log_bmc.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="log_bmc" +description="Add SEL entries to indicate OS Boot status" +command=/usr/libexec/log_bmc.sh +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use modules + after ipmievd # to capture our own log event + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + # TODO: should this keep start so it only fires once per boot? + "${command}" os_boot +} + +stop() { + "${command}" os_shutdown +} diff --git a/sys-apps/ipmitool/ipmitool-1.8.19.ebuild b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild new file mode 100644 index 000000000000..fabe705490a8 --- /dev/null +++ b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="Utility for controlling IPMI enabled devices" +HOMEPAGE="https://github.com/ipmitool/ipmitool" + +COMMIT_ID= +if [[ -n "${COMMIT_ID}" ]]; then + SRC_URI="https://github.com/${PN}/${PN}/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${COMMIT_ID}" +else + MY_P="${PN^^}_${PV//./_}" + SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/${MY_P}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${MY_P}" +fi + +# to generate: `make enterprise-numbers` from git checkout of release tag +SRC_URI+=" + https://dev.gentoo.org/~ajak/distfiles/${CATEGORY}/${PN}/enterprise-numbers-${PV}.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~x86" +IUSE="openbmc openipmi static" + +RDEPEND="dev-libs/openssl:0= + sys-libs/readline:0= + openbmc? ( sys-apps/systemd:0= )" +DEPEND="${RDEPEND} + >=sys-devel/autoconf-2.69-r5 + virtual/os-headers + openipmi? ( sys-libs/openipmi )" + #freeipmi? ( sys-libs/freeipmi ) +# ipmitool CAN build against || ( sys-libs/openipmi sys-libs/freeipmi ) +# but it doesn't actually need either. + +PATCHES=( + # yoinked out of debian's patchset, previously carried in a SRC_URI + # tarball + "${FILESDIR}/${P}-fix-buffer-overflow.patch" + "${FILESDIR}/${P}-CVE-2011-4339.patch" + "${FILESDIR}/${P}-manpage-longlines.patch" + "${FILESDIR}/${P}-nvidia-iana.patch" +) + +src_prepare() { + default + + # Gentoo chooses to install ipmitool in /usr/sbin + # Where RedHat chooses /usr/bin + sed -i -e \ + 's,/usr/bin/ipmitool,/usr/sbin/ipmitool,g' \ + "${S}"/contrib/* \ + || die "sed bindir failed" + + eautoreconf + + # If this file is not present, then ipmitool will try to download it during make install! + cp -al "${WORKDIR}/enterprise-numbers-${PV}" "${S}/enterprise-numbers" \ + || die "Could not place IANA enterprise-numbers" +} + +src_configure() { + # - LIPMI and BMC are the Solaris libs + # - OpenIPMI is unconditionally enabled in the configure as there is compat + # code that is used if the library itself is not available + # FreeIPMI does build now, but is disabled until the other arches keyword it + # `use_enable freeipmi intf-free` \ + # --enable-ipmievd is now unconditional + + local econfargs=( + $(use_enable static) \ + --enable-ipmishell \ + --enable-intf-lan \ + --enable-intf-usb \ + $(use_enable openbmc intf-dbus) \ + --enable-intf-lanplus \ + --enable-intf-open \ + --enable-intf-serial \ + --disable-intf-bmc \ + --disable-intf-dummy \ + --disable-intf-free \ + --disable-intf-imb \ + --disable-intf-lipmi \ + --disable-internal-md5 \ + --with-kerneldir=/usr \ + --bindir=/usr/sbin \ + --runstatedir=/run \ + CFLAGS="${CFLAGS}" + ) + + econf "${econfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" PACKAGE="${PF}" install + into /usr + + newinitd "${FILESDIR}/ipmievd.initd" ipmievd + newconfd "${FILESDIR}/ipmievd.confd" ipmievd + + # From debian, less configurable than OpenRC + systemd_dounit "${FILESDIR}/ipmievd.service" + + dosbin contrib/bmclanconf + + exeinto /usr/libexec + doexe contrib/log_bmc.sh + newinitd "${FILESDIR}/log_bmc.initd" log_bmc + + # contrib/exchange-bmc-os-info.init.redhat + # contrib/exchange-bmc-os-info.service.redhat + # contrib/exchange-bmc-os-info.sysconf + exeinto /usr/libexec + newexe contrib/exchange-bmc-os-info.init.redhat exchange-bmc-os-info + + insinto /etc/sysconfig + newins contrib/exchange-bmc-os-info.sysconf exchange-bmc-os-info + + systemd_newunit contrib/exchange-bmc-os-info.service.redhat exchange-bmc-os-info.service + newinitd "${FILESDIR}/exchange-bmc-os-info.initd" exchange-bmc-os-info + + # contrib/bmc-snmp-proxy + # contrib/bmc-snmp-proxy.service + # contrib/bmc-snmp-proxy.sysconf + exeinto /usr/libexec + doexe contrib/bmc-snmp-proxy + + insinto /etc/sysconfig + newins contrib/bmc-snmp-proxy.sysconf bmc-snmp-proxy + + systemd_dounit contrib/bmc-snmp-proxy.service + # TODO: initd for bmc-snmp-proxy + + insinto "/usr/share/${PN}" + doins contrib/oem_ibm_sel_map + + cd "${S}/contrib" + + docinto contrib + dodoc collect_data.sh create_rrds.sh create_webpage_compact.sh create_webpage.sh README +}