summaryrefslogtreecommitdiff
path: root/sys-apps/ipmitool
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /sys-apps/ipmitool
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'sys-apps/ipmitool')
-rw-r--r--sys-apps/ipmitool/Manifest4
-rw-r--r--sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch145
-rw-r--r--sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.confd22
-rw-r--r--sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd24
-rw-r--r--sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild83
-rw-r--r--sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild88
-rw-r--r--sys-apps/ipmitool/metadata.xml17
7 files changed, 383 insertions, 0 deletions
diff --git a/sys-apps/ipmitool/Manifest b/sys-apps/ipmitool/Manifest
new file mode 100644
index 000000000000..ea33b17d9c82
--- /dev/null
+++ b/sys-apps/ipmitool/Manifest
@@ -0,0 +1,4 @@
+DIST ipmitool-1.8.17.tar.gz 976189 BLAKE2B 62ca530b2a9fdc0e8071d02b7f903530f223bdf07d75278eb9dafeb167b9ec347b0fbf199e2e7cf8f258463abfc8887c8b9b4df80509758ae8588ca73bbaf68a SHA512 929cf0087d3d712caf845eb62771aa96d034c2222170850b0d8bfdbb41d0b0aee05c14aa48e82368f4494606781c6639ada348fd086907c21b817d95dd36a3f6
+DIST ipmitool-1.8.18.tar.gz 995313 BLAKE2B 4aee2b1488a8a97348954dd1555baf3d576d70f22fd17f11ba6147595b07ef52059ac8ab6775afa0ad956355eefbf3e2b0300cf87bb373d2f82b585de807412d SHA512 274d424fff079f7628c0f9fe06580937cb9717c809a71b2f5ef97266c6b6c89983b662fbb1f090e2f94861f1799677c8fc6536013828a8a5e6cb239af53e45ab
+DIST ipmitool_1.8.17-1.debian.tar.xz 18252 BLAKE2B 6219d81b6b54354e8e412850fc1ee673e2dead153076d55c67fad0518e7230642934a52ba0abea29d8b1f47eb7beef10cbe25a7b8a4df158d4b44b1f1e229f4d SHA512 e1133262020e8fabe47e7aa308956078bc9fb3bb7033413230f1cf76aca1d4733bac64e52039365f24fe54a1bf8e271071bdaa1722720fca62f1c9e8888777a8
+DIST ipmitool_1.8.18-1.debian.tar.xz 19140 BLAKE2B 255c4da005946f3b118a127f96fc5daad02a170ea079d7a765a0c7650e1eb7e50ad49b31fca95312b49e5a524e04a8a21215cafb1a8451e5b2af2aaec22cda75 SHA512 8aede337d07987decfd032898f194d32730eced443630ac3956676533d693fb2d17a175ef14218cbcd55da44f6b17714f676a912a1d5124a15a995e01d2828ef
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 000000000000..9e5a876f00a3
--- /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/files/ipmitool-1.8.9-ipmievd.confd b/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.confd
new file mode 100644
index 000000000000..42b194a771b0
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.confd
@@ -0,0 +1,22 @@
+# Copyright 1999-2007 Gentoo Foundation
+# 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
+
+COMMAND="open"
+
+# Options.
+
+OPTIONS=""
diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd b/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd
new file mode 100644
index 000000000000..256238ef5e2c
--- /dev/null
+++ b/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# /etc/init.d/ipmievd
+
+depend() {
+ use logger
+}
+PN="ipmievd"
+
+start() {
+ /sbin/modprobe -sq ipmi_msghandler
+ /sbin/modprobe -sq ipmi_devintf
+ /sbin/modprobe -sq ipmi_si
+ ebegin "Starting ${PN}"
+ start-stop-daemon --start --pidfile /var/run/${PN}.pid0 --exec /usr/sbin/${PN} -- -I ${INTERFACE} ${OPTIONS} ${COMMAND}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${PN}"
+ start-stop-daemon --stop --pidfile /var/run/${PN}.pid0
+ eend $?
+}
diff --git a/sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild b/sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild
new file mode 100644
index 000000000000..0e6967bb3a2c
--- /dev/null
+++ b/sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2017 Gentoo Foundation
+# 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="1.debian"
+DEBIAN_P="${P/-/_}"
+DEBIAN_PF="${DEBIAN_P}-${DEBIAN_PR}"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
+ https://launchpad.net/ubuntu/+archive/primary/+files/${DEBIAN_PF}.tar.xz"
+#IUSE="freeipmi openipmi status"
+IUSE="libressl openipmi static"
+SLOT="0"
+KEYWORDS="amd64 hppa ~ia64 ppc x86"
+LICENSE="BSD"
+
+RDEPEND="
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl: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.
+
+src_prepare() {
+ default
+ [ -d "${S}"/debian ] && mv "${S}"/debian{,.package}
+ ln -s "${WORKDIR}"/debian "${S}"
+ for p in $(grep -v "^#" debian/patches/series) ; do
+ eapply debian/patches/$p
+ done
+
+ eautoreconf
+}
+
+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
+ econf \
+ $(use_enable static) \
+ --enable-ipmishell \
+ --enable-intf-lan \
+ --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 <asm/byteorder.h>" >>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
+}
diff --git a/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild b/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild
new file mode 100644
index 000000000000..3838cd1bd338
--- /dev/null
+++ b/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild
@@ -0,0 +1,88 @@
+# 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="1.debian"
+DEBIAN_P="${P/-/_}"
+DEBIAN_PF="${DEBIAN_P}-${DEBIAN_PR}"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
+ 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 openipmi static"
+SLOT="0"
+KEYWORDS="amd64 hppa ~ia64 ppc ~ppc64 x86"
+LICENSE="BSD"
+
+RDEPEND="
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl: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
+)
+
+src_prepare() {
+ default
+ [ -d "${S}"/debian ] && mv "${S}"/debian{,.package}
+ ln -s "${WORKDIR}"/debian "${S}"
+ for p in $(grep -v "^#" debian/patches/series) ; do
+ eapply debian/patches/$p
+ done
+
+ eautoreconf
+}
+
+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
+ econf \
+ $(use_enable static) \
+ --enable-ipmishell \
+ --enable-intf-lan \
+ --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 <asm/byteorder.h>" >>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
+}
diff --git a/sys-apps/ipmitool/metadata.xml b/sys-apps/ipmitool/metadata.xml
new file mode 100644
index 000000000000..07cc6075c547
--- /dev/null
+++ b/sys-apps/ipmitool/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <use>
+ <flag name="openipmi">Use the system OpenIPMI implementation.</flag>
+ <!-- <flag name='freeipmi'>Use the system FreeIPMI implementation.</flag> -->
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">ipmitool</remote-id>
+ <remote-id type="launchpad">ubuntu</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>