diff options
Diffstat (limited to 'sys-apps/ipmitool')
18 files changed, 556 insertions, 349 deletions
diff --git a/sys-apps/ipmitool/Manifest b/sys-apps/ipmitool/Manifest index ea33b17d9c82..4b714ddf3312 100644 --- a/sys-apps/ipmitool/Manifest +++ b/sys-apps/ipmitool/Manifest @@ -1,4 +1,2 @@ -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 +DIST enterprise-numbers-1.8.19.xz 1500100 BLAKE2B 15c21792bf46220c5908ecf4f0ddafe2fdf13a1799c054a0cb0cb647e7f489768855c4c25fba8a4408505ff0cf02d1a43408d5c4de557b1b30fe8abb477a7926 SHA512 e88cb459a9c8a3172770bcfefbec0a7ad7d65395063c8c0173fce776ea0beb7ad9f3610e636dfbd71d0af8c952c2b9bc6c25c815daa4ab281bed983cbe2ebcc4 +DIST ipmitool-1.8.19.tar.gz 641383 BLAKE2B e1db12bb7301cb4b551f87fbfcd405b3597a1f32c45447b2b239d9d43a2cdbe213ee5408291d50801035cc80e28078fb3a778ab28335665bc3316798c13ea1fc SHA512 2d91706e9feba4b2ce4808eca087b81b842c4292a5840830001919c06ec8babd8f8761b74bb9dcf8fbc7765f028a5b1a192a3c1b643f2adaa157fed6fb0d1ee3 diff --git a/sys-apps/ipmitool/files/exchange-bmc-os-info.initd b/sys-apps/ipmitool/files/exchange-bmc-os-info.initd new file mode 100644 index 000000000000..9c63983f21f3 --- /dev/null +++ b/sys-apps/ipmitool/files/exchange-bmc-os-info.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/exchange-bmc-os-info + +name="exchange-bmc-os-info" +description="Exchange Information between BMC and OS" +command=/usr/libexec/exchange-bmc-os-info +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use hostname modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + "${command}" start +} +stop() { + "${command}" stop +} diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.confd b/sys-apps/ipmitool/files/ipmievd.confd index 42b194a771b0..b860c23c7f89 100644 --- a/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.confd +++ b/sys-apps/ipmitool/files/ipmievd.confd @@ -1,4 +1,4 @@ -# Copyright 1999-2007 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # /etc/conf.d/ipmievd @@ -14,9 +14,14 @@ INTERFACE="open" # Commands: # open Use OpenIPMI for asyncronous notification of events # sel Poll SEL for notification of events - -COMMAND="open" +# +# 'pidfile=...' will be appended! +COMMAND="open daemon" # Options. OPTIONS="" + +# Device number: +# Used to target a specific BMC on a multi-node, multi-BMC system via the open interface +DEVICENUM=0 diff --git a/sys-apps/ipmitool/files/ipmievd.initd b/sys-apps/ipmitool/files/ipmievd.initd new file mode 100644 index 000000000000..e8ef2c39d454 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmievd.initd @@ -0,0 +1,28 @@ +#!/sbin/openrc-run +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/ipmievd + +depend() { + use logger modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +# TODO: ipmievd has a mode where it could be used to monitor multiple BMCs via +# DEVICENUM or remote systems, and it would be valid to run multiple instances. +# That is not supported by this init script at this time. + +description="IPMI event daemon for sending events to syslog LOCAL4" + +: "${DEVICENUM:=0}" +: "${INTERFACE:=open}" +: "${COMMAND:=open daemon}" +: "${OPTIONS:=}" + +daemon=ipmievd + +pidfile=/run/${daemon}.pid${DEVICENUM} # see manpage re suffix +command=/usr/sbin/${daemon} +cachefile=/run/${daemon}.${DEVICENUM}.sdr-cache +command_args="-d ${DEVICENUM} -S ${cachefile} -I ${INTERFACE} ${OPTIONS} ${COMMAND} pidfile=${pidfile}" +required_files=/dev/ipmi$DEVICENUM diff --git a/sys-apps/ipmitool/files/ipmievd.service b/sys-apps/ipmitool/files/ipmievd.service new file mode 100644 index 000000000000..fdae14f231ce --- /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/files/ipmitool-1.8.18-openssl-1.1.patch b/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch deleted file mode 100644 index 9e5a876f00a3..000000000000 --- a/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch +++ /dev/null @@ -1,145 +0,0 @@ -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.19-CVE-2011-4339.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-CVE-2011-4339.patch new file mode 100644 index 000000000000..4a25280662b5 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-CVE-2011-4339.patch @@ -0,0 +1,20 @@ +Description: CVE-2011-4339 + insecure file permission when creating PID files + based on 112_fix_CVE-2011-4339 +Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651917 +Forwarded: https://sourceforge.net/p/ipmitool/patches/99/ +Last-Update: 2020-10-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/helper.c ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/helper.c +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/helper.c 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/helper.c 2020-10-21 13:59:02.335206233 -0700 +@@ -917,7 +917,6 @@ + lprintf(LOG_ERR, "chdir failed: %s (%d)", strerror(errno), errno); + exit(1); + } +- umask(0); + + for (fd=0; fd<64; fd++) { + if (fd != intf->fd) diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch new file mode 100644 index 000000000000..ceeffde085a7 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-fix-buffer-overflow.patch @@ -0,0 +1,21 @@ +Description: fix buffer overflow + based on 101_fix_buf_overflow from Leo Iannacone <l3on@ubuntu.com> +Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Bug: TSOL buffer overflow +Bug-ubuntu: https://bugs.launchpad.net/ubuntu/+source/ipmitool/+bug/633054 +Forwarded: https://sourceforge.net/p/ipmitool/patches/100/ +Last-Update: 2020-20-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/ipmi_tsol.c ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/ipmi_tsol.c +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/lib/ipmi_tsol.c 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/lib/ipmi_tsol.c 2020-10-21 13:55:58.571536858 -0700 +@@ -374,7 +374,7 @@ + char *recvip = NULL; + char in_buff[IPMI_BUF_SIZE]; + char out_buff[IPMI_BUF_SIZE * 8]; +- char buff[IPMI_BUF_SIZE + 4]; ++ char buff[IPMI_BUF_SIZE * 8 + 4]; + int fd_socket, result, i; + int out_buff_fill, in_buff_fill; + int ip1, ip2, ip3, ip4; diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch new file mode 100644 index 000000000000..6c0e00da3e15 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-manpage-longlines.patch @@ -0,0 +1,55 @@ +Description: long lines in man-page + prevent "can't break line" warnings +Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Forwarded: not-needed +Last-Update: 2020-10-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/doc/ipmitool.1.in ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/doc/ipmitool.1.in +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/doc/ipmitool.1.in 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/doc/ipmitool.1.in 2020-10-21 14:00:23.383643880 -0700 +@@ -1038,7 +1038,7 @@ + AMC slot B2 topology: + Port 0 =====> On Carrier Device ID 0, Port 3 + Port 2 =====> AMC slot B1, Port 2 +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + From Carrier file: carrierfru + On Carrier Device ID 0 topology: + Port 0 =====> AMC slot B1, Port 4 +@@ -1094,7 +1094,7 @@ + \-Link Type: AMC.2 Ethernet + \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link + \-Link Group ID: 0 || Link Asym. Match: exact match +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + AMC slot B1 port 1 ==> On-Carrier Device 0 port 12 + Matching Result + - From On-Carrier Device ID 0 +@@ -1107,7 +1107,7 @@ + \-Link Type: AMC.2 Ethernet + \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link + \-Link Group ID: 0 || Link Asym. Match: exact match +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + On-Carrier Device vs AMC slot A2 + AMC slot A2 port 0 ==> On-Carrier Device 0 port 3 + Matching Result +@@ -1121,7 +1121,7 @@ + \-Link Type: AMC.2 Ethernet + \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link + \-Link Group ID: 0 || Link Asym. Match: exact match +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + AMC slot B1 vs AMC slot A2 + AMC slot A2 port 2 ==> AMC slot B1 port 2 + Matching Result +@@ -1135,7 +1135,7 @@ + \-Link Type: AMC.3 Storage + \-Link Type extension: Serial Attached SCSI (SAS/SATA) + \-Link Group ID: 0 || Link Asym. Match: FC or SAS interface {exact match} +- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ++ *-*-*-* *-*-* *-*-* *-*-* *-*-* *-*-* *-*-* + .TP + \fIunmatch\fP <\fBxx=filename\fR> <\fBxx=filename\fR> \fB...\fr + .br diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch new file mode 100644 index 000000000000..5057fcaf0525 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch @@ -0,0 +1,32 @@ +https://github.com/ipmitool/ipmitool/pull/360 + +From a9e262480722f5affd237ee10d0bbc8c55617cb7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Sep 2022 07:30:10 -0700 +Subject: [PATCH] ipmi_fru.c: Provide missing function declarations + +Fixes build with clang-15+ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/ipmi_fru.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c +index 3d1d8a1a..5c5661cf 100644 +--- a/lib/ipmi_fru.c ++++ b/lib/ipmi_fru.c +@@ -60,6 +60,13 @@ static const char *section_id[4] = { + "Board Section", + "Product Section" + }; ++/* From lib/ipmi_hpmfwupg.c: */ ++uint16_t ++ipmi_intf_get_max_request_data_size(struct ipmi_intf * intf); ++ ++/* From src/plugins/ipmi_intf.c: */ ++uint16_t ++ipmi_intf_get_max_response_data_size(struct ipmi_intf * intf); + + static const char * combined_voltage_desc[] = { + "12 V", diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch new file mode 100644 index 000000000000..31b1a42dcf59 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-nvidia-iana.patch @@ -0,0 +1,23 @@ +Description: Add IANA ID for NVIDIA hardware + Add the NVIDIA IANA ID to the hardcoded list used in ipmitool <= 1.8.18. + After upstream commit "9d41136 ID:491 - Fetch vendor IDs from IANA", ipmitool + generates a list of vendor IDs dynamically at build time, so we can drop this + patch in future releases. +Author: dann frazier <dannf@debian.org> +Origin: backport +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903616 +Forwarded: not-needed +Last-Update: 2020-10-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +diff -Nuar --exclude '*.orig' --exclude '*.rej' ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/include/ipmitool/ipmi.h ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/include/ipmitool/ipmi.h +--- ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f.orig/include/ipmitool/ipmi.h 2020-08-07 00:53:06.000000000 -0700 ++++ ipmitool-50d8c36edf9657720e25445a435dabc44572cf5f/include/ipmitool/ipmi.h 2020-10-21 14:04:11.675128602 -0700 +@@ -281,6 +281,7 @@ + /* 4769 for [IBM Corporation] */ + IPMI_OEM_IBM_4769 = 4769, + IPMI_OEM_MAGNUM = 5593, ++ IPMI_OEM_NVIDIA = 5703, + IPMI_OEM_TYAN = 6653, + IPMI_OEM_QUANTA = 7244, + IPMI_OEM_VIKING = 9237, diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd b/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd deleted file mode 100644 index 256238ef5e2c..000000000000 --- a/sys-apps/ipmitool/files/ipmitool-1.8.9-ipmievd.initd +++ /dev/null @@ -1,24 +0,0 @@ -#!/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/files/log_bmc.initd b/sys-apps/ipmitool/files/log_bmc.initd new file mode 100644 index 000000000000..4064edf3b84d --- /dev/null +++ b/sys-apps/ipmitool/files/log_bmc.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="log_bmc" +description="Add SEL entries to indicate OS Boot status" +command=/usr/libexec/log_bmc.sh +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use modules + after ipmievd # to capture our own log event + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + # TODO: should this keep start so it only fires once per boot? + "${command}" os_boot +} + +stop() { + "${command}" os_shutdown +} diff --git a/sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild b/sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild deleted file mode 100644 index 0e6967bb3a2c..000000000000 --- a/sys-apps/ipmitool/ipmitool-1.8.17-r1.ebuild +++ /dev/null @@ -1,83 +0,0 @@ -# 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 deleted file mode 100644 index 925d59f5d912..000000000000 --- a/sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2019 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 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/ipmitool-1.8.19-r1.ebuild b/sys-apps/ipmitool/ipmitool-1.8.19-r1.ebuild new file mode 100644 index 000000000000..7726154e61d3 --- /dev/null +++ b/sys-apps/ipmitool/ipmitool-1.8.19-r1.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2024 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} + >=dev-build/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 +} diff --git a/sys-apps/ipmitool/ipmitool-1.8.19.ebuild b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild new file mode 100644 index 000000000000..3ee1253ef26a --- /dev/null +++ b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools 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} + >=dev-build/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() { + # - 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 +} diff --git a/sys-apps/ipmitool/metadata.xml b/sys-apps/ipmitool/metadata.xml index 741f1b487be9..4fca0ad7d1e7 100644 --- a/sys-apps/ipmitool/metadata.xml +++ b/sys-apps/ipmitool/metadata.xml @@ -1,16 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>sysadmin@gentoo.org</email> <name>Gentoo Sysadmin Project</name> </maintainer> <use> + <flag name="openbmc">Enable OpenBMC D-Bus interface</flag> <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> + <remote-id type="github">ipmitool/ipmitool</remote-id> </upstream> </pkgmetadata> |