public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
@ 2018-06-13 13:05 Lars Wendler
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Wendler @ 2018-06-13 13:05 UTC (permalink / raw
  To: gentoo-commits

commit:     ce46fc22b9579eed7f0f3778cf4f53016dc215f0
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 13 13:04:37 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Wed Jun 13 13:04:58 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce46fc22

sys-apps/ipmitool: Fixed build against openssl-1.1

Closes: https://bugs.gentoo.org/592494
Package-Manager: Portage-2.3.40, Repoman-2.3.9

 .../files/ipmitool-1.8.18-openssl-1.1.patch        | 145 +++++++++++++++++++++
 sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild        |   6 +-
 2 files changed, 150 insertions(+), 1 deletion(-)

diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch b/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch
new file mode 100644
index 00000000000..9e5a876f00a
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch
@@ -0,0 +1,145 @@
+Taken from various upstream commits:
+
+https://github.com/ipmitool/ipmitool/commit/b57487e360916ab3eaa50aa6d021c73b6337a4a0
+https://github.com/ipmitool/ipmitool/commit/77fe5635037ebaf411cae46cf5045ca819b5c145
+https://github.com/ipmitool/ipmitool/commit/f004b4b7197fc83e7d47ec8cbcaefffa9a922717
+https://github.com/ipmitool/ipmitool/commit/f004b4b7197fc83e7d47ec8cbcaefffa9a922717
+
+--- ipmitool-1.8.18/src/plugins/lanplus/lanplus_crypt_impl.c
++++ ipmitool-1.8.18/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -164,11 +164,7 @@
+ 							uint8_t       * output,
+ 							uint32_t        * bytes_written)
+ {
+-	EVP_CIPHER_CTX ctx;
+-	EVP_CIPHER_CTX_init(&ctx);
+-	EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+-	EVP_CIPHER_CTX_set_padding(&ctx, 0);
+-	
++	EVP_CIPHER_CTX *ctx = NULL;
+ 
+ 	*bytes_written = 0;
+ 
+@@ -182,6 +178,14 @@
+ 		printbuf(input, input_length, "encrypting this data");
+ 	}
+ 
++	ctx = EVP_CIPHER_CTX_new();
++	if (ctx == NULL) {
++		lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++		return;
++	}
++	EVP_CIPHER_CTX_init(ctx);
++	EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++	EVP_CIPHER_CTX_set_padding(ctx, 0);
+ 
+ 	/*
+ 	 * The default implementation adds a whole block of padding if the input
+@@ -191,28 +195,28 @@
+ 	assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+ 
+ 
+-	if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++	if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+ 	{
+ 		/* Error */
+ 		*bytes_written = 0;
+-		return;
+ 	}
+ 	else
+ 	{
+ 		uint32_t tmplen;
+ 
+-		if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++		if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ 		{
++			/* Error */
+ 			*bytes_written = 0;
+-			return; /* Error */
+ 		}
+ 		else
+ 		{
+ 			/* Success */
+ 			*bytes_written += tmplen;
+-			EVP_CIPHER_CTX_cleanup(&ctx);
+ 		}
+ 	}
++	/* performs cleanup and free */
++	EVP_CIPHER_CTX_free(ctx);
+ }
+ 
+ 
+@@ -239,11 +243,7 @@
+ 							uint8_t       * output,
+ 							uint32_t        * bytes_written)
+ {
+-	EVP_CIPHER_CTX ctx;
+-	EVP_CIPHER_CTX_init(&ctx);
+-	EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+-	EVP_CIPHER_CTX_set_padding(&ctx, 0);
+-
++	EVP_CIPHER_CTX *ctx = NULL;
+ 
+ 	if (verbose >= 5)
+ 	{
+@@ -252,12 +252,20 @@
+ 		printbuf(input, input_length, "decrypting this data");
+ 	}
+ 
+-
+ 	*bytes_written = 0;
+ 
+ 	if (input_length == 0)
+ 		return;
+ 
++	ctx = EVP_CIPHER_CTX_new();
++	if (ctx == NULL) {
++		lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++		return;
++	}
++	EVP_CIPHER_CTX_init(ctx);
++	EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++	EVP_CIPHER_CTX_set_padding(ctx, 0);
++
+ 	/*
+ 	 * The default implementation adds a whole block of padding if the input
+ 	 * data is perfectly aligned.  We would like to keep that from happening.
+@@ -266,33 +274,33 @@
+ 	assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+ 
+ 
+-	if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++	if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+ 	{
+ 		/* Error */
+ 		lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
+ 		*bytes_written = 0;
+-		return;
+ 	}
+ 	else
+ 	{
+ 		uint32_t tmplen;
+ 
+-		if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++		if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ 		{
++			/* Error */
+ 			char buffer[1000];
+ 			ERR_error_string(ERR_get_error(), buffer);
+ 			lprintf(LOG_DEBUG, "the ERR error %s", buffer);
+ 			lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
+ 			*bytes_written = 0;
+-			return; /* Error */
+ 		}
+ 		else
+ 		{
+ 			/* Success */
+ 			*bytes_written += tmplen;
+-			EVP_CIPHER_CTX_cleanup(&ctx);
+ 		}
+ 	}
++	/* performs cleanup and free */
++	EVP_CIPHER_CTX_free(ctx);
+ 
+ 	if (verbose >= 5)
+ 	{

diff --git a/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild b/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild
index 62f5859016f..6c26d8e0980 100644
--- a/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild
+++ b/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -29,6 +29,10 @@ DEPEND="${RDEPEND}
 # ipmitool CAN build against || ( sys-libs/openipmi sys-libs/freeipmi )
 # but it doesn't actually need either.
 
+PATCHES=(
+	"${FILESDIR}"/${P}-openssl-1.1.patch
+)
+
 src_prepare() {
 	default
 	[ -d "${S}"/debian ] && mv "${S}"/debian{,.package}


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
@ 2020-10-24 22:12 Robin H. Johnson
  0 siblings, 0 replies; 5+ messages in thread
From: Robin H. Johnson @ 2020-10-24 22:12 UTC (permalink / raw
  To: gentoo-commits

commit:     436e19902cf8f23717c3605903248dcb273b890e
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 24 21:37:04 2020 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Sat Oct 24 22:12:00 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=436e1990

sys-apps/ipmitool: cleanup init & add contrib tools

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 .../files/exchange-bmc-os-info-1.8.18.initd        |  23 +++
 .../ipmitool/files/ipmitool-1.8.18-ipmievd.confd   |  27 +++
 .../ipmitool/files/ipmitool-1.8.18-ipmievd.initd   |  28 +++
 sys-apps/ipmitool/files/log_bmc-1.8.18.initd       |  25 +++
 .../ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild   | 200 +++++++++++++++++++++
 5 files changed, 303 insertions(+)

diff --git a/sys-apps/ipmitool/files/exchange-bmc-os-info-1.8.18.initd b/sys-apps/ipmitool/files/exchange-bmc-os-info-1.8.18.initd
new file mode 100644
index 00000000000..9c63983f21f
--- /dev/null
+++ b/sys-apps/ipmitool/files/exchange-bmc-os-info-1.8.18.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/ipmitool-1.8.18-ipmievd.confd b/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.confd
new file mode 100644
index 00000000000..b860c23c7f8
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmitool-1.8.18-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/ipmitool-1.8.18-ipmievd.initd b/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.initd
new file mode 100644
index 00000000000..e8ef2c39d45
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmitool-1.8.18-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/log_bmc-1.8.18.initd b/sys-apps/ipmitool/files/log_bmc-1.8.18.initd
new file mode 100644
index 00000000000..4064edf3b84
--- /dev/null
+++ b/sys-apps/ipmitool/files/log_bmc-1.8.18.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.18_p20201004-r2.ebuild b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild
new file mode 100644
index 00000000000..a5724717937
--- /dev/null
+++ b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild
@@ -0,0 +1,200 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools eutils flag-o-matic systemd
+
+DESCRIPTION="Utility for controlling IPMI enabled devices."
+HOMEPAGE="http://ipmitool.sf.net/"
+DEBIAN_PR="9.debian"
+DEBIAN_PV="${PV/_p*}"
+DEBIAN_P="${PN}_${DEBIAN_PV}"
+DEBIAN_PF="${DEBIAN_P}-${DEBIAN_PR}"
+COMMIT_ID=7fd7c0f2ba39e223868a8d83d81d4074f057d6fc
+if [[ -n "${COMMIT_ID}" ]]; then
+	S="${WORKDIR}/${PN}-${COMMIT_ID}"
+	SRC_URI="https://github.com/ipmitool/ipmitool/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz"
+else
+	SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+fi
+# https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
+# is not available with version numbers or dates!
+SRC_URI+="
+	https://dev.gentoo.org/~robbat2/distfiles/ipmitool_1.8.18-9.debian-ported-gentoo.tar.xz
+	https://dev.gentoo.org/~robbat2/distfiles/enterprise-numbers.2020-10-21.xz
+	"
+	#http://http.debian.net/debian/pool/main/i/${PN}/${DEBIAN_PF}.tar.xz
+	# https://launchpad.net/ubuntu/+archive/primary/+files/${DEBIAN_PF}.tar.xz
+#IUSE="freeipmi openipmi status"
+IUSE="libressl openbmc openipmi static"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~x86"
+LICENSE="BSD"
+
+RDEPEND="
+	!libressl? ( dev-libs/openssl:0= )
+	libressl? ( dev-libs/libressl:0= )
+	openbmc? ( sys-apps/systemd:0= )
+	sys-libs/readline:0="
+DEPEND="${RDEPEND}
+		openipmi? ( sys-libs/openipmi )
+		virtual/os-headers"
+		#freeipmi? ( sys-libs/freeipmi )
+# ipmitool CAN build against || ( sys-libs/openipmi sys-libs/freeipmi )
+# but it doesn't actually need either.
+
+PATCHES=(
+	#"${FILESDIR}"/${P}-openssl-1.1.patch
+)
+
+# I hope all of this will get MUCH cleaner if upstream will just make a new
+# release! - robbat2 2020/10/21
+src_prepare() {
+	default
+	if [ -d "${S}"/debian ] ; then
+		mv "${S}"/debian{,.package}
+		ln -s "${WORKDIR}"/debian "${S}"
+		eautoreconf
+		# Upstream commit includes SOME of the debian changes, but not all of them
+		sed -i \
+			-e '/^#/d' \
+			-e '/0120-openssl1.1.patch/d' \
+			debian/patches/series
+		for p in $(cat debian/patches/series) ; do
+			echo $p
+			if ! nonfatal eapply -p1 debian/patches/$p ; then
+				echo "failed $p"
+				fail=1
+			fi
+		done
+		[[ $fail -eq 1 ]] && die "fail"
+	fi
+	pd="${WORKDIR}"/ipmitool_1.8.18-9.debian-ported-gentoo/
+	PATCHES=(
+		#"${pd}"/0000.0120-openssl1.1.patch
+		"${pd}"/0001.0100-fix_buf_overflow.patch
+		"${pd}"/0002.0500-fix_CVE-2011-4339.patch
+		"${pd}"/0003.0600-manpage_longlines.patch
+		#"${pd}"/0004.0110-getpass-prototype.patch
+		#"${pd}"/0005.0115-typo.patch
+		"${pd}"/0006.0125-nvidia-iana.patch
+		"${pd}"/0007.0615-manpage_typo.patch
+		#"${pd}"/0008.0130-Correct_lanplus_segment_violation.patch
+		"${pd}"/0009.0005-gcc10.patch
+		#"${pd}"/0010.0010-utf8.patch
+	)
+	for p in "${PATCHES[@]}" ; do
+		eapply -p1 $p || die "failed $p"
+	done
+
+	# 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"
+
+	# Consistent RUNSTATEDIR
+	sed -i -e \
+		's,/var/run,/run,g' \
+		"${S}/doc/ipmievd.8.in" \
+		"${S}"/contrib/* \
+		"${S}"/lib/helper.c \
+		"${S}"/src/ipmievd.c \
+		|| die "sed /var/run failed"
+
+	eautoreconf
+
+	# If this file is not present, then ipmitool will try to download it during make install!
+	cp -al \
+		"${WORKDIR}/enterprise-numbers.2020-10-21" \
+		"${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
+
+	# for pidfiles, runstatedir not respected in all parts of code
+	append-cppflags -D_PATH_VARRUN=/run/
+
+	# WGET & CURL are set to avoid network interaction, we manually inject the
+	# IANA enterprise-numbers file instead.
+	#
+	# DEFAULT_INTF=open # default to OpenIPMI, do not take external input
+	WGET=/bin/true \
+	CURL=/bin/true \
+	DEFAULT_INTF=open \
+	econf \
+		$(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}"
+
+	# Fix linux/ipmi.h to compile properly. This is a hack since it doesn't
+	# include the below file to define some things.
+	echo "#include <asm/byteorder.h>" >>config.h
+
+}
+
+src_install() {
+	emake DESTDIR="${D}" PACKAGE="${PF}" install
+	rm -f "${D}"/usr/share/doc/${PF}/COPYING
+	into /usr
+
+	newinitd "${FILESDIR}"/${PN}-1.8.18-ipmievd.initd ipmievd
+	newconfd "${FILESDIR}"/${PN}-1.8.18-ipmievd.confd ipmievd
+
+	# Everything past this point is installing contrib/
+	dosbin contrib/bmclanconf
+
+	exeinto /usr/libexec
+	doexe contrib/log_bmc.sh
+	newinitd "${FILESDIR}/log_bmc-1.8.18.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-1.8.18.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
+
+	docinto contrib
+	cd "${S}"/contrib
+	dodoc collect_data.sh create_rrds.sh create_webpage_compact.sh create_webpage.sh README
+}


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
@ 2020-10-24 23:00 Robin H. Johnson
  0 siblings, 0 replies; 5+ messages in thread
From: Robin H. Johnson @ 2020-10-24 23:00 UTC (permalink / raw
  To: gentoo-commits

commit:     95ec1db1409c91b3683d7af31b13b1b8648bb3e8
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 24 22:59:40 2020 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Sat Oct 24 23:00:09 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95ec1db1

sys-apps/ipmitool: systemd unit for ipmievd

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 sys-apps/ipmitool/files/ipmievd.service            |  10 +
 .../ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild   | 202 +++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-apps/ipmitool/files/ipmievd.service b/sys-apps/ipmitool/files/ipmievd.service
new file mode 100644
index 00000000000..fdae14f231c
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmievd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=IPMI event daemon
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ipmievd open daemon
+
+[Install]
+WantedBy=multi-user.target
+Alias=ipmi.service

diff --git a/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild
new file mode 100644
index 00000000000..528c0393a61
--- /dev/null
+++ b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools eutils flag-o-matic systemd
+
+DESCRIPTION="Utility for controlling IPMI enabled devices."
+HOMEPAGE="http://ipmitool.sf.net/"
+DEBIAN_PR="9.debian"
+DEBIAN_PV="${PV/_p*}"
+DEBIAN_P="${PN}_${DEBIAN_PV}"
+DEBIAN_PF="${DEBIAN_P}-${DEBIAN_PR}"
+COMMIT_ID=7fd7c0f2ba39e223868a8d83d81d4074f057d6fc
+if [[ -n "${COMMIT_ID}" ]]; then
+	S="${WORKDIR}/${PN}-${COMMIT_ID}"
+	SRC_URI="https://github.com/ipmitool/ipmitool/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz"
+else
+	SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+fi
+# https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
+# is not available with version numbers or dates!
+SRC_URI+="
+	https://dev.gentoo.org/~robbat2/distfiles/ipmitool_1.8.18-9.debian-ported-gentoo.tar.xz
+	https://dev.gentoo.org/~robbat2/distfiles/enterprise-numbers.2020-10-21.xz
+	"
+	#http://http.debian.net/debian/pool/main/i/${PN}/${DEBIAN_PF}.tar.xz
+	# https://launchpad.net/ubuntu/+archive/primary/+files/${DEBIAN_PF}.tar.xz
+#IUSE="freeipmi openipmi status"
+IUSE="libressl openbmc openipmi static"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~x86"
+LICENSE="BSD"
+
+RDEPEND="
+	!libressl? ( dev-libs/openssl:0= )
+	libressl? ( dev-libs/libressl:0= )
+	openbmc? ( sys-apps/systemd:0= )
+	sys-libs/readline:0="
+DEPEND="${RDEPEND}
+		openipmi? ( sys-libs/openipmi )
+		virtual/os-headers"
+		#freeipmi? ( sys-libs/freeipmi )
+# ipmitool CAN build against || ( sys-libs/openipmi sys-libs/freeipmi )
+# but it doesn't actually need either.
+
+PATCHES=(
+	#"${FILESDIR}"/${P}-openssl-1.1.patch
+)
+
+# I hope all of this will get MUCH cleaner if upstream will just make a new
+# release! - robbat2 2020/10/21
+src_prepare() {
+	default
+	if [ -d "${S}"/debian ] ; then
+		mv "${S}"/debian{,.package}
+		ln -s "${WORKDIR}"/debian "${S}"
+		eautoreconf
+		# Upstream commit includes SOME of the debian changes, but not all of them
+		sed -i \
+			-e '/^#/d' \
+			-e '/0120-openssl1.1.patch/d' \
+			debian/patches/series
+		for p in $(cat debian/patches/series) ; do
+			echo $p
+			if ! nonfatal eapply -p1 debian/patches/$p ; then
+				echo "failed $p"
+				fail=1
+			fi
+		done
+		[[ $fail -eq 1 ]] && die "fail"
+	fi
+	pd="${WORKDIR}"/ipmitool_1.8.18-9.debian-ported-gentoo/
+	PATCHES=(
+		#"${pd}"/0000.0120-openssl1.1.patch
+		"${pd}"/0001.0100-fix_buf_overflow.patch
+		"${pd}"/0002.0500-fix_CVE-2011-4339.patch
+		"${pd}"/0003.0600-manpage_longlines.patch
+		#"${pd}"/0004.0110-getpass-prototype.patch
+		#"${pd}"/0005.0115-typo.patch
+		"${pd}"/0006.0125-nvidia-iana.patch
+		"${pd}"/0007.0615-manpage_typo.patch
+		#"${pd}"/0008.0130-Correct_lanplus_segment_violation.patch
+		"${pd}"/0009.0005-gcc10.patch
+		#"${pd}"/0010.0010-utf8.patch
+	)
+	for p in "${PATCHES[@]}" ; do
+		eapply -p1 $p || die "failed $p"
+	done
+
+	# 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"
+
+	# Consistent RUNSTATEDIR
+	sed -i -e \
+		's,/var/run,/run,g' \
+		"${S}/doc/ipmievd.8.in" \
+		"${S}"/contrib/* \
+		"${S}"/lib/helper.c \
+		"${S}"/src/ipmievd.c \
+		|| die "sed /var/run failed"
+
+	eautoreconf
+
+	# If this file is not present, then ipmitool will try to download it during make install!
+	cp -al \
+		"${WORKDIR}/enterprise-numbers.2020-10-21" \
+		"${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
+
+	# for pidfiles, runstatedir not respected in all parts of code
+	append-cppflags -D_PATH_VARRUN=/run/
+
+	# WGET & CURL are set to avoid network interaction, we manually inject the
+	# IANA enterprise-numbers file instead.
+	#
+	# DEFAULT_INTF=open # default to OpenIPMI, do not take external input
+	WGET=/bin/true \
+	CURL=/bin/true \
+	DEFAULT_INTF=open \
+	econf \
+		$(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}"
+
+	# Fix linux/ipmi.h to compile properly. This is a hack since it doesn't
+	# include the below file to define some things.
+	echo "#include <asm/byteorder.h>" >>config.h
+
+}
+
+src_install() {
+	emake DESTDIR="${D}" PACKAGE="${PF}" install
+	rm -f "${D}"/usr/share/doc/${PF}/COPYING
+	into /usr
+
+	newinitd "${FILESDIR}"/${PN}-1.8.18-ipmievd.initd ipmievd
+	newconfd "${FILESDIR}"/${PN}-1.8.18-ipmievd.confd ipmievd
+	# From debian, less configurable than OpenRC
+	systemd_dounit "${FILESDIR}"/ipmievd.service
+
+	# Everything past this point is installing contrib/
+	dosbin contrib/bmclanconf
+
+	exeinto /usr/libexec
+	doexe contrib/log_bmc.sh
+	newinitd "${FILESDIR}/log_bmc-1.8.18.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-1.8.18.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
+
+	docinto contrib
+	cd "${S}"/contrib
+	dodoc collect_data.sh create_rrds.sh create_webpage_compact.sh create_webpage.sh README
+}


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
@ 2022-09-10  3:38 John Helmert III
  0 siblings, 0 replies; 5+ messages in thread
From: John Helmert III @ 2022-09-10  3:38 UTC (permalink / raw
  To: gentoo-commits

commit:     9bace2960c71f0384e949596feae06b0bc71b6f9
Author:     John Helmert III <ajak <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  8 04:46:37 2022 +0000
Commit:     John Helmert III <ajak <AT> gentoo <DOT> 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 <ajak <AT> 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 <debian@jff-webhosting.net>
+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 <l3on@ubuntu.com> 
+Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
+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 <debian@jff-webhosting.net>
+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 <dannf@debian.org>
+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
+}


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
@ 2022-09-10  3:48 John Helmert III
  0 siblings, 0 replies; 5+ messages in thread
From: John Helmert III @ 2022-09-10  3:48 UTC (permalink / raw
  To: gentoo-commits

commit:     d795de12c5f50d63651613565e72a0c5871b7763
Author:     John Helmert III <ajak <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 10 03:46:52 2022 +0000
Commit:     John Helmert III <ajak <AT> gentoo <DOT> org>
CommitDate: Sat Sep 10 03:46:52 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d795de12

sys-apps/ipmitool: add missing function declarations

For clang-15 compat.

Signed-off-by: John Helmert III <ajak <AT> gentoo.org>

 .../files/ipmitool-1.8.19-missing-func-decl.patch  | 32 ++++++++++++++++++++++
 sys-apps/ipmitool/ipmitool-1.8.19.ebuild           |  1 +
 2 files changed, 33 insertions(+)

diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch
new file mode 100644
index 000000000000..5057fcaf0525
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch
@@ -0,0 +1,32 @@
+https://github.com/ipmitool/ipmitool/pull/360
+
+From a9e262480722f5affd237ee10d0bbc8c55617cb7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 07:30:10 -0700
+Subject: [PATCH] ipmi_fru.c: Provide missing function declarations
+
+Fixes build with clang-15+
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/ipmi_fru.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
+index 3d1d8a1a..5c5661cf 100644
+--- a/lib/ipmi_fru.c
++++ b/lib/ipmi_fru.c
+@@ -60,6 +60,13 @@ static const char *section_id[4] = {
+ 	"Board Section",
+ 	"Product Section"
+ };
++/* From lib/ipmi_hpmfwupg.c: */
++uint16_t
++ipmi_intf_get_max_request_data_size(struct ipmi_intf * intf);
++
++/* From src/plugins/ipmi_intf.c: */
++uint16_t
++ipmi_intf_get_max_response_data_size(struct ipmi_intf * intf);
+ 
+ static const char * combined_voltage_desc[] = {
+ 	"12 V",

diff --git a/sys-apps/ipmitool/ipmitool-1.8.19.ebuild b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild
index fabe705490a8..318e661f232d 100644
--- a/sys-apps/ipmitool/ipmitool-1.8.19.ebuild
+++ b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild
@@ -39,6 +39,7 @@ DEPEND="${RDEPEND}
 # but it doesn't actually need either.
 
 PATCHES=(
+	"${FILESDIR}/${P}-missing-func-decl.patch"
 	# yoinked out of debian's patchset, previously carried in a SRC_URI
 	# tarball
 	"${FILESDIR}/${P}-fix-buffer-overflow.patch"


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-10  3:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-24 23:00 [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/ Robin H. Johnson
  -- strict thread matches above, loose matches on Subject: below --
2022-09-10  3:48 John Helmert III
2022-09-10  3:38 John Helmert III
2020-10-24 22:12 Robin H. Johnson
2018-06-13 13:05 Lars Wendler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox