[v4,2/2] package/ipmitool: use versioned or custom PEN registry

Message ID 20240908144815.3822467-2-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • [v4,1/2] package/iana-assignments: new package
Related show

Commit Message

Dario Binacchi Sept. 8, 2024, 2:48 p.m. UTC
The previous default URL used for the PEN registry was not stable and
could change at any time, making it unacceptable to have to update its
hash every time.

With this patch, if the PEN (Enterprise numbers) registry is installed
by the iana-assignments package, ipmitool will use it. Otherwise, the
user can provide a custom file named enterprise-numbers to be placed
under /usr/share/misc/ of the overlay rootfs.

Downloading such a file is no longer supported.

Fixes:
- http://autobuild.buildroot.org/results/5ae5ee948d99679cd50d1115a7d46f4368347b4f

Co-Developed-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Co-Developed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes v3 -> v4:
  - Drop BR2_PACKAGE_IPMITOOL_PEN_REG_URI and mark as a legacy option.
  - Drop IPMITOOL_DEPENDENCIES += iana-assignments.
  - Add IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc in case of
    custom PEN.
  - Use IANA PEN registry in case BR2_PACKAGE_IANA_ASSIGNMENTS_PEN_REG
    is enabled.
  - Update the commit message.

Changes v2 -> v3:
  - Use by default enterprise-numbers from iana-assignments package.
  - Alternatively allows to use a local PEN registry file.
  - Don't support URL path for PEN registry.

Changes v1 -> v2:
  - use an enterprise-numbers file versioned

 Config.in.legacy             | 12 ++++++++++++
 package/ipmitool/Config.in   | 18 ++++++------------
 package/ipmitool/ipmitool.mk | 20 ++++++--------------
 3 files changed, 24 insertions(+), 26 deletions(-)

Comments

Yann E. MORIN Sept. 14, 2024, 12:45 p.m. UTC | #1
Dario, All,

On 2024-09-08 16:48 +0200, Dario Binacchi spake thusly:
> The previous default URL used for the PEN registry was not stable and
> could change at any time, making it unacceptable to have to update its
> hash every time.
> 
> With this patch, if the PEN (Enterprise numbers) registry is installed
> by the iana-assignments package, ipmitool will use it. Otherwise, the
> user can provide a custom file named enterprise-numbers to be placed
> under /usr/share/misc/ of the overlay rootfs.

As discussed IRL, I've made the location to always be the same, whether
the PEN is provided by the iana-assignment package, or by an overlay (or
whatever), and modified the comment in the help text accordingly.

> Downloading such a file is no longer supported.
> 
> Fixes:
> - http://autobuild.buildroot.org/results/5ae5ee948d99679cd50d1115a7d46f4368347b4f
> 
> Co-Developed-by: Yann E. MORIN <yann.morin.1998@free.fr>
> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
> Co-Developed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
> Changes v3 -> v4:
>   - Drop BR2_PACKAGE_IPMITOOL_PEN_REG_URI and mark as a legacy option.
>   - Drop IPMITOOL_DEPENDENCIES += iana-assignments.
>   - Add IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc in case of
>     custom PEN.
>   - Use IANA PEN registry in case BR2_PACKAGE_IANA_ASSIGNMENTS_PEN_REG
>     is enabled.
>   - Update the commit message.
> 
> Changes v2 -> v3:
>   - Use by default enterprise-numbers from iana-assignments package.
>   - Alternatively allows to use a local PEN registry file.
>   - Don't support URL path for PEN registry.
> 
> Changes v1 -> v2:
>   - use an enterprise-numbers file versioned
> 
>  Config.in.legacy             | 12 ++++++++++++
>  package/ipmitool/Config.in   | 18 ++++++------------
>  package/ipmitool/ipmitool.mk | 20 ++++++--------------
>  3 files changed, 24 insertions(+), 26 deletions(-)
> 
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 7513aa7efd66..ece342bb12d9 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -189,6 +189,18 @@ config BR2_BINUTILS_VERSION_2_40_X
>  
>  comment "Legacy options removed in 2024.08"
>  
> +config BR2_PACKAGE_IPMITOOL_PEN_REG_URI
> +	string "IANA PEN registry move to iana-assignment package"
> +	help
> +	  Installation of the IANA PEN is now handled by the
> +	  iana-assignment package; to install a custom PEN,
> +	  use a rootfs-overlay for example.
> +
> +config BR2_PACKAGE_IPMITOOL_PEN_REG_URI_WRAP
> +	bool
> +	default y if BR2_PACKAGE_IPMITOOL_PEN_REG_URI != ""
> +	select BR2_LEGACY
> +
>  config BR2_PACKAGE_MIDORI
>  	bool "midori has been removed"
>  	select BR2_LEGACY
> diff --git a/package/ipmitool/Config.in b/package/ipmitool/Config.in
> index 9516ff8596d3..5cbcf8e535d4 100644
> --- a/package/ipmitool/Config.in
> +++ b/package/ipmitool/Config.in
> @@ -5,22 +5,16 @@ config BR2_PACKAGE_IPMITOOL
>  	  IPMItool provides a simple command-line interface to
>  	  IPMI-enabled devices.
>  
> +	  Note: If the PEN (Enterprise Numbers) registry is installed
> +	  by the "iana-assignments" package, ipmitool will use it.
> +	  Otherwise, the user can provide a custom file named
> +	  enterprise-numbers to be placed in the usr/share/misc/
> +	  directory of the overlay rootfs.
> +
>  	  https://github.com/ipmitool/ipmitool/
>  
>  if BR2_PACKAGE_IPMITOOL
>  
> -config BR2_PACKAGE_IPMITOOL_PEN_REG_URI
> -	string "IANA PEN registry URL or path"
> -	default "https://www.iana.org/assignments/enterprise-numbers.txt"
> -	help
> -	  Enter an URL or a file path to the PEN registry to use.
> -
> -	  Note that the official registry is 4MiB+ and may change any
> -	  time and is thus not guaranteed to be reproducible.
> -
> -	  Leave empty to not use a registry; vendor IDs will be
> -	  displayed instead of the corresponding names.
> -
>  config BR2_PACKAGE_IPMITOOL_LANPLUS
>  	bool "enable lanplus interface"
>  	select BR2_PACKAGE_OPENSSL
> diff --git a/package/ipmitool/ipmitool.mk b/package/ipmitool/ipmitool.mk
> index 4f2151904d43..f2ae72bab841 100644
> --- a/package/ipmitool/ipmitool.mk
> +++ b/package/ipmitool/ipmitool.mk
> @@ -49,20 +49,12 @@ endef
>  IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_REMOVE_IPMIEVD
>  endif
>  
> -IPMITOOL_PEN_REG_URI = $(call qstrip,$(BR2_PACKAGE_IPMITOOL_PEN_REG_URI))
> -ifneq ($(IPMITOOL_PEN_REG_URI),)
> -ifneq ($(findstring ://,$(IPMITOOL_PEN_REG_URI)),)
> -IPMITOOL_EXTRA_DOWNLOADS += $(IPMITOOL_PEN_REG_URI)
> -BR_NO_CHECK_HASH_FOR += $(notdir $(IPMITOOL_PEN_REG_URI))
> -IPMITOOL_PEN_REG = $(IPMITOOL_DL_DIR)/$(notdir $(IPMITOOL_PEN_REG_URI))
> +ifeq ($(BR2_PACKAGE_IANA_ASSIGNMENTS_PEN_REG),y)
> +IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc/iana
>  else
> -IPMITOOL_PEN_REG = $(IPMITOOL_PEN_REG_URI)
> -endif #findstring
> -define IPMITOOL_INSTALL_PEN_REG
> -	$(INSTALL) -D -m 0644 $(IPMITOOL_PEN_REG) \
> -		$(TARGET_DIR)/usr/share/misc/enterprise-numbers
> -endef
> -IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_INSTALL_PEN_REG
> -endif # IPMITOOL_PEN_REG_URI !empty
> +# Directory where ipmitool will search a custom PEN
> +# registry provided by the user in the rootfs overlay.
> +IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc
> +endif
>  
>  $(eval $(autotools-package))
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

Patch

diff --git a/Config.in.legacy b/Config.in.legacy
index 7513aa7efd66..ece342bb12d9 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -189,6 +189,18 @@  config BR2_BINUTILS_VERSION_2_40_X
 
 comment "Legacy options removed in 2024.08"
 
+config BR2_PACKAGE_IPMITOOL_PEN_REG_URI
+	string "IANA PEN registry move to iana-assignment package"
+	help
+	  Installation of the IANA PEN is now handled by the
+	  iana-assignment package; to install a custom PEN,
+	  use a rootfs-overlay for example.
+
+config BR2_PACKAGE_IPMITOOL_PEN_REG_URI_WRAP
+	bool
+	default y if BR2_PACKAGE_IPMITOOL_PEN_REG_URI != ""
+	select BR2_LEGACY
+
 config BR2_PACKAGE_MIDORI
 	bool "midori has been removed"
 	select BR2_LEGACY
diff --git a/package/ipmitool/Config.in b/package/ipmitool/Config.in
index 9516ff8596d3..5cbcf8e535d4 100644
--- a/package/ipmitool/Config.in
+++ b/package/ipmitool/Config.in
@@ -5,22 +5,16 @@  config BR2_PACKAGE_IPMITOOL
 	  IPMItool provides a simple command-line interface to
 	  IPMI-enabled devices.
 
+	  Note: If the PEN (Enterprise Numbers) registry is installed
+	  by the "iana-assignments" package, ipmitool will use it.
+	  Otherwise, the user can provide a custom file named
+	  enterprise-numbers to be placed in the usr/share/misc/
+	  directory of the overlay rootfs.
+
 	  https://github.com/ipmitool/ipmitool/
 
 if BR2_PACKAGE_IPMITOOL
 
-config BR2_PACKAGE_IPMITOOL_PEN_REG_URI
-	string "IANA PEN registry URL or path"
-	default "https://www.iana.org/assignments/enterprise-numbers.txt"
-	help
-	  Enter an URL or a file path to the PEN registry to use.
-
-	  Note that the official registry is 4MiB+ and may change any
-	  time and is thus not guaranteed to be reproducible.
-
-	  Leave empty to not use a registry; vendor IDs will be
-	  displayed instead of the corresponding names.
-
 config BR2_PACKAGE_IPMITOOL_LANPLUS
 	bool "enable lanplus interface"
 	select BR2_PACKAGE_OPENSSL
diff --git a/package/ipmitool/ipmitool.mk b/package/ipmitool/ipmitool.mk
index 4f2151904d43..f2ae72bab841 100644
--- a/package/ipmitool/ipmitool.mk
+++ b/package/ipmitool/ipmitool.mk
@@ -49,20 +49,12 @@  endef
 IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_REMOVE_IPMIEVD
 endif
 
-IPMITOOL_PEN_REG_URI = $(call qstrip,$(BR2_PACKAGE_IPMITOOL_PEN_REG_URI))
-ifneq ($(IPMITOOL_PEN_REG_URI),)
-ifneq ($(findstring ://,$(IPMITOOL_PEN_REG_URI)),)
-IPMITOOL_EXTRA_DOWNLOADS += $(IPMITOOL_PEN_REG_URI)
-BR_NO_CHECK_HASH_FOR += $(notdir $(IPMITOOL_PEN_REG_URI))
-IPMITOOL_PEN_REG = $(IPMITOOL_DL_DIR)/$(notdir $(IPMITOOL_PEN_REG_URI))
+ifeq ($(BR2_PACKAGE_IANA_ASSIGNMENTS_PEN_REG),y)
+IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc/iana
 else
-IPMITOOL_PEN_REG = $(IPMITOOL_PEN_REG_URI)
-endif #findstring
-define IPMITOOL_INSTALL_PEN_REG
-	$(INSTALL) -D -m 0644 $(IPMITOOL_PEN_REG) \
-		$(TARGET_DIR)/usr/share/misc/enterprise-numbers
-endef
-IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_INSTALL_PEN_REG
-endif # IPMITOOL_PEN_REG_URI !empty
+# Directory where ipmitool will search a custom PEN
+# registry provided by the user in the rootfs overlay.
+IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc
+endif
 
 $(eval $(autotools-package))