public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Robin H. Johnson" <robbat2@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
Date: Sat, 24 Oct 2020 23:00:12 +0000 (UTC)	[thread overview]
Message-ID: <1603580409.95ec1db1409c91b3683d7af31b13b1b8648bb3e8.robbat2@gentoo> (raw)

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
+}


             reply	other threads:[~2020-10-24 23:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-24 23:00 Robin H. Johnson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-09-10  3:48 [gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/ 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1603580409.95ec1db1409c91b3683d7af31b13b1b8648bb3e8.robbat2@gentoo \
    --to=robbat2@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox