From c993d81e783d0ba769c341e67e7f0419131d3d3a Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sat, 25 Jan 2020 23:02:39 -0800 Subject: sys-apps/ipmiutil: bump & fix broken upstream configure for lanplus Upstream 2.1.4 release broke the lanplus selection in configure.ac, this is fixed patch ipmiutil-3.1.5-fix-configure.patch which has been submitted upstream. Signed-off-by: Robin H. Johnson --- .../files/ipmiutil-3.1.5-fix-configure.patch | 180 +++++++++++++++++++++ sys-apps/ipmiutil/ipmiutil-3.1.5-r1.ebuild | 66 ++++++++ 2 files changed, 246 insertions(+) create mode 100644 sys-apps/ipmiutil/files/ipmiutil-3.1.5-fix-configure.patch create mode 100644 sys-apps/ipmiutil/ipmiutil-3.1.5-r1.ebuild diff --git a/sys-apps/ipmiutil/files/ipmiutil-3.1.5-fix-configure.patch b/sys-apps/ipmiutil/files/ipmiutil-3.1.5-fix-configure.patch new file mode 100644 index 000000000000..8748256be5f6 --- /dev/null +++ b/sys-apps/ipmiutil/files/ipmiutil-3.1.5-fix-configure.patch @@ -0,0 +1,180 @@ +--- ipmiutil-3.1.5.orig/configure.ac 2019-11-25 06:53:08.000000000 -0800 ++++ ipmiutil-3.1.5/configure.ac 2020-01-25 22:55:20.577345441 -0800 +@@ -80,40 +80,46 @@ + # fi] + + drv_landesk=0 ++LANDESK_CFLAGS="" ++LANDESK_LDADD="" + dnl configure for LANDESK libipmiapi or not + AC_ARG_ENABLE([landesk], +- [ --enable-landesk adds landesk library support [[default=no]]], +- [if test "x$enableval" = "xyes"; then +- drv_landesk=1 +- LANDESK_CFLAGS="-DLINK_LANDESK" +- LANDESK_LDADD="-lipmiapi -L../lib" +- AC_SUBST(LANDESK_CFLAGS) +- AC_SUBST(LANDESK_LDADD) +- fi] +- ) ++ AS_HELP_STRING([--enable-landesk], [enable landesk support (default=no)]), ++ [], ++ [enable_landesk=no]) ++ ++AS_IF([test "x$enable_landesk" = "xyes"], [ ++ drv_landesk=1 ++ LANDESK_CFLAGS="-DLINK_LANDESK" ++ LANDESK_LDADD="-lipmiapi -L../lib" ++ AC_SUBST(LANDESK_CFLAGS) ++ AC_SUBST(LANDESK_LDADD) ++ ]) + + dnl Configure ipmiutil for lanplus (libipmi_lanplus.a) or not (default yes) + AC_ARG_ENABLE([lanplus], +- [ --enable-lanplus enable lanplus support (default=yes)],[default=yes], +-[if test "x$enableval" = "xno"; then +- drv_lanplus="" +- LANPLUS_CFLAGS="" +- LANPLUS_LDADD="" +- LANPLUS_LIB="" +- LANPLUS_CRYPTO="" +- LANPLUS_SAM="no" +- LD_SAMX="" +-else ++ AS_HELP_STRING([--disable-lanplus], [enable lanplus support (default=yes)]), ++ [], ++ [enable_lanplus=yes]) ++ ++drv_lanplus="" ++LANPLUS_CFLAGS="" ++LANPLUS_LDADD="" ++LANPLUS_LIB="" ++LANPLUS_CRYPTO="" ++LANPLUS_SAM="no" ++LD_SAMX="" ++AS_IF([test "x$enable_lanplus" = "xyes"], [ + drv_lanplus="lanplus" + LANPLUS_CFLAGS="-DHAVE_LANPLUS" + # LANPLUS_CFLAGS="-DHAVE_LANPLUS -I${projdir}/lib/lanplus/inc" + # LANPLUS_LDADD="-L../lib -lintf_lanplus -L/usr/local/lib -lcrypto" + LANPLUS_LDADD="-L../lib -lipmi_lanplus -L/usr/local/lib -lcrypto" +- LANPLUS_LIB="../lib/libipmi_lanplus.a" ++ LANPLUS_LIB="../lib/libipmi_lanplus.a" + LANPLUS_CRYPTO="-lcrypto" + LANPLUS_SAM="yes" + LD_SAMX="../lib/libipmi_lanplus.a -lcrypto" +-fi ]) ++]) + + dnl Configure libipmiutil.a for lanplus or not + dnl Only SOL requires lanplus, so usually build libipmiutil.a without lanplus +@@ -128,21 +134,28 @@ + #fi + + # strings /lib/libssl.so* |grep EVP_sha256 +-dnl configure for SHA256, build lanplus with SHA256 support, uses later openssl. ++dnl configure for SHA256, build lanplus with SHA256 support ++dnl requires openssl-1.0.1 which was released in 2012/03 + AC_ARG_ENABLE([sha256], +- [ --enable-sha256 build with SHA256 support, requires later openssl.], +- [if test "x$enableval" = "xyes"; then +- LANPLUS_CFLAGS="$LANPLUS_CFLAGS -DHAVE_SHA256" +- fi] +- ) ++ AS_HELP_STRING([--disable-sha256], [build with SHA256 support (default=yes)]), ++ dnl action if passed ++ [], ++ dnl action if not passed ++ [enable_sha256=yes] ++ ) ++AS_IF([test "x$enable_sha256" = "xyes"], [ ++ LANPLUS_CFLAGS="$LANPLUS_CFLAGS -DHAVE_SHA256" ++]) + + dnl configure for EKANALYZER, build with ekanalyzer function enabled + AC_ARG_ENABLE([ekanalyzer], +- [ --enable-ekanalyzer build with ekanalyzer function enabled.], +- [if test "x$enableval" = "xyes"; then ++ AS_HELP_STRING([--enable-ekanalyzer], [build with ekanalyzer function enabled.]), ++ [], ++ [enable_ekanalyzer=no] ++ ) ++AS_IF([test "x$enable_ekanalyzer" = "xyes"], [ + OS_CFLAGS="$OS_CFLAGS -DHAVE_EKANAL" +- fi] +- ) ++ ]) + + GPL_CFLAGS="" + CROSS_LFLAGS="" +@@ -152,17 +165,20 @@ + SYSTEMD_DIR=/usr/share/ipmiutil + + AC_ARG_ENABLE([useflags], +- [ --enable-useflags include environment CFLAGS and LDFLAGS.], +- [if test "x$enableval" = "xyes"; then ++ AS_HELP_STRING([--enable-useflags], [include environment CFLAGS and LDFLAGS.]), ++ [], ++ [enable_useflags=no]) ++AS_IF([test "x$enable_useflags" = "xyes"], [ + CROSS_CFLAGS="$CFLAGS" + CROSS_LFLAGS="$LDFLAGS" +- fi] +- ) ++]) + + dnl configure for standalone, with no lanplus or GPL libs + AC_ARG_ENABLE([standalone], +- [ --enable-standalone build standalone, with no GPL or LanPlus libs.], +- [if test "x$enableval" = "xyes"; then ++ AS_HELP_STRING([--enable-standalone], [build standalone, with no GPL or LanPlus libs.]), ++ [], ++ [enable_standalone=no]) ++AS_IF([test "x$enable_standalone" = "xyes"], [ + GPL_CFLAGS="" + LANPLUS_CFLAGS="" + LANPLUS_LDADD="" +@@ -176,27 +192,30 @@ + # cross-compiling, so link with -static (e.g. Android ARM) + CROSS_LFLAGS="-static" + CROSS_CFLAGS="-DCROSS_COMPILE" ++ # TODO: how can this be effective? Configure only converts Makefile.in -> Makefile ++ # Configure does not convert Makefile.am->Makefile.in + sed -i -e 's/^# ipmiutil: $(METASOURCE:.c=.o)/ipmiutil:\t$(METASOURCE:.c=.o)\n\t$(CC) $(CFLAGS) $(LDFLAGS) -o ipmiutil $(METASOURCE:.c=.o) $(LDADD)/' util/Makefile.am + fi +- fi] +- ) ++ ]) + + dnl build libipmiutil with sensor modules + AC_ARG_ENABLE([libsensors], +- [ --enable-libsensors build libipmiutil with sensor modules [[default=no]]], +- [if test "x$enableval" = "xyes"; then +- LIBSENSORS="isensor2.o ievents2.o" +- SAM2OBJ="" +- fi] +- ) ++ AS_HELP_STRING([--enable-libsensors], [build libipmiutil with sensor modules (default=no)]), ++ [], ++ [enable_libsensors=no]) ++AS_IF([test "x$enable_libsensors" = "xyes"], [ ++ LIBSENSORS="isensor2.o ievents2.o" ++ SAM2OBJ="" ++ ]) + + dnl configure for GPL build or not (GPL files: md2.h, ipmi_ioctl.h) + AC_ARG_ENABLE([gpl], +- [ --enable-gpl build with some GPL code [[default=no]]], +- [if test "x$enableval" = "xyes"; then +- GPL_CFLAGS="-DALLOW_GPL" +- fi] +- ) ++ AS_HELP_STRING([--enable-gpl], [build with some GPL code (default=no)]), ++ [], ++ [enable_gpl=no]) ++AS_IF([test "x$enable_gpl" = "xyes"], [ ++ GPL_CFLAGS="-DALLOW_GPL" ++ ]) + + dnl Does this Linux have systemd enabled? Otherwise use sysv init. + AC_ARG_ENABLE([systemd], diff --git a/sys-apps/ipmiutil/ipmiutil-3.1.5-r1.ebuild b/sys-apps/ipmiutil/ipmiutil-3.1.5-r1.ebuild new file mode 100644 index 000000000000..dd9d9ba74e65 --- /dev/null +++ b/sys-apps/ipmiutil/ipmiutil-3.1.5-r1.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools systemd + +DESCRIPTION="IPMI Management Utilities" +HOMEPAGE="http://ipmiutil.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ppc ~x86" +IUSE="static-libs" + +RDEPEND=">=dev-libs/openssl-1:0=" +DEPEND="${RDEPEND} + virtual/os-headers" + +PATCHES=( + "${FILESDIR}"/${PN}-2.9.8-flags.patch + "${FILESDIR}"/${PN}-2.9.9-lib_symlink.patch + "${FILESDIR}"/${PN}-3.1.5-fix-configure.patch +) + +src_prepare() { + default + + sed -i -e 's|-O2 -g|$(CFLAGS)|g;s|-g -O2|$(CFLAGS)|g' util/Makefile.am* || die + sed -i -e 's|which rpm |which we_are_gentoo_rpm_is_a_guest |' configure.ac || die + + # Don't compress man pages + sed '/gzip -f/d' -i doc/Makefile.am || die + + eautoreconf +} + +src_configure() { + econf --disable-systemd --enable-sha256 --enable-lanplus +} + +src_compile() { + # Ulgy workaround. Upstream is misusing the make system here + # and it doesn't even work. + # Please check on each bump if this workaround is still required. + pushd lib/lanplus &>/dev/null || die + emake + cp libipmi_lanplus.a .. || die + popd &>/dev/null || die + + emake +} + +src_install() { + emake DESTDIR="${D}" sysdto="${D}/$(systemd_get_systemunitdir)" install + dodoc -r AUTHORS ChangeLog NEWS README TODO doc/UserGuide + + # Init scripts are only for Fedora + rm -r "${ED}"/etc/init.d || die 'remove initscripts failed' + + if ! use static-libs ; then + find "${ED}" -type f -name '*.a' -delete || die + fi + + keepdir /var/lib/ipmiutil +} -- cgit v1.2.3-65-gdbad