# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit autotools eutils 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 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 WGET=/bin/true \ CURL=/bin/true \ 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 # 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 " >>config.h } src_install() { emake DESTDIR="${D}" PACKAGE="${PF}" install into /usr dosbin contrib/bmclanconf rm -f "${D}"/usr/share/doc/${PF}/COPYING docinto contrib cd "${S}"/contrib dodoc collect_data.sh create_rrds.sh create_webpage_compact.sh create_webpage.sh README newinitd "${FILESDIR}"/${PN}-1.8.9-ipmievd.initd ipmievd newconfd "${FILESDIR}"/${PN}-1.8.9-ipmievd.confd ipmievd # TODO: init script for contrib/bmc-snmp-proxy # TODO: contrib/exchange-bmc-os-info }