summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-09-24 00:16:44 +0100
committerSam James <sam@gentoo.org>2023-09-24 00:16:46 +0100
commit65133120acc4590beec5e77e6a92f2a7fc49b375 (patch)
treedb082d4525775907b5e2303ea22f1ec5e8ef3af4 /sys-apps/ipmitool
parentsys-apps/ipmitool: update HOMEPAGE, SRC_URI (diff)
downloadgentoo-65133120acc4590beec5e77e6a92f2a7fc49b375.tar.gz
gentoo-65133120acc4590beec5e77e6a92f2a7fc49b375.tar.bz2
gentoo-65133120acc4590beec5e77e6a92f2a7fc49b375.zip
sys-apps/ipmitool: filter-lto & -fno-strict-aliasing
Not really worried about fixing this properly at the moment given it's filled with device-specific hax anyway and hard to test. Closes: https://bugs.gentoo.org/863587 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-apps/ipmitool')
-rw-r--r--sys-apps/ipmitool/ipmitool-1.8.19-r1.ebuild155
1 files changed, 155 insertions, 0 deletions
diff --git a/sys-apps/ipmitool/ipmitool-1.8.19-r1.ebuild b/sys-apps/ipmitool/ipmitool-1.8.19-r1.ebuild
new file mode 100644
index 000000000000..6c2e4e526b97
--- /dev/null
+++ b/sys-apps/ipmitool/ipmitool-1.8.19-r1.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic systemd
+
+DESCRIPTION="Utility for controlling IPMI enabled devices"
+HOMEPAGE="https://codeberg.org/IPMITool/ipmitool"
+
+COMMIT_ID=
+if [[ -n "${COMMIT_ID}" ]]; then
+ SRC_URI="https://github.com/ipmitool/ipmitool/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${COMMIT_ID}"
+else
+ MY_P="${PN^^}_${PV//./_}"
+ SRC_URI="https://github.com/ipmitool/ipmitool/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 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="openbmc openipmi static"
+
+RDEPEND="
+ dev-libs/openssl:=
+ sys-libs/readline:=
+ openbmc? ( sys-apps/systemd:= )
+"
+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=(
+ "${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"
+ "${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() {
+ # bug #863587
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ # - 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
+}