From a8c0f098535f02a0e2c99cf6d9372e9c35f90229 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:12:19 +0000 Subject: [PATCH 01/23] packages: add libmnl 1.0.5 Add a libmnl package (minimal netlink library, netfilter.org), built from the canonical upstream release via autotools. Installs libmnl.so/.so.0/.so.0.2.0 + headers/pkg-config into the sysroot. Required by ethtool's netlink interface; included inside the ETHTOOL_ENABLE block, ahead of ethtool. Signed-off-by: Brad House --- build-config/Makefile | 2 + build-config/make/libmnl.make | 102 +++++++++++++++++++++++++++++ upstream/libmnl-1.0.5.tar.bz2.sha1 | 1 + 3 files changed, 105 insertions(+) create mode 100644 build-config/make/libmnl.make create mode 100644 upstream/libmnl-1.0.5.tar.bz2.sha1 diff --git a/build-config/Makefile b/build-config/Makefile index 4aa83d247..a0e076b22 100644 --- a/build-config/Makefile +++ b/build-config/Makefile @@ -420,6 +420,8 @@ ifeq ($(DMIDECODE_ENABLE),yes) include make/dmidecode.make endif ifeq ($(ETHTOOL_ENABLE),yes) + # ethtool's netlink interface needs libmnl. + include make/libmnl.make include make/ethtool.make endif ifeq ($(MTREE_ENABLE),yes) diff --git a/build-config/make/libmnl.make b/build-config/make/libmnl.make new file mode 100644 index 000000000..bc66ef2a2 --- /dev/null +++ b/build-config/make/libmnl.make @@ -0,0 +1,102 @@ +#------------------------------------------------------------------------------- +# +# SPDX-License-Identifier: GPL-2.0 +# +#------------------------------------------------------------------------------- +# +# This is a makefile fragment that defines the build of libmnl +# +# libmnl is a minimal netlink library (netfilter.org). It is required +# by ethtool's netlink interface (the default since ethtool moved most +# functionality to netlink). + +LIBMNL_VERSION = 1.0.5 +LIBMNL_TARBALL = libmnl-$(LIBMNL_VERSION).tar.bz2 +LIBMNL_TARBALL_URLS += $(ONIE_MIRROR) https://www.netfilter.org/projects/libmnl/files +LIBMNL_BUILD_DIR = $(USER_BUILDDIR)/libmnl +LIBMNL_DIR = $(LIBMNL_BUILD_DIR)/libmnl-$(LIBMNL_VERSION) + +LIBMNL_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libmnl-$(LIBMNL_VERSION)-download +LIBMNL_SOURCE_STAMP = $(USER_STAMPDIR)/libmnl-source +LIBMNL_CONFIGURE_STAMP = $(USER_STAMPDIR)/libmnl-configure +LIBMNL_BUILD_STAMP = $(USER_STAMPDIR)/libmnl-build +LIBMNL_INSTALL_STAMP = $(STAMPDIR)/libmnl-install +LIBMNL_STAMP = $(LIBMNL_SOURCE_STAMP) \ + $(LIBMNL_CONFIGURE_STAMP) \ + $(LIBMNL_BUILD_STAMP) \ + $(LIBMNL_INSTALL_STAMP) + +PHONY += libmnl libmnl-download libmnl-source libmnl-configure \ + libmnl-build libmnl-install libmnl-clean libmnl-download-clean + +LIBMNL_LIBS = libmnl.so libmnl.so.0 libmnl.so.0.2.0 + +libmnl: $(LIBMNL_STAMP) + +DOWNLOAD += $(LIBMNL_DOWNLOAD_STAMP) +libmnl-download: $(LIBMNL_DOWNLOAD_STAMP) +$(LIBMNL_DOWNLOAD_STAMP): $(PROJECT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Getting upstream libmnl ====" + $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ + $(LIBMNL_TARBALL) $(LIBMNL_TARBALL_URLS) + $(Q) touch $@ + +SOURCE += $(LIBMNL_SOURCE_STAMP) +libmnl-source: $(LIBMNL_SOURCE_STAMP) +$(LIBMNL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBMNL_DOWNLOAD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Extracting upstream libmnl ====" + $(Q) $(SCRIPTDIR)/extract-package $(LIBMNL_BUILD_DIR) $(DOWNLOADDIR)/$(LIBMNL_TARBALL) + $(Q) touch $@ + +ifndef MAKE_CLEAN +LIBMNL_NEW_FILES = $(shell test -d $(LIBMNL_DIR) && test -f $(LIBMNL_BUILD_STAMP) && \ + find -L $(LIBMNL_DIR) -newer $(LIBMNL_BUILD_STAMP) -type f -print -quit) +endif + +libmnl-configure: $(LIBMNL_CONFIGURE_STAMP) +$(LIBMNL_CONFIGURE_STAMP): $(LIBMNL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure libmnl-$(LIBMNL_VERSION) ====" + $(Q) cd $(LIBMNL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(LIBMNL_DIR)/configure \ + --enable-shared \ + --prefix=/usr \ + --host=$(TARGET) \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" + $(Q) touch $@ + +libmnl-build: $(LIBMNL_BUILD_STAMP) +$(LIBMNL_BUILD_STAMP): $(LIBMNL_CONFIGURE_STAMP) $(LIBMNL_NEW_FILES) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building libmnl-$(LIBMNL_VERSION) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBMNL_DIR) DESTDIR=$(DEV_SYSROOT) + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBMNL_DIR) DESTDIR=$(DEV_SYSROOT) install + $(Q) touch $@ + +libmnl-install: $(LIBMNL_INSTALL_STAMP) +$(LIBMNL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBMNL_BUILD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Installing libmnl in $(SYSROOTDIR) ====" + $(Q) for file in $(LIBMNL_LIBS) ; do \ + cp -a $(DEV_SYSROOT)/usr/lib/$$file $(SYSROOTDIR)/usr/lib/ ; \ + done + $(Q) touch $@ + +USER_CLEAN += libmnl-clean +libmnl-clean: + $(Q) rm -rf $(LIBMNL_BUILD_DIR) + $(Q) rm -f $(LIBMNL_STAMP) + $(Q) echo "=== Finished making $@ for $(PLATFORM)" + +DOWNLOAD_CLEAN += libmnl-download-clean +libmnl-download-clean: + $(Q) rm -f $(LIBMNL_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBMNL_TARBALL) + +#------------------------------------------------------------------------------- +# +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/upstream/libmnl-1.0.5.tar.bz2.sha1 b/upstream/libmnl-1.0.5.tar.bz2.sha1 new file mode 100644 index 000000000..b1afbdd19 --- /dev/null +++ b/upstream/libmnl-1.0.5.tar.bz2.sha1 @@ -0,0 +1 @@ +63c6456b77f7978a7b37e62c1b38346b2ef2d91c libmnl-1.0.5.tar.bz2 From 635eacfdd646a7aadd08c16e798a04e4da144fee Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 4 Jun 2026 21:28:12 +0000 Subject: [PATCH 02/23] packages: bump ethtool to 6.15 ethtool 6.x enables its netlink interface via libmnl, so build it against the new libmnl package. Split out of the assorted version-bump batch because, unlike those, it required adding a new dependency. Signed-off-by: Brad House --- build-config/make/ethtool.make | 9 +++++---- upstream/ethtool-6.15.tar.xz.sha1 | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 upstream/ethtool-6.15.tar.xz.sha1 diff --git a/build-config/make/ethtool.make b/build-config/make/ethtool.make index 1fdb19e09..026676f5d 100644 --- a/build-config/make/ethtool.make +++ b/build-config/make/ethtool.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of ethtool # -ETHTOOL_VERSION = 3.14 +ETHTOOL_VERSION = 6.15 ETHTOOL_TARBALL = ethtool-$(ETHTOOL_VERSION).tar.xz ETHTOOL_TARBALL_URLS += $(ONIE_MIRROR) https://www.kernel.org/pub/software/network/ethtool ETHTOOL_BUILD_DIR = $(USER_BUILDDIR)/ethtool @@ -50,7 +50,7 @@ $(ETHTOOL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(ETHTOOL_DOWNLOAD_STAMP) $(Q) touch $@ ethtool-configure: $(ETHTOOL_CONFIGURE_STAMP) -$(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) $(LIBMNL_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure ethtool-$(ETHTOOL_VERSION) ====" $(Q) cd $(ETHTOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ @@ -58,7 +58,8 @@ $(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) --prefix=/usr \ --host=$(TARGET) \ CFLAGS="$(ONIE_CFLAGS)" \ - LDFLAGS="$(ONIE_LDFLAGS)" + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) $(Q) touch $@ ethtool-build: $(ETHTOOL_BUILD_STAMP) @@ -70,7 +71,7 @@ $(ETHTOOL_BUILD_STAMP): $(ETHTOOL_CONFIGURE_STAMP) $(Q) touch $@ ethtool-install: $(ETHTOOL_INSTALL_STAMP) -$(ETHTOOL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(ETHTOOL_BUILD_STAMP) +$(ETHTOOL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(ETHTOOL_BUILD_STAMP) $(LIBMNL_INSTALL_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Installing ethtool in $(SYSROOTDIR) ====" $(Q) cp -av $(DEV_SYSROOT)/usr/sbin/$(ETHTOOL_BIN) $(SYSROOTDIR)/usr/sbin diff --git a/upstream/ethtool-6.15.tar.xz.sha1 b/upstream/ethtool-6.15.tar.xz.sha1 new file mode 100644 index 000000000..004222283 --- /dev/null +++ b/upstream/ethtool-6.15.tar.xz.sha1 @@ -0,0 +1 @@ +aad9291bea6d29e288ac8d0ce0cb5c0b25e4d305 ethtool-6.15.tar.xz From e339ffc78e8391d2cb576935193a19377abb5f7f Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 03/23] packages: bump zlib to 1.3.2 Source moved to the madler GitHub release assets; the old SourceForge/libpng mirror 404s intermittently. Signed-off-by: Brad House --- build-config/make/zlib.make | 7 ++++--- upstream/zlib-1.3.2.tar.xz.sha1 | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 upstream/zlib-1.3.2.tar.xz.sha1 diff --git a/build-config/make/zlib.make b/build-config/make/zlib.make index ffc187797..f1db1e6af 100644 --- a/build-config/make/zlib.make +++ b/build-config/make/zlib.make @@ -9,10 +9,11 @@ # This is a makefile fragment that defines the build of zlib # -ZLIB_VERSION = 1.2.11 +ZLIB_VERSION = 1.3.2 ZLIB_TARBALL = zlib-$(ZLIB_VERSION).tar.xz -ZLIB_TARBALL_URLS += $(ONIE_MIRROR) http://zlib.net \ - http://softlayer-dal.dl.sourceforge.net/project/libpng/zlib/$(ZLIB_VERSION) +ZLIB_TARBALL_URLS += $(ONIE_MIRROR) \ + https://github.com/madler/zlib/releases/download/v$(ZLIB_VERSION) \ + https://zlib.net ZLIB_BUILD_DIR = $(USER_BUILDDIR)/zlib ZLIB_DIR = $(ZLIB_BUILD_DIR)/zlib-$(ZLIB_VERSION) diff --git a/upstream/zlib-1.3.2.tar.xz.sha1 b/upstream/zlib-1.3.2.tar.xz.sha1 new file mode 100644 index 000000000..37785a283 --- /dev/null +++ b/upstream/zlib-1.3.2.tar.xz.sha1 @@ -0,0 +1 @@ +6c9a55ad71ce9a7b252d4faf648ff66b56401e50 zlib-1.3.2.tar.xz From 79cba8614dac7fae96ec03a05cb465ce38b072de Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 04/23] packages: bump lzo to 2.10 Signed-off-by: Brad House --- build-config/make/lzo.make | 2 +- upstream/lzo-2.10.tar.gz.sha1 | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 upstream/lzo-2.10.tar.gz.sha1 diff --git a/build-config/make/lzo.make b/build-config/make/lzo.make index be4ee0c8a..a16ff886c 100644 --- a/build-config/make/lzo.make +++ b/build-config/make/lzo.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of lzo # -LZO_VERSION = 2.09 +LZO_VERSION = 2.10 LZO_TARBALL = lzo-$(LZO_VERSION).tar.gz LZO_TARBALL_URLS += $(ONIE_MIRROR) http://www.oberhumer.com/opensource/lzo/download LZO_BUILD_DIR = $(USER_BUILDDIR)/lzo diff --git a/upstream/lzo-2.10.tar.gz.sha1 b/upstream/lzo-2.10.tar.gz.sha1 new file mode 100644 index 000000000..6d70c2829 --- /dev/null +++ b/upstream/lzo-2.10.tar.gz.sha1 @@ -0,0 +1 @@ +4924676a9bae5db58ef129dc1cebce3baa3c4b5d lzo-2.10.tar.gz From 41acc08d57f76f37c00a44e98657b625c849712d Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 05/23] packages: bump libpcap to 1.10.6 Signed-off-by: Brad House --- build-config/make/libpcap.make | 2 +- upstream/libpcap-1.10.6.tar.gz.sha1 | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 upstream/libpcap-1.10.6.tar.gz.sha1 diff --git a/build-config/make/libpcap.make b/build-config/make/libpcap.make index 9b0c91994..b1d591b9c 100644 --- a/build-config/make/libpcap.make +++ b/build-config/make/libpcap.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of libpcap # -LIBPCAP_VERSION = 1.10.4 +LIBPCAP_VERSION = 1.10.6 LIBPCAP_TARBALL = libpcap-$(LIBPCAP_VERSION).tar.gz LIBPCAP_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.tcpdump.org/release diff --git a/upstream/libpcap-1.10.6.tar.gz.sha1 b/upstream/libpcap-1.10.6.tar.gz.sha1 new file mode 100644 index 000000000..b3dcfeed0 --- /dev/null +++ b/upstream/libpcap-1.10.6.tar.gz.sha1 @@ -0,0 +1 @@ +38a1661487e01bf59167a6f2cfab0f23fa3139ea libpcap-1.10.6.tar.gz From 8474b9e67f359567909297146e3dd6cbcb7df57b Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 06/23] packages: bump tcpdump to 4.99.6 Requires libpcap >= 1.10.5 (bumped in the preceding commit). Signed-off-by: Brad House --- build-config/make/tcpdump.make | 2 +- upstream/tcpdump-4.99.6.tar.gz.sha1 | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 upstream/tcpdump-4.99.6.tar.gz.sha1 diff --git a/build-config/make/tcpdump.make b/build-config/make/tcpdump.make index 166e77484..871d9686a 100644 --- a/build-config/make/tcpdump.make +++ b/build-config/make/tcpdump.make @@ -12,7 +12,7 @@ include make/libpcap.make include make/openssl.make -TCPDUMP_VERSION = 4.99.4 +TCPDUMP_VERSION = 4.99.6 TCPDUMP_TARBALL = tcpdump-$(TCPDUMP_VERSION).tar.gz TCPDUMP_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.tcpdump.org/release diff --git a/upstream/tcpdump-4.99.6.tar.gz.sha1 b/upstream/tcpdump-4.99.6.tar.gz.sha1 new file mode 100644 index 000000000..8e46600bb --- /dev/null +++ b/upstream/tcpdump-4.99.6.tar.gz.sha1 @@ -0,0 +1 @@ +e090c039e687d885338d18b69a32fd293cf6e907 tcpdump-4.99.6.tar.gz From 07dd94449d49e521bcd7fb6f7b7e21f225da22bc Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 07/23] packages: bump dropbear to 2026.91 Signed-off-by: Brad House --- build-config/make/dropbear.make | 2 +- upstream/dropbear-2026.91.tar.bz2.sha1 | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 upstream/dropbear-2026.91.tar.bz2.sha1 diff --git a/build-config/make/dropbear.make b/build-config/make/dropbear.make index d795519e7..2eb027507 100644 --- a/build-config/make/dropbear.make +++ b/build-config/make/dropbear.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of dropbear # -DROPBEAR_VERSION = 2020.81 +DROPBEAR_VERSION = 2026.91 DROPBEAR_TARBALL = dropbear-$(DROPBEAR_VERSION).tar.bz2 DROPBEAR_TARBALL_URLS += $(ONIE_MIRROR) https://matt.ucc.asn.au/dropbear/releases DROPBEAR_BUILD_DIR = $(USER_BUILDDIR)/dropbear diff --git a/upstream/dropbear-2026.91.tar.bz2.sha1 b/upstream/dropbear-2026.91.tar.bz2.sha1 new file mode 100644 index 000000000..2b8ae2b11 --- /dev/null +++ b/upstream/dropbear-2026.91.tar.bz2.sha1 @@ -0,0 +1 @@ +10d90d69f7c6a45e5fd0babd96be7950b2467364 dropbear-2026.91.tar.bz2 From 4b98828fd0fbbe21a0ef1f2893d684ae29bec1ed Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 08/23] packages: bump keyutils to 1.6.3 people.redhat.com is dead; source is now the maintainer's kernel.org git snapshot, which is a .tar.gz (was .tar.bz2). Signed-off-by: Brad House --- build-config/make/keyutils.make | 11 +++++++---- upstream/keyutils-1.6.3.tar.gz.sha1 | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 upstream/keyutils-1.6.3.tar.gz.sha1 diff --git a/build-config/make/keyutils.make b/build-config/make/keyutils.make index c1aad6b4a..eda105aee 100644 --- a/build-config/make/keyutils.make +++ b/build-config/make/keyutils.make @@ -9,10 +9,13 @@ # This is a makefile fragment that defines the build of keyutils # -KEYUTILS_VERSION = 1.5.10 -KEYUTILS_TARBALL = keyutils-$(KEYUTILS_VERSION).tar.bz2 +KEYUTILS_VERSION = 1.6.3 +KEYUTILS_TARBALL = keyutils-$(KEYUTILS_VERSION).tar.gz +# Upstream tarballs used to live at people.redhat.com/~dhowells, which was +# retired. The maintainer's git tree on kernel.org serves a reproducible +# snapshot tarball (keyutils-.tar.gz) instead. KEYUTILS_TARBALL_URLS += $(ONIE_MIRROR) \ - https://people.redhat.com/~dhowells/keyutils + https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot KEYUTILS_BUILD_DIR = $(USER_BUILDDIR)/keyutils KEYUTILS_DIR = $(KEYUTILS_BUILD_DIR)/keyutils-$(KEYUTILS_VERSION) @@ -29,7 +32,7 @@ PHONY += keyutils keyutils-download keyutils-source \ keyutils-download-clean KEYUTILS_BIN = keyctl -KEYUTILS_LIB = libkeyutils.so libkeyutils.so.1 libkeyutils.so.1.6 +KEYUTILS_LIB = libkeyutils.so libkeyutils.so.1 libkeyutils.so.1.10 keyutils: $(KEYUTILS_STAMP) diff --git a/upstream/keyutils-1.6.3.tar.gz.sha1 b/upstream/keyutils-1.6.3.tar.gz.sha1 new file mode 100644 index 000000000..3769b9fe9 --- /dev/null +++ b/upstream/keyutils-1.6.3.tar.gz.sha1 @@ -0,0 +1 @@ +7e5112d68eef5677e474d062282a0e1d1f19904c keyutils-1.6.3.tar.gz From a80d75de8db47098c056eb8777d7152d42d8b1f7 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 09/23] packages: bump dmidecode to 3.7 Refresh the ONIE cross-compile patch for 3.7. Signed-off-by: Brad House --- build-config/make/dmidecode.make | 2 +- .../dmidecode-onie-cross-compile.patch | 31 ++++++------------- patches/dmidecode/series | 2 +- upstream/dmidecode-3.7.tar.xz.sha1 | 1 + 4 files changed, 12 insertions(+), 24 deletions(-) create mode 100644 upstream/dmidecode-3.7.tar.xz.sha1 diff --git a/build-config/make/dmidecode.make b/build-config/make/dmidecode.make index 3f106a1aa..c3c92e8c3 100644 --- a/build-config/make/dmidecode.make +++ b/build-config/make/dmidecode.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of dmidecode # -DMIDECODE_VERSION = 3.1 +DMIDECODE_VERSION = 3.7 DMIDECODE_TARBALL = dmidecode-$(DMIDECODE_VERSION).tar.xz DMIDECODE_TARBALL_URLS += $(ONIE_MIRROR) http://download.savannah.gnu.org/releases/dmidecode/ DMIDECODE_BUILD_DIR = $(USER_BUILDDIR)/dmidecode diff --git a/patches/dmidecode/dmidecode-onie-cross-compile.patch b/patches/dmidecode/dmidecode-onie-cross-compile.patch index 8a8e3e254..c2a55c86f 100644 --- a/patches/dmidecode/dmidecode-onie-cross-compile.patch +++ b/patches/dmidecode/dmidecode-onie-cross-compile.patch @@ -4,32 +4,19 @@ Copyright (C) 2017 Curt Brune SPDX-License-Identifier: GPL-2.0 -Small modifications to the dmidecode Makefile for cross compiling in -the ONIE build environment. ---- - Makefile | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - +Use $(CROSS_COMPILE)gcc as the compiler so dmidecode cross-compiles in +the ONIE build environment. (dmidecode's Makefile honors CFLAGS/LDFLAGS +from the environment, so no further changes are needed.) diff --git a/Makefile b/Makefile -index 1f54a1f..1d03628 100644 +index 985992e..ae70e4d 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ # (at your option) any later version. # --CC = gcc -+CC = $(CROSS_COMPILE)gcc - CFLAGS = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ - -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef - -@@ -29,6 +29,9 @@ CFLAGS += -O2 - # Pass linker flags here - LDFLAGS = - -++CFLAGS += $(ONIE_CFLAGS) -++LDFLAGS += $(ONIE_LDFLAGS) -+ - DESTDIR = - prefix = /usr/local - sbindir = $(prefix)/sbin +-CC ?= gcc ++CC = $(CROSS_COMPILE)gcc + # Base CFLAGS can be overridden by environment + CFLAGS ?= -O2 + # When debugging, disable -O2 and enable -g diff --git a/patches/dmidecode/series b/patches/dmidecode/series index b9265a16e..bc707ba6f 100644 --- a/patches/dmidecode/series +++ b/patches/dmidecode/series @@ -1,2 +1,2 @@ -# This series applies on GIT commit 230d76a606e09f77b0e74e445e35dadeeac756ee +# This series applies on dmidecode 3.7 dmidecode-onie-cross-compile.patch diff --git a/upstream/dmidecode-3.7.tar.xz.sha1 b/upstream/dmidecode-3.7.tar.xz.sha1 new file mode 100644 index 000000000..1705ff331 --- /dev/null +++ b/upstream/dmidecode-3.7.tar.xz.sha1 @@ -0,0 +1 @@ +6fb5157e0e5deef087187d0494167fe408f37130 dmidecode-3.7.tar.xz From 9f89d3c5527b3b0f6d21c514c194c8a33ffbd785 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 10/23] packages: bump acpica-tools to 20260408 acpica.org's download URL retired; the ACPICA project now publishes official acpica-unix release tarballs as GitHub release assets. Signed-off-by: Brad House --- build-config/make/acpica-tools.make | 7 +++++-- upstream/acpica-unix-20260408.tar.gz.sha1 | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 upstream/acpica-unix-20260408.tar.gz.sha1 diff --git a/build-config/make/acpica-tools.make b/build-config/make/acpica-tools.make index f7ba9fc0a..9a445de5d 100644 --- a/build-config/make/acpica-tools.make +++ b/build-config/make/acpica-tools.make @@ -10,9 +10,12 @@ # This is a makefile fragment that defines the build of acpica-tools # -ACPICA_TOOLS_VERSION = 20150410 +ACPICA_TOOLS_VERSION = 20260408 +# acpica.org's old download area was retired (it redirects to an Intel +# page). The ACPICA project now publishes the official acpica-unix +# tarball as a GitHub release asset. ACPICA_TOOLS_TARBALL = acpica-unix-$(ACPICA_TOOLS_VERSION).tar.gz -ACPICA_TOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://acpica.org/sites/acpica/files/ +ACPICA_TOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/acpica/acpica/releases/download/$(ACPICA_TOOLS_VERSION) ACPICA_TOOLS_BUILD_DIR = $(USER_BUILDDIR)/acpica-tools ACPICA_TOOLS_DIR = $(ACPICA_TOOLS_BUILD_DIR)/acpica-unix-$(ACPICA_TOOLS_VERSION) diff --git a/upstream/acpica-unix-20260408.tar.gz.sha1 b/upstream/acpica-unix-20260408.tar.gz.sha1 new file mode 100644 index 000000000..bfe6e39dc --- /dev/null +++ b/upstream/acpica-unix-20260408.tar.gz.sha1 @@ -0,0 +1 @@ +2894397c3b9914b08d5d93d4d23d608269cea794 acpica-unix-20260408.tar.gz From eeee923f274c93261fbe2fb62ea0f552300d0d8a Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 11/23] packages: bump ipmitool to 1.8.19 No dist tarball is published for 1.8.19; use the upstream GitHub source-tag archive (built via ./bootstrap). Signed-off-by: Brad House --- build-config/make/ipmitool.make | 15 ++++++++++++--- upstream/IPMITOOL_1_8_19.tar.gz.sha1 | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 upstream/IPMITOOL_1_8_19.tar.gz.sha1 diff --git a/build-config/make/ipmitool.make b/build-config/make/ipmitool.make index d32191faf..57101dc9d 100644 --- a/build-config/make/ipmitool.make +++ b/build-config/make/ipmitool.make @@ -9,9 +9,14 @@ # This is a makefile fragment that defines the build of ipmitool # -IPMITOOL_VERSION = 1.8.18 -IPMITOOL_TARBALL = ipmitool-$(IPMITOOL_VERSION).tar.bz2 -IPMITOOL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/ipmitool/ipmitool/releases/download/IPMITOOL_$(subst .,_,$(IPMITOOL_VERSION))/ +IPMITOOL_VERSION = 1.8.19 +# 1.8.19 ships no release dist tarball, so use the upstream GitHub source +# tag archive. It unpacks to ipmitool-$(IPMITOOL_TAG)/ and has no +# generated configure, so the source step renames the dir and the +# configure step runs ./bootstrap (autoreconf) first. +IPMITOOL_TAG = IPMITOOL_$(subst .,_,$(IPMITOOL_VERSION)) +IPMITOOL_TARBALL = $(IPMITOOL_TAG).tar.gz +IPMITOOL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/ipmitool/ipmitool/archive/refs/tags IPMITOOL_BUILD_DIR = $(USER_BUILDDIR)/ipmitool IPMITOOL_DIR = $(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_VERSION) @@ -47,12 +52,16 @@ $(IPMITOOL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(IPMITOOL_DOWNLOAD_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Extracting upstream ipmitool ====" $(Q) $(SCRIPTDIR)/extract-package $(IPMITOOL_BUILD_DIR) $(DOWNLOADDIR)/$(IPMITOOL_TARBALL) + $(Q) if [ -d "$(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_TAG)" ] ; then \ + mv "$(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_TAG)" $(IPMITOOL_DIR) ; \ + fi $(Q) touch $@ ipmitool-configure: $(IPMITOOL_CONFIGURE_STAMP) $(IPMITOOL_CONFIGURE_STAMP): $(IPMITOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure ipmitool-$(IPMITOOL_VERSION) ====" + $(Q) cd $(IPMITOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' ./bootstrap $(Q) cd $(IPMITOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ $(IPMITOOL_DIR)/configure \ --prefix=/usr \ diff --git a/upstream/IPMITOOL_1_8_19.tar.gz.sha1 b/upstream/IPMITOOL_1_8_19.tar.gz.sha1 new file mode 100644 index 000000000..6b0bf3ee9 --- /dev/null +++ b/upstream/IPMITOOL_1_8_19.tar.gz.sha1 @@ -0,0 +1 @@ +92620c40a0f2d5fbe72e774385a55a53aa4ec448 IPMITOOL_1_8_19.tar.gz From e9ac99d10e579e4566a5575e40159e1b157bc3ad Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 12/23] packages: bump kexec-tools to 2.0.32 Drop the vendored aarch64-support and device-tree-sorting patches (upstreamed). Signed-off-by: Brad House --- build-config/make/kexec-tools.make | 2 +- ...mprove-device-tree-directory-sorting.patch | 84 -- ...5-25-kexec-tools-add-aarch64-support.patch | 828 ------------------ patches/kexec-tools/series | 15 +- upstream/kexec-tools-2.0.32.tar.xz.sha1 | 1 + 5 files changed, 11 insertions(+), 919 deletions(-) delete mode 100644 patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch delete mode 100644 patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch create mode 100644 upstream/kexec-tools-2.0.32.tar.xz.sha1 diff --git a/build-config/make/kexec-tools.make b/build-config/make/kexec-tools.make index 4b379c7fb..c061f1df7 100644 --- a/build-config/make/kexec-tools.make +++ b/build-config/make/kexec-tools.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of kexec-tools # -KEXEC_VERSION = 2.0.22 +KEXEC_VERSION = 2.0.32 KEXEC_TARBALL = kexec-tools-$(KEXEC_VERSION).tar.xz KEXEC_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/utils/kernel/kexec diff --git a/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch b/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch deleted file mode 100644 index 243ef57c3..000000000 --- a/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 0e1030b345b9e7c1c64b85dde32a282a19b825f0 Mon Sep 17 00:00:00 2001 -From: Curt Brune -Date: Tue, 24 Nov 2015 18:17:10 -0800 -Subject: [PATCH 1/1] Improve device tree directory sorting - -Previously when sorting the device tree directory entries, if both -device tree entries contained the '@' character then comparison was -made based on the length of the strings. - -This did not work in all cases and could result in odd orderings. - -This patch modifies the comparison function for the case when both -strings contain the '@' character. - -First a lexical comparison is made between the prefix portions of the -strings *before* the '@' character. - -Next, if the prefixes are equal, the lengths of the suffixes *after* -the '@' character are compared. This preserves the intent of the -original code. - -Next, if the suffix lengths are equal, a lexical comparison of the -suffixes is made. - -This is still not strictly correct, as ideally the portion after the -'@' should be compared numerically. However, determining what base to -use for all case is difficult. - -Signed-off-by: Curt Brune -Signed-off-by: Simon Horman ---- - kexec/arch/ppc/fs2dt.c | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/kexec/arch/ppc/fs2dt.c b/kexec/arch/ppc/fs2dt.c -index 4121c7d..6e77379 100644 ---- a/kexec/arch/ppc/fs2dt.c -+++ b/kexec/arch/ppc/fs2dt.c -@@ -30,6 +30,7 @@ - #include - #include "../../kexec.h" - #include "kexec-ppc.h" -+#include "types.h" - - #define MAXPATH 1024 /* max path name length */ - #define NAMESPACE 16384 /* max bytes for property names */ -@@ -296,6 +297,8 @@ static int comparefunc(const void *dentry1, const void *dentry2) - { - char *str1 = (*(struct dirent **)dentry1)->d_name; - char *str2 = (*(struct dirent **)dentry2)->d_name; -+ char *p1, *p2; -+ int res = 0, max_len; - - /* - * strcmp scans from left to right and fails to idetify for some -@@ -303,11 +306,21 @@ static int comparefunc(const void *dentry1, const void *dentry2) - * Therefore, we get the wrong sorted order like memory@10000000 and - * memory@f000000. - */ -- if (strchr(str1, '@') && strchr(str2, '@') && -- (strlen(str1) > strlen(str2))) -- return 1; -+ if ((p1 = strchr(str1, '@')) && (p2 = strchr(str2, '@'))) { -+ max_len = max(p1 - str1, p2 - str2); -+ if ((res = strncmp(str1, str2, max_len)) == 0) { -+ /* prefix is equal - compare part after '@' by length */ -+ p1++; p2++; -+ res = strlen(p1) - strlen(p2); -+ if (res == 0) -+ /* equal length, compare by strcmp() */ -+ res = strcmp(p1,p2); -+ } -+ } else { -+ res = strcmp(str1, str2); -+ } - -- return strcmp(str1, str2); -+ return res; - } - - /* --- -1.9.1 - diff --git a/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch b/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch deleted file mode 100644 index 1a7c2a9ad..000000000 --- a/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch +++ /dev/null @@ -1,828 +0,0 @@ -Subject: [PATCH 1/1] From: Geoff Levand Date: Mon, 15 - Jul 2013 23:32:36 +0000 (-0700) Subject: Add arm64 support X-Git-Url: - https://git.linaro.org/gitweb?p=people%2Fgeoff%2Fkexec-tools.git;a=commitdiff_plain;h=fbf5ac6c2c70ec0f6da2b9ff563e573999752c01 - -Add arm64 support - -Signed-off-by: Geoff Levand - -Get patch from: -https://fedorapeople.org/~hrw/aarch64/for-fedora/kexec-aarch64.patch - -Signed-off-by: Kai Kang ---- - configure | 3 + - configure.ac | 3 + - kexec/Makefile | 1 + - kexec/arch/arm64/Makefile | 13 ++ - kexec/arch/arm64/crashdump-arm64.c | 305 ++++++++++++++++++++++++++++++++ - kexec/arch/arm64/include/arch/options.h | 26 +++ - kexec/arch/arm64/kexec-arm64.c | 177 ++++++++++++++++++ - kexec/arch/arm64/kexec-arm64.h | 20 +++ - kexec/arch/arm64/kexec-elf-arm64.c | 114 ++++++++++++ - kexec/kexec-syscall.h | 7 +- - kexec/kexec.c | 4 +- - purgatory/arch/arm64/Makefile | 7 + - 12 files changed, 678 insertions(+), 2 deletions(-) - create mode 100644 kexec/arch/arm64/Makefile - create mode 100644 kexec/arch/arm64/crashdump-arm64.c - create mode 100644 kexec/arch/arm64/include/arch/options.h - create mode 100644 kexec/arch/arm64/kexec-arm64.c - create mode 100644 kexec/arch/arm64/kexec-arm64.h - create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c - create mode 100644 purgatory/arch/arm64/Makefile - -diff --git a/configure b/configure -index 94a429c..1b59cdf 100755 ---- a/configure -+++ b/configure -@@ -2195,6 +2195,9 @@ case $target_cpu in - ARCH="ppc64" - SUBARCH="LE" - ;; -+ aarch64 ) -+ ARCH="arm64" -+ ;; - arm* ) - ARCH="arm" - ;; -diff --git a/configure.ac b/configure.ac -index 94f3018..c815f34 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -35,6 +35,9 @@ case $target_cpu in - ARCH="ppc64" - SUBARCH="LE" - ;; -+ aarch64 ) -+ ARCH="arm64" -+ ;; - arm* ) - ARCH="arm" - ;; -diff --git a/kexec/Makefile b/kexec/Makefile -index a758b4a..8bc6d08 100644 ---- a/kexec/Makefile -+++ b/kexec/Makefile -@@ -71,6 +71,7 @@ KEXEC_SRCS += $($(ARCH)_FS2DT) - - include $(srcdir)/kexec/arch/alpha/Makefile - include $(srcdir)/kexec/arch/arm/Makefile -+include $(srcdir)/kexec/arch/arm64/Makefile - include $(srcdir)/kexec/arch/i386/Makefile - include $(srcdir)/kexec/arch/ia64/Makefile - include $(srcdir)/kexec/arch/m68k/Makefile -diff --git a/kexec/arch/arm64/Makefile b/kexec/arch/arm64/Makefile -new file mode 100644 -index 0000000..639805a ---- /dev/null -+++ b/kexec/arch/arm64/Makefile -@@ -0,0 +1,13 @@ -+arm64_KEXEC_SRCS += \ -+ kexec/arch/arm64/kexec-arm64.c \ -+ kexec/arch/arm64/kexec-elf-arm64.c \ -+ kexec/arch/arm64/crashdump-arm64.c -+ -+arm64_ARCH_REUSE_INITRD = -+arm64_ADD_SEGMENT = -+arm64_VIRT_TO_PHYS = -+ -+dist += $(arm64_KEXEC_SRCS) \ -+ kexec/arch/arm64/Makefile \ -+ kexec/arch/arm64/kexec-arm64.h -+ -diff --git a/kexec/arch/arm64/crashdump-arm64.c b/kexec/arch/arm64/crashdump-arm64.c -new file mode 100644 -index 0000000..bb1b8bd ---- /dev/null -+++ b/kexec/arch/arm64/crashdump-arm64.c -@@ -0,0 +1,305 @@ -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation (version 2 of the License). -+ */ -+ -+#include "../../kexec.h" -+#include "../../kexec-elf.h" -+#include "../../crashdump.h" -+ -+int is_crashkernel_mem_reserved(void) -+{ -+ return 0; -+} -+ -+#if 0 -+/* -+ * Used to save various memory ranges/regions needed for the captured -+ * kernel to boot. (lime memmap= option in other archs) -+ */ -+static struct memory_range crash_memory_ranges[CRASH_MAX_MEMORY_RANGES]; -+struct memory_ranges usablemem_rgns = { -+ .size = 0, -+ .ranges = crash_memory_ranges, -+}; -+ -+/* memory range reserved for crashkernel */ -+static struct memory_range crash_reserved_mem; -+ -+static struct crash_elf_info elf_info = { -+ .class = ELFCLASS32, -+ .data = ELFDATA2LSB, -+ .machine = EM_ARM, -+ .page_offset = PAGE_OFFSET, -+}; -+ -+unsigned long phys_offset; -+ -+/** -+ * crash_range_callback() - callback called for each iomem region -+ * @data: not used -+ * @nr: not used -+ * @str: name of the memory region -+ * @base: start address of the memory region -+ * @length: size of the memory region -+ * -+ * This function is called once for each memory region found in /proc/iomem. It -+ * locates system RAM and crashkernel reserved memory and places these to -+ * variables: @crash_memory_ranges and @crash_reserved_mem. Number of memory -+ * regions is placed in @crash_memory_nr_ranges. -+ */ -+static int crash_range_callback(void *UNUSED(data), int UNUSED(nr), -+ char *str, unsigned long base, -+ unsigned long length) -+{ -+ struct memory_range *range; -+ -+ if (usablemem_rgns.size >= CRASH_MAX_MEMORY_RANGES) -+ return 1; -+ -+ range = usablemem_rgns.ranges + usablemem_rgns.size; -+ -+ if (strncmp(str, "System RAM\n", 11) == 0) { -+ range->start = base; -+ range->end = base + length - 1; -+ range->type = RANGE_RAM; -+ usablemem_rgns.size++; -+ } else if (strncmp(str, "Crash kernel\n", 13) == 0) { -+ crash_reserved_mem.start = base; -+ crash_reserved_mem.end = base + length - 1; -+ crash_reserved_mem.type = RANGE_RAM; -+ } -+ -+ return 0; -+} -+ -+/** -+ * crash_exclude_range() - excludes memory region reserved for crashkernel -+ * -+ * Function locates where crashkernel reserved memory is and removes that region -+ * from the available memory regions. -+ */ -+static void crash_exclude_range(void) -+{ -+ const struct memory_range *range = &crash_reserved_mem; -+ int i; -+ -+ for (i = 0; i < usablemem_rgns.size; i++) { -+ struct memory_range *r = usablemem_rgns.ranges + i; -+ -+ /* -+ * We assume that crash area is fully contained in -+ * some larger memory area. -+ */ -+ if (r->start <= range->start && r->end >= range->end) { -+ struct memory_range *new; -+ /* -+ * Let's split this area into 2 smaller ones and -+ * remove excluded range from between. First create -+ * new entry for the remaining area. -+ */ -+ new = usablemem_rgns.ranges + usablemem_rgns.size; -+ new->start = range->end + 1; -+ new->end = r->end; -+ usablemem_rgns.size++; -+ /* -+ * Next update this area to end before excluded range. -+ */ -+ r->end = range->start - 1; -+ break; -+ } -+ } -+} -+ -+static int range_cmp(const void *a1, const void *a2) -+{ -+ const struct memory_range *r1 = a1; -+ const struct memory_range *r2 = a2; -+ -+ if (r1->start > r2->start) -+ return 1; -+ if (r1->start < r2->start) -+ return -1; -+ -+ return 0; -+} -+ -+/** -+ * crash_get_memory_ranges() - read system physical memory -+ * -+ * Function reads through system physical memory and stores found memory regions -+ * in @crash_memory_ranges. Number of memory regions found is placed in -+ * @crash_memory_nr_ranges. Regions are sorted in ascending order. -+ * -+ * Returns %0 in case of success and %-1 otherwise (errno is set). -+ */ -+static int crash_get_memory_ranges(void) -+{ -+ /* -+ * First read all memory regions that can be considered as -+ * system memory including the crash area. -+ */ -+ kexec_iomem_for_each_line(NULL, crash_range_callback, NULL); -+ -+ if (usablemem_rgns.size < 1) { -+ errno = EINVAL; -+ return -1; -+ } -+ -+ /* -+ * Exclude memory reserved for crashkernel (this may result a split memory -+ * region). -+ */ -+ crash_exclude_range(); -+ -+ /* -+ * Make sure that the memory regions are sorted. -+ */ -+ qsort(usablemem_rgns.ranges, usablemem_rgns.size, -+ sizeof(*usablemem_rgns.ranges), range_cmp); -+ -+ return 0; -+} -+ -+/** -+ * cmdline_add_elfcorehdr() - adds elfcorehdr= to @cmdline -+ * @cmdline: buffer where parameter is placed -+ * @elfcorehdr: physical address of elfcorehdr -+ * -+ * Function appends 'elfcorehdr=start' at the end of the command line given in -+ * @cmdline. Note that @cmdline must be at least %COMMAND_LINE_SIZE bytes long -+ * (inclunding %NUL). -+ */ -+static void cmdline_add_elfcorehdr(char *cmdline, unsigned long elfcorehdr) -+{ -+ char buf[COMMAND_LINE_SIZE]; -+ int buflen; -+ -+ buflen = snprintf(buf, sizeof(buf), "%s elfcorehdr=%#lx", -+ cmdline, elfcorehdr); -+ if (buflen < 0) -+ die("Failed to construct elfcorehdr= command line parameter\n"); -+ if (buflen >= sizeof(buf)) -+ die("Command line overflow\n"); -+ -+ (void) strncpy(cmdline, buf, COMMAND_LINE_SIZE); -+ cmdline[COMMAND_LINE_SIZE - 1] = '\0'; -+} -+ -+/** -+ * cmdline_add_mem() - adds mem= parameter to kernel command line -+ * @cmdline: buffer where parameter is placed -+ * @size: size of the kernel reserved memory (in bytes) -+ * -+ * This function appends 'mem=size' at the end of the command line given in -+ * @cmdline. Note that @cmdline must be at least %COMMAND_LINE_SIZE bytes long -+ * (including %NUL). -+ */ -+static void cmdline_add_mem(char *cmdline, unsigned long size) -+{ -+ char buf[COMMAND_LINE_SIZE]; -+ int buflen; -+ -+ buflen = snprintf(buf, sizeof(buf), "%s mem=%ldK", cmdline, size >> 10); -+ if (buflen < 0) -+ die("Failed to construct mem= command line parameter\n"); -+ if (buflen >= sizeof(buf)) -+ die("Command line overflow\n"); -+ -+ (void) strncpy(cmdline, buf, COMMAND_LINE_SIZE); -+ cmdline[COMMAND_LINE_SIZE - 1] = '\0'; -+} -+ -+static unsigned long long range_size(const struct memory_range *r) -+{ -+ return r->end - r->start + 1; -+} -+ -+static void dump_memory_ranges(void) -+{ -+ int i; -+ -+ if (!kexec_debug) -+ return; -+ -+ dbgprintf("crashkernel: [%#llx - %#llx] (%ldM)\n", -+ crash_reserved_mem.start, crash_reserved_mem.end, -+ (unsigned long)range_size(&crash_reserved_mem) >> 20); -+ -+ for (i = 0; i < usablemem_rgns.size; i++) { -+ struct memory_range *r = usablemem_rgns.ranges + i; -+ dbgprintf("memory range: [%#llx - %#llx] (%ldM)\n", -+ r->start, r->end, (unsigned long)range_size(r) >> 20); -+ } -+} -+ -+/** -+ * load_crashdump_segments() - loads additional segments needed for kdump -+ * @info: kexec info structure -+ * @mod_cmdline: kernel command line -+ * -+ * This function loads additional segments which are needed for the dump capture -+ * kernel. It also updates kernel command line passed in @mod_cmdline to have -+ * right parameters for the dump capture kernel. -+ * -+ * Return %0 in case of success and %-1 in case of error. -+ */ -+int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) -+{ -+ unsigned long elfcorehdr; -+ unsigned long bufsz; -+ void *buf; -+ int err; -+ -+ /* -+ * First fetch all the memory (RAM) ranges that we are going to pass to -+ * the crashdump kernel during panic. -+ */ -+ err = crash_get_memory_ranges(); -+ if (err) -+ return err; -+ -+ /* -+ * Now that we have memory regions sorted, we can use first memory -+ * region as PHYS_OFFSET. -+ */ -+ phys_offset = usablemem_rgns.ranges->start; -+ dbgprintf("phys_offset: %#lx\n", phys_offset); -+ -+ err = crash_create_elf32_headers(info, &elf_info, -+ usablemem_rgns.ranges, -+ usablemem_rgns.size, &buf, &bufsz, -+ ELF_CORE_HEADER_ALIGN); -+ if (err) -+ return err; -+ -+ /* -+ * We allocate ELF core header from the end of the memory area reserved -+ * for the crashkernel. We align the header to SECTION_SIZE (which is -+ * 1MB) so that available memory passed in kernel command line will be -+ * aligned to 1MB. This is because kernel create_mapping() wants memory -+ * regions to be aligned to SECTION_SIZE. -+ */ -+ elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20, -+ crash_reserved_mem.start, -+ crash_reserved_mem.end, -1, 0); -+ -+ dbgprintf("elfcorehdr: %#lx\n", elfcorehdr); -+ cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr); -+ -+ /* -+ * Add 'mem=size' parameter to dump capture kernel command line. This -+ * prevents the dump capture kernel from using any other memory regions -+ * which belong to the primary kernel. -+ */ -+ cmdline_add_mem(mod_cmdline, elfcorehdr - crash_reserved_mem.start); -+ -+ dump_memory_ranges(); -+ dbgprintf("kernel command line: \"%s\"\n", mod_cmdline); -+ -+ return 0; -+} -+ -+#endif -+ -diff --git a/kexec/arch/arm64/include/arch/options.h b/kexec/arch/arm64/include/arch/options.h -new file mode 100644 -index 0000000..04f6451 ---- /dev/null -+++ b/kexec/arch/arm64/include/arch/options.h -@@ -0,0 +1,26 @@ -+#ifndef KEXEC_ARCH_ARM64_OPTIONS_H -+#define KEXEC_ARCH_ARM64_OPTIONS_H -+ -+//#define OPT_ARCH_MAX ((OPT_MAX)+0) -+ -+#define OPT_APPEND ((OPT_MAX)+0) -+#define OPT_RAMDISK ((OPT_MAX)+1) -+#define OPT_DTB ((OPT_MAX)+2) -+ -+#define OPT_ARCH_MAX ((OPT_MAX)+3) -+ -+ -+#define KEXEC_ARCH_OPTIONS \ -+ KEXEC_OPTIONS \ -+ { "append", 1, NULL, OPT_APPEND }, \ -+ { "command-line", 1, NULL, OPT_APPEND }, \ -+ { "dtb", 1, NULL, OPT_DTB }, \ -+ { "initrd", 1, NULL, OPT_RAMDISK }, \ -+ { "ramdisk", 1, NULL, OPT_RAMDISK }, \ -+ -+#define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR /* Only accept long arch options. */ -+ -+#define KEXEC_ALL_OPTIONS KEXEC_ARCH_OPTIONS -+#define KEXEC_ALL_OPT_STR KEXEC_ARCH_OPT_STR -+ -+#endif /* KEXEC_ARCH_ARM64_OPTIONS_H */ -diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c -new file mode 100644 -index 0000000..fdb59d8 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-arm64.c -@@ -0,0 +1,177 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+//#include -+ -+#include "../../kexec.h" -+#include "../../kexec-syscall.h" -+#include "kexec-arm64.h" -+ -+ -+void arch_usage(void) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ printf( -+" --append=STRING Set the kernel command line to STRING.\n" -+" --command-line=STRING Set the kernel command line to STRING.\n" -+" --dtb=FILE Use FILE as the device tree blob.\n" -+" --initrd=FILE Use FILE as the kernel initial ramdisk.\n" -+" --ramdisk=FILE Use FILE as the kernel initial ramdisk.\n"); -+ -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -+ -+int arch_process_options(int UNUSED(argc), char **UNUSED(argv)) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+const struct arch_map_entry arches[] = { -+ { "aarch64", KEXEC_ARCH_ARM64 }, -+ { NULL, 0 }, -+}; -+ -+void arch_update_purgatory(struct kexec_info *UNUSED(info)) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+} -+ -+unsigned long virt_to_phys(unsigned long addr) -+{ -+ fprintf(stderr, "%s:%d: %016lx -> %016lx\n", __func__, __LINE__, addr, -+ addr + 0x080000000UL); -+ return addr + 0x080000000UL; -+} -+ -+void add_segment(struct kexec_info *info, const void *buf, size_t bufsz, -+ unsigned long base, size_t memsz) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ add_segment_phys_virt(info, buf, bufsz, base, memsz, 1); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -+ -+static int get_memory_ranges_1(struct memory_range **range, int *ranges, -+ unsigned long kexec_flags) -+{ -+ static struct memory_range memory_range[KEXEC_SEGMENT_MAX]; -+ const char *iomem; -+ int range_count = 0; -+ char line[MAX_LINE]; -+ FILE *fp; -+ -+ iomem = proc_iomem(); -+ fp = fopen(iomem, "r"); -+ -+ if (!fp) { -+ fprintf(stderr, "Cannot open %s: %s\n", -+ iomem, strerror(errno)); -+ return -1; -+ } -+ -+ dbgprintf("memory ranges:\n"); -+ -+ while(fgets(line, sizeof(line), fp) != 0) { -+ struct memory_range r; -+ char *str; -+ int consumed; -+ -+ if (range_count >= KEXEC_SEGMENT_MAX) -+ break; -+ -+ if (sscanf(line, "%Lx-%Lx : %n", &r.start, &r.end, &consumed) -+ != 2) -+ continue; -+ -+ str = line + consumed; -+ r.end++; -+ -+ if (memcmp(str, "System RAM\n", 11)) { -+ dbgprintf(" Skip: %016Lx - %016Lx : %s", r.start, r.end, -+ str); -+ continue; -+ } -+ -+ r.type = RANGE_RAM; -+ memory_range[range_count] = r; -+ range_count++; -+ -+ dbgprintf(" Add: %016Lx - %016Lx : %s", r.start, r.end, str); -+ } -+ -+ fclose(fp); -+ *range = memory_range; -+ *ranges = range_count; -+ -+ return 0; -+} -+ -+static int get_memory_ranges_2(struct memory_range **range, int *ranges, -+ unsigned long UNUSED(kexec_flags)) -+{ -+ static struct memory_range memory_range[2]; -+ -+ memory_range[0].start = 0x080000000; -+ memory_range[0].end = 0x100000000; -+ memory_range[0].type = RANGE_RAM; -+ -+ memory_range[1].start = 0x900000000; -+ memory_range[1].end = 0x880000000; -+ memory_range[1].type = RANGE_RAM; -+ -+ *range = memory_range; -+ *ranges = sizeof(memory_range) / sizeof(memory_range[0]); -+ -+ return 0; -+} -+ -+int get_memory_ranges(struct memory_range **range, int *ranges, -+ unsigned long kexec_flags) -+{ -+ /* FIXME: Should get this info from device tree. */ -+ -+ return get_memory_ranges_1(range, ranges, kexec_flags); -+} -+ -+struct file_type file_type[] = { -+ { "elf-arm64", elf_arm64_probe, elf_arm64_load, elf_arm64_usage }, -+}; -+ -+int file_types = sizeof(file_type) / sizeof(file_type[0]); -+ -+int arch_compat_trampoline(struct kexec_info *info) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+void arch_reuse_initrd(void) -+{ -+} -+ -+int machine_verify_elf_rel(struct mem_ehdr *ehdr) -+{ -+ (void)ehdr; -+ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+void machine_apply_elf_rel(struct mem_ehdr *ehdr, unsigned long r_type, -+ void *location, unsigned long address, unsigned long value) -+{ -+ (void)ehdr; -+ (void)r_type; -+ (void)location; -+ (void)address; -+ (void)value; -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+} -diff --git a/kexec/arch/arm64/kexec-arm64.h b/kexec/arch/arm64/kexec-arm64.h -new file mode 100644 -index 0000000..e5bf383 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-arm64.h -@@ -0,0 +1,20 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#if !defined(KEXEC_ARM64_H) -+#define KEXEC_ARM64_H -+ -+/* #include FIXME: this is broken */ -+#include -+ -+#include "../../kexec.h" -+ -+#define KEXEC_SEGMENT_MAX 16 /* FIXME: this should come from */ -+ -+int elf_arm64_probe(const char *buf, off_t len); -+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info); -+void elf_arm64_usage(void); -+ -+#endif -diff --git a/kexec/arch/arm64/kexec-elf-arm64.c b/kexec/arch/arm64/kexec-elf-arm64.c -new file mode 100644 -index 0000000..72c8687 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-elf-arm64.c -@@ -0,0 +1,114 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+#include "../../kexec-syscall.h" -+ -+#include "kexec-arm64.h" -+#include "arch/options.h" -+ -+#if !defined(EM_AARCH64) -+# define EM_AARCH64 183 -+#endif -+ -+int elf_arm64_probe(const char *buf, off_t len) -+{ -+ int result; -+ struct mem_ehdr ehdr; -+ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ result = build_elf_exec_info(buf, len, &ehdr, 0); -+ -+ if (result < 0) { -+ dbgprintf("Not an ELF executable\n"); -+ goto out; -+ } -+ -+ if (ehdr.e_machine != EM_AARCH64) { -+ dbgprintf("Not an AARCH64 executable\n"); -+ result = -1; -+ goto out; -+ } -+ -+ result = 0; -+ -+out: -+ free_elf_info(&ehdr); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+ return result; -+} -+ -+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info) -+{ -+ static const struct option options[] = { -+ KEXEC_ARCH_OPTIONS -+ { 0 } -+ }; -+ static const char short_options[] = KEXEC_OPT_STR ""; -+ const char *command_line = NULL; -+ unsigned int command_line_len = 0; -+ const char *ramdisk = NULL; -+ const char *dtb = NULL; -+ int opt; -+ struct mem_ehdr ehdr; -+ int result; -+ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ while ((opt = getopt_long(argc, argv, short_options, options, 0)) -+ != -1) { -+ switch (opt) { -+ default: -+ if (opt < OPT_MAX) /* Ignore core options */ -+ break; -+ case OPT_APPEND: -+ command_line = optarg; -+ command_line_len = strlen(command_line) + 1; -+ break; -+ case OPT_RAMDISK: -+ ramdisk = optarg; -+ break; -+ case OPT_DTB: -+ dtb = optarg; -+ break; -+ } -+ } -+ -+ fprintf(stderr, "%s:%d: command_line: %s\n", __func__, __LINE__, command_line); -+ fprintf(stderr, "%s:%d: ramdisk: %s\n", __func__, __LINE__, ramdisk); -+ fprintf(stderr, "%s:%d: dtb: %s\n", __func__, __LINE__, dtb); -+ -+ if (info->kexec_flags & KEXEC_ON_CRASH) { -+ fprintf(stderr, "kexec: kdump not yet supported on arm64\n"); -+ return -1; -+ } -+ -+ result = build_elf_exec_info(buf, len, &ehdr, 0); -+ -+ if (result < 0) { -+ free_elf_info(&ehdr); -+ fprintf(stderr, "%s:%d: free_elf_info failed\n", __func__, -+ __LINE__); -+ return result; -+ } -+ -+ elf_exec_build_load(info, &ehdr, buf, len, 0); -+ -+ info->entry = (void*)0x80080000UL; // FIXME -+ -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+ return 0; -+} -+ -+void elf_arm64_usage(void) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h -index ce2e20b..b66db6c 100644 ---- a/kexec/kexec-syscall.h -+++ b/kexec/kexec-syscall.h -@@ -39,7 +39,7 @@ - #ifdef __s390__ - #define __NR_kexec_load 277 - #endif --#ifdef __arm__ -+#if defined(__arm__) || defined(__arm64__) - #define __NR_kexec_load __NR_SYSCALL_BASE + 347 - #endif - #if defined(__mips__) -@@ -108,6 +108,8 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, - #define KEXEC_ARCH_PPC64 (21 << 16) - #define KEXEC_ARCH_IA_64 (50 << 16) - #define KEXEC_ARCH_ARM (40 << 16) -+#define KEXEC_ARCH_ARM64 (183 << 16) -+/* #define KEXEC_ARCH_AARCH64 (183 << 16) */ - #define KEXEC_ARCH_S390 (22 << 16) - #define KEXEC_ARCH_SH (42 << 16) - #define KEXEC_ARCH_MIPS_LE (10 << 16) -@@ -150,6 +152,9 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, - #if defined(__mips__) - #define KEXEC_ARCH_NATIVE KEXEC_ARCH_MIPS - #endif -+#if defined(__arm64__) -+#define KEXEC_ARCH_NATIVE KEXEC_ARCH_ARM64 -+#endif - #ifdef __m68k__ - #define KEXEC_ARCH_NATIVE KEXEC_ARCH_68K - #endif -diff --git a/kexec/kexec.c b/kexec/kexec.c -index b088916..4ef7c64 100644 ---- a/kexec/kexec.c -+++ b/kexec/kexec.c -@@ -663,7 +663,9 @@ static int my_load(const char *type, int fileind, int argc, char **argv, - - memset(&info, 0, sizeof(info)); - info.kexec_flags = kexec_flags; -- -+ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ - result = 0; - if (argc - fileind <= 0) { - fprintf(stderr, "No kernel specified\n"); -diff --git a/purgatory/arch/arm64/Makefile b/purgatory/arch/arm64/Makefile -new file mode 100644 -index 0000000..d88e037 ---- /dev/null -+++ b/purgatory/arch/arm64/Makefile -@@ -0,0 +1,7 @@ -+# -+# Purgatory arm64 -+# -+ -+arm64_PURGATORY_SRCS = -+ -+dist += purgatory/arch/arm64/Makefile $(arm64_PURGATORY_SRCS) --- -1.9.1 - diff --git a/patches/kexec-tools/series b/patches/kexec-tools/series index 73a74ea10..289a5f798 100644 --- a/patches/kexec-tools/series +++ b/patches/kexec-tools/series @@ -1,6 +1,9 @@ -# Disabled this series for the post 2021.08 ONIE release, as the upgraded -# kexec-tools has arm64 support, and seems to work fine without the patch. -# PowerPC support remains to be tested - Alex Doyle -# This series applies on GIT commit db8668ed563d446839f25150fb1ba24721d7c4be -#0001-Improve-device-tree-directory-sorting.patch -#15-25-kexec-tools-add-aarch64-support.patch +# No patches required for kexec-tools. +# +# Historically ONIE carried two patches against kexec-tools: +# 0001-Improve-device-tree-directory-sorting.patch +# 15-25-kexec-tools-add-aarch64-support.patch +# Both were already disabled (commented out) after the post-2021.08 upgrade and +# are now fully upstream as of kexec-tools 2.0.32, so they have been dropped: +# - The device-tree directory sorting fix is present in kexec/arch/ppc/fs2dt.c. +# - arm64/aarch64 support is fully provided by kexec/arch/arm64/. diff --git a/upstream/kexec-tools-2.0.32.tar.xz.sha1 b/upstream/kexec-tools-2.0.32.tar.xz.sha1 new file mode 100644 index 000000000..fbcad16ac --- /dev/null +++ b/upstream/kexec-tools-2.0.32.tar.xz.sha1 @@ -0,0 +1 @@ +8ac0f768bb3280c4f42901b12085b4945f56a0f1 kexec-tools-2.0.32.tar.xz From 899eadecfbf2c1b305858ced8eac25c058d25bc6 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 13/23] packages: bump btrfs-progs to v7.0 Signed-off-by: Brad House --- build-config/make/btrfs-progs.make | 17 +++++++++++------ upstream/btrfs-progs-v7.0.tar.xz.sha1 | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 upstream/btrfs-progs-v7.0.tar.xz.sha1 diff --git a/build-config/make/btrfs-progs.make b/build-config/make/btrfs-progs.make index 0f5915b84..4dde95841 100644 --- a/build-config/make/btrfs-progs.make +++ b/build-config/make/btrfs-progs.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of btrfs-progs # -BTRFSPROGS_VERSION = v4.9.1 +BTRFSPROGS_VERSION = v7.0 BTRFSPROGS_TARBALL = btrfs-progs-$(BTRFSPROGS_VERSION).tar.xz BTRFSPROGS_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs @@ -37,11 +37,10 @@ PHONY += btrfs-progs btrfs-progs-download btrfs-progs-source \ btrfs-progs-configure btrfs-progs-build btrfs-progs-install \ btrfs-progs-clean btrfs-progs-download-clean -BTRFSPROGS_LIBS = libbtrfs.so libbtrfs.so.0 libbtrfs.so.0.1 -BTRFSPROGS_SBIN = btrfs mkfs.btrfs btrfs-debug-tree btrfs-map-logical \ - btrfs-image btrfs-zero-log btrfs-find-root btrfstune \ - btrfs-show-super btrfs-select-super btrfs-convert \ - btrfsck +BTRFSPROGS_LIBS = libbtrfs.so.0.1.5 libbtrfs.so libbtrfs.so.0 libbtrfs.so.0.1 +BTRFSPROGS_SBIN = btrfs mkfs.btrfs btrfs-map-logical \ + btrfs-image btrfs-find-root btrfstune \ + btrfs-select-super btrfsck btrfs-progs: $(BTRFSPROGS_STAMP) @@ -81,6 +80,12 @@ $(BTRFSPROGS_CONFIGURE_STAMP): $(E2FSPROGS_BUILD_STAMP) \ --disable-documentation \ --disable-backtrace \ --disable-convert \ + --disable-zstd \ + --disable-libudev \ + --disable-python \ + --with-crypto=builtin \ + ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_realloc_0_nonnull=yes \ CC=$(CROSSPREFIX)gcc \ CFLAGS="$(ONIE_CFLAGS)" \ $(ONIE_PKG_CONFIG) diff --git a/upstream/btrfs-progs-v7.0.tar.xz.sha1 b/upstream/btrfs-progs-v7.0.tar.xz.sha1 new file mode 100644 index 000000000..09885b8c9 --- /dev/null +++ b/upstream/btrfs-progs-v7.0.tar.xz.sha1 @@ -0,0 +1 @@ +ab3a17109d6c770551daa9e2494bed7d3ba115a8 btrfs-progs-v7.0.tar.xz From e14c57e81517d4baa8dfc3aeef51748e46271b85 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 14/23] packages: bump pciutils to 3.15.0 Refresh the ONIE Makefile-changes patch for 3.15.0. Signed-off-by: Brad House --- build-config/make/pciutils.make | 6 +++--- .../0000-Makefile-changes-for-ONIE.patch | 19 ++++--------------- patches/pciutils/series | 2 +- upstream/pciutils-3.15.0.tar.xz.sha1 | 1 + upstream/pciutils-3.2.1.tar.xz.sha1 | 1 - 5 files changed, 9 insertions(+), 20 deletions(-) create mode 100644 upstream/pciutils-3.15.0.tar.xz.sha1 delete mode 100644 upstream/pciutils-3.2.1.tar.xz.sha1 diff --git a/build-config/make/pciutils.make b/build-config/make/pciutils.make index 39cfedab6..0751b52e1 100644 --- a/build-config/make/pciutils.make +++ b/build-config/make/pciutils.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of pciutils # -PCIUTILS_VERSION = 3.2.1 +PCIUTILS_VERSION = 3.15.0 PCIUTILS_TARBALL = pciutils-$(PCIUTILS_VERSION).tar.xz PCIUTILS_TARBALL_URLS += $(ONIE_MIRROR) https://www.kernel.org/pub/software/utils/pciutils PCIUTILS_BUILD_DIR = $(USER_BUILDDIR)/pciutils @@ -70,9 +70,9 @@ $(PCIUTILS_BUILD_STAMP): $(PCIUTILS_PATCH_STAMP) $(PCIUTILS_NEW_FILES) $(ZLIB_BU $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building pciutils-$(PCIUTILS_VERSION) ====" $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(PCIUTILS_DIR) lib/libpci.so.$(PCIUTILS_VERSION) CROSS_COMPILE=$(CROSSPREFIX) \ - HOST=onie-$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) + HOST=$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(PCIUTILS_DIR) install-lib CROSS_COMPILE=$(CROSSPREFIX) \ - HOST=onie-$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) + HOST=$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) $(Q) touch $@ pciutils-install: $(PCIUTILS_INSTALL_STAMP) diff --git a/patches/pciutils/0000-Makefile-changes-for-ONIE.patch b/patches/pciutils/0000-Makefile-changes-for-ONIE.patch index 936791640..19c816275 100644 --- a/patches/pciutils/0000-Makefile-changes-for-ONIE.patch +++ b/patches/pciutils/0000-Makefile-changes-for-ONIE.patch @@ -7,27 +7,16 @@ SPDX-License-Identifier: GPL-2.0 Minor Makefile changes for ONIE build environment. diff --git a/Makefile b/Makefile -index 0a21ee8..f2b8924 100644 +index a726773..7d2567c 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,10 @@ OPT=-O2 CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes - + +# ONIE build environment changes +CFLAGS += $(ONIE_CFLAGS) +LDFLAGS += $(ONIE_LDFLAGS) + - VERSION=3.2.1 - DATE=2013-11-10 - -@@ -130,7 +134,8 @@ install-lib: $(PCIINC_INS) lib/$(PCILIBPC) install-pcilib - $(INSTALL) -c -m 644 $(PCIINC_INS) $(DESTDIR)$(INCDIR)/pci - $(INSTALL) -c -m 644 lib/$(PCILIBPC) $(DESTDIR)$(PKGCFDIR) - ifeq ($(SHARED),yes) -- ln -sf $(LIBNAME).so$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so -+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so$(ABI_VERSION) -+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so - endif - - uninstall: all + VERSION=3.15.0 + DATE=2026-04-05 diff --git a/patches/pciutils/series b/patches/pciutils/series index 788eadc6a..b70328ee7 100644 --- a/patches/pciutils/series +++ b/patches/pciutils/series @@ -1,2 +1,2 @@ -# This series applies on GIT commit 68d0399702a226d60ad9ed7e7f42f0b7b13ff830 +# This series applies on pciutils release 3.15.0 0000-Makefile-changes-for-ONIE.patch diff --git a/upstream/pciutils-3.15.0.tar.xz.sha1 b/upstream/pciutils-3.15.0.tar.xz.sha1 new file mode 100644 index 000000000..a3d84aad4 --- /dev/null +++ b/upstream/pciutils-3.15.0.tar.xz.sha1 @@ -0,0 +1 @@ +0cd524a8217ec55c1bd12f35c75b7614e6e070b9 pciutils-3.15.0.tar.xz diff --git a/upstream/pciutils-3.2.1.tar.xz.sha1 b/upstream/pciutils-3.2.1.tar.xz.sha1 deleted file mode 100644 index 112df915b..000000000 --- a/upstream/pciutils-3.2.1.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -2009c441bfb78811c2991bde03b88c043654c195 pciutils-3.2.1.tar.xz From e136916a457e7d08c5d58900740ff5efbdfcacd1 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 15/23] packages: bump gptfdisk to 1.0.10 Drop the add-onie-partition-types patch (obsolete) and refresh the cross-compile patch. Signed-off-by: Brad House --- build-config/make/gptfdisk.make | 2 +- .../gptfdisk/add-onie-partition-types.patch | 30 ------------ .../gptfdisk-onie-cross-compile.patch | 47 +++++++------------ patches/gptfdisk/series | 7 ++- upstream/gptfdisk-1.0.10.tar.gz.sha1 | 1 + 5 files changed, 24 insertions(+), 63 deletions(-) delete mode 100644 patches/gptfdisk/add-onie-partition-types.patch create mode 100644 upstream/gptfdisk-1.0.10.tar.gz.sha1 diff --git a/build-config/make/gptfdisk.make b/build-config/make/gptfdisk.make index c72024cb8..e50bada33 100644 --- a/build-config/make/gptfdisk.make +++ b/build-config/make/gptfdisk.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of gptfdisk # -GPTFDISK_VERSION = 0.8.8 +GPTFDISK_VERSION = 1.0.10 GPTFDISK_TARBALL = gptfdisk-$(GPTFDISK_VERSION).tar.gz GPTFDISK_TARBALL_URLS += $(ONIE_MIRROR) http://sourceforge.net/projects/gptfdisk/files/gptfdisk/$(GPTFDISK_VERSION)/ GPTFDISK_BUILD_DIR = $(USER_BUILDDIR)/gptfdisk diff --git a/patches/gptfdisk/add-onie-partition-types.patch b/patches/gptfdisk/add-onie-partition-types.patch deleted file mode 100644 index d7457cc29..000000000 --- a/patches/gptfdisk/add-onie-partition-types.patch +++ /dev/null @@ -1,30 +0,0 @@ -Add ONIE partition types - -Copyright (C) 2014 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Add GUID for two ONIE partition types: - - // Open Network Install Environment (ONIE) Boot Partition - AddType(0x3100, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot"); - - // Open Network Install Environment (ONIE) Configuration Partition - AddType(0x3100, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config"); - -diff --git a/parttypes.cc b/parttypes.cc -index 87f5c86..f78489b 100644 ---- a/parttypes.cc -+++ b/parttypes.cc -@@ -91,6 +91,11 @@ void PartType::AddAllTypes(void) { - AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 LBA - AddType(0x2700, "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC", "Windows RE"); - -+ // Open Network Install Environment (ONIE) specific types. -+ // See http://www.onie.org/ -+ AddType(0x3000, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot"); -+ AddType(0x3001, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config"); -+ - // PowerPC reference platform boot partition - AddType(0x4100, "9E1A2D38-C612-4316-AA26-8B49521E5A8B", "PowerPC PReP boot"); - diff --git a/patches/gptfdisk/gptfdisk-onie-cross-compile.patch b/patches/gptfdisk/gptfdisk-onie-cross-compile.patch index bed41a0d5..f38f0c2bb 100644 --- a/patches/gptfdisk/gptfdisk-onie-cross-compile.patch +++ b/patches/gptfdisk/gptfdisk-onie-cross-compile.patch @@ -9,8 +9,12 @@ the ONIE build environment. Main changes: -- prefix gcc and g++ with $(CROSS_PREFIX) -- remove Unicode support +- prefix gcc and g++ with $(CROSS_COMPILE) +- append $(ONIE_CXXFLAGS) and $(ONIE_LDFLAGS) + +Note: as of gptfdisk 1.0.10 the default Linux build no longer enables +Unicode (USE_UTF16) or links against ICU (-licuio -licuuc), so those +removals from earlier versions are no longer necessary. diff --git a/.gitignore b/.gitignore new file mode 100644 @@ -21,42 +25,25 @@ index 0000000..61758e7 +gdisk +sgdisk diff --git a/Makefile b/Makefile -index 3364082..ae7d862 100644 +index af9701c..2c46185 100644 --- a/Makefile +++ b/Makefile -@@ -1,7 +1,7 @@ --CC=gcc --CXX=g++ +@@ -64,6 +64,8 @@ endif + $(info Build target is $(TARGET)) + + # Default/Linux settings.... +CC=$(CROSS_COMPILE)gcc +CXX=$(CROSS_COMPILE)g++ - CFLAGS+=-D_FILE_OFFSET_BITS=64 --CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 - #CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 - LDFLAGS+= - LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix -@@ -11,11 +11,14 @@ MBR_LIB_OBJS=$(MBR_LIBS:=.o) - LIB_HEADERS=$(LIB_NAMES:=.h) + STRIP?=strip + #CXXFLAGS+=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 + CXXFLAGS+=-O2 -Wall -D_FILE_OFFSET_BITS=64 +@@ -142,6 +144,9 @@ LIB_HEADERS=$(LIB_NAMES:=.h) DEPEND= makedepend $(CXXFLAGS) + ALL_EXE=$(ALL:=$(FN_EXTENSION)) +CXXFLAGS+= $(ONIE_CXXFLAGS) +LDFLAGS+= $(ONIE_LDFLAGS) + - all: cgdisk gdisk sgdisk fixparts + all: $(ALL) gdisk: $(LIB_OBJS) gdisk.o gpttext.o - # $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk -- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk -+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk - - cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o - # $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk -@@ -23,7 +26,7 @@ cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o - - sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o - # $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk -- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk -+ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk - - fixparts: $(MBR_LIB_OBJS) fixparts.o - $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts diff --git a/patches/gptfdisk/series b/patches/gptfdisk/series index 5b6085b5f..8c985546d 100644 --- a/patches/gptfdisk/series +++ b/patches/gptfdisk/series @@ -1,3 +1,6 @@ -# This series applies on GIT commit fbfb51abe2cf88fcac9d36c46b0e3fe56495233d +# This series applies on the gptfdisk 1.0.10 upstream release tarball +# (gptfdisk-1.0.10.tar.gz). As of 1.0.10 the ONIE partition type codes +# (0x3000 "ONIE boot" / 0x3001 "ONIE config") are present in upstream +# parttypes.cc, so the former add-onie-partition-types.patch is no longer +# needed and has been dropped. gptfdisk-onie-cross-compile.patch -add-onie-partition-types.patch diff --git a/upstream/gptfdisk-1.0.10.tar.gz.sha1 b/upstream/gptfdisk-1.0.10.tar.gz.sha1 new file mode 100644 index 000000000..55ac3a31a --- /dev/null +++ b/upstream/gptfdisk-1.0.10.tar.gz.sha1 @@ -0,0 +1 @@ +70c0bfe4290c2893fc957ef7f6156c5e74e469fc gptfdisk-1.0.10.tar.gz From aa28fe2f61bc20bcb9f086c875182ce44718f42f Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 18:56:34 +0000 Subject: [PATCH 16/23] packages: bump popt to 1.19 Drop the vendored aarch64-support and uClibc glob-pattern workaround patches (no longer needed). Signed-off-by: Brad House --- build-config/make/popt.make | 8 +- patches/popt/aarch64_support.patch | 733 ------------------ ...opt-workaround-uclibc-glob-pattern-p.patch | 31 - patches/popt/series | 7 +- upstream/popt-1.19.tar.gz.sha1 | 1 + 5 files changed, 10 insertions(+), 770 deletions(-) delete mode 100644 patches/popt/aarch64_support.patch delete mode 100644 patches/popt/popt-workaround-uclibc-glob-pattern-p.patch create mode 100644 upstream/popt-1.19.tar.gz.sha1 diff --git a/build-config/make/popt.make b/build-config/make/popt.make index 59a41f416..80e3119bd 100644 --- a/build-config/make/popt.make +++ b/build-config/make/popt.make @@ -9,9 +9,11 @@ # This is a makefile fragment that defines the build of popt # -POPT_VERSION = 1.16 +POPT_VERSION = 1.19 POPT_TARBALL = popt-$(POPT_VERSION).tar.gz -POPT_TARBALL_URLS += $(ONIE_MIRROR) http://rpm5.org/files/popt/ +# popt's old home rpm5.org is defunct; it is maintained under +# rpm-software-management and released on ftp.rpm.org. +POPT_TARBALL_URLS += $(ONIE_MIRROR) http://ftp.rpm.org/popt/releases/popt-1.x POPT_BUILD_DIR = $(USER_BUILDDIR)/popt POPT_DIR = $(POPT_BUILD_DIR)/popt-$(POPT_VERSION) @@ -32,7 +34,7 @@ PHONY += popt popt-download popt-source popt-patch \ popt-configure popt-build popt-install popt-clean \ popt-download-clean -POPT_LIBS = libpopt.so libpopt.so.0 libpopt.so.0.0.0 +POPT_LIBS = libpopt.so libpopt.so.0 libpopt.so.0.0.2 popt: $(POPT_STAMP) diff --git a/patches/popt/aarch64_support.patch b/patches/popt/aarch64_support.patch deleted file mode 100644 index bebe2516e..000000000 --- a/patches/popt/aarch64_support.patch +++ /dev/null @@ -1,733 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2016 Pankaj Bansal -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- - -diff --git a/config.sub b/config.sub -old mode 100755 -new mode 100644 -index 2a55a50..1028ea4 ---- a/config.sub -+++ b/config.sub -@@ -1,38 +1,31 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# Copyright 1992-2016 Free Software Foundation, Inc. - --timestamp='2009-11-20' -+timestamp='2016-05-10' - --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# This file is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# This file is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches to . - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. -@@ -40,7 +33,7 @@ timestamp='2009-11-20' - # Otherwise, we print the canonical config type on stdout and succeed. - - # You can get the latest version of this script from: --# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases -@@ -60,24 +53,17 @@ timestamp='2009-11-20' - me=`echo "$0" | sed -e 's,.*/,,'` - - usage="\ --Usage: $0 [OPTION] CPU-MFR-OPSYS -- $0 [OPTION] ALIAS -- -+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - Canonicalize a configuration name. -- - Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit -- - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) -- --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -- -+Copyright 1992-2016 Free Software Foundation, Inc. - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -@@ -123,13 +109,18 @@ esac - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ -+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ -+ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -+ android-linux) -+ os=-linux-android -+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown -+ ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] -@@ -152,12 +143,12 @@ case $os in - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis | -knuth | -cray | -microblaze) -+ -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; -- -bluegene*) -- os=-cnk -+ -bluegene*) -+ os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= -@@ -173,10 +164,10 @@ case $os in - os=-chorusos - basic_machine=$1 - ;; -- -chorusrdb) -- os=-chorusrdb -+ -chorusrdb) -+ os=-chorusrdb - basic_machine=$1 -- ;; -+ ;; - -hiux*) - os=-hiuxwe2 - ;; -@@ -221,6 +212,12 @@ case $os in - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -lynx*178) -+ os=-lynxos178 -+ ;; -+ -lynx*5) -+ os=-lynxos5 -+ ;; - -lynx*) - os=-lynxos - ;; -@@ -245,20 +242,29 @@ case $basic_machine in - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ -+ | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | arc | arceb \ -+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ -+ | avr | avr32 \ -+ | ba \ -+ | be32 | be64 \ - | bfin \ -- | c4x | clipper \ -+ | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fido | fr30 | frv \ -+ | e2k | epiphany \ -+ | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -+ | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -+ | k1om \ -+ | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ -- | maxq | mb | microblaze | mcore | mep | metag \ -+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -@@ -272,38 +278,55 @@ case $basic_machine in - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ -+ | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ -+ | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ -+ | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ -- | nios | nios2 \ -+ | nds32 | nds32le | nds32be \ -+ | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ -- | or32 \ -+ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ -- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -+ | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ -- | rx \ -+ | riscv32 | riscv64 \ -+ | rl78 | rx \ - | score \ -- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -- | spu | strongarm \ -- | tahoe | thumb | tic4x | tic80 | tron \ -+ | spu \ -+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ -- | v850 | v850e \ -+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ -+ | visium \ - | we32k \ -- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m6811 | m68hc11 | m6812 | m68hc12 | picochip) -- # Motorola 68HC11/12. -+ c54x) -+ basic_machine=tic54x-unknown -+ ;; -+ c55x) -+ basic_machine=tic55x-unknown -+ ;; -+ c6x) -+ basic_machine=tic6x-unknown -+ ;; -+ leon|leon[3-9]) -+ basic_machine=sparc-$basic_machine -+ ;; -+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; -@@ -313,6 +336,21 @@ case $basic_machine in - basic_machine=mt-unknown - ;; - -+ strongarm | thumb | xscale) -+ basic_machine=arm-unknown -+ ;; -+ xgate) -+ basic_machine=$basic_machine-unknown -+ os=-none -+ ;; -+ xscaleeb) -+ basic_machine=armeb-unknown -+ ;; -+ -+ xscaleel) -+ basic_machine=armel-unknown -+ ;; -+ - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. -@@ -327,25 +365,32 @@ case $basic_machine in - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ -+ | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ -+ | ba-* \ -+ | be32-* | be64-* \ - | bfin-* | bs2000-* \ -- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | craynv-* | cydra-* \ -+ | c[123]* | c30-* | [cjt]90-* | c4x-* \ -+ | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ -- | elxsi-* \ -+ | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -+ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -+ | k1om-* \ -+ | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -@@ -359,33 +404,43 @@ case $basic_machine in - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ -+ | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ -+ | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ -+ | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ -- | nios-* | nios2-* \ -+ | nds32-* | nds32le-* | nds32be-* \ -+ | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ -+ | open8-* \ -+ | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ -- | romp-* | rs6000-* | rx-* \ -+ | riscv32-* | riscv64-* \ -+ | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ -- | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ -+ | tahoe-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tile*-* \ - | tron-* \ - | ubicom32-* \ -- | v850-* | v850e-* | vax-* \ -+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ -+ | vax-* \ -+ | visium-* \ - | we32k-* \ -- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) -@@ -410,7 +465,7 @@ case $basic_machine in - basic_machine=a29k-amd - os=-udi - ;; -- abacus) -+ abacus) - basic_machine=abacus-unknown - ;; - adobe68k) -@@ -460,6 +515,9 @@ case $basic_machine in - basic_machine=i386-pc - os=-aros - ;; -+ asmjs) -+ basic_machine=asmjs-unknown -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -480,11 +538,20 @@ case $basic_machine in - basic_machine=powerpc-ibm - os=-cnk - ;; -+ c54x-*) -+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c55x-*) -+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c6x-*) -+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -- cegcc) -+ cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; -@@ -516,7 +583,7 @@ case $basic_machine in - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16) -+ cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; -@@ -674,7 +741,6 @@ case $basic_machine in - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; --# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 -@@ -713,6 +779,9 @@ case $basic_machine in - basic_machine=m68k-isi - os=-sysv - ;; -+ leon-*|leon[3-9]-*) -+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` -+ ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux -@@ -732,11 +801,15 @@ case $basic_machine in - basic_machine=ns32k-utek - os=-sysv - ;; -- microblaze) -+ microblaze*) - basic_machine=microblaze-xilinx - ;; -+ mingw64) -+ basic_machine=x86_64-pc -+ os=-mingw64 -+ ;; - mingw32) -- basic_machine=i386-pc -+ basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) -@@ -764,6 +837,10 @@ case $basic_machine in - basic_machine=powerpc-unknown - os=-morphos - ;; -+ moxiebox) -+ basic_machine=moxie-unknown -+ os=-moxiebox -+ ;; - msdos) - basic_machine=i386-pc - os=-msdos -@@ -771,10 +848,18 @@ case $basic_machine in - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; -+ msys) -+ basic_machine=i686-pc -+ os=-msys -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; -+ nacl) -+ basic_machine=le32-unknown -+ os=-nacl -+ ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 -@@ -839,6 +924,12 @@ case $basic_machine in - np1) - basic_machine=np1-gould - ;; -+ neo-tandem) -+ basic_machine=neo-tandem -+ ;; -+ nse-tandem) -+ basic_machine=nse-tandem -+ ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -921,9 +1012,10 @@ case $basic_machine in - ;; - power) basic_machine=power-ibm - ;; -- ppc) basic_machine=powerpc-unknown -+ ppc | ppcbe) basic_machine=powerpc-unknown - ;; -- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ppc-* | ppcbe-*) -+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown -@@ -948,7 +1040,11 @@ case $basic_machine in - basic_machine=i586-unknown - os=-pw32 - ;; -- rdos) -+ rdos | rdos64) -+ basic_machine=x86_64-pc -+ os=-rdos -+ ;; -+ rdos32) - basic_machine=i386-pc - os=-rdos - ;; -@@ -1017,6 +1113,9 @@ case $basic_machine in - basic_machine=i860-stratus - os=-sysv4 - ;; -+ strongarm-* | thumb-*) -+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - sun2) - basic_machine=m68000-sun - ;; -@@ -1073,20 +1172,8 @@ case $basic_machine in - basic_machine=t90-cray - os=-unicos - ;; -- tic54x | c54x*) -- basic_machine=tic54x-unknown -- os=-coff -- ;; -- tic55x | c55x*) -- basic_machine=tic55x-unknown -- os=-coff -- ;; -- tic6x | c6x*) -- basic_machine=tic6x-unknown -- os=-coff -- ;; - tile*) -- basic_machine=tile-unknown -+ basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) -@@ -1156,6 +1243,9 @@ case $basic_machine in - xps | xps100) - basic_machine=xps100-honeywell - ;; -+ xscale-* | xscalee[bl]-*) -+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` -+ ;; - ymp) - basic_machine=ymp-cray - os=-unicos -@@ -1253,11 +1343,11 @@ esac - if [ x"$os" != x"" ] - then - case $os in -- # First match some system type aliases -- # that might get confused with valid system types. -+ # First match some system type aliases -+ # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. -- -auroraux) -- os=-auroraux -+ -auroraux) -+ os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` -@@ -1281,28 +1371,30 @@ case $os in - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -- | -sym* | -kopensolaris* \ -+ | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* | -aros* \ -+ | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -- | -openbsd* | -solidbsd* \ -+ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ -- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -- | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ -+ | -onefs* | -tirtos* | -phoenix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1341,7 +1433,7 @@ case $os in - -opened*) - os=-openedition - ;; -- -os400*) -+ -os400*) - os=-os400 - ;; - -wince*) -@@ -1390,7 +1482,7 @@ case $os in - -sinix*) - os=-sysv4 - ;; -- -tpf*) -+ -tpf*) - os=-tpf - ;; - -triton*) -@@ -1426,15 +1518,16 @@ case $os in - -aros*) - os=-aros - ;; -- -kaos*) -- os=-kaos -- ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; -+ -nacl*) -+ ;; -+ -ios) -+ ;; - -none) - ;; - *) -@@ -1457,10 +1550,10 @@ else - # system, and we'll never get to this point. - - case $basic_machine in -- score-*) -+ score-*) - os=-elf - ;; -- spu-*) -+ spu-*) - os=-elf - ;; - *-acorn) -@@ -1472,8 +1565,23 @@ case $basic_machine in - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; -+ c8051-*) -+ os=-elf -+ ;; -+ hexagon-*) -+ os=-elf -+ ;; -+ tic54x-*) -+ os=-coff -+ ;; -+ tic55x-*) -+ os=-coff -+ ;; -+ tic6x-*) -+ os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) -@@ -1493,14 +1601,11 @@ case $basic_machine in - ;; - m68000-sun) - os=-sunos3 -- # This also exists in the configure program, but was not the -- # default. -- # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -- mep-*) -+ mep-*) - os=-elf - ;; - mips*-cisco) -@@ -1527,7 +1632,7 @@ case $basic_machine in - *-ibm) - os=-aix - ;; -- *-knuth) -+ *-knuth) - os=-mmixware - ;; - *-wec) diff --git a/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch b/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch deleted file mode 100644 index 7dcf52065..000000000 --- a/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch +++ /dev/null @@ -1,31 +0,0 @@ -workaround uClibc glob_pattern_p / __GLIBC__ - -Copyright (C) 2014 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -The uClibc header defines the macro __GLIBC__, which -stricly speaking is false. See the comment in the uClibc -why they do this. - -The poptconfig.c file tests for the presence of __GLIBC__ and -configures its globbing behaviour accordingly. Unfortunately in the -case of uClibc it gets it wrong. - -This patch simply inforces the correct behaviour when compiling with -ONIE's uClibc. -Summary: - -diff --git a/poptconfig.c b/poptconfig.c -index 7840d0c..f4e115a 100644 ---- a/poptconfig.c -+++ b/poptconfig.c -@@ -42,7 +42,7 @@ extern int glob_pattern_p (const char *__pattern, int __quote) - /*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/ - #endif /* __LCLINT__ */ - --#if !defined(__GLIBC__) -+#if !defined(__GLIBC__) || defined(__UCLIBC__) - /* Return nonzero if PATTERN contains any metacharacters. - Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ - static int diff --git a/patches/popt/series b/patches/popt/series index 517ec14d4..ae046e8e6 100644 --- a/patches/popt/series +++ b/patches/popt/series @@ -1,4 +1,5 @@ -# This series applies on GIT commit 2b1804e1a2b9b0d915010a7dd4b50c179fa733a4 +# This series applies on popt 1.19. +# The uClibc glob_pattern_p workaround and the aarch64 support patch are +# dropped: popt 1.19 detects glob_pattern_p via configure (handles its +# absence on uClibc) and carries aarch64 support upstream. gitignore.patch -popt-workaround-uclibc-glob-pattern-p.patch -aarch64_support.patch diff --git a/upstream/popt-1.19.tar.gz.sha1 b/upstream/popt-1.19.tar.gz.sha1 new file mode 100644 index 000000000..518ab7442 --- /dev/null +++ b/upstream/popt-1.19.tar.gz.sha1 @@ -0,0 +1 @@ +75654eebd67791f6c58059d0ac552230d81b09d9 popt-1.19.tar.gz From c1af73bcff025d2b89806dcb065c826e06198fcd Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:13:26 +0000 Subject: [PATCH 17/23] packages: bump openssl to 3.5.7 (LTS), drop legacy 1.1.x support Signed-off-by: Brad House --- build-config/make/mokutil.make | 2 +- build-config/make/openssl.make | 17 ++++++----------- upstream/openssl-1.0.2l.tar.gz.sha1 | 1 - upstream/openssl-1.1.1g.tar.gz.sha1 | 1 - upstream/openssl-3.4.0.tar.gz.sha1 | 1 - upstream/openssl-3.5.7.tar.gz.sha1 | 1 + 6 files changed, 8 insertions(+), 15 deletions(-) delete mode 100644 upstream/openssl-1.0.2l.tar.gz.sha1 delete mode 100644 upstream/openssl-1.1.1g.tar.gz.sha1 delete mode 100644 upstream/openssl-3.4.0.tar.gz.sha1 create mode 100644 upstream/openssl-3.5.7.tar.gz.sha1 diff --git a/build-config/make/mokutil.make b/build-config/make/mokutil.make index 50f40540b..846cc6b04 100644 --- a/build-config/make/mokutil.make +++ b/build-config/make/mokutil.make @@ -79,7 +79,7 @@ $(MOKUTIL_CONFIGURE_STAMP): $(MOKUTIL_PATCH_STAMP) $(EFIVAR_BUILD_STAMP) | $(DEV --host=$(TARGET) \ EFIVAR_CFLAGS=-I$(DEV_SYSROOT)/usr/include/efivar \ CC=$(CROSSPREFIX)gcc \ - CFLAGS="$(ONIE_CFLAGS)" \ + CFLAGS="$(ONIE_CFLAGS) -Wno-error=deprecated-declarations" \ LDFLAGS="$(ONIE_LDFLAGS)" \ $(ONIE_PKG_CONFIG) $(Q) touch $@ diff --git a/build-config/make/openssl.make b/build-config/make/openssl.make index 6591df9fc..64068b8f7 100644 --- a/build-config/make/openssl.make +++ b/build-config/make/openssl.make @@ -10,9 +10,13 @@ # This is a makefile fragment that defines the build of openssl # -OPENSSL_VERSION ?= 1.1.1g +OPENSSL_VERSION ?= 3.5.7 OPENSSL_TARBALL = openssl-$(OPENSSL_VERSION).tar.gz +# openssl.org/source/ only keeps the newest release of each line (older +# ones move to /source/old/), so prefer the stable per-version GitHub +# release asset and keep openssl.org as a fallback. OPENSSL_TARBALL_URLS += $(ONIE_MIRROR) \ + https://github.com/openssl/openssl/releases/download/openssl-$(OPENSSL_VERSION) \ https://www.openssl.org/source OPENSSL_BUILD_DIR = $(USER_BUILDDIR)/openssl OPENSSL_DIR = $(OPENSSL_BUILD_DIR)/openssl-$(OPENSSL_VERSION) @@ -31,13 +35,7 @@ PHONY += openssl openssl-download openssl-source \ openssl-configure openssl-build openssl-install openssl-clean \ openssl-download-clean -ifeq ($(OPENSSL_VERSION),1.1.1g) -OPENSSL_ARCH = -OPENSSL_LIBS = \ - engines-1.1 \ - libcrypto.so libcrypto.so.1.1 \ - libssl.so libssl.so.1.1 -else ifeq ($(OPENSSL_VERSION),3.4.0) +# ONIE standardizes on OpenSSL 3.x (SONAME major 3, "engines" dir). ifeq ($(ARCH),arm64) OPENSSL_ARCH = linux-aarch64 else @@ -48,9 +46,6 @@ OPENSSL_LIBS = \ engines \ libcrypto.so libcrypto.so.3 \ libssl.so libssl.so.3 -else - $(error OPENSSL_LIBS: Unsupported OpenSSL version: $(OPENSSL_VERSION)) -endif OPENSSL_BINS = openssl diff --git a/upstream/openssl-1.0.2l.tar.gz.sha1 b/upstream/openssl-1.0.2l.tar.gz.sha1 deleted file mode 100644 index 4f6da73e6..000000000 --- a/upstream/openssl-1.0.2l.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -b58d5d0e9cea20e571d903aafa853e2ccd914138 openssl-1.0.2l.tar.gz diff --git a/upstream/openssl-1.1.1g.tar.gz.sha1 b/upstream/openssl-1.1.1g.tar.gz.sha1 deleted file mode 100644 index 42101e3ed..000000000 --- a/upstream/openssl-1.1.1g.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -b213a293f2127ec3e323fb3cfc0c9807664fd997 openssl-1.1.1g.tar.gz diff --git a/upstream/openssl-3.4.0.tar.gz.sha1 b/upstream/openssl-3.4.0.tar.gz.sha1 deleted file mode 100644 index f1559a293..000000000 --- a/upstream/openssl-3.4.0.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -5c2f33c3f3601676f225109231142cdc30d44127 openssl-3.4.0.tar.gz diff --git a/upstream/openssl-3.5.7.tar.gz.sha1 b/upstream/openssl-3.5.7.tar.gz.sha1 new file mode 100644 index 000000000..bc4c14bb0 --- /dev/null +++ b/upstream/openssl-3.5.7.tar.gz.sha1 @@ -0,0 +1 @@ +53d331880fbde8e6fe25870d5325a61201f6264d openssl-3.5.7.tar.gz From d8fc5775b0f7bdf1b4ad61c54a25ad39f4f11119 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:13:26 +0000 Subject: [PATCH 18/23] packages: bump mtd-utils to 2.3.1 mtd-utils 1.5.2 -> 2.3.1 (latest, infraroot.at). Switch from the git-commit snapshot scheme to a release tarball and from the hand-rolled build to autotools ./configure (--with-zlib/lzo/ubifs/jffs, --without- crypto/zstd/xattr/selinux/tests to match the available sysroot libs and the prior build's behavior). Signed-off-by: Brad House --- build-config/make/mtdutils.make | 91 ++++++++++++++++++-------- upstream/mtd-utils-2.3.1.tar.bz2.sha1 | 1 + upstream/mtd-utils-e4c8885.tar.gz.sha1 | 1 - 3 files changed, 65 insertions(+), 28 deletions(-) create mode 100644 upstream/mtd-utils-2.3.1.tar.bz2.sha1 delete mode 100644 upstream/mtd-utils-e4c8885.tar.gz.sha1 diff --git a/build-config/make/mtdutils.make b/build-config/make/mtdutils.make index be6f3c134..a554407a4 100644 --- a/build-config/make/mtdutils.make +++ b/build-config/make/mtdutils.make @@ -10,26 +10,28 @@ # This is a makefile fragment that defines the build of mtdutils # -MTDUTILS_VERSION = 1.5.2 -MTDUTILS_COMMIT = e4c8885bddac201ba0ef88560d6444f39e1ff870 -MTDUTILS_TARBALL = mtd-utils-$(MTDUTILS_VERSION).tar.gz -MTDUTILS_TARBALL_URLS += $(ONIE_MIRROR) http://git.infradead.org/mtd-utils.git/snapshot +MTDUTILS_VERSION = 2.3.1 +MTDUTILS_TARBALL = mtd-utils-$(MTDUTILS_VERSION).tar.bz2 +MTDUTILS_TARBALL_URLS += $(ONIE_MIRROR) https://infraroot.at/pub/mtd MTDUTILS_BUILD_DIR = $(USER_BUILDDIR)/mtd-utils -MTDUTILS_DIR = $(MTDUTILS_BUILD_DIR)/mtd-utils-e4c8885 +MTDUTILS_DIR = $(MTDUTILS_BUILD_DIR)/mtd-utils-$(MTDUTILS_VERSION) MTDUTILS_DOWNLOAD_STAMP = $(DOWNLOADDIR)/mtdutils-$(MTDUTILS_VERSION)-download MTDUTILS_SOURCE_STAMP = $(USER_STAMPDIR)/mtdutils-source +MTDUTILS_CONFIGURE_STAMP = $(USER_STAMPDIR)/mtdutils-configure MTDUTILS_BUILD_STAMP = $(USER_STAMPDIR)/mtdutils-build MTDUTILS_INSTALL_STAMP = $(STAMPDIR)/mtdutils-install MTDUTILS_STAMP = $(MTDUTILS_SOURCE_STAMP) \ + $(MTDUTILS_CONFIGURE_STAMP) \ $(MTDUTILS_BUILD_STAMP) \ $(MTDUTILS_INSTALL_STAMP) -MTDBINS = mkfs.jffs2 mkfs.ubifs ubinize ubiformat ubinfo mtdinfo +MTDBINS = mkfs.jffs2 mkfs.ubifs ubinize ubiformat ubinfo mtdinfo UBIBINS = ubiattach ubimkvol ubidetach ubirmvol -PHONY += mtdutils mtdutils-download mtdutils-source mtdutils-build \ - mtdutils-install mtdutils-clean mtdutils-download-clean +PHONY += mtdutils mtdutils-download mtdutils-source mtdutils-configure \ + mtdutils-build mtdutils-install mtdutils-clean mtdutils-download-clean \ + mtdutils-configure-help mtdutils: $(MTDUTILS_STAMP) @@ -39,8 +41,7 @@ $(MTDUTILS_DOWNLOAD_STAMP): $(PROJECT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Getting upstream mtdutils ====" $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(MTDUTILS_COMMIT).tar.gz $(MTDUTILS_TARBALL_URLS) - $(Q) cd $(DOWNLOADDIR) && ln -fs $(MTDUTILS_COMMIT).tar.gz $(MTDUTILS_TARBALL) + $(MTDUTILS_TARBALL) $(MTDUTILS_TARBALL_URLS) $(Q) touch $@ SOURCE += $(MTDUTILS_SOURCE_STAMP) @@ -51,29 +52,66 @@ $(MTDUTILS_SOURCE_STAMP): $(USER_TREE_STAMP) | $(MTDUTILS_DOWNLOAD_STAMP) $(Q) $(SCRIPTDIR)/extract-package $(MTDUTILS_BUILD_DIR) $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) $(Q) touch $@ +mtdutils-configure-help: $(UTILLINUX_BUILD_STAMP) $(LZO_BUILD_STAMP) \ + $(ZLIB_BUILD_STAMP) \ + $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) echo "==== Configure help for mtd-utils-$(MTDUTILS_VERSION) ====" + $(Q) cd $(MTDUTILS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(MTDUTILS_DIR)/configure --help + +# mtd-utils 2.x uses an autotools (./configure) build. +# +# Optional dependencies: +# - zlib, lzo, libuuid (util-linux) are provided by ONIE and enabled +# (UBIFS/JFFS2 support). +# - crypto (UBIFS authentication) is disabled: ONIE does not need it and +# the prior 1.5.2 build did not use it. +# - zstd is NOT provided by ONIE, so ZSTD compression is disabled. +# - selinux is NOT provided by ONIE, so SELinux support is disabled. +# - xattr is disabled to match the prior 1.5.2 build (WITHOUT_XATTR=1). +# - The unit/test programs are disabled (--without-tests); they are not +# installed and pull in extra dependencies (pthread, clock_gettime). +mtdutils-configure: $(MTDUTILS_CONFIGURE_STAMP) +$(MTDUTILS_CONFIGURE_STAMP): $(UTILLINUX_BUILD_STAMP) $(LZO_BUILD_STAMP) \ + $(ZLIB_BUILD_STAMP) \ + $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure mtd-utils-$(MTDUTILS_VERSION) ====" + $(Q) cd $(MTDUTILS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(MTDUTILS_DIR)/configure \ + --prefix=/usr \ + --host=$(TARGET) \ + --with-zlib \ + --with-lzo \ + --with-ubifs \ + --with-jffs \ + --without-crypto \ + --without-zstd \ + --without-xattr \ + --without-selinux \ + --without-tests \ + --without-lsmtd \ + --disable-unit-tests \ + --disable-ubihealthd \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" \ + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) + $(Q) touch $@ + ifndef MAKE_CLEAN MTDUTILS_NEW_FILES = $(shell test -d $(MTDUTILS_DIR) && test -f $(MTDUTILS_BUILD_STAMP) && \ - find -L $(MTDUTILS_DIR) -newer $(MTDUTILS_BUILD_STAMP) -type f -print -quit) + find -L $(MTDUTILS_DIR) -newer $(MTDUTILS_BUILD_STAMP) -type f -print -quit) endif mtdutils-build: $(MTDUTILS_BUILD_STAMP) -$(MTDUTILS_BUILD_STAMP): $(MTDUTILS_NEW_FILES) $(UTILLINUX_BUILD_STAMP) \ - $(LZO_BUILD_STAMP) $(ZLIB_BUILD_STAMP) \ - $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(MTDUTILS_BUILD_STAMP): $(MTDUTILS_NEW_FILES) $(MTDUTILS_CONFIGURE_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building mtd-utils-$(MTDUTILS_VERSION) ====" $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -C $(MTDUTILS_DIR) \ - PREFIX=$(DEV_SYSROOT)/usr \ - CROSS=$(CROSSPREFIX) \ - CFLAGS="-g $(ONIE_CFLAGS)" \ - WITHOUT_XATTR=1 + $(MAKE) -C $(MTDUTILS_DIR) DESTDIR=$(DEV_SYSROOT) $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -C $(MTDUTILS_DIR) \ - PREFIX=$(DEV_SYSROOT)/usr \ - CROSS=$(CROSSPREFIX) \ - CFLAGS="-g $(ONIE_CFLAGS)" \ - WITHOUT_XATTR=1 \ - install + $(MAKE) -C $(MTDUTILS_DIR) DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ mtdutils-install: $(MTDUTILS_INSTALL_STAMP) @@ -101,8 +139,7 @@ mtdutils-clean: DOWNLOAD_CLEAN += mtdutils-download-clean mtdutils-download-clean: - $(Q) rm -f $(MTDUTILS_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(MTDUTILS_COMMIT).tar.gz \ - $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) + $(Q) rm -f $(MTDUTILS_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) #------------------------------------------------------------------------------- # diff --git a/upstream/mtd-utils-2.3.1.tar.bz2.sha1 b/upstream/mtd-utils-2.3.1.tar.bz2.sha1 new file mode 100644 index 000000000..7fd88b929 --- /dev/null +++ b/upstream/mtd-utils-2.3.1.tar.bz2.sha1 @@ -0,0 +1 @@ +09973ba80cc9a78abc2012681de238c757bbf08f mtd-utils-2.3.1.tar.bz2 diff --git a/upstream/mtd-utils-e4c8885.tar.gz.sha1 b/upstream/mtd-utils-e4c8885.tar.gz.sha1 deleted file mode 100644 index 0d8080124..000000000 --- a/upstream/mtd-utils-e4c8885.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -253eaa9be52be6cb62cfcac8034936dd8b854d85 mtd-utils-e4c8885.tar.gz From 95ad5919299d0a201ead9b79246d60f9ff29c1f0 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:13:26 +0000 Subject: [PATCH 19/23] packages: bump i2c-tools to 4.4 i2c-tools 3.1.1 -> 4.4 (latest). jdelvare.nerim.net is dead -> kernel.org (.tar.bz2 -> .tar.gz). Rework the 3 ONIE patches for the 4.x layout (eepromer/ -> eeprog/, static libi2c, include/i2c/smbus.h). Signed-off-by: Brad House --- build-config/make/i2ctools.make | 10 ++-- patches/i2ctools/gitignore.patch | 18 ++++--- .../i2ctools-onie-cross-compile.patch | 48 ++++++++++++------- patches/i2ctools/i2ctools-sys-eeprom.patch | 36 +++++--------- patches/i2ctools/series | 2 +- upstream/i2c-tools-3.1.1.tar.bz2.sha1 | 1 - upstream/i2c-tools-4.4.tar.gz.sha1 | 1 + 7 files changed, 58 insertions(+), 58 deletions(-) delete mode 100644 upstream/i2c-tools-3.1.1.tar.bz2.sha1 create mode 100644 upstream/i2c-tools-4.4.tar.gz.sha1 diff --git a/build-config/make/i2ctools.make b/build-config/make/i2ctools.make index 66c75214e..36e94a79e 100644 --- a/build-config/make/i2ctools.make +++ b/build-config/make/i2ctools.make @@ -11,9 +11,9 @@ # This is a makefile fragment that defines the build of i2ctools # -I2CTOOLS_VERSION = 3.1.1 -I2CTOOLS_TARBALL = i2c-tools-$(I2CTOOLS_VERSION).tar.bz2 -I2CTOOLS_TARBALL_URLS += $(ONIE_MIRROR) http://jdelvare.nerim.net/mirror/i2c-tools +I2CTOOLS_VERSION = 4.4 +I2CTOOLS_TARBALL = i2c-tools-$(I2CTOOLS_VERSION).tar.gz +I2CTOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools I2CTOOLS_BUILD_DIR = $(MBUILDDIR)/i2c-tools I2CTOOLS_DIR = $(I2CTOOLS_BUILD_DIR)/i2c-tools-$(I2CTOOLS_VERSION) @@ -65,8 +65,8 @@ $(I2CTOOLS_PATCH_STAMP): $(I2CTOOLS_SRCPATCHDIR)/* $(MACHINE_I2CTOOLS_PATCHDIR_F $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Patching i2ctools ====" $(Q) mkdir -p $(I2CTOOLS_DIR)/sys_eeprom - $(Q) cp $(I2CTOOLS_DIR)/eepromer/24cXX.c $(I2CTOOLS_DIR)/sys_eeprom/24cXX.c - $(Q) cp $(I2CTOOLS_DIR)/eepromer/24cXX.h $(I2CTOOLS_DIR)/sys_eeprom/24cXX.h + $(Q) cp $(I2CTOOLS_DIR)/eeprog/24cXX.c $(I2CTOOLS_DIR)/sys_eeprom/24cXX.c + $(Q) cp $(I2CTOOLS_DIR)/eeprog/24cXX.h $(I2CTOOLS_DIR)/sys_eeprom/24cXX.h $(Q) mkdir -p $(I2CTOOLS_PATCHDIR) $(Q) cp $(I2CTOOLS_SRCPATCHDIR)/* $(I2CTOOLS_PATCHDIR) ifneq ($(MACHINE_I2CTOOLS_PATCHDIR),) diff --git a/patches/i2ctools/gitignore.patch b/patches/i2ctools/gitignore.patch index 932580b1b..48ba066d4 100644 --- a/patches/i2ctools/gitignore.patch +++ b/patches/i2ctools/gitignore.patch @@ -5,15 +5,13 @@ Copyright (C) 2014 david_yang SPDX-License-Identifier: GPL-2.0 diff --git a/.gitignore b/.gitignore -new file mode 100644 -index 0000000..f7775cf ---- /dev/null +index e1bcbb3..a1fcba0 100644 +--- a/.gitignore +++ b/.gitignore -@@ -0,0 +1,7 @@ -+*.o -+*.patch +@@ -6,3 +6,6 @@ + *.so.* + *.so.dbg + *.ao ++sys_eeprom/24cXX.c ++sys_eeprom/24cXX.h +sys_eeprom/onie-syseeprom -+tools/i2cdetect -+tools/i2cdump -+tools/i2cget -+tools/i2cset diff --git a/patches/i2ctools/i2ctools-onie-cross-compile.patch b/patches/i2ctools/i2ctools-onie-cross-compile.patch index 25522c340..52a409832 100644 --- a/patches/i2ctools/i2ctools-onie-cross-compile.patch +++ b/patches/i2ctools/i2ctools-onie-cross-compile.patch @@ -6,28 +6,40 @@ Copyright (C) 2014 david_yang SPDX-License-Identifier: GPL-2.0 diff --git a/Makefile b/Makefile -index 5ea7486..0c859b3 100644 +index 5ac8a59..566bc2a 100644 --- a/Makefile +++ b/Makefile -@@ -21,10 +21,9 @@ INSTALL_DIR := $(INSTALL) -m 755 -d - INSTALL_PROGRAM := $(INSTALL) -m 755 +@@ -24,9 +24,9 @@ INSTALL_PROGRAM := $(INSTALL) -m 755 + LN := ln -sf RM := rm -f - + -CC ?= gcc -+CC=$(CROSS_COMPILE)gcc - --CFLAGS ?= -O2 --# When debugging, use the following instead -+#When debugging, use the following instead - #CFLAGS := -O -g - CFLAGS += -Wall - -@@ -34,7 +33,5 @@ KERNELVERSION := $(shell uname -r) - +-AR ?= ar +-STRIP ?= strip ++CC = $(CROSS_COMPILE)gcc ++AR = $(CROSS_COMPILE)ar ++STRIP = $(CROSS_COMPILE)strip + + CFLAGS ?= -O2 + # When debugging, use the following instead +@@ -34,9 +34,9 @@ CFLAGS ?= -O2 + CFLAGS += -Wall + SOCFLAGS := -fpic -D_REENTRANT $(CFLAGS) + +-BUILD_DYNAMIC_LIB ?= 1 ++BUILD_DYNAMIC_LIB ?= 0 + BUILD_STATIC_LIB ?= 1 +-USE_STATIC_LIB ?= 0 ++USE_STATIC_LIB ?= 1 + + ifeq ($(USE_STATIC_LIB),1) + BUILD_STATIC_LIB := 1 +@@ -54,7 +54,5 @@ endif + all: - + -EXTRA := --#EXTRA += py-smbus --SRCDIRS := include eeprom stub tools $(EXTRA) -+SRCDIRS := include tools +-#EXTRA += eeprog py-smbus +-SRCDIRS := include lib eeprom stub tools $(EXTRA) ++SRCDIRS := include lib include $(SRCDIRS:%=%/Module.mk) diff --git a/patches/i2ctools/i2ctools-sys-eeprom.patch b/patches/i2ctools/i2ctools-sys-eeprom.patch index e47b69062..eed7ddbc6 100644 --- a/patches/i2ctools/i2ctools-sys-eeprom.patch +++ b/patches/i2ctools/i2ctools-sys-eeprom.patch @@ -5,48 +5,38 @@ Copyright (C) 2014 david_yang Copyright (C) 2014 Curt Brune diff --git a/Makefile b/Makefile -index 0c859b3..144e1bc 100644 +index 566bc2a..7446ae7 100644 --- a/Makefile +++ b/Makefile -@@ -34,4 +34,9 @@ KERNELVERSION := $(shell uname -r) +@@ -55,4 +55,9 @@ endif all: - SRCDIRS := include tools + SRCDIRS := include lib + +ifeq ($(SYSEEPROM_ENABLE),yes) +SRCDIRS := $(SRCDIRS) sys_eeprom +endif + include $(SRCDIRS:%=%/Module.mk) - -diff --git a/sys_eeprom/24cXX.c b/sys_eeprom/24cXX.c -index 54c6342..be194ad 100644 ---- a/sys_eeprom/24cXX.c -+++ b/sys_eeprom/24cXX.c -@@ -44,7 +44,7 @@ static int i2c_write_2b(struct eeprom *e, __u8 buf[2]) - r = i2c_smbus_write_byte_data(e->fd, buf[0], buf[1]); - if(r < 0) - fprintf(stderr, "Error i2c_write_2b: %s\n", strerror(errno)); -- usleep(10); -+ usleep(1000); - return r; - } - diff --git a/sys_eeprom/Module.mk b/sys_eeprom/Module.mk new file mode 100644 -index 0000000..5b59b5a +index 0000000..0cfd439 --- /dev/null +++ b/sys_eeprom/Module.mk -@@ -0,0 +1,32 @@ +@@ -0,0 +1,36 @@ +#sys_eeprom Makefile + +SYS_EEPROM_DIR := sys_eeprom -+SYS_EEPROM_FLAGS := -O2 -Iinclude -lz ++SYS_EEPROM_FLAGS := -O2 -Iinclude ++SYS_EEPROM_LIBS := $(LIB_DIR)/$(LIB_STLIBNAME) -lz +SYS_EEPROM_TARGETS:= onie-syseeprom + +$(SYS_EEPROM_DIR)/onie-syseeprom: $(SYS_EEPROM_DIR)/sys_eeprom.o \ -+ $(SYS_EEPROM_DIR)/onie_tlvinfo.o $(SYS_EEPROM_DIR)/24cXX.o -+ $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) $(LDFLAGS) -o $@ $^ ++ $(SYS_EEPROM_DIR)/onie_tlvinfo.o $(SYS_EEPROM_DIR)/24cXX.o \ ++ $(LIB_DIR)/$(LIB_STLIBNAME) ++ $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) $(LDFLAGS) -o $@ \ ++ $(SYS_EEPROM_DIR)/sys_eeprom.o $(SYS_EEPROM_DIR)/onie_tlvinfo.o \ ++ $(SYS_EEPROM_DIR)/24cXX.o $(SYS_EEPROM_LIBS) + +$(SYS_EEPROM_DIR)/sys_eeprom.o: $(SYS_EEPROM_DIR)/sys_eeprom.c \ + $(SYS_EEPROM_DIR)/onie_tlvinfo.c $(SYS_EEPROM_DIR)/onie_tlvinfo.h \ @@ -59,7 +49,7 @@ index 0000000..5b59b5a + $(CC) $(CFLAGS) $(LD_FLAGS) $(SYS_EEPROM_FLAGS) -c $< -o $@ + +$(SYS_EEPROM_DIR)/24cXX.o: $(SYS_EEPROM_DIR)/24cXX.c \ -+ $(INCLUDE_DIR)/linux/i2c-dev.h $(SYS_EEPROM_DIR)/24cXX.h ++ $(INCLUDE_DIR)/i2c/smbus.h $(SYS_EEPROM_DIR)/24cXX.h + $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) -c $< -o $@ + +all-sys_eeproms: $(addprefix $(SYS_EEPROM_DIR)/,$(SYS_EEPROM_TARGETS)) diff --git a/patches/i2ctools/series b/patches/i2ctools/series index be175ab6e..13b2cb92a 100644 --- a/patches/i2ctools/series +++ b/patches/i2ctools/series @@ -1,4 +1,4 @@ -# This series applies on GIT commit 160112307a7bcc6eef24e122b52ea2ff83a07683 +# This series applies on the i2c-tools 4.4 release tarball gitignore.patch i2ctools-onie-cross-compile.patch i2ctools-sys-eeprom.patch diff --git a/upstream/i2c-tools-3.1.1.tar.bz2.sha1 b/upstream/i2c-tools-3.1.1.tar.bz2.sha1 deleted file mode 100644 index c8adf71ca..000000000 --- a/upstream/i2c-tools-3.1.1.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -05e4e3b34ebc921812e14527936c0fae65729204 i2c-tools-3.1.1.tar.bz2 diff --git a/upstream/i2c-tools-4.4.tar.gz.sha1 b/upstream/i2c-tools-4.4.tar.gz.sha1 new file mode 100644 index 000000000..062bcb186 --- /dev/null +++ b/upstream/i2c-tools-4.4.tar.gz.sha1 @@ -0,0 +1 @@ +91307d1b376d18277d24b4eebfda9d5bfe90f316 i2c-tools-4.4.tar.gz From 318c656f7a3d2dbdcd880dcb67d0a16e13d84883 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:15:24 +0000 Subject: [PATCH 20/23] packages: bump dosfstools to 4.2 dosfstools 3.0.26 -> 4.2 (latest). daniel-baumann.ch is dead, so source the upstream GitHub release dist tarball (.tar.xz -> .tar.gz). Switch to the 4.x autotools build (--without-iconv, --enable-compat-symlinks) and drop the obsolete remove-local-support patch (its gettext/locale avoidance is now covered by --without-iconv). Signed-off-by: Brad House --- build-config/make/dosfstools.make | 45 +++++++++++++------ patches/dosfstools/remove-local-support.patch | 37 --------------- patches/dosfstools/series | 12 ++++- upstream/dosfstools-3.0.26.tar.xz.sha1 | 1 - upstream/dosfstools-4.2.tar.gz.sha1 | 1 + 5 files changed, 42 insertions(+), 54 deletions(-) delete mode 100644 patches/dosfstools/remove-local-support.patch delete mode 100644 upstream/dosfstools-3.0.26.tar.xz.sha1 create mode 100644 upstream/dosfstools-4.2.tar.gz.sha1 diff --git a/build-config/make/dosfstools.make b/build-config/make/dosfstools.make index 549720353..acbf6f3d7 100644 --- a/build-config/make/dosfstools.make +++ b/build-config/make/dosfstools.make @@ -9,9 +9,9 @@ # This is a makefile fragment that defines the build of dosfstools # -DOSFSTOOLS_VERSION = 3.0.26 -DOSFSTOOLS_TARBALL = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz -DOSFSTOOLS_TARBALL_URLS += $(ONIE_MIRROR) http://daniel-baumann.ch/files/software/dosfstools +DOSFSTOOLS_VERSION = 4.2 +DOSFSTOOLS_TARBALL = dosfstools-$(DOSFSTOOLS_VERSION).tar.gz +DOSFSTOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION) DOSFSTOOLS_BUILD_DIR = $(USER_BUILDDIR)/dosfstools DOSFSTOOLS_DIR = $(DOSFSTOOLS_BUILD_DIR)/dosfstools-$(DOSFSTOOLS_VERSION) @@ -19,19 +19,25 @@ DOSFSTOOLS_SRCPATCHDIR = $(PATCHDIR)/dosfstools DOSFSTOOLS_DOWNLOAD_STAMP = $(DOWNLOADDIR)/dosfstools-download DOSFSTOOLS_SOURCE_STAMP = $(USER_STAMPDIR)/dosfstools-source DOSFSTOOLS_PATCH_STAMP = $(USER_STAMPDIR)/dosfstools-patch +DOSFSTOOLS_CONFIGURE_STAMP = $(USER_STAMPDIR)/dosfstools-configure DOSFSTOOLS_BUILD_STAMP = $(USER_STAMPDIR)/dosfstools-build DOSFSTOOLS_INSTALL_STAMP = $(STAMPDIR)/dosfstools-install DOSFSTOOLS_STAMP = $(DOSFSTOOLS_SOURCE_STAMP) \ $(DOSFSTOOLS_PATCH_STAMP) \ + $(DOSFSTOOLS_CONFIGURE_STAMP) \ $(DOSFSTOOLS_BUILD_STAMP) \ $(DOSFSTOOLS_INSTALL_STAMP) +# As of 4.x dosfstools installs three programs (mkfs.fat, fsck.fat and +# fatlabel). The legacy program names (dosfsck, mkdosfs, ...) are +# provided as compatibility symlinks via --enable-compat-symlinks. DOSFSTOOLS_PROGRAMS = fsck.fat dosfsck fsck.msdos fsck.vfat \ mkfs.fat mkdosfs mkfs.msdos mkfs.vfat \ fatlabel dosfslabel PHONY += dosfstools dosfstools-download dosfstools-source dosfstools-patch \ - dosfstools-build dosfstools-install dosfstools-clean dosfstools-download-clean + dosfstools-configure dosfstools-build dosfstools-install \ + dosfstools-clean dosfstools-download-clean dosfstools: $(DOSFSTOOLS_STAMP) @@ -59,25 +65,36 @@ $(DOSFSTOOLS_PATCH_STAMP): $(DOSFSTOOLS_SRCPATCHDIR)/* $(DOSFSTOOLS_SOURCE_STAMP $(Q) $(SCRIPTDIR)/apply-patch-series $(DOSFSTOOLS_SRCPATCHDIR)/series $(DOSFSTOOLS_DIR) $(Q) touch $@ +dosfstools-configure: $(DOSFSTOOLS_CONFIGURE_STAMP) +$(DOSFSTOOLS_CONFIGURE_STAMP): $(DOSFSTOOLS_PATCH_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure dosfstools-$(DOSFSTOOLS_VERSION) ====" + $(Q) cd $(DOSFSTOOLS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(DOSFSTOOLS_DIR)/configure \ + --prefix=/usr \ + --host=$(TARGET) \ + --without-iconv \ + --enable-compat-symlinks \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" \ + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) + $(Q) touch $@ + ifndef MAKE_CLEAN DOSFSTOOLS_NEW_FILES = $(shell test -d $(DOSFSTOOLS_DIR) && test -f $(DOSFSTOOLS_BUILD_STAMP) && \ - find -L $(DOSFSTOOLS_DIR) -newer $(DOSFSTOOLS_BUILD_STAMP) -type f \ + find -L $(DOSFSTOOLS_DIR) -newer $(DOSFSTOOLS_BUILD_STAMP) -type f \ \! -name filelist-rpm -print -quit) endif -DOSFSTOOLS_MAKE_VARS = \ - CC=$(CROSSPREFIX)gcc LD=$(CROSSPREFIX)ld \ - CFLAGS="$(ONIE_CFLAGS)" LDFLAGS="$(ONIE_LDFLAGS)" \ - DESTDIR=$(DEV_SYSROOT) PREFIX=/usr - dosfstools-build: $(DOSFSTOOLS_BUILD_STAMP) -$(DOSFSTOOLS_BUILD_STAMP): $(DOSFSTOOLS_PATCH_STAMP) $(DOSFSTOOLS_NEW_FILES) \ +$(DOSFSTOOLS_BUILD_STAMP): $(DOSFSTOOLS_CONFIGURE_STAMP) $(DOSFSTOOLS_NEW_FILES) \ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building dosfstools-$(DOSFSTOOLS_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) $(DOSFSTOOLS_MAKE_VARS) - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) $(DOSFSTOOLS_MAKE_VARS) \ - install-symlinks + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) \ + DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ dosfstools-install: $(DOSFSTOOLS_INSTALL_STAMP) diff --git a/patches/dosfstools/remove-local-support.patch b/patches/dosfstools/remove-local-support.patch deleted file mode 100644 index d4a490732..000000000 --- a/patches/dosfstools/remove-local-support.patch +++ /dev/null @@ -1,37 +0,0 @@ -Remove local support patch - -uClibc in the ONIE environment does not do locales well, so removing -local support from dosfstools. - -This patch makes the locale init and locale translation no-ops. - -diff --git a/Makefile b/Makefile -index 81256ef..711b170 100644 ---- a/Makefile -+++ b/Makefile -@@ -40,9 +40,9 @@ all: build - - build: fatlabel fsck.fat mkfs.fat - --fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o charconv.o fatlabel.o -+fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o fatlabel.o - --fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o charconv.o fsck.fat.o -+fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o fsck.fat.o - - mkfs.fat: mkfs.fat.o - -diff --git a/src/charconv.h b/src/charconv.h -index 3ac3e56..a33b803 100644 ---- a/src/charconv.h -+++ b/src/charconv.h -@@ -3,7 +3,7 @@ - - #define DEFAULT_DOS_CODEPAGE 437 - --int set_dos_codepage(int codepage); --int dos_char_to_printable(char **p, unsigned char c); -+static inline int set_dos_codepage(int codepage) { return 0; } -+static inline int dos_char_to_printable(char **p, unsigned char c) { return 0; } - - #endif diff --git a/patches/dosfstools/series b/patches/dosfstools/series index 66fd9cb60..096515335 100644 --- a/patches/dosfstools/series +++ b/patches/dosfstools/series @@ -1,2 +1,10 @@ -# This series applies on GIT commit 277b73b04cda1663511bb28ce9221d7b9561385b -remove-local-support.patch +# This series applies on dosfstools release v4.2 +# +# No patches required. +# +# The former remove-local-support.patch (which stubbed out the gettext/ +# locale/iconv support that uClibc handles poorly) was dropped for 4.x. +# dosfstools 4.x switched to an autotools build and gates iconv behind +# --with-iconv/--without-iconv. We configure with --without-iconv, which +# compiles charconv.c with its built-in CP850 table and no iconv/gettext +# dependency, achieving the same result without source patching. diff --git a/upstream/dosfstools-3.0.26.tar.xz.sha1 b/upstream/dosfstools-3.0.26.tar.xz.sha1 deleted file mode 100644 index 8d1fb2e60..000000000 --- a/upstream/dosfstools-3.0.26.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -1385f707b7ff93cb521e8158e60276c531c1b0a6 dosfstools-3.0.26.tar.xz diff --git a/upstream/dosfstools-4.2.tar.gz.sha1 b/upstream/dosfstools-4.2.tar.gz.sha1 new file mode 100644 index 000000000..993e0b523 --- /dev/null +++ b/upstream/dosfstools-4.2.tar.gz.sha1 @@ -0,0 +1 @@ +14efc68c64987a9067b6a919ad2870007247686b dosfstools-4.2.tar.gz From 3cd0ff52edb85bfff88ce78fb1a079d8f644e9a0 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:15:24 +0000 Subject: [PATCH 21/23] packages: bump busybox to 1.38.0 busybox 1.25.1 -> 1.38.0 (latest). Refresh the remaining 8 ONIE patches for the post-1.26 layout, where applet/config/kbuild registration moved from the central applets.src.h/Config.src/Kbuild.src files into per-source //applet:, //config: and //kbuild: comments; flash_erase uses the new getopt32 "^...\0=N" spec. Reconcile conf/busybox.config to 1.38.0 (oldconfig) and disable CONFIG_TC, which no longer builds against modern kernel uapi and was never shipped. Drop the dhcp-additional-options patch entirely and adapt ONIE to how busybox's udhcpc handles options, so no busybox source patch is needed. busybox trims rarely-used options from its built-in udhcpc table for size (it dropped vivso/125 after ~1.25 and never carried tftpsiaddr/150), and: - Request side: busybox accepts a numeric option code for "-O"/"-x" with no table entry, but aborts on an unknown option *name*. networking.sh now requests logsrv by code (-O 7) instead of "-O logsrv", which 1.38 would reject. (discover already used numeric -O.) - Receive side: busybox exports an option it doesn't recognize generically as "opt=" -- raw hex, untyped. udhcp4_sd decodes those to the typed value and name ONIE's discovery consumes -- 114->url (string), 72->wwwsrv (IPv4), 150->tftpsiaddr (IPv4); vivso/125 is left as hex since import_vivso decodes it -- in the one place that builds onie_disco_*; and udhcp4_net decodes the received $opt7 into $logsrv (IPv4). The decode (hex->ASCII for strings, hex->dotted-quad for addresses) reproduces what the in-table option types would have yielded, and is a no-op on a busybox that still carries the names, so it is correct across busybox versions. Signed-off-by: Brad House --- build-config/conf/busybox.config | 832 +++++++++++------- build-config/make/busybox.make | 2 +- patches/busybox/dhcp-additional-options.patch | 131 --- .../busybox/feature-flash-erase-command.patch | 593 +++---------- patches/busybox/feature-iorw-command.patch | 56 +- .../feature-onie-syseeprom-command.patch | 43 +- .../busybox/feature-onie-syseeprom-disk.patch | 25 +- .../feature-onie-syseeprom-sysfs.patch | 23 +- ...fw_env-modify-crc-size-in-getenvsize.patch | 4 +- patches/busybox/series | 3 +- patches/busybox/u-boot-env-tools.patch | 59 +- rootconf/default/etc/init.d/networking.sh | 7 +- rootconf/default/lib/onie/udhcp4_net | 15 + rootconf/default/lib/onie/udhcp4_sd | 56 +- upstream/busybox-1.38.0.tar.bz2.sha1 | 1 + 15 files changed, 768 insertions(+), 1082 deletions(-) delete mode 100644 patches/busybox/dhcp-additional-options.patch create mode 100644 upstream/busybox-1.38.0.tar.bz2.sha1 diff --git a/build-config/conf/busybox.config b/build-config/conf/busybox.config index 3cb98e71d..24eaf4131 100644 --- a/build-config/conf/busybox.config +++ b/build-config/conf/busybox.config @@ -1,59 +1,43 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.25.1 -# Mon Feb 6 14:00:48 2017 +# Busybox version: 1.38.0 +# Wed Jun 3 03:36:56 2026 # CONFIG_HAVE_DOT_CONFIG=y # -# Busybox Settings -# - -# -# General Configuration +# Settings # # CONFIG_DESKTOP is not set # CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set # CONFIG_INCLUDE_SUSv2 is not set -# CONFIG_USE_PORTABLE_CODE is not set -CONFIG_PLATFORM_LINUX=y -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y CONFIG_FEATURE_COMPRESS_USAGE=y -CONFIG_BUSYBOX=y -# CONFIG_FEATURE_INSTALLER is not set -# CONFIG_INSTALL_NO_USR is not set -# CONFIG_LOCALE_SUPPORT is not set -# CONFIG_UNICODE_SUPPORT is not set -# CONFIG_UNICODE_USING_LOCALE is not set -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set -CONFIG_SUBST_WCHAR=0 -CONFIG_LAST_SUPPORTED_WCHAR=0 -# CONFIG_UNICODE_COMBINING_WCHARS is not set -# CONFIG_UNICODE_WIDE_WCHARS is not set -# CONFIG_UNICODE_BIDI_SUPPORT is not set -# CONFIG_UNICODE_NEUTRAL_TABLE is not set -# CONFIG_UNICODE_PRESERVE_BROKEN is not set +CONFIG_LFS=y +CONFIG_TIME64=y # CONFIG_PAM is not set -# CONFIG_FEATURE_USE_SENDFILE is not set -CONFIG_LONG_OPTS=y CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set CONFIG_FEATURE_PIDFILE=y CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +# CONFIG_FEATURE_INSTALLER is not set +CONFIG_FEATURE_VERSION=y +# CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y CONFIG_FEATURE_SUID_CONFIG=y CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_SELINUX is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y -# CONFIG_FEATURE_HAVE_RPC is not set # # Build Options @@ -62,26 +46,17 @@ CONFIG_FEATURE_SYSLOG=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_DEBUG_SANITIZE is not set -# CONFIG_UNIT_TEST is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -96,16 +71,40 @@ CONFIG_INSTALL_APPLET_SYMLINKS=y CONFIG_PREFIX="./_install" # -# Busybox Library Tuning +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y +CONFIG_SHA256_HWACCEL=y CONFIG_SHA3_SMALL=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +# CONFIG_FEATURE_USE_SENDFILE is not set +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -116,14 +115,22 @@ CONFIG_FEATURE_REVERSE_SEARCH=y CONFIG_FEATURE_TAB_COMPLETION=y # CONFIG_FEATURE_USERNAME_COMPLETION is not set CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set -CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -# CONFIG_MONOTONIC_SYSCALL is not set -CONFIG_IOCTL_HEX2STR_ERROR=y -# CONFIG_FEATURE_HWIB is not set +# CONFIG_LOCALE_SUPPORT is not set +# CONFIG_UNICODE_SUPPORT is not set +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -142,92 +149,105 @@ CONFIG_FEATURE_AR_LONG_FILENAMES=y CONFIG_FEATURE_AR_CREATE=y # CONFIG_UNCOMPRESS is not set CONFIG_GUNZIP=y +CONFIG_ZCAT=y # CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set CONFIG_BUNZIP2=y +CONFIG_BZCAT=y # CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set +CONFIG_LZCAT=y # CONFIG_LZMA is not set CONFIG_UNXZ=y +CONFIG_XZCAT=y CONFIG_XZ=y CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y CONFIG_FEATURE_CPIO_O=y CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y CONFIG_DPKG=y CONFIG_DPKG_DEB=y -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set +CONFIG_FEATURE_GZIP_DECOMPRESS=y CONFIG_LZOP=y +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set # CONFIG_LZOP_COMPR_HIGH is not set -# CONFIG_RPM2CPIO is not set # CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y CONFIG_FEATURE_TAR_AUTODETECT=y CONFIG_FEATURE_TAR_FROM=y CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_TO_COMMAND=y CONFIG_FEATURE_TAR_UNAME_GNAME=y CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # CONFIG_FEATURE_TAR_SELINUX is not set CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +# CONFIG_FEATURE_UNZIP_BZIP2 is not set +# CONFIG_FEATURE_UNZIP_LZMA is not set +# CONFIG_FEATURE_UNZIP_XZ is not set +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_FEATURE_PATH_TRAVERSAL_PROTECTION is not set # # Coreutils # +# CONFIG_FEATURE_VERBOSE is not set + +# +# Common options for date and touch +# +# CONFIG_FEATURE_TIMEZONE is not set + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -# CONFIG_FEATURE_DATE_NANO is not set -CONFIG_FEATURE_DATE_COMPAT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y -CONFIG_FEATURE_DD_IBS_OBS=y -# CONFIG_FEATURE_DD_STATUS is not set -CONFIG_HOSTID=y -CONFIG_ID=y -CONFIG_GROUPS=y -# CONFIG_SHUF is not set -CONFIG_STAT=y -CONFIG_FEATURE_STAT_FORMAT=y -CONFIG_FEATURE_STAT_FILESYSTEM=y -CONFIG_SYNC=y -# CONFIG_FEATURE_SYNC_FANCY is not set -CONFIG_TEST=y -CONFIG_FEATURE_TEST_64=y -CONFIG_TOUCH=y -# CONFIG_FEATURE_TOUCH_NODEREF is not set -CONFIG_FEATURE_TOUCH_SUSV3=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -# CONFIG_TRUNCATE is not set -# CONFIG_UNLINK is not set -CONFIG_BASE64=y -# CONFIG_WHO is not set -# CONFIG_USERS is not set -CONFIG_CAL=y -CONFIG_CATV=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y CONFIG_CHGRP=y CONFIG_CHMOD=y CONFIG_CHOWN=y CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y CONFIG_CHROOT=y CONFIG_CKSUM=y +CONFIG_CRC32=y CONFIG_COMM=y CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +# CONFIG_FEATURE_DD_STATUS is not set CONFIG_DF=y CONFIG_FEATURE_DF_FANCY=y +CONFIG_FEATURE_SKIP_ROOTFS=y CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y @@ -236,39 +256,55 @@ CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y CONFIG_EXPAND=y -CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_UNEXPAND=y CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y -CONFIG_FSYNC=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y CONFIG_LN=y CONFIG_LOGNAME=y CONFIG_LS=y CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FOLLOWLINKS=y CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y CONFIG_FEATURE_LS_SORTFILES=y CONFIG_FEATURE_LS_TIMESTAMPS=y CONFIG_FEATURE_LS_USERNAME=y CONFIG_FEATURE_LS_COLOR=y CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA384SUM=y +CONFIG_SHA512SUM=y +# CONFIG_SHA3SUM is not set + +# +# Common options for md5sum, sha1sum, sha256sum, ..., sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y CONFIG_MKFIFO=y CONFIG_MKNOD=y +CONFIG_MKTEMP=y CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y CONFIG_NICE=y +CONFIG_NL=y CONFIG_NOHUP=y +CONFIG_NPROC=y CONFIG_OD=y +CONFIG_PASTE=y CONFIG_PRINTENV=y CONFIG_PRINTF=y CONFIG_PWD=y @@ -277,76 +313,76 @@ CONFIG_FEATURE_READLINK_FOLLOW=y CONFIG_REALPATH=y CONFIG_RM=y CONFIG_RMDIR=y -CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y CONFIG_SEQ=y -CONFIG_SHA1SUM=y -CONFIG_SHA256SUM=y -CONFIG_SHA512SUM=y -# CONFIG_SHA3SUM is not set +CONFIG_SHRED=y +# CONFIG_SHUF is not set CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_FEATURE_FLOAT_SLEEP=y CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set CONFIG_SPLIT=y CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y CONFIG_STTY=y CONFIG_SUM=y +CONFIG_SYNC=y +# CONFIG_FEATURE_SYNC_FANCY is not set +CONFIG_FSYNC=y CONFIG_TAC=y CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y +# CONFIG_TRUNCATE is not set +CONFIG_TSORT=y CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="" -CONFIG_UNEXPAND=y -CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_BB_ARCH=y CONFIG_UNIQ=y +# CONFIG_UNLINK is not set CONFIG_USLEEP=y CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y CONFIG_UUENCODE=y CONFIG_WC=y CONFIG_FEATURE_WC_LARGE=y +# CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set CONFIG_WHOAMI=y CONFIG_YES=y -# -# Common options -# -# CONFIG_FEATURE_VERBOSE is not set - -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - # # Console Utilities # # CONFIG_CHVT is not set -# CONFIG_FGCONSOLE is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set +# CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set # CONFIG_LOADKMAP is not set # CONFIG_OPENVT is not set CONFIG_RESET=y @@ -354,28 +390,30 @@ CONFIG_RESET=y # CONFIG_FEATURE_RESIZE_PRINT is not set # CONFIG_SETCONSOLE is not set # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETFONT is not set -# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set -CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set -# CONFIG_FEATURE_LOADFONT_PSF2 is not set -# CONFIG_FEATURE_LOADFONT_RAW is not set # # Debian Utilities # -CONFIG_MKTEMP=y CONFIG_PIPE_PROGRESS=y CONFIG_RUN_PARTS=y CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y CONFIG_FEATURE_RUN_PARTS_FANCY=y CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +CONFIG_RESUME=y +CONFIG_RUN_INIT=y + # # Editors # @@ -393,6 +431,7 @@ CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 # CONFIG_FEATURE_VI_8BIT is not set CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -406,6 +445,7 @@ CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -414,15 +454,22 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y # CONFIG_FEATURE_FIND_EXEC_PLUS is not set +CONFIG_FEATURE_FIND_EXEC_OK=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y @@ -430,14 +477,16 @@ CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set CONFIG_FEATURE_FIND_LINKS=y CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_EGREP=y +CONFIG_FGREP=y CONFIG_FEATURE_GREP_CONTEXT=y CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y @@ -445,6 +494,8 @@ CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y # CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # # Init Utilities @@ -453,6 +504,9 @@ CONFIG_BOOTCHARTD=y CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y CONFIG_HALT=y +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +CONFIG_FEATURE_WAIT_FOR_INIT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" CONFIG_INIT=y @@ -462,12 +516,10 @@ CONFIG_FEATURE_USE_INITTAB=y CONFIG_FEATURE_KILL_DELAY=0 CONFIG_FEATURE_INIT_SCTTY=y CONFIG_FEATURE_INIT_SYSLOG=y -CONFIG_FEATURE_EXTRA_QUIET=y +CONFIG_FEATURE_INIT_QUIET=y CONFIG_FEATURE_INIT_COREDUMPS=y CONFIG_INIT_TERMINAL_TYPE="linux" # CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set -# CONFIG_MESG is not set -# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set # # Login/Password Management Utilities @@ -477,13 +529,12 @@ CONFIG_USE_BB_PWD_GRP=y CONFIG_USE_BB_SHADOW=y # CONFIG_USE_BB_CRYPT is not set # CONFIG_USE_BB_CRYPT_SHA is not set -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y +# CONFIG_USE_BB_CRYPT_YES is not set # CONFIG_ADD_SHELL is not set # CONFIG_REMOVE_SHELL is not set +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 @@ -506,6 +557,7 @@ CONFIG_FEATURE_PASSWD_WEAK_CHECK=y CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set CONFIG_SULOGIN=y CONFIG_VLOCK=y @@ -520,29 +572,29 @@ CONFIG_TUNE2FS=y # # Linux Module Utilities # -CONFIG_MODINFO=y CONFIG_MODPROBE_SMALL=y -CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y -CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y +# CONFIG_DEPMOD is not set # CONFIG_INSMOD is not set -# CONFIG_RMMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODINFO=y # CONFIG_MODPROBE is not set # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set -# CONFIG_DEPMOD is not set +# CONFIG_RMMOD is not set # # Options common to multiple modutils # +# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES is not set -# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_MODUTILS_ALIAS is not set # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set CONFIG_DEFAULT_MODULES_DIR="/lib/modules" @@ -551,45 +603,27 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # # Linux System Utilities # +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y # CONFIG_BLKDISCARD is not set +CONFIG_BLKID=y +# CONFIG_FEATURE_BLKID_TYPE is not set CONFIG_BLOCKDEV=y +CONFIG_CAL=y +CONFIG_CHRT=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +CONFIG_FALLOCATE=y # CONFIG_FATATTR is not set -# CONFIG_FSTRIM is not set -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y -CONFIG_MOUNT=y -CONFIG_FEATURE_MOUNT_FAKE=y -CONFIG_FEATURE_MOUNT_VERBOSE=y -# CONFIG_FEATURE_MOUNT_HELPERS is not set -CONFIG_FEATURE_MOUNT_LABEL=y -# CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y -# CONFIG_FEATURE_MOUNT_OTHERTAB is not set -# CONFIG_NSENTER is not set -# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set -CONFIG_REV=y -CONFIG_SETARCH=y -# CONFIG_UEVENT is not set -# CONFIG_UNSHARE is not set -CONFIG_ACPID=y -CONFIG_FEATURE_ACPID_COMPAT=y -CONFIG_BLKID=y -# CONFIG_FEATURE_BLKID_TYPE is not set -CONFIG_DMESG=y -CONFIG_FEATURE_DMESG_PRETTY=y # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set CONFIG_FDISK=y # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_BLKSIZE=y CONFIG_FEATURE_FDISK_WRITABLE=y # CONFIG_FEATURE_AIX_LABEL is not set # CONFIG_FEATURE_SGI_LABEL is not set @@ -599,42 +633,92 @@ CONFIG_FEATURE_FDISK_WRITABLE=y CONFIG_FEATURE_FDISK_ADVANCED=y CONFIG_FINDFS=y CONFIG_FLOCK=y +# CONFIG_FDFLUSH is not set CONFIG_FREERAMDISK=y # CONFIG_FSCK_MINIX is not set -CONFIG_MKFS_EXT2=y -# CONFIG_MKFS_MINIX is not set -# CONFIG_FEATURE_MINIX2 is not set -# CONFIG_MKFS_REISER is not set -CONFIG_MKFS_VFAT=y +CONFIG_FSFREEZE=y +# CONFIG_FSTRIM is not set CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y -CONFIG_FEATURE_HEXDUMP_REVERSE=y CONFIG_HD=y +CONFIG_XXD=y CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +CONFIG_IONICE=y CONFIG_IPCRM=y CONFIG_IPCS=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set CONFIG_LOSETUP=y +CONFIG_LSBLK=y CONFIG_LSPCI=y CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_FEATURE_MDEV_DAEMON=y +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +CONFIG_MKE2FS=y +CONFIG_MKFS_EXT2=y +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +CONFIG_MKFS_VFAT=y CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +# CONFIG_FEATURE_MOUNT_HELPERS is not set +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +CONFIG_MOUNTPOINT=y +CONFIG_NOLOGIN=y +# CONFIG_NOLOGIN_DEPENDENCIES is not set +# CONFIG_NSENTER is not set CONFIG_PIVOT_ROOT=y CONFIG_RDATE=y CONFIG_RDEV=y CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y CONFIG_RTCWAKE=y CONFIG_SCRIPT=y CONFIG_SCRIPTREPLAY=y -CONFIG_SWAPONOFF=y +CONFIG_SETARCH=y +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y # CONFIG_FEATURE_SWAPON_DISCARD is not set CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y CONFIG_SWITCH_ROOT=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set +# CONFIG_UEVENT is not set CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y +# CONFIG_UNSHARE is not set +CONFIG_UUIDGEN=y +# CONFIG_WALL is not set # # Common options for mount/umount @@ -650,6 +734,7 @@ CONFIG_VOLUMEID=y # CONFIG_FEATURE_VOLUMEID_BCACHE is not set CONFIG_FEATURE_VOLUMEID_BTRFS=y CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EROFS=y # CONFIG_FEATURE_VOLUMEID_EXFAT is not set CONFIG_FEATURE_VOLUMEID_EXT=y # CONFIG_FEATURE_VOLUMEID_F2FS is not set @@ -657,9 +742,11 @@ CONFIG_FEATURE_VOLUMEID_FAT=y CONFIG_FEATURE_VOLUMEID_HFS=y CONFIG_FEATURE_VOLUMEID_ISO9660=y CONFIG_FEATURE_VOLUMEID_JFS=y +# CONFIG_FEATURE_VOLUMEID_LFS is not set CONFIG_FEATURE_VOLUMEID_LINUXRAID=y CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_MINIX=y # CONFIG_FEATURE_VOLUMEID_NILFS is not set CONFIG_FEATURE_VOLUMEID_NTFS=y CONFIG_FEATURE_VOLUMEID_OCFS2=y @@ -667,49 +754,23 @@ CONFIG_FEATURE_VOLUMEID_REISERFS=y CONFIG_FEATURE_VOLUMEID_ROMFS=y # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set CONFIG_FEATURE_VOLUMEID_SYSV=y +CONFIG_FEATURE_VOLUMEID_UBIFS=y CONFIG_FEATURE_VOLUMEID_UDF=y CONFIG_FEATURE_VOLUMEID_XFS=y # # Miscellaneous Utilities # -# CONFIG_CONSPY is not set -# CONFIG_CROND is not set -# CONFIG_FEATURE_CROND_D is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -CONFIG_FEATURE_CROND_DIR="" -# CONFIG_I2CGET is not set -# CONFIG_I2CSET is not set -# CONFIG_I2CDUMP is not set -# CONFIG_I2CDETECT is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_TRUNCATE is not set -CONFIG_FEATURE_LESS_MARKS=y -CONFIG_FEATURE_LESS_REGEXP=y -CONFIG_FEATURE_LESS_WINCH=y -CONFIG_FEATURE_LESS_ASK_TERMINAL=y -CONFIG_FEATURE_LESS_DASHCMD=y -CONFIG_FEATURE_LESS_LINENUMS=y -CONFIG_NANDWRITE=y -CONFIG_NANDDUMP=y -# CONFIG_RFKILL is not set -CONFIG_SETSERIAL=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set -# CONFIG_UBIRENAME is not set -CONFIG_UBIATTACH=y -CONFIG_UBIDETACH=y -CONFIG_UBIMKVOL=y -CONFIG_UBIRMVOL=y -CONFIG_UBIRSVOL=y -CONFIG_UBIUPDATEVOL=y -# CONFIG_WALL is not set CONFIG_ADJTIMEX=y +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BC=y +# CONFIG_DC is not set +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y CONFIG_BEEP=y CONFIG_FEATURE_BEEP_FREQ=4000 CONFIG_FEATURE_BEEP_LENGTH_MS=30 @@ -721,27 +782,26 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=30 # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set # CONFIG_FEATURE_CHAT_CLR_ABORT is not set -CONFIG_CHRT=y +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set +CONFIG_FEATURE_CROND_DIR="" # CONFIG_CRONTAB is not set -# CONFIG_DC is not set -# CONFIG_FEATURE_DC_LIBM is not set # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set CONFIG_DEVMEM=y -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FBSPLASH is not set -CONFIG_FLASHCP=y +CONFIG_FLASH_ERASE=y CONFIG_FLASH_LOCK=y CONFIG_FLASH_UNLOCK=y -CONFIG_FLASH_ERASE=y -CONFIG_IONICE=y -# CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_FLASHCP=y +CONFIG_UBOOT_ENV=y +CONFIG_GETFATTR=y # CONFIG_HDPARM is not set # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set @@ -749,26 +809,61 @@ CONFIG_IONICE=y # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +CONFIG_I2CTRANSFER=y +# CONFIG_INOTIFYD is not set CONFIG_IORW=y +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +# CONFIG_FEATURE_LESS_TRUNCATE is not set +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set # CONFIG_MICROCOM is not set -CONFIG_MOUNTPOINT=y +CONFIG_MIM=y # CONFIG_MT is not set +CONFIG_NANDWRITE=y +CONFIG_NANDDUMP=y +# CONFIG_PARTPROBE is not set # CONFIG_RAIDAUTORUN is not set CONFIG_READAHEAD=y +# CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -CONFIG_SETSID=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +CONFIG_SETSERIAL=y # CONFIG_STRINGS is not set CONFIG_TIME=y -CONFIG_TIMEOUT=y +CONFIG_TREE=y +CONFIG_TS=y # CONFIG_TTYSIZE is not set -CONFIG_UBOOT_ENV=y +CONFIG_UBIATTACH=y +CONFIG_UBIDETACH=y +CONFIG_UBIMKVOL=y +CONFIG_UBIRMVOL=y +CONFIG_UBIRSVOL=y +CONFIG_UBIUPDATEVOL=y +# CONFIG_UBIRENAME is not set # CONFIG_VOLNAME is not set CONFIG_WATCHDOG=y +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # CONFIG_SYS_EEPROM is not set # CONFIG_SYS_EEPROM_DEVICE_I2C is not set # CONFIG_SYS_EEPROM_DEVICE_MTD is not set @@ -776,10 +871,10 @@ CONFIG_WATCHDOG=y # CONFIG_SYS_EEPROM_SYSFS_FILE is not set CONFIG_SYS_EEPROM_I2C_DEVICE="" CONFIG_SYS_EEPROM_I2C_ADDR= -CONFIG_SYS_EEPROM_I2C_MEM_ADDR_BITS=8 -CONFIG_SYS_EEPROM_I2C_WRITE_1B_DELAY=10 -CONFIG_SYS_EEPROM_I2C_WRITE_2B_DELAY=1000 -CONFIG_SYS_EEPROM_I2C_WRITE_3B_DELAY=10 +CONFIG_SYS_EEPROM_I2C_MEM_ADDR_BITS=0 +CONFIG_SYS_EEPROM_I2C_WRITE_1B_DELAY=0 +CONFIG_SYS_EEPROM_I2C_WRITE_2B_DELAY=0 +CONFIG_SYS_EEPROM_I2C_WRITE_3B_DELAY=0 CONFIG_SYS_EEPROM_MTD_DEVICE="" CONFIG_SYS_EEPROM_DISK_DEVICE="" CONFIG_SYS_EEPROM_SYSFS_FILE_PATH="" @@ -790,28 +885,14 @@ CONFIG_SYS_EEPROM_MAX_SIZE=0 # # Networking Utilities # -CONFIG_NAMEIF=y -CONFIG_FEATURE_NAMEIF_EXTENDED=y -CONFIG_NBDCLIENT=y -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -# CONFIG_NC_110_COMPAT is not set -CONFIG_PING=y -CONFIG_PING6=y -CONFIG_FEATURE_FANCY_PING=y -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y -# CONFIG_FEATURE_WGET_OPENSSL is not set -# CONFIG_FEATURE_WGET_SSL_HELPER is not set -CONFIG_WHOIS=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y CONFIG_VERBOSE_RESOLUTION_ERRORS=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_HWIB is not set +# CONFIG_FEATURE_TLS_SHA1 is not set CONFIG_ARP=y CONFIG_ARPING=y CONFIG_BRCTL=y @@ -819,16 +900,17 @@ CONFIG_FEATURE_BRCTL_FANCY=y CONFIG_FEATURE_BRCTL_SHOW=y # CONFIG_DNSD is not set CONFIG_ETHER_WAKE=y -CONFIG_FAKEIDENTD=y # CONFIG_FTPD is not set -# CONFIG_FEATURE_FTP_WRITE is not set +# CONFIG_FEATURE_FTPD_WRITE is not set # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set -# CONFIG_FEATURE_FTP_AUTHENTICATION is not set +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set CONFIG_FTPGET=y CONFIG_FTPPUT=y CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y # CONFIG_HTTPD is not set +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0 # CONFIG_FEATURE_HTTPD_RANGES is not set # CONFIG_FEATURE_HTTPD_SETUID is not set # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set @@ -840,6 +922,10 @@ CONFIG_HOSTNAME=y # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set # CONFIG_FEATURE_HTTPD_PROXY is not set # CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_FEATURE_HTTPD_ETAG is not set +# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +# CONFIG_FEATURE_HTTPD_DATE is not set +# CONFIG_FEATURE_HTTPD_ACL_IP is not set CONFIG_IFCONFIG=y CONFIG_FEATURE_IFCONFIG_STATUS=y CONFIG_FEATURE_IFCONFIG_SLIP=y @@ -848,11 +934,10 @@ CONFIG_FEATURE_IFCONFIG_HW=y CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y CONFIG_IFENSLAVE=y CONFIG_IFPLUGD=y -CONFIG_IFUPDOWN=y +CONFIG_IFUP=y +CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y -CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y -# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set CONFIG_FEATURE_IFUPDOWN_IPV4=y CONFIG_FEATURE_IFUPDOWN_IPV6=y CONFIG_FEATURE_IFUPDOWN_MAPPING=y @@ -865,79 +950,118 @@ CONFIG_FEATURE_IFUPDOWN_MAPPING=y # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set # CONFIG_FEATURE_INETD_RPC is not set CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y CONFIG_FEATURE_IP_ADDRESS=y CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_LINK_CAN=y CONFIG_FEATURE_IP_ROUTE=y CONFIG_FEATURE_IP_ROUTE_DIR="" CONFIG_FEATURE_IP_TUNNEL=y CONFIG_FEATURE_IP_RULE=y CONFIG_FEATURE_IP_NEIGH=y -CONFIG_FEATURE_IP_SHORT_FORMS=y # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -CONFIG_IPTUNNEL=y -CONFIG_IPRULE=y -CONFIG_IPNEIGH=y CONFIG_IPCALC=y -CONFIG_FEATURE_IPCALC_FANCY=y CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +# CONFIG_NETCAT is not set +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set CONFIG_NETSTAT=y CONFIG_FEATURE_NETSTAT_WIDE=y CONFIG_FEATURE_NETSTAT_PRG=y CONFIG_NSLOOKUP=y +CONFIG_FEATURE_NSLOOKUP_BIG=y +CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y CONFIG_PSCAN=y CONFIG_ROUTE=y CONFIG_SLATTACH=y +CONFIG_SSL_CLIENT=y +CONFIG_SSL_SERVER=y +# CONFIG_TC is not set +# CONFIG_FEATURE_TC_INGRESS is not set # CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y CONFIG_TELNETD=y +# CONFIG_FEATURE_TELNETD_SELFTEST_DEBUG is not set CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y # CONFIG_TFTPD is not set - -# -# Common options for tftp/tftpd -# CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y CONFIG_FEATURE_TFTP_BLOCKSIZE=y -CONFIG_FEATURE_TFTP_PROGRESS_BAR=y # CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y CONFIG_TRACEROUTE=y CONFIG_TRACEROUTE6=y CONFIG_FEATURE_TRACEROUTE_VERBOSE=y -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set CONFIG_TUNCTL=y CONFIG_FEATURE_TUNCTL_UG=y -CONFIG_UDHCPC6=y +# CONFIG_VCONFIG is not set +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +# CONFIG_FEATURE_WGET_OPENSSL is not set +CONFIG_WHOIS=y +CONFIG_ZCIP=y # CONFIG_UDHCPD is not set -# CONFIG_DHCPRELAY is not set -# CONFIG_DUMPLEASES is not set -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BOOTP is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set CONFIG_UDHCPC=y CONFIG_FEATURE_UDHCPC_ARPING=y # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=9 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_FEATURE_UDHCP_RFC3397=y CONFIG_FEATURE_UDHCP_8021Q=y -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" -# CONFIG_UDPSVD is not set -# CONFIG_VCONFIG is not set -CONFIG_ZCIP=y # # Print Utilities @@ -949,8 +1073,8 @@ CONFIG_ZCIP=y # # Mail Utilities # -# CONFIG_MAKEMIME is not set CONFIG_FEATURE_MIME_CHARSET="" +# CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set @@ -960,16 +1084,37 @@ CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_FREE=y +CONFIG_FUSER=y CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y CONFIG_LSOF=y CONFIG_MPSTAT=y CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y CONFIG_PMAP=y CONFIG_POWERTOP=y +CONFIG_FEATURE_POWERTOP_INTERACTIVE=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_LONG=y +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set CONFIG_PSTREE=y CONFIG_PWDX=y CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_SMP_CPU=y @@ -978,25 +1123,7 @@ CONFIG_FEATURE_TOP_SMP_PROCESS=y CONFIG_FEATURE_TOPMEM=y CONFIG_UPTIME=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set -CONFIG_FREE=y -CONFIG_FUSER=y -CONFIG_KILL=y -CONFIG_KILLALL=y -CONFIG_KILLALL5=y -CONFIG_PGREP=y -CONFIG_PIDOF=y -CONFIG_FEATURE_PIDOF_SINGLE=y -CONFIG_FEATURE_PIDOF_OMIT=y -CONFIG_PKILL=y -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -CONFIG_FEATURE_PS_LONG=y -# CONFIG_FEATURE_PS_TIME is not set -# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set -# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y -CONFIG_BB_SYSCTL=y -CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_VMSTAT=y CONFIG_WATCH=y # @@ -1012,46 +1139,59 @@ CONFIG_RUNSVDIR=y # CONFIG_FEATURE_RUNSVDIR_LOG is not set CONFIG_SV=y CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +CONFIG_SVC=y +CONFIG_SVOK=y CONFIG_SVLOGD=y # CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set # CONFIG_GETSEBOOL is not set # CONFIG_LOAD_POLICY is not set # CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set # CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set # CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set # # Shells # +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y -# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y -CONFIG_ASH_GETOPTS=y -CONFIG_ASH_BUILTIN_ECHO=y -CONFIG_ASH_BUILTIN_PRINTF=y -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_HELP is not set -CONFIG_ASH_CMDCMD=y -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y CONFIG_ASH_RANDOM_SUPPORT=y CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_ECHO=y +CONFIG_ASH_PRINTF=y +CONFIG_ASH_TEST=y +# CONFIG_ASH_HELP is not set +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_CMDCMD=y CONFIG_CTTYHACK=y # CONFIG_HUSH is not set +# CONFIG_SHELL_HUSH is not set +# CONFIG_HUSH_NEED_FOR_SPEED is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set -# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1059,24 +1199,45 @@ CONFIG_CTTYHACK=y # CONFIG_HUSH_IF is not set # CONFIG_HUSH_LOOPS is not set # CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_ALIAS is not set # CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_FUNCTION_KEYWORD is not set # CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set -# CONFIG_HUSH_EXPORT_N is not set # CONFIG_HUSH_MODE_X is not set -# CONFIG_MSH is not set -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -# CONFIG_FEATURE_BASH_IS_ASH is not set -# CONFIG_FEATURE_BASH_IS_HUSH is not set -CONFIG_FEATURE_BASH_IS_NONE=y -CONFIG_SH_MATH_SUPPORT=y -CONFIG_SH_MATH_SUPPORT_64=y +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y # # System Logging Utilities @@ -1091,6 +1252,7 @@ CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_DUP=y CONFIG_FEATURE_SYSLOGD_CFG=y +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 diff --git a/build-config/make/busybox.make b/build-config/make/busybox.make index 972dfa397..ea7edf2e2 100644 --- a/build-config/make/busybox.make +++ b/build-config/make/busybox.make @@ -14,7 +14,7 @@ # This is a makefile fragment that defines the build of busybox # -BUSYBOX_VERSION = 1.25.1 +BUSYBOX_VERSION = 1.38.0 BUSYBOX_TARBALL = busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_TARBALL_URLS += $(ONIE_MIRROR) https://www.busybox.net/downloads BUSYBOX_BUILD_DIR = $(MBUILDDIR)/busybox diff --git a/patches/busybox/dhcp-additional-options.patch b/patches/busybox/dhcp-additional-options.patch deleted file mode 100644 index 462660d5a..000000000 --- a/patches/busybox/dhcp-additional-options.patch +++ /dev/null @@ -1,131 +0,0 @@ -dhcp additional options patch - -Copyright (C) 2013 Curt Brune -Copyright (C) 2014 david_yang - -SPDX-License-Identifier: GPL-2.0 - -Enable the send/receive of additional DHCP options: - - DHCP_LOG_SERVER - DHCP_WWW_SERVER - DHCP_DEFAULT_URL - -diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c -index 0cf4dab63c55..ad4522deb0b0 100644 ---- a/networking/udhcp/common.c -+++ b/networking/udhcp/common.c -@@ -26,7 +26,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - // { OPTION_IP | OPTION_LIST , 0x04 }, /* DHCP_TIME_SERVER */ - // { OPTION_IP | OPTION_LIST , 0x05 }, /* DHCP_NAME_SERVER */ - { OPTION_IP | OPTION_LIST | OPTION_REQ, 0x06 }, /* DHCP_DNS_SERVER */ --// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */ -+ { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */ - // { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */ - { OPTION_IP | OPTION_LIST , 0x09 }, /* DHCP_LPR_SERVER */ - { OPTION_STRING_HOST | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */ -@@ -44,6 +44,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - { OPTION_STRING_HOST , 0x28 }, /* DHCP_NIS_DOMAIN */ - { OPTION_IP | OPTION_LIST , 0x29 }, /* DHCP_NIS_SERVER */ - { OPTION_IP | OPTION_LIST | OPTION_REQ, 0x2a }, /* DHCP_NTP_SERVER */ -+ { OPTION_BIN , 0x2b }, /* DHCP_VENDOR_OPTS */ - { OPTION_IP | OPTION_LIST , 0x2c }, /* DHCP_WINS_SERVER */ - { OPTION_U32 , 0x33 }, /* DHCP_LEASE_TIME */ - { OPTION_IP , 0x36 }, /* DHCP_SERVER_ID */ -@@ -51,13 +52,16 @@ const struct dhcp_optflag dhcp_optflags[] = { - //TODO: must be combined with 'sname' and 'file' handling: - { OPTION_STRING_HOST , 0x42 }, /* DHCP_TFTP_SERVER_NAME */ - { OPTION_STRING , 0x43 }, /* DHCP_BOOT_FILE */ -+ { OPTION_IP | OPTION_LIST , 0x48 }, /* DHCP_WWW_SERVER */ - //TODO: not a string, but a set of LASCII strings: - // { OPTION_STRING , 0x4D }, /* DHCP_USER_CLASS */ -+ { OPTION_STRING , 0x72 }, /* DHCP_DEFAULT_URL */ - #if ENABLE_FEATURE_UDHCP_RFC3397 - { OPTION_DNS_STRING | OPTION_LIST , 0x77 }, /* DHCP_DOMAIN_SEARCH */ - { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */ - #endif - { OPTION_STATIC_ROUTES | OPTION_LIST , 0x79 }, /* DHCP_STATIC_ROUTES */ -+ { OPTION_BIN , 0x7d }, /* DHCP_VIVSO_OPTS */ - #if ENABLE_FEATURE_UDHCP_8021Q - { OPTION_U16 , 0x84 }, /* DHCP_VLAN_ID */ - { OPTION_U8 , 0x85 }, /* DHCP_VLAN_PRIORITY */ -@@ -65,6 +69,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - { OPTION_STRING , 0xd1 }, /* DHCP_PXE_CONF_FILE */ - { OPTION_STRING , 0xd2 }, /* DHCP_PXE_PATH_PREFIX */ - { OPTION_6RD , 0xd4 }, /* DHCP_6RD */ -+ { OPTION_IP , 0x96 }, /* DHCP_TFTP_SERVER_IP */ - { OPTION_STATIC_ROUTES | OPTION_LIST , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */ - { OPTION_STRING , 0xfc }, /* DHCP_WPAD */ - -@@ -97,7 +102,7 @@ const char dhcp_option_strings[] ALIGN1 = - // "timesrv" "\0" /* DHCP_TIME_SERVER */ - // "namesrv" "\0" /* DHCP_NAME_SERVER */ - "dns" "\0" /* DHCP_DNS_SERVER */ --// "logsrv" "\0" /* DHCP_LOG_SERVER */ -+ "logsrv" "\0" /* DHCP_LOG_SERVER */ - // "cookiesrv" "\0" /* DHCP_COOKIE_SERVER */ - "lprsrv" "\0" /* DHCP_LPR_SERVER */ - "hostname" "\0" /* DHCP_HOST_NAME */ -@@ -112,13 +117,16 @@ const char dhcp_option_strings[] ALIGN1 = - "nisdomain" "\0" /* DHCP_NIS_DOMAIN */ - "nissrv" "\0" /* DHCP_NIS_SERVER */ - "ntpsrv" "\0" /* DHCP_NTP_SERVER */ -+ "vendoropts" "\0" /* DHCP_VENDOR_OPTS */ - "wins" "\0" /* DHCP_WINS_SERVER */ - "lease" "\0" /* DHCP_LEASE_TIME */ - "serverid" "\0" /* DHCP_SERVER_ID */ - "message" "\0" /* DHCP_ERR_MESSAGE */ - "tftp" "\0" /* DHCP_TFTP_SERVER_NAME */ - "bootfile" "\0" /* DHCP_BOOT_FILE */ -+ "wwwsrv" "\0" /* DHCP_WWW_SERVER */ - // "userclass" "\0" /* DHCP_USER_CLASS */ -+ "url" "\0" /* DHCP_DEFAULT_URL */ - #if ENABLE_FEATURE_UDHCP_RFC3397 - "search" "\0" /* DHCP_DOMAIN_SEARCH */ - // doesn't work in udhcpd.conf since OPTION_SIP_SERVERS -@@ -126,6 +134,7 @@ const char dhcp_option_strings[] ALIGN1 = - "sipsrv" "\0" /* DHCP_SIP_SERVERS */ - #endif - "staticroutes" "\0"/* DHCP_STATIC_ROUTES */ -+ "vivso" "\0" /* DHCP_VIVSO_OPTS */ - #if ENABLE_FEATURE_UDHCP_8021Q - "vlanid" "\0" /* DHCP_VLAN_ID */ - "vlanpriority" "\0"/* DHCP_VLAN_PRIORITY */ -@@ -133,6 +142,7 @@ const char dhcp_option_strings[] ALIGN1 = - "pxeconffile" "\0" /* DHCP_PXE_CONF_FILE */ - "pxepathprefix" "\0" /* DHCP_PXE_PATH_PREFIX */ - "ip6rd" "\0" /* DHCP_6RD */ -+ "tftpsiaddr" "\0" /* DHCP_TFTP_SERVER_IP */ - "msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */ - "wpad" "\0" /* DHCP_WPAD */ - ; -@@ -149,6 +159,7 @@ const uint8_t dhcp_option_lengths[] ALIGN1 = { - [OPTION_IP] = 4, - [OPTION_IP_PAIR] = 8, - // [OPTION_BOOLEAN] = 1, -+ [OPTION_BIN] = 1, /* ignored by udhcp_str2optset */ - [OPTION_STRING] = 1, /* ignored by udhcp_str2optset */ - [OPTION_STRING_HOST] = 1, /* ignored by udhcp_str2optset */ - #if ENABLE_FEATURE_UDHCP_RFC3397 -diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c -index fc7b6216d777..838c8093e969 100644 ---- a/networking/udhcp/dhcpc.c -+++ b/networking/udhcp/dhcpc.c -@@ -114,6 +114,7 @@ static const uint8_t len_of_option_as_string[] ALIGN1 = { - [OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2, - [OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "), - [OPTION_6RD ] = sizeof("132 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "), -+ [OPTION_BIN ] = 2, - [OPTION_STRING ] = 1, - [OPTION_STRING_HOST ] = 1, - #if ENABLE_FEATURE_UDHCP_RFC3397 -@@ -256,6 +257,9 @@ static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_ - dest += sprintf(dest, type == OPTION_U32 ? "%lu" : "%ld", (unsigned long) ntohl(val_u32)); - break; - } -+ case OPTION_BIN: -+ *bin2hex(dest, (void*) option, len) = '\0'; -+ return ret; - /* Note: options which use 'return' instead of 'break' - * (for example, OPTION_STRING) skip the code which handles - * the case of list of options. diff --git a/patches/busybox/feature-flash-erase-command.patch b/patches/busybox/feature-flash-erase-command.patch index 8e3204478..eaff49981 100644 --- a/patches/busybox/feature-flash-erase-command.patch +++ b/patches/busybox/feature-flash-erase-command.patch @@ -9,129 +9,83 @@ Add flash_erase command. Renamed flash_eraseall.c to flash_erase.c Removed flash_eraseall command as its functionality is covered with "flash_erase /dev/mtd2 0 0". -diff --git a/include/applets.src.h b/include/applets.src.h -index 267a8f3032c8..b9df5a1b3449 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -135,7 +135,7 @@ IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP)) - IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP)) - /* Benefits from suid root: better access to /dev/BLOCKDEVs: */ - IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE)) --IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) -+IF_FLASH_ERASE(APPLET(flash_erase, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_FLASH_LOCK(APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock)) - IF_FLASH_UNLOCK(APPLET_ODDNAME(flash_unlock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_unlock)) - IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP)) -diff --git a/miscutils/Config.src b/miscutils/Config.src -index e5bc7013bdf8..4d6425f7652f 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -279,12 +279,13 @@ config FLASH_UNLOCK - The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This - utility unlocks part or all of the flash device. - --config FLASH_ERASEALL -- bool "flash_eraseall" -+config FLASH_ERASE -+ bool "flash_erase" - default n # doesn't build on Ubuntu 8.04 - help -- The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. -- This utility is used to erase the whole MTD device. -+ The flash_erase binary based on mtd-utils as of git head -+ c4c6a59eb. This utility is used to erase specific erase -+ blocks within a MTD device. - - config IONICE - bool "ionice" -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 25382f57efc4..917781898d36 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -19,7 +19,7 @@ lib-$(CONFIG_DEVMEM) += devmem.o - lib-$(CONFIG_EJECT) += eject.o - lib-$(CONFIG_FBSPLASH) += fbsplash.o - lib-$(CONFIG_FLASHCP) += flashcp.o --lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o -+lib-$(CONFIG_FLASH_ERASE) += flash_erase.o - lib-$(CONFIG_FLASH_LOCK) += flash_lock_unlock.o - lib-$(CONFIG_FLASH_UNLOCK) += flash_lock_unlock.o - lib-$(CONFIG_IONICE) += ionice.o -diff --git a/miscutils/flash_erase.c b/miscutils/flash_erase.c -new file mode 100644 -index 000000000000..aec6d3c45740 ---- /dev/null +diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_erase.c +similarity index 63% +rename from miscutils/flash_eraseall.c +rename to miscutils/flash_erase.c +index c76d9a6..7030ef8 100644 +--- a/miscutils/flash_eraseall.c +++ b/miscutils/flash_erase.c -@@ -0,0 +1,253 @@ -+/* vi: set sw=4 ts=4: */ +@@ -1,6 +1,5 @@ + /* vi: set sw=4 ts=4: */ +-/* +- * eraseall.c -- erase the whole of a MTD device +/* eraseall.c -- erase the whole of a MTD device -+ * -+ * Ported to busybox from mtd-utils. -+ * -+ * Copyright (C) 2000 Arcom Control System Ltd -+ * -+ * Renamed to flash_eraseall.c -+ * -+ * Licensed under GPLv2 or later, see file LICENSE in this source tree. + * + * Ported to busybox from mtd-utils. + * +@@ -9,26 +8,25 @@ + * Renamed to flash_eraseall.c + * + * Licensed under GPLv2 or later, see file LICENSE in this source tree. + * + * 4/2013 -- Curt Brune + * Renamed to flash_erase.c + * Added flash_erase command. + * Removed flash_eraseall command. + * -+ */ -+ -+//usage:#define flash_eraseall_trivial_usage -+//usage: "[-jNq] MTD_DEVICE" -+//usage:#define flash_eraseall_full_usage "\n\n" -+//usage: "Erase an MTD device\n" -+//usage: "\n -j Format the device for jffs2" -+//usage: "\n -N Don't skip bad blocks" -+//usage: "\n -q Don't display progress messages" -+ -+#include "libbb.h" -+#include -+#include -+ -+#define OPTION_J (1 << 0) -+#define OPTION_N (1 << 1) -+#define OPTION_Q (1 << 2) -+#define IS_NAND (1 << 3) -+ -+/* mtd/jffs2-user.h used to have this atrocity: -+extern int target_endian; -+ -+#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); }) -+#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); }) -+ -+#define cpu_to_je16(x) ((jint16_t){t16(x)}) -+#define cpu_to_je32(x) ((jint32_t){t32(x)}) -+#define cpu_to_jemode(x) ((jmode_t){t32(x)}) -+ -+#define je16_to_cpu(x) (t16((x).v16)) -+#define je32_to_cpu(x) (t32((x).v32)) -+#define jemode_to_cpu(x) (t32((x).m)) -+ -+but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) -+*/ -+ -+/* We always use native endianness */ -+#undef cpu_to_je16 -+#undef cpu_to_je32 -+#define cpu_to_je16(v) ((jint16_t){(v)}) -+#define cpu_to_je32(v) ((jint32_t){(v)}) -+ + */ +-//config:config FLASH_ERASEALL +-//config: bool "flash_eraseall (5.9 kb)" ++ ++//config:config FLASH_ERASE ++//config: bool "flash_erase" + //config: default n # doesn't build on Ubuntu 8.04 + //config: help +-//config: The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. +-//config: This utility is used to erase the whole MTD device. ++//config: The flash_erase binary based on mtd-utils as of git head ++//config: c4c6a59eb. This utility is used to erase specific erase ++//config: blocks within a MTD device. + +-//applet:IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) +-/* not NOEXEC: if flash operation stalls, use less memory in "hung" process */ ++//applet:IF_FLASH_ERASE(APPLET(flash_erase, BB_DIR_USR_SBIN, BB_SUID_DROP)) + +-//kbuild:lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o +- +-//usage:#define flash_eraseall_trivial_usage +-//usage: "[-jNq] MTD_DEVICE" +-//usage:#define flash_eraseall_full_usage "\n\n" +-//usage: "Erase an MTD device\n" +-//usage: "\n -j Format the device for jffs2" +-//usage: "\n -N Don't skip bad blocks" +-//usage: "\n -q Don't display progress messages" ++//kbuild:lib-$(CONFIG_FLASH_ERASE) += flash_erase.o + + #include "libbb.h" + #include +@@ -62,30 +60,51 @@ but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) + #define cpu_to_je16(v) ((jint16_t){(v)}) + #define cpu_to_je32(v) ((jint32_t){(v)}) + +-static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) +//static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) +static void show_progress(unsigned erasesize, unsigned current, unsigned start, unsigned total) -+{ -+ printf("\rErasing %u Kibyte @ %x - %2u%% complete.", + { + printf("\rErasing %u Kibyte @ %x - %2u%% complete.", +- (unsigned)meminfo->erasesize / 1024, +- erase->start, +- (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size) + erasesize / 1024, + current, + (unsigned) (((unsigned long long)(current - start) * 100) / total) -+ ); -+ fflush_all(); -+} -+ + ); + fflush_all(); + } + +-int flash_eraseall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +-int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) +//usage:#define flash_erase_trivial_usage +//usage: "[-jq] MTD_DEVICE START_OFFSET BLOCK_COUNT" +//usage:#define flash_erase_full_usage "\n\n" @@ -142,19 +96,21 @@ index 000000000000..aec6d3c45740 + +int flash_erase_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int flash_erase_main(int argc, char **argv) -+{ -+ struct jffs2_unknown_node cleanmarker; -+ mtd_info_t meminfo; -+ int fd, clmpos, clmlen; -+ erase_info_t erase; -+ struct stat st; + { + struct jffs2_unknown_node cleanmarker; + mtd_info_t meminfo; + int fd, clmpos, clmlen; + erase_info_t erase; + struct stat st; +- unsigned int flags; +- char *mtd_name; + unsigned n_erase_bytes; + unsigned flags; + char* mtd_name; + unsigned start, n_blocks; -+ -+ opt_complementary = "=3"; -+ flags = getopt32(argv, "jNq"); + +- flags = getopt32(argv, "^" "jNq" "\0" "=1"); ++ flags = getopt32(argv, "^" "jNq" "\0" "=3"); + + argc -= optind; + argv += optind; @@ -166,17 +122,15 @@ index 000000000000..aec6d3c45740 + + /* n_blocks parameter */ + n_blocks = xstrtoul(argv[2], 0); -+ -+ fd = xopen(mtd_name, O_RDWR); -+ fstat(fd, &st); -+ if (!S_ISCHR(st.st_mode)) -+ bb_error_msg_and_die("%s: not a char device", mtd_name); -+ -+ xioctl(fd, MEMGETINFO, &meminfo); -+ erase.length = meminfo.erasesize; -+ if (meminfo.type == MTD_NANDFLASH) -+ flags |= IS_NAND; -+ + +- mtd_name = argv[optind]; + fd = xopen(mtd_name, O_RDWR); + fstat(fd, &st); + if (!S_ISCHR(st.st_mode)) +@@ -96,12 +115,30 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (meminfo.type == MTD_NANDFLASH) + flags |= IS_NAND; + + if (n_blocks == 0) { + /* erase entire device */ + n_erase_bytes = meminfo.size; @@ -195,337 +149,64 @@ index 000000000000..aec6d3c45740 + if ((start + n_erase_bytes) > meminfo.size) + bb_error_msg_and_die("%s: erase region is outside of device", mtd_name); + -+ clmpos = 0; -+ clmlen = 8; -+ if (flags & OPTION_J) { -+ uint32_t *crc32_table; -+ + clmpos = 0; + clmlen = 8; + if (flags & OPTION_J) { + uint32_t *crc32_table; + +- crc32_table = crc32_new_table_le(); + crc32_table = crc32_filltable(NULL, 0); -+ -+ cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); -+ cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); -+ if (!(flags & IS_NAND)) -+ cleanmarker.totlen = cpu_to_je32(sizeof(struct jffs2_unknown_node)); -+ else { -+ struct nand_oobinfo oobinfo; -+ -+ xioctl(fd, MEMGETOOBSEL, &oobinfo); -+ -+ /* Check for autoplacement */ -+ if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) { -+ /* Get the position of the free bytes */ -+ clmpos = oobinfo.oobfree[0][0]; -+ clmlen = oobinfo.oobfree[0][1]; -+ if (clmlen > 8) -+ clmlen = 8; -+ if (clmlen == 0) + + cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); + cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); +@@ -120,7 +157,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (clmlen > 8) + clmlen = 8; + if (clmlen == 0) +- bb_simple_error_msg_and_die("autoplacement selected and no empty space in oob"); + bb_error_msg_and_die("autoplacement selected and no empty space in oob"); -+ } else { -+ /* Legacy mode */ -+ switch (meminfo.oobsize) { -+ case 8: -+ clmpos = 6; -+ clmlen = 2; -+ break; -+ case 16: -+ clmpos = 8; -+ /*clmlen = 8;*/ -+ break; -+ case 64: -+ clmpos = 16; -+ /*clmlen = 8;*/ -+ break; -+ } -+ } -+ cleanmarker.totlen = cpu_to_je32(8); -+ } -+ -+ cleanmarker.hdr_crc = cpu_to_je32( -+ crc32_block_endian0(0, &cleanmarker, sizeof(struct jffs2_unknown_node) - 4, crc32_table) -+ ); -+ } -+ -+ /* Don't want to destroy progress indicator by bb_error_msg's */ -+ applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); -+ + } else { + /* Legacy mode */ + switch (meminfo.oobsize) { +@@ -149,7 +186,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + /* Don't want to destroy progress indicator by bb_error_msg's */ + applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); + +- for (erase.start = 0; erase.start < meminfo.size; + for (erase.start = start; erase.start < (start + n_erase_bytes); -+ erase.start += meminfo.erasesize) { -+ if (!(flags & OPTION_N)) { -+ int ret; -+ loff_t offset = erase.start; -+ -+ ret = ioctl(fd, MEMGETBADBLOCK, &offset); -+ if (ret > 0) { -+ if (!(flags & OPTION_Q)) -+ printf("\nSkipping bad block at 0x%08x\n", erase.start); -+ continue; -+ } -+ if (ret < 0) { -+ /* Black block table is not available on certain flash -+ * types e.g. NOR -+ */ -+ if (errno == EOPNOTSUPP) { -+ flags |= OPTION_N; -+ if (flags & IS_NAND) + erase.start += meminfo.erasesize) { + if (!(flags & OPTION_N)) { + int ret; +@@ -168,15 +205,15 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (errno == EOPNOTSUPP) { + flags |= OPTION_N; + if (flags & IS_NAND) +- bb_simple_error_msg_and_die("bad block check not available"); + bb_error_msg_and_die("bad block check not available"); -+ } else { + } else { +- bb_simple_perror_msg_and_die("MEMGETBADBLOCK error"); + bb_perror_msg_and_die("MEMGETBADBLOCK error"); -+ } -+ } -+ } -+ -+ if (!(flags & OPTION_Q)) + } + } + } + + if (!(flags & OPTION_Q)) +- show_progress(&meminfo, &erase); + show_progress(meminfo.erasesize, erase.start, start, n_erase_bytes); -+ -+ xioctl(fd, MEMERASE, &erase); -+ -+ /* format for JFFS2 ? */ -+ if (!(flags & OPTION_J)) -+ continue; -+ -+ /* write cleanmarker */ -+ if (flags & IS_NAND) { -+ struct mtd_oob_buf oob; -+ -+ oob.ptr = (unsigned char *) &cleanmarker; -+ oob.start = erase.start + clmpos; -+ oob.length = clmlen; -+ xioctl(fd, MEMWRITEOOB, &oob); -+ } else { -+ xlseek(fd, erase.start, SEEK_SET); -+ /* if (lseek(fd, erase.start, SEEK_SET) < 0) { -+ bb_perror_msg("MTD %s failure", "seek"); -+ continue; -+ } */ -+ xwrite(fd, &cleanmarker, sizeof(cleanmarker)); -+ /* if (write(fd, &cleanmarker, sizeof(cleanmarker)) != sizeof(cleanmarker)) { -+ bb_perror_msg("MTD %s failure", "write"); -+ continue; -+ } */ -+ } -+ if (!(flags & OPTION_Q)) -+ printf(" Cleanmarker written at %x.", erase.start); -+ } -+ if (!(flags & OPTION_Q)) { + + xioctl(fd, MEMERASE, &erase); + +@@ -208,11 +245,12 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + printf(" Cleanmarker written at %x.", erase.start); + } + if (!(flags & OPTION_Q)) { +- show_progress(&meminfo, &erase); + show_progress(meminfo.erasesize, erase.start, start, n_erase_bytes); -+ bb_putchar('\n'); -+ } -+ -+ if (ENABLE_FEATURE_CLEAN_UP) -+ close(fd); -+ return EXIT_SUCCESS; + bb_putchar('\n'); + } + + if (ENABLE_FEATURE_CLEAN_UP) + close(fd); + return EXIT_SUCCESS; + -+} -diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c -deleted file mode 100644 -index d95d214d914c..000000000000 ---- a/miscutils/flash_eraseall.c -+++ /dev/null -@@ -1,207 +0,0 @@ --/* vi: set sw=4 ts=4: */ --/* eraseall.c -- erase the whole of a MTD device -- * -- * Ported to busybox from mtd-utils. -- * -- * Copyright (C) 2000 Arcom Control System Ltd -- * -- * Renamed to flash_eraseall.c -- * -- * Licensed under GPLv2 or later, see file LICENSE in this source tree. -- */ -- --//usage:#define flash_eraseall_trivial_usage --//usage: "[-jNq] MTD_DEVICE" --//usage:#define flash_eraseall_full_usage "\n\n" --//usage: "Erase an MTD device\n" --//usage: "\n -j Format the device for jffs2" --//usage: "\n -N Don't skip bad blocks" --//usage: "\n -q Don't display progress messages" -- --#include "libbb.h" --#include --#include -- --#define OPTION_J (1 << 0) --#define OPTION_N (1 << 1) --#define OPTION_Q (1 << 2) --#define IS_NAND (1 << 3) -- --/* mtd/jffs2-user.h used to have this atrocity: --extern int target_endian; -- --#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); }) --#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); }) -- --#define cpu_to_je16(x) ((jint16_t){t16(x)}) --#define cpu_to_je32(x) ((jint32_t){t32(x)}) --#define cpu_to_jemode(x) ((jmode_t){t32(x)}) -- --#define je16_to_cpu(x) (t16((x).v16)) --#define je32_to_cpu(x) (t32((x).v32)) --#define jemode_to_cpu(x) (t32((x).m)) -- --but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) --*/ -- --/* We always use native endianness */ --#undef cpu_to_je16 --#undef cpu_to_je32 --#define cpu_to_je16(v) ((jint16_t){(v)}) --#define cpu_to_je32(v) ((jint32_t){(v)}) -- --static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) --{ -- printf("\rErasing %u Kibyte @ %x - %2u%% complete.", -- (unsigned)meminfo->erasesize / 1024, -- erase->start, -- (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size) -- ); -- fflush_all(); --} -- --int flash_eraseall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; --int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) --{ -- struct jffs2_unknown_node cleanmarker; -- mtd_info_t meminfo; -- int fd, clmpos, clmlen; -- erase_info_t erase; -- struct stat st; -- unsigned int flags; -- char *mtd_name; -- -- opt_complementary = "=1"; -- flags = getopt32(argv, "jNq"); -- -- mtd_name = argv[optind]; -- fd = xopen(mtd_name, O_RDWR); -- fstat(fd, &st); -- if (!S_ISCHR(st.st_mode)) -- bb_error_msg_and_die("%s: not a char device", mtd_name); -- -- xioctl(fd, MEMGETINFO, &meminfo); -- erase.length = meminfo.erasesize; -- if (meminfo.type == MTD_NANDFLASH) -- flags |= IS_NAND; -- -- clmpos = 0; -- clmlen = 8; -- if (flags & OPTION_J) { -- uint32_t *crc32_table; -- -- crc32_table = crc32_filltable(NULL, 0); -- -- cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); -- cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); -- if (!(flags & IS_NAND)) -- cleanmarker.totlen = cpu_to_je32(sizeof(struct jffs2_unknown_node)); -- else { -- struct nand_oobinfo oobinfo; -- -- xioctl(fd, MEMGETOOBSEL, &oobinfo); -- -- /* Check for autoplacement */ -- if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) { -- /* Get the position of the free bytes */ -- clmpos = oobinfo.oobfree[0][0]; -- clmlen = oobinfo.oobfree[0][1]; -- if (clmlen > 8) -- clmlen = 8; -- if (clmlen == 0) -- bb_error_msg_and_die("autoplacement selected and no empty space in oob"); -- } else { -- /* Legacy mode */ -- switch (meminfo.oobsize) { -- case 8: -- clmpos = 6; -- clmlen = 2; -- break; -- case 16: -- clmpos = 8; -- /*clmlen = 8;*/ -- break; -- case 64: -- clmpos = 16; -- /*clmlen = 8;*/ -- break; -- } -- } -- cleanmarker.totlen = cpu_to_je32(8); -- } -- -- cleanmarker.hdr_crc = cpu_to_je32( -- crc32_block_endian0(0, &cleanmarker, sizeof(struct jffs2_unknown_node) - 4, crc32_table) -- ); -- } -- -- /* Don't want to destroy progress indicator by bb_error_msg's */ -- applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); -- -- for (erase.start = 0; erase.start < meminfo.size; -- erase.start += meminfo.erasesize) { -- if (!(flags & OPTION_N)) { -- int ret; -- loff_t offset = erase.start; -- -- ret = ioctl(fd, MEMGETBADBLOCK, &offset); -- if (ret > 0) { -- if (!(flags & OPTION_Q)) -- printf("\nSkipping bad block at 0x%08x\n", erase.start); -- continue; -- } -- if (ret < 0) { -- /* Black block table is not available on certain flash -- * types e.g. NOR -- */ -- if (errno == EOPNOTSUPP) { -- flags |= OPTION_N; -- if (flags & IS_NAND) -- bb_error_msg_and_die("bad block check not available"); -- } else { -- bb_perror_msg_and_die("MEMGETBADBLOCK error"); -- } -- } -- } -- -- if (!(flags & OPTION_Q)) -- show_progress(&meminfo, &erase); -- -- xioctl(fd, MEMERASE, &erase); -- -- /* format for JFFS2 ? */ -- if (!(flags & OPTION_J)) -- continue; -- -- /* write cleanmarker */ -- if (flags & IS_NAND) { -- struct mtd_oob_buf oob; -- -- oob.ptr = (unsigned char *) &cleanmarker; -- oob.start = erase.start + clmpos; -- oob.length = clmlen; -- xioctl(fd, MEMWRITEOOB, &oob); -- } else { -- xlseek(fd, erase.start, SEEK_SET); -- /* if (lseek(fd, erase.start, SEEK_SET) < 0) { -- bb_perror_msg("MTD %s failure", "seek"); -- continue; -- } */ -- xwrite(fd, &cleanmarker, sizeof(cleanmarker)); -- /* if (write(fd, &cleanmarker, sizeof(cleanmarker)) != sizeof(cleanmarker)) { -- bb_perror_msg("MTD %s failure", "write"); -- continue; -- } */ -- } -- if (!(flags & OPTION_Q)) -- printf(" Cleanmarker written at %x.", erase.start); -- } -- if (!(flags & OPTION_Q)) { -- show_progress(&meminfo, &erase); -- bb_putchar('\n'); -- } -- -- if (ENABLE_FEATURE_CLEAN_UP) -- close(fd); -- return EXIT_SUCCESS; --} + } diff --git a/patches/busybox/feature-iorw-command.patch b/patches/busybox/feature-iorw-command.patch index 0818fe813..59f34e3af 100644 --- a/patches/busybox/feature-iorw-command.patch +++ b/patches/busybox/feature-iorw-command.patch @@ -7,54 +7,12 @@ SPDX-License-Identifier: GPL-2.0 Add the iorw command, which allows root to peek/poke arbitrary memory locations. -diff --git a/include/applets.src.h b/include/applets.src.h -index caf3c8259eae..267a8f3032c8 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -170,6 +170,7 @@ IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP)) - IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP)) -+IF_IORW(APPLET(iorw, BB_DIR_USR_SBIN, BB_SUID_DROP)) - #if ENABLE_FEATURE_IP_ADDRESS \ - || ENABLE_FEATURE_IP_ROUTE \ - || ENABLE_FEATURE_IP_LINK \ -diff --git a/miscutils/Config.src b/miscutils/Config.src -index 682173640853..e5bc7013bdf8 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -375,6 +375,13 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA - help - Enables the 'hdparm -d' option to get/set using_dma flag. - -+config IORW -+ bool "iorw" -+ default n -+ help -+ Enables the 'iorw' command, a way to peek/poke arbitrary -+ memory mapped locations. -+ - config MAKEDEVS - bool "makedevs" - default y -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 5d42ede9f252..25382f57efc4 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -24,6 +24,7 @@ lib-$(CONFIG_FLASH_LOCK) += flash_lock_unlock.o - lib-$(CONFIG_FLASH_UNLOCK) += flash_lock_unlock.o - lib-$(CONFIG_IONICE) += ionice.o - lib-$(CONFIG_HDPARM) += hdparm.o -+lib-$(CONFIG_IORW) += iorw.o - lib-$(CONFIG_INOTIFYD) += inotifyd.o - - ifeq ($(CONFIG_FEATURE_LAST_FANCY),y) diff --git a/miscutils/iorw.c b/miscutils/iorw.c new file mode 100644 -index 000000000000..c397159d89c7 +index 0000000..93ff43c --- /dev/null +++ b/miscutils/iorw.c -@@ -0,0 +1,255 @@ +@@ -0,0 +1,265 @@ +/* +* Author: Curt Brune, curt@cumulusnetworks.com +* @@ -76,6 +34,16 @@ index 000000000000..c397159d89c7 +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ ++//config:config IORW ++//config: bool "iorw" ++//config: default n ++//config: help ++//config: Enables the 'iorw' command, a way to peek/poke arbitrary ++//config: memory mapped locations. ++ ++//applet:IF_IORW(APPLET(iorw, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++ ++//kbuild:lib-$(CONFIG_IORW) += iorw.o + +#include "libbb.h" +#include diff --git a/patches/busybox/feature-onie-syseeprom-command.patch b/patches/busybox/feature-onie-syseeprom-command.patch index 88bbcf3ae..d57dfc566 100644 --- a/patches/busybox/feature-onie-syseeprom-command.patch +++ b/patches/busybox/feature-onie-syseeprom-command.patch @@ -78,18 +78,6 @@ index 0000000..5fb4641 +int eeprom_write_byte(struct eeprom *e, __u16 mem_addr, __u8 data); + +#endif -diff --git a/include/applets.src.h b/include/applets.src.h -index b9df5a1..71b8cbd 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -344,6 +344,7 @@ IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) - IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) - IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP)) -+IF_SYS_EEPROM(APPLET_ODDNAME(onie-syseeprom, onie_syseeprom, BB_DIR_USR_BIN, BB_SUID_DROP, onie_syseeprom)) - - #if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \ - && !defined(MAKE_LINKS) && !defined(MAKE_SUID) diff --git a/include/i2c-dev.h b/include/i2c-dev.h new file mode 100644 index 0000000..23f7c2c @@ -802,12 +790,12 @@ index 0000000..ccc0965 + } +} diff --git a/miscutils/Config.src b/miscutils/Config.src -index 4d6425f..cdae45b 100644 +index d10b00b..7f04b9b 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -546,4 +546,108 @@ config WATCHDOG - certain amount of time, the watchdog device assumes the system has - hung, and will cause the hardware to reboot. +@@ -7,4 +7,108 @@ menu "Miscellaneous Utilities" + + INSERT +config SYS_EEPROM + bool "ONIE system EEPROM" @@ -914,17 +902,6 @@ index 4d6425f..cdae45b 100644 +endmenu + endmenu -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 9177818..a78273d 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -51,3 +51,6 @@ lib-$(CONFIG_TTYSIZE) += ttysize.o - lib-$(CONFIG_UBOOT_ENV) += fw_env.o - lib-$(CONFIG_VOLNAME) += volname.o - lib-$(CONFIG_WATCHDOG) += watchdog.o -+lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o diff --git a/miscutils/onie_tlvinfo.c b/miscutils/onie_tlvinfo.c new file mode 100644 index 0000000..26b6ec5 @@ -1687,10 +1664,16 @@ index 0000000..26b6ec5 +} diff --git a/miscutils/sys_eeprom.c b/miscutils/sys_eeprom.c new file mode 100644 -index 0000000..a24d6bb +index 0000000..65ae160 --- /dev/null +++ b/miscutils/sys_eeprom.c -@@ -0,0 +1,188 @@ +@@ -0,0 +1,194 @@ ++//applet:IF_SYS_EEPROM(APPLET_ODDNAME(onie-syseeprom, onie_syseeprom, BB_DIR_USR_BIN, BB_SUID_DROP, onie_syseeprom)) ++ ++//kbuild:lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include @@ -1711,7 +1694,7 @@ index 0000000..a24d6bb +//usage: "\n If no value, TLV is deleted." +//usage: "\n" + -+cmd_usage() ++static void cmd_usage(void) +{ + static const char *usage = + "Display and program the system EEPROM data block.\n" diff --git a/patches/busybox/feature-onie-syseeprom-disk.patch b/patches/busybox/feature-onie-syseeprom-disk.patch index 5134d02c0..6ff5ed08e 100644 --- a/patches/busybox/feature-onie-syseeprom-disk.patch +++ b/patches/busybox/feature-onie-syseeprom-disk.patch @@ -1,10 +1,10 @@ Support "eeprom" on disk for platforms without a real eeprom. diff --git a/miscutils/Config.src b/miscutils/Config.src -index cdae45b750b1..290046a217c2 100644 +index 7f04b9b..f0d2fc6 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -568,6 +568,9 @@ config SYS_EEPROM_DEVICE_I2C +@@ -29,6 +29,9 @@ config SYS_EEPROM_DEVICE_I2C config SYS_EEPROM_DEVICE_MTD bool "MTD" @@ -14,7 +14,7 @@ index cdae45b750b1..290046a217c2 100644 endchoice config SYS_EEPROM_I2C_DEVICE -@@ -624,8 +627,16 @@ config SYS_EEPROM_MTD_DEVICE +@@ -85,8 +88,16 @@ config SYS_EEPROM_MTD_DEVICE help MTD device name of the eeprom. e.g., /dev/mtd-hw-info. @@ -31,7 +31,7 @@ index cdae45b750b1..290046a217c2 100644 range 0 65536 default 0 depends on SYS_EEPROM -@@ -634,7 +645,9 @@ config SYS_EEPROM_OFFSET +@@ -95,7 +106,9 @@ config SYS_EEPROM_OFFSET config SYS_EEPROM_SIZE int "usable eeprom size in byte" @@ -41,7 +41,7 @@ index cdae45b750b1..290046a217c2 100644 default 0 depends on SYS_EEPROM help -@@ -642,6 +655,7 @@ config SYS_EEPROM_SIZE +@@ -103,6 +116,7 @@ config SYS_EEPROM_SIZE config SYS_EEPROM_MAX_SIZE int "total size in byte" @@ -49,21 +49,14 @@ index cdae45b750b1..290046a217c2 100644 range 256 65536 default 2048 depends on SYS_EEPROM -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index a78273de6ca7..8ff4e9853415 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -54,3 +54,4 @@ lib-$(CONFIG_WATCHDOG) += watchdog.o - lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o diff --git a/miscutils/sys_eeprom_disk.c b/miscutils/sys_eeprom_disk.c new file mode 100644 -index 000000000000..440b490b4824 +index 0000000..0035fba --- /dev/null +++ b/miscutils/sys_eeprom_disk.c -@@ -0,0 +1,112 @@ +@@ -0,0 +1,114 @@ ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include "sys_eeprom.h" diff --git a/patches/busybox/feature-onie-syseeprom-sysfs.patch b/patches/busybox/feature-onie-syseeprom-sysfs.patch index 868d90060..2cab06368 100644 --- a/patches/busybox/feature-onie-syseeprom-sysfs.patch +++ b/patches/busybox/feature-onie-syseeprom-sysfs.patch @@ -1,7 +1,7 @@ Support for reading and writing sysfs based eeprom entries diff --git a/include/onie_tlvinfo.h b/include/onie_tlvinfo.h -index b602736287ec..2713b8602443 100644 +index 23ec9c5..baa39ab 100644 --- a/include/onie_tlvinfo.h +++ b/include/onie_tlvinfo.h @@ -143,6 +143,7 @@ static inline const char* tlv_type2name(u_int8_t type) @@ -13,10 +13,10 @@ index b602736287ec..2713b8602443 100644 #define SYS_EEPROM_OFFSET CONFIG_SYS_EEPROM_OFFSET diff --git a/miscutils/Config.src b/miscutils/Config.src -index 290046a217c2..e97b0c3c24d0 100644 +index f0d2fc6..d102de3 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -571,6 +571,9 @@ config SYS_EEPROM_DEVICE_MTD +@@ -32,6 +32,9 @@ config SYS_EEPROM_DEVICE_MTD config SYS_EEPROM_DEVICE_DISK bool "disk (not recommended)" @@ -26,7 +26,7 @@ index 290046a217c2..e97b0c3c24d0 100644 endchoice config SYS_EEPROM_I2C_DEVICE -@@ -634,6 +637,13 @@ config SYS_EEPROM_DISK_DEVICE +@@ -95,6 +98,13 @@ config SYS_EEPROM_DISK_DEVICE help device name of the on-disk "eeprom". e.g., /dev/sda. @@ -40,21 +40,14 @@ index 290046a217c2..e97b0c3c24d0 100644 config SYS_EEPROM_OFFSET int "offset" range 0 0 if SYS_EEPROM_DEVICE_DISK -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 8ff4e9853415..72ddcd1ce9bf 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -55,3 +55,4 @@ lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o -+lib-$(CONFIG_SYS_EEPROM_SYSFS_FILE) += sys_eeprom_sysfs_file.o diff --git a/miscutils/sys_eeprom_sysfs_file.c b/miscutils/sys_eeprom_sysfs_file.c new file mode 100644 -index 000000000000..68f33c9cd51b +index 0000000..9e61d67 --- /dev/null +++ b/miscutils/sys_eeprom_sysfs_file.c -@@ -0,0 +1,85 @@ +@@ -0,0 +1,87 @@ ++//kbuild:lib-$(CONFIG_SYS_EEPROM_SYSFS_FILE) += sys_eeprom_sysfs_file.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include "sys_eeprom.h" diff --git a/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch b/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch index 241a4fb81..885aec265 100644 --- a/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch +++ b/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch @@ -13,10 +13,10 @@ in other machines, so modify it with sizeof(uint32_t) Signed-off-by: Zhao Qiang diff --git a/miscutils/fw_env.c b/miscutils/fw_env.c -index f6f0d2743c36..777c3697e4a5 100644 +index 93ea868..b988c9c 100644 --- a/miscutils/fw_env.c +++ b/miscutils/fw_env.c -@@ -122,7 +122,7 @@ static int get_config (const char *); +@@ -133,7 +133,7 @@ static int get_config (const char *); #endif static inline ulong getenvsize (void) { diff --git a/patches/busybox/series b/patches/busybox/series index 097b3d93f..ea895b328 100644 --- a/patches/busybox/series +++ b/patches/busybox/series @@ -1,9 +1,8 @@ -# This series applies on GIT commit 6bbd082c82c805ed17d4270ed18e41b5545c189b +# This series applies on busybox 1.38.0 (upstream release tarball) gitignore.patch u-boot-env-tools.patch fw_env-modify-crc-size-in-getenvsize.patch feature-iorw-command.patch -dhcp-additional-options.patch feature-flash-erase-command.patch feature-onie-syseeprom-command.patch feature-onie-syseeprom-disk.patch diff --git a/patches/busybox/u-boot-env-tools.patch b/patches/busybox/u-boot-env-tools.patch index 8d35f10ab..c238589f6 100644 --- a/patches/busybox/u-boot-env-tools.patch +++ b/patches/busybox/u-boot-env-tools.patch @@ -4,22 +4,9 @@ Copyright (C) 2013 Curt Brune SPDX-License-Identifier: GPL-2.0 -diff --git a/include/applets.src.h b/include/applets.src.h -index 6e1b02fc399c..caf3c8259eae 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -321,6 +321,8 @@ IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) - IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP)) -+IF_UBOOT_ENV(APPLET(fw_setenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) -+IF_UBOOT_ENV(APPLET(fw_printenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP)) - IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd)) diff --git a/include/fw_env.h b/include/fw_env.h new file mode 100644 -index 000000000000..ffec527b4f2e +index 0000000..ffec527 --- /dev/null +++ b/include/fw_env.h @@ -0,0 +1,52 @@ @@ -75,41 +62,12 @@ index 000000000000..ffec527b4f2e +extern int fw_printenv(int argc, char *argv[]); +extern char *fw_getenv (char *name); +extern int fw_setenv (int argc, char *argv[]); -diff --git a/miscutils/Config.src b/miscutils/Config.src -index 06f1c52ba053..682173640853 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -513,6 +513,13 @@ config TTYSIZE - error, but returns default 80x24. - Usage in shell scripts: width=`ttysize w`. - -+config UBOOT_ENV -+ bool "uboot environment" -+ default n -+ help -+ Enables setting and printing u-boot environment varaibles. -+ The fw_printenv and fw_setenv tools are included. -+ - config VOLNAME - bool "volname" - default y -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 503f549047b6..5d42ede9f252 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -47,5 +47,6 @@ lib-$(CONFIG_STRINGS) += strings.o - lib-$(CONFIG_TIME) += time.o - lib-$(CONFIG_TIMEOUT) += timeout.o - lib-$(CONFIG_TTYSIZE) += ttysize.o -+lib-$(CONFIG_UBOOT_ENV) += fw_env.o - lib-$(CONFIG_VOLNAME) += volname.o - lib-$(CONFIG_WATCHDOG) += watchdog.o diff --git a/miscutils/fw_env.c b/miscutils/fw_env.c new file mode 100644 -index 000000000000..f6f0d2743c36 +index 0000000..93ea868 --- /dev/null +++ b/miscutils/fw_env.c -@@ -0,0 +1,1259 @@ +@@ -0,0 +1,1270 @@ +/* + * u-boot flash environment variable get/set commands + * @@ -137,6 +95,17 @@ index 000000000000..f6f0d2743c36 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ ++//config:config UBOOT_ENV ++//config: bool "uboot environment" ++//config: default n ++//config: help ++//config: Enables setting and printing u-boot environment varaibles. ++//config: The fw_printenv and fw_setenv tools are included. ++ ++//applet:IF_UBOOT_ENV(APPLET(fw_setenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++//applet:IF_UBOOT_ENV(APPLET(fw_printenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++ ++//kbuild:lib-$(CONFIG_UBOOT_ENV) += fw_env.o + +#include "libbb.h" +#include "common_bufsiz.h" diff --git a/rootconf/default/etc/init.d/networking.sh b/rootconf/default/etc/init.d/networking.sh index 7d66cd778..d20dd0f42 100755 --- a/rootconf/default/etc/init.d/networking.sh +++ b/rootconf/default/etc/init.d/networking.sh @@ -54,7 +54,12 @@ config_ethmgmt_dhcp4() udhcp_args="$udhcp_args -t 15 -T 3" fi udhcp_request_opts= - for o in subnet broadcast router domain hostname ntpsrv dns logsrv search ; do + # Request by name for options in busybox's built-in udhcpc table, but use + # the numeric code for logsrv (option 7): busybox trims it from the stock + # table for size, and "-O logsrv" would abort udhcpc with "unknown option" + # -- a numeric "-O 7" is accepted with no table entry. When received it + # surfaces as $opt7, which udhcp4_net aliases back to $logsrv. + for o in subnet broadcast router domain hostname ntpsrv dns 7 search ; do udhcp_request_opts="$udhcp_request_opts -O $o" done diff --git a/rootconf/default/lib/onie/udhcp4_net b/rootconf/default/lib/onie/udhcp4_net index 529b594b7..4dabbe762 100755 --- a/rootconf/default/lib/onie/udhcp4_net +++ b/rootconf/default/lib/onie/udhcp4_net @@ -18,6 +18,21 @@ LOGSRV_CONF="${ONIE_RUN_DIR}/dhcp.logsrv" case $1 in bound|renew) + # busybox trims logsrv (option 7) from udhcpc's built-in table, so a + # received option 7 arrives as $opt7 in raw hex rather than $logsrv as a + # decoded IPv4 address; decode + alias it (no-op on a busybox that still + # knows the name, where $logsrv is already set and $opt7 is absent). + if [ -z "$logsrv" ] && [ -n "$opt7" ] ; then + _h="$opt7" + while [ ${#_h} -ge 8 ] ; do + _a=$((0x${_h%${_h#??}})); _h=${_h#??} + _b=$((0x${_h%${_h#??}})); _h=${_h#??} + _c=$((0x${_h%${_h#??}})); _h=${_h#??} + _d=$((0x${_h%${_h#??}})); _h=${_h#??} + logsrv="$logsrv $_a.$_b.$_c.$_d" + done + logsrv="${logsrv# }" + fi [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" diff --git a/rootconf/default/lib/onie/udhcp4_sd b/rootconf/default/lib/onie/udhcp4_sd index 6d0ed4487..419ecd7d0 100755 --- a/rootconf/default/lib/onie/udhcp4_sd +++ b/rootconf/default/lib/onie/udhcp4_sd @@ -15,10 +15,58 @@ PROG="DHCP" case $1 in bound|renew) - # Print responses usable by onie, prefixed with "onie_disco" - # Translate '=' into '@', e.g. name=val => name@@val - # Separate name@val pairs with '##' - onie_parms=$(printenv | sed -e '/.*=$/d' -e '/^[A-Z_]/d' -e '/^onie.*/d' -e 's/=/@@/' -e 's/$/#/' -e 's/^/onie_disco_/' | tr '\n' '#') + # busybox's udhcpc exports a RECEIVED option as a friendly typed + # "=" env var only if that option is in its built-in table; + # options it doesn't know are exported generically as "opt=" + # -- RAW HEX, untyped. busybox trims rarely-used options from that table + # for size (it dropped vivso/125 after ~1.25 and never carried + # tftpsiaddr/150), so several options ONIE's discovery consumes by name + # arrive as opt in hex. Rather than carry a busybox source patch + # to re-add them (which upstream is unlikely to take back), decode those + # here -- the one place that turns the udhcpc env into onie_disco_* -- + # to the typed value and name ONIE expects: + # 72 -> wwwsrv (WWW_SERVER, IPv4 list) + # 114 -> url (DEFAULT_URL, string) + # 125 -> vivso (VIVSO, binary -- left as hex; import_vivso decodes) + # 150 -> tftpsiaddr (TFTP_SERVER_IP, IPv4) + # Each is a no-op on a busybox that already knows the name (the opt + # var is absent), so this stays correct across busybox versions. + + # hex string -> ASCII, byte-by-byte via octal escapes so a '%' or '\' + # in (e.g.) a percent-encoded URL is never interpreted by printf. + hex2str() { + local h="$1" out= + while [ ${#h} -ge 2 ]; do + local b=${h%${h#??}}; h=${h#??} + out="$out$(printf "\\$(printf '%03o' "0x$b")")" + done + printf '%s' "$out" + } + # hex of one or more 4-byte IPv4 addresses -> "a.b.c.d ..." + hex2ip() { + local h="$1" out= + while [ ${#h} -ge 8 ]; do + local a=$((0x${h%${h#??}})); h=${h#??} + local b=$((0x${h%${h#??}})); h=${h#??} + local c=$((0x${h%${h#??}})); h=${h#??} + local d=$((0x${h%${h#??}})); h=${h#??} + out="$out $a.$b.$c.$d" + done + printf '%s' "${out# }" + } + [ -n "$opt114" ] && export url="$(hex2str "$opt114")" + [ -n "$opt72" ] && export wwwsrv="$(hex2ip "$opt72")" + [ -n "$opt150" ] && export tftpsiaddr="$(hex2ip "$opt150")" + [ -n "$opt125" ] && export vivso="$opt125" + + # Print responses usable by onie, prefixed with "onie_disco". + # Translate '=' into '@', e.g. name=val => name@@val; separate name@val + # pairs with '##'. Drop the raw opt vars (superseded by the + # decoded names above) so they don't also leak through. + onie_parms=$(printenv | sed \ + -e '/^opt[0-9]/d' \ + -e '/.*=$/d' -e '/^[A-Z_]/d' -e '/^onie.*/d' \ + -e 's/=/@@/' -e 's/$/#/' -e 's/^/onie_disco_/' | tr '\n' '#') echo "ONIE_PARMS:$onie_parms" ;; diff --git a/upstream/busybox-1.38.0.tar.bz2.sha1 b/upstream/busybox-1.38.0.tar.bz2.sha1 new file mode 100644 index 000000000..468153941 --- /dev/null +++ b/upstream/busybox-1.38.0.tar.bz2.sha1 @@ -0,0 +1 @@ +6ef8d237a825ed0a61fee4f68d42b19d4d3aca5d busybox-1.38.0.tar.bz2 From 56f02fa3a341f29e98aa0fcb75678ac842adfd44 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:12:00 +0000 Subject: [PATCH 22/23] packages: add libaio 0.3.113 Add a libaio package (Linux asynchronous I/O library) from the canonical upstream release on releases.pagure.org, built via libaio's plain Makefile. Installs libaio.so/.so.1/.so.1.0.2 + libaio.h into the sysroot. Required by lvm2 >= 2.03 (its bcache I/O engine); included inside the LVM2_ENABLE block, ahead of lvm2. Signed-off-by: Brad House --- build-config/Makefile | 2 + build-config/make/libaio.make | 90 +++++++++++++++++++++++++++++ upstream/libaio-0.3.113.tar.gz.sha1 | 1 + 3 files changed, 93 insertions(+) create mode 100644 build-config/make/libaio.make create mode 100644 upstream/libaio-0.3.113.tar.gz.sha1 diff --git a/build-config/Makefile b/build-config/Makefile index a0e076b22..8fd115423 100644 --- a/build-config/Makefile +++ b/build-config/Makefile @@ -398,6 +398,8 @@ ifeq ($(GPT_ENABLE),yes) include make/gptfdisk.make endif ifeq ($(LVM2_ENABLE),yes) + # lvm2 >= 2.03 requires libaio for its bcache I/O engine. + include make/libaio.make include make/lvm2.make endif ifeq ($(PARTED_ENABLE),yes) diff --git a/build-config/make/libaio.make b/build-config/make/libaio.make new file mode 100644 index 000000000..5a9b1cd66 --- /dev/null +++ b/build-config/make/libaio.make @@ -0,0 +1,90 @@ +#------------------------------------------------------------------------------- +# +# SPDX-License-Identifier: GPL-2.0 +# +#------------------------------------------------------------------------------- +# +# This is a makefile fragment that defines the build of libaio +# +# libaio provides the Linux asynchronous I/O interface. It is required +# by lvm2 (>= 2.03, which uses it for its bcache I/O engine). + +LIBAIO_VERSION = 0.3.113 +LIBAIO_TARBALL = libaio-$(LIBAIO_VERSION).tar.gz +LIBAIO_TARBALL_URLS += $(ONIE_MIRROR) https://releases.pagure.org/libaio +LIBAIO_BUILD_DIR = $(USER_BUILDDIR)/libaio +LIBAIO_DIR = $(LIBAIO_BUILD_DIR)/libaio-$(LIBAIO_VERSION) + +LIBAIO_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libaio-$(LIBAIO_VERSION)-download +LIBAIO_SOURCE_STAMP = $(USER_STAMPDIR)/libaio-source +LIBAIO_BUILD_STAMP = $(USER_STAMPDIR)/libaio-build +LIBAIO_INSTALL_STAMP = $(STAMPDIR)/libaio-install +LIBAIO_STAMP = $(LIBAIO_SOURCE_STAMP) \ + $(LIBAIO_BUILD_STAMP) \ + $(LIBAIO_INSTALL_STAMP) + +PHONY += libaio libaio-download libaio-source \ + libaio-build libaio-install libaio-clean libaio-download-clean + +# libaio builds via a plain Makefile (no ./configure); soname is +# libaio.so.1, real lib libaio.so.1.$(minor).$(micro) = libaio.so.1.0.2. +LIBAIO_LIBS = libaio.so libaio.so.1 libaio.so.1.0.2 + +libaio: $(LIBAIO_STAMP) + +DOWNLOAD += $(LIBAIO_DOWNLOAD_STAMP) +libaio-download: $(LIBAIO_DOWNLOAD_STAMP) +$(LIBAIO_DOWNLOAD_STAMP): $(PROJECT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Getting upstream libaio ====" + $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ + $(LIBAIO_TARBALL) $(LIBAIO_TARBALL_URLS) + $(Q) touch $@ + +SOURCE += $(LIBAIO_SOURCE_STAMP) +libaio-source: $(LIBAIO_SOURCE_STAMP) +$(LIBAIO_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBAIO_DOWNLOAD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Extracting upstream libaio ====" + $(Q) $(SCRIPTDIR)/extract-package $(LIBAIO_BUILD_DIR) $(DOWNLOADDIR)/$(LIBAIO_TARBALL) + $(Q) touch $@ + +ifndef MAKE_CLEAN +LIBAIO_NEW_FILES = $(shell test -d $(LIBAIO_DIR) && test -f $(LIBAIO_BUILD_STAMP) && \ + find -L $(LIBAIO_DIR) -newer $(LIBAIO_BUILD_STAMP) -type f -print -quit) +endif + +libaio-build: $(LIBAIO_BUILD_STAMP) +$(LIBAIO_BUILD_STAMP): $(LIBAIO_SOURCE_STAMP) $(LIBAIO_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building libaio-$(LIBAIO_VERSION) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBAIO_DIR) \ + CC=$(CROSSPREFIX)gcc prefix=/usr + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBAIO_DIR) \ + CC=$(CROSSPREFIX)gcc prefix=/usr DESTDIR=$(DEV_SYSROOT) install + $(Q) touch $@ + +libaio-install: $(LIBAIO_INSTALL_STAMP) +$(LIBAIO_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBAIO_BUILD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Installing libaio in $(SYSROOTDIR) ====" + $(Q) for file in $(LIBAIO_LIBS) ; do \ + cp -a $(DEV_SYSROOT)/usr/lib/$$file $(SYSROOTDIR)/usr/lib/ ; \ + done + $(Q) touch $@ + +USER_CLEAN += libaio-clean +libaio-clean: + $(Q) rm -rf $(LIBAIO_BUILD_DIR) + $(Q) rm -f $(LIBAIO_STAMP) + $(Q) echo "=== Finished making $@ for $(PLATFORM)" + +DOWNLOAD_CLEAN += libaio-download-clean +libaio-download-clean: + $(Q) rm -f $(LIBAIO_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBAIO_TARBALL) + +#------------------------------------------------------------------------------- +# +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/upstream/libaio-0.3.113.tar.gz.sha1 b/upstream/libaio-0.3.113.tar.gz.sha1 new file mode 100644 index 000000000..8d3ded1b5 --- /dev/null +++ b/upstream/libaio-0.3.113.tar.gz.sha1 @@ -0,0 +1 @@ +86727941e0d3084ce264b8a6878961812bc212b8 libaio-0.3.113.tar.gz From 5be3c43fbbb6af1bb499a250d9493e667a4f4ef5 Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 3 Jun 2026 12:15:24 +0000 Subject: [PATCH 23/23] packages: bump lvm2 to 2.03.41 lvm2 2.02.105 -> 2.03.41 (latest), sourced from sourceware (LVM2..tgz). Drop --with-clvmd (the clvmd cluster stack was removed in 2.03) and disable optional deps absent from the sysroot; depend on the libaio package (2.03's bcache I/O engine requires it). Drop sbin/lvmchange (blocklisted in 2.03) and the obsolete add-sysmacros.h patch. Signed-off-by: Brad House --- build-config/make/lvm2.make | 20 +++++++++++-------- .../0001-add-sysmacros.h-to-filter-sysfs.c | 10 ---------- patches/lvm2/series | 9 ++++++++- upstream/LVM2.2.03.41.tgz.sha1 | 1 + 4 files changed, 21 insertions(+), 19 deletions(-) delete mode 100644 patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c create mode 100644 upstream/LVM2.2.03.41.tgz.sha1 diff --git a/build-config/make/lvm2.make b/build-config/make/lvm2.make index 468f6675f..ee3617fbe 100644 --- a/build-config/make/lvm2.make +++ b/build-config/make/lvm2.make @@ -11,11 +11,11 @@ # This is a makefile fragment that defines the build of lvm2 # -LVM2_VERSION ?= 2_02_105 -LVM2_TARBALL = lvm2-$(LVM2_VERSION).tar.xz -LVM2_TARBALL_URLS += $(ONIE_MIRROR) https://git.fedorahosted.org/cgit/lvm2.git/snapshot/ +LVM2_VERSION ?= 2.03.41 +LVM2_TARBALL = LVM2.$(LVM2_VERSION).tgz +LVM2_TARBALL_URLS += $(ONIE_MIRROR) https://sourceware.org/ftp/lvm2 LVM2_BUILD_DIR = $(USER_BUILDDIR)/lvm2 -LVM2_DIR = $(LVM2_BUILD_DIR)/lvm2-$(LVM2_VERSION) +LVM2_DIR = $(LVM2_BUILD_DIR)/LVM2.$(LVM2_VERSION) LVM2_SRCPATCHDIR = $(PATCHDIR)/lvm2 LVM2_DOWNLOAD_STAMP = $(DOWNLOADDIR)/lvm2-$(LVM2_VERSION)-download @@ -45,7 +45,6 @@ LVM2_PROGS = \ sbin/lvcreate \ sbin/lvdisplay \ sbin/lvextend \ - sbin/lvmchange \ sbin/lvmdiskscan \ sbin/lvmsadc \ sbin/lvmsar \ @@ -122,7 +121,7 @@ LVM2_CONFIGURE_OVERRIDES = \ lvm2-configure: $(LVM2_CONFIGURE_STAMP) -$(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP)\ +$(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP) $(LIBAIO_BUILD_STAMP)\ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure lvm2-$(LVM2_VERSION) ====" @@ -131,9 +130,14 @@ $(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP)\ $(LVM2_DIR)/configure \ --prefix=/usr \ --host=$(TARGET) \ - --with-clvmd=none \ --disable-nls \ --disable-selinux \ + --disable-readline \ + --disable-systemd-journal \ + --without-systemd \ + --without-udev \ + --disable-use-lvmlockd \ + --disable-use-lvmpolld \ CC=$(CROSSPREFIX)gcc \ CFLAGS="$(ONIE_CFLAGS)" \ LDFLAGS="$(ONIE_LDFLAGS)" @@ -150,7 +154,7 @@ $(LVM2_BUILD_STAMP): $(LVM2_CONFIGURE_STAMP) $(UTILLINUX_BUILD_STAMP) $(Q) touch $@ lvm2-install: $(LVM2_INSTALL_STAMP) -$(LVM2_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LVM2_BUILD_STAMP) $(UTILLINUX_INSTALL_STAMP) +$(LVM2_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LVM2_BUILD_STAMP) $(UTILLINUX_INSTALL_STAMP) $(LIBAIO_INSTALL_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Installing lvm2 programs in $(SYSROOTDIR) ====" $(Q) for file in $(LVM2_PROGS) ; do \ diff --git a/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c b/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c deleted file mode 100644 index fd8a2f349..000000000 --- a/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c +++ /dev/null @@ -1,10 +0,0 @@ ---- a/lib/filters/filter-sysfs.c 2021-08-13 14:07:25.761101198 +0000 -+++ b/lib/filters/filter-sysfs.c 2021-08-13 03:57:01.817585951 +0000 -@@ -18,6 +18,7 @@ - #ifdef __linux__ - - #include -+#include - - static int _locate_sysfs_blocks(const char *sysfs_dir, char *path, size_t len, - unsigned *sysfs_depth) diff --git a/patches/lvm2/series b/patches/lvm2/series index c54dcfe69..dc5acad82 100644 --- a/patches/lvm2/series +++ b/patches/lvm2/series @@ -1 +1,8 @@ -0001-add-sysmacros.h-to-filter-sysfs.c \ No newline at end of file +# This series applies on lvm2 release LVM2.2.03.41 +# +# No patches required. +# +# The former 0001-add-sysmacros.h-to-filter-sysfs.c patch (which added +# for the major()/minor() macros to satisfy newer glibc) +# is now upstream as of the 2.03 series and no longer applies, so it has +# been dropped. diff --git a/upstream/LVM2.2.03.41.tgz.sha1 b/upstream/LVM2.2.03.41.tgz.sha1 new file mode 100644 index 000000000..82aa8ab91 --- /dev/null +++ b/upstream/LVM2.2.03.41.tgz.sha1 @@ -0,0 +1 @@ +8a16e5e133da63f1aae3d6416aee568bc203df0f LVM2.2.03.41.tgz