* [Buildroot] [PATCH 1/1] package/freeipmi: new package
@ 2021-12-27 12:44 Fabrice Fontaine
2022-01-01 11:01 ` Yann E. MORIN
0 siblings, 1 reply; 2+ messages in thread
From: Fabrice Fontaine @ 2021-12-27 12:44 UTC (permalink / raw)
To: buildroot; +Cc: Fabrice Fontaine, Thomas Petazzoni
FreeIPMI provides in-band and out-of-band IPMI software based on the
IPMI v1.5/2.0 specification.
The IPMI specification defines a set of interfaces for platform
management and is implemented by a number vendors for system management.
The features of IPMI that most users will be interested in are sensor
monitoring, system event monitoring, power control, and serial-over-LAN
(SOL).
https://www.gnu.org/software/freeipmi/
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/freeipmi/0001-fix-build-on-musl.patch | 49 +++++++++++++++++++
package/freeipmi/Config.in | 20 ++++++++
package/freeipmi/freeipmi.hash | 15 ++++++
package/freeipmi/freeipmi.mk | 35 +++++++++++++
6 files changed, 121 insertions(+)
create mode 100644 package/freeipmi/0001-fix-build-on-musl.patch
create mode 100644 package/freeipmi/Config.in
create mode 100644 package/freeipmi/freeipmi.hash
create mode 100644 package/freeipmi/freeipmi.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 99876cb76e..c5fec09b87 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -853,6 +853,7 @@ F: package/daq3/
F: package/duktape/
F: package/expat/
F: package/flatbuffers/
+F: package/freeipmi/
F: package/gerbera/
F: package/gtksourceview/
F: package/gssdp/
diff --git a/package/Config.in b/package/Config.in
index 8a620bfa4d..86f219a7ba 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -478,6 +478,7 @@ endmenu
source "package/fconfig/Config.in"
source "package/flashrom/Config.in"
source "package/fmtools/Config.in"
+ source "package/freeipmi/Config.in"
source "package/freescale-imx/Config.in"
source "package/fxload/Config.in"
source "package/gcnano-binaries/Config.in"
diff --git a/package/freeipmi/0001-fix-build-on-musl.patch b/package/freeipmi/0001-fix-build-on-musl.patch
new file mode 100644
index 0000000000..0a570b8841
--- /dev/null
+++ b/package/freeipmi/0001-fix-build-on-musl.patch
@@ -0,0 +1,49 @@
+From 6295c96ae54cb16efe41e53f526a4dc19cd719f2 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sat, 30 Oct 2021 00:26:40 +0200
+Subject: [PATCH] fix build on musl
+
+musl doesn't provide getmsg or putmsg even if stropts.h is available
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Retrieved from:
+https://github.com/chu11/freeipmi-mirror/commit/6295c96ae54cb16efe41e53f526a4dc19cd719f2]
+---
+ configure.ac | 1 +
+ libfreeipmi/driver/ipmi-sunbmc-driver.c | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 562dd624e..711b27674 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -479,6 +479,7 @@ AC_CHECK_FUNCS([flockfile fputs_unlocked fwrite_unlocked])
+ AC_CHECK_FUNCS([iopl])
+ AC_CHECK_FUNCS([asprintf])
+ AC_CHECK_FUNCS([cbrt])
++AC_CHECK_FUNCS([getmsg putmsg])
+
+ dnl sighandler_t apparently not defined in Apple/OS X
+ AC_CHECK_TYPES([sighandler_t], [], [], [[#include <signal.h>]])
+diff --git a/libfreeipmi/driver/ipmi-sunbmc-driver.c b/libfreeipmi/driver/ipmi-sunbmc-driver.c
+index 05caca8b6..4ae8c5719 100644
+--- a/libfreeipmi/driver/ipmi-sunbmc-driver.c
++++ b/libfreeipmi/driver/ipmi-sunbmc-driver.c
+@@ -423,7 +423,7 @@ _sunbmc_write (ipmi_sunbmc_ctx_t ctx,
+ assert (ctx->io_init);
+ assert (ctx->putmsg_intf);
+
+-#if defined(HAVE_SYS_STROPTS_H)
++#if defined(HAVE_SYS_STROPTS_H) && defined(HAVE_PUTMSG)
+ memset (&sbuf, '\0', sizeof (struct strbuf));
+
+ /* Due to API differences, we need to extract the cmd out of the
+@@ -573,7 +573,7 @@ _sunbmc_read (ipmi_sunbmc_ctx_t ctx,
+ return (-1);
+ }
+
+-#if defined(HAVE_SYS_STROPTS_H)
++#if defined(HAVE_SYS_STROPTS_H) && defined(HAVE_GETMSG)
+ if (getmsg (ctx->device_fd, NULL, &sbuf, &flags) < 0)
+ {
+ SUNBMC_ERRNO_TO_SUNBMC_ERRNUM (ctx, errno);
diff --git a/package/freeipmi/Config.in b/package/freeipmi/Config.in
new file mode 100644
index 0000000000..8ef2e137fa
--- /dev/null
+++ b/package/freeipmi/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_FREEIPMI
+ bool "freeipmi"
+ depends on BR2_USE_MMU # fork()
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL
+ help
+ FreeIPMI provides in-band and out-of-band IPMI software based
+ on the IPMI v1.5/2.0 specification.
+
+ The IPMI specification defines a set of interfaces for
+ platform management and is implemented by a number vendors
+ for system management. The features of IPMI that most users
+ will be interested in are sensor monitoring, system event
+ monitoring, power control, and serial-over-LAN (SOL).
+
+ https://www.gnu.org/software/freeipmi/
+
+comment "freeipmi needs a toolchain w/ threads"
+ depends on BR2_USE_MMU
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/freeipmi/freeipmi.hash b/package/freeipmi/freeipmi.hash
new file mode 100644
index 0000000000..f73b4a25fe
--- /dev/null
+++ b/package/freeipmi/freeipmi.hash
@@ -0,0 +1,15 @@
+# Locally computed:
+sha256 4aa46a269ecc1bbff9412451f17b5408f64395e7dc45b713edf5eb5362700a71 freeipmi-1.6.8.tar.gz
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.bmc-watchdog
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmiconsole
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmi-dcmi
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmidetect
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmi-fru
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmimonitoring
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmiping
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmipower
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmiseld
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.pstdout
+sha256 48f44386b3f359e70d7e4a5d7f1d529d8591a7c64c47df3f4abdf2ad45a6d537 COPYING.sunbmc
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ZRESEARCH
diff --git a/package/freeipmi/freeipmi.mk b/package/freeipmi/freeipmi.mk
new file mode 100644
index 0000000000..b25ef0a4c6
--- /dev/null
+++ b/package/freeipmi/freeipmi.mk
@@ -0,0 +1,35 @@
+################################################################################
+#
+# freeipmi
+#
+################################################################################
+
+FREEIPMI_VERSION = 1.6.8
+FREEIPMI_SITE = https://ftp.gnu.org/gnu/freeipmi
+FREEIPMI_LICENSE = GPL-3.0+, BSD-like (sunbmc)
+FREEIPMI_LICENSE_FILES = \
+ COPYING COPYING.bmc-watchdog COPYING.ipmiconsole COPYING.ipmi-dcmi \
+ COPYING.ipmidetect COPYING.ipmi-fru COPYING.ipmimonitoring \
+ COPYING.ipmiping COPYING.ipmipower COPYING.ipmiseld COPYING.pstdout \
+ COPYING.sunbmc COPYING.ZRESEARCH
+FREEIPMI_DEPENDENCIES = host-pkgconf
+FREEIPMI_INSTALL_STAGING = YES
+# We're patching configure.ac
+FREEIPMI_AUTORECONF = YES
+# Disable checking for /dev/urandom and /dev/random through AC_CHECK_FILE
+FREEIPMI_CONF_OPTS = --without-random-device
+
+# Work around for uClibc or musl toolchains which lack argp_*()
+# functions.
+ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y)
+FREEIPMI_DEPENDENCIES += argp-standalone
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
+FREEIPMI_CONF_OPTS += --with-encryption
+FREEIPMI_DEPENDENCIES += libgcrypt
+else
+FREEIPMI_CONF_OPTS += --without-encryption
+endif
+
+$(eval $(autotools-package))
--
2.33.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/freeipmi: new package
2021-12-27 12:44 [Buildroot] [PATCH 1/1] package/freeipmi: new package Fabrice Fontaine
@ 2022-01-01 11:01 ` Yann E. MORIN
0 siblings, 0 replies; 2+ messages in thread
From: Yann E. MORIN @ 2022-01-01 11:01 UTC (permalink / raw)
To: Fabrice Fontaine; +Cc: Thomas Petazzoni, buildroot
Fabrice, All,
On 2021-12-27 13:44 +0100, Fabrice Fontaine spake thusly:
> FreeIPMI provides in-band and out-of-band IPMI software based on the
> IPMI v1.5/2.0 specification.
>
> The IPMI specification defines a set of interfaces for platform
> management and is implemented by a number vendors for system management.
> The features of IPMI that most users will be interested in are sensor
> monitoring, system event monitoring, power control, and serial-over-LAN
> (SOL).
>
> https://www.gnu.org/software/freeipmi/
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[--SNIP--]
> diff --git a/package/freeipmi/0001-fix-build-on-musl.patch b/package/freeipmi/0001-fix-build-on-musl.patch
> new file mode 100644
> index 0000000000..0a570b8841
> --- /dev/null
> +++ b/package/freeipmi/0001-fix-build-on-musl.patch
> @@ -0,0 +1,49 @@
> +From 6295c96ae54cb16efe41e53f526a4dc19cd719f2 Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +Date: Sat, 30 Oct 2021 00:26:40 +0200
> +Subject: [PATCH] fix build on musl
> +
> +musl doesn't provide getmsg or putmsg even if stropts.h is available
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +[Retrieved from:
> +https://github.com/chu11/freeipmi-mirror/commit/6295c96ae54cb16efe41e53f526a4dc19cd719f2]
I've changed that to point to the official git repository:
https://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=6295c96ae54cb16efe41e53f526a4dc19cd719f2
Applied to master, thanks.
Regards,
Yann E. MORIN.
> +---
> + configure.ac | 1 +
> + libfreeipmi/driver/ipmi-sunbmc-driver.c | 4 ++--
> + 2 files changed, 3 insertions(+), 2 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 562dd624e..711b27674 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -479,6 +479,7 @@ AC_CHECK_FUNCS([flockfile fputs_unlocked fwrite_unlocked])
> + AC_CHECK_FUNCS([iopl])
> + AC_CHECK_FUNCS([asprintf])
> + AC_CHECK_FUNCS([cbrt])
> ++AC_CHECK_FUNCS([getmsg putmsg])
> +
> + dnl sighandler_t apparently not defined in Apple/OS X
> + AC_CHECK_TYPES([sighandler_t], [], [], [[#include <signal.h>]])
> +diff --git a/libfreeipmi/driver/ipmi-sunbmc-driver.c b/libfreeipmi/driver/ipmi-sunbmc-driver.c
> +index 05caca8b6..4ae8c5719 100644
> +--- a/libfreeipmi/driver/ipmi-sunbmc-driver.c
> ++++ b/libfreeipmi/driver/ipmi-sunbmc-driver.c
> +@@ -423,7 +423,7 @@ _sunbmc_write (ipmi_sunbmc_ctx_t ctx,
> + assert (ctx->io_init);
> + assert (ctx->putmsg_intf);
> +
> +-#if defined(HAVE_SYS_STROPTS_H)
> ++#if defined(HAVE_SYS_STROPTS_H) && defined(HAVE_PUTMSG)
> + memset (&sbuf, '\0', sizeof (struct strbuf));
> +
> + /* Due to API differences, we need to extract the cmd out of the
> +@@ -573,7 +573,7 @@ _sunbmc_read (ipmi_sunbmc_ctx_t ctx,
> + return (-1);
> + }
> +
> +-#if defined(HAVE_SYS_STROPTS_H)
> ++#if defined(HAVE_SYS_STROPTS_H) && defined(HAVE_GETMSG)
> + if (getmsg (ctx->device_fd, NULL, &sbuf, &flags) < 0)
> + {
> + SUNBMC_ERRNO_TO_SUNBMC_ERRNUM (ctx, errno);
> diff --git a/package/freeipmi/Config.in b/package/freeipmi/Config.in
> new file mode 100644
> index 0000000000..8ef2e137fa
> --- /dev/null
> +++ b/package/freeipmi/Config.in
> @@ -0,0 +1,20 @@
> +config BR2_PACKAGE_FREEIPMI
> + bool "freeipmi"
> + depends on BR2_USE_MMU # fork()
> + depends on BR2_TOOLCHAIN_HAS_THREADS
> + select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL
> + help
> + FreeIPMI provides in-band and out-of-band IPMI software based
> + on the IPMI v1.5/2.0 specification.
> +
> + The IPMI specification defines a set of interfaces for
> + platform management and is implemented by a number vendors
> + for system management. The features of IPMI that most users
> + will be interested in are sensor monitoring, system event
> + monitoring, power control, and serial-over-LAN (SOL).
> +
> + https://www.gnu.org/software/freeipmi/
> +
> +comment "freeipmi needs a toolchain w/ threads"
> + depends on BR2_USE_MMU
> + depends on !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/freeipmi/freeipmi.hash b/package/freeipmi/freeipmi.hash
> new file mode 100644
> index 0000000000..f73b4a25fe
> --- /dev/null
> +++ b/package/freeipmi/freeipmi.hash
> @@ -0,0 +1,15 @@
> +# Locally computed:
> +sha256 4aa46a269ecc1bbff9412451f17b5408f64395e7dc45b713edf5eb5362700a71 freeipmi-1.6.8.tar.gz
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.bmc-watchdog
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmiconsole
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmi-dcmi
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmidetect
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmi-fru
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmimonitoring
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmiping
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmipower
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ipmiseld
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.pstdout
> +sha256 48f44386b3f359e70d7e4a5d7f1d529d8591a7c64c47df3f4abdf2ad45a6d537 COPYING.sunbmc
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.ZRESEARCH
> diff --git a/package/freeipmi/freeipmi.mk b/package/freeipmi/freeipmi.mk
> new file mode 100644
> index 0000000000..b25ef0a4c6
> --- /dev/null
> +++ b/package/freeipmi/freeipmi.mk
> @@ -0,0 +1,35 @@
> +################################################################################
> +#
> +# freeipmi
> +#
> +################################################################################
> +
> +FREEIPMI_VERSION = 1.6.8
> +FREEIPMI_SITE = https://ftp.gnu.org/gnu/freeipmi
> +FREEIPMI_LICENSE = GPL-3.0+, BSD-like (sunbmc)
> +FREEIPMI_LICENSE_FILES = \
> + COPYING COPYING.bmc-watchdog COPYING.ipmiconsole COPYING.ipmi-dcmi \
> + COPYING.ipmidetect COPYING.ipmi-fru COPYING.ipmimonitoring \
> + COPYING.ipmiping COPYING.ipmipower COPYING.ipmiseld COPYING.pstdout \
> + COPYING.sunbmc COPYING.ZRESEARCH
> +FREEIPMI_DEPENDENCIES = host-pkgconf
> +FREEIPMI_INSTALL_STAGING = YES
> +# We're patching configure.ac
> +FREEIPMI_AUTORECONF = YES
> +# Disable checking for /dev/urandom and /dev/random through AC_CHECK_FILE
> +FREEIPMI_CONF_OPTS = --without-random-device
> +
> +# Work around for uClibc or musl toolchains which lack argp_*()
> +# functions.
> +ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y)
> +FREEIPMI_DEPENDENCIES += argp-standalone
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
> +FREEIPMI_CONF_OPTS += --with-encryption
> +FREEIPMI_DEPENDENCIES += libgcrypt
> +else
> +FREEIPMI_CONF_OPTS += --without-encryption
> +endif
> +
> +$(eval $(autotools-package))
> --
> 2.33.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-01-01 11:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-27 12:44 [Buildroot] [PATCH 1/1] package/freeipmi: new package Fabrice Fontaine
2022-01-01 11:01 ` Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox