@@ -2583,6 +2583,9 @@ F: support/misc/toolchainfile.cmake.in
N: Sam Voss <sam.voss@gmail.com>
F: package/ripgrep/
+N: Sebastian Weyer <sebastian.weyer@smile.fr>
+F: package/uutils-coreutils
+
N: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
F: package/mmc-utils/
F: package/python-flask-jsonrpc/
@@ -2725,6 +2725,7 @@ menu "System tools"
source "package/tpm2-totp/Config.in"
source "package/unscd/Config.in"
source "package/util-linux/Config.in"
+ source "package/uutils-coreutils/Config.in"
source "package/watchdog/Config.in"
source "package/watchdogd/Config.in"
source "package/xdg-dbus-proxy/Config.in"
@@ -68,6 +68,7 @@ BUSYBOX_DEPENDENCIES = \
$(if $(BR2_PACKAGE_UNZIP),unzip) \
$(if $(BR2_PACKAGE_USBUTILS),usbutils) \
$(if $(BR2_PACKAGE_UTIL_LINUX),util-linux) \
+ $(if $(BR2_PACKAGE_UUTILS_COREUTILS),uutils-coreutils) \
$(if $(BR2_PACKAGE_VIM),vim) \
$(if $(BR2_PACKAGE_WATCHDOG),watchdog) \
$(if $(BR2_PACKAGE_WGET),wget) \
@@ -3,6 +3,7 @@ config BR2_PACKAGE_COREUTILS
depends on BR2_USE_WCHAR
depends on BR2_USE_MMU # fork()
depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+ depends on !BR2_PACKAGE_UUTILS_COREUTILS
help
All of the basic file/text/shell utilities. These are the
core utilities which are expected to exist on every system.
new file mode 100644
@@ -0,0 +1,30 @@
+From ed387083221501aaf5d8752aab83669174e0bb43 Mon Sep 17 00:00:00 2001
+From: Sebastian Weyer <sebastian.weyer@smile.fr>
+Date: Thu, 16 Mar 2023 15:57:13 +0100
+Subject: [PATCH] GNUMakefile: remove dependency on build during install
+
+When building using buildroot, we only call install after having built
+already, therefore we don't want to have to rebuild.
+
+Upstream status: not applicable; Buildroot specific
+Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
+---
+ GNUmakefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/GNUmakefile b/GNUmakefile
+index b242bc8ce..faecf420b 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -334,7 +334,7 @@ clean:
+ distclean: clean
+ $(CARGO) clean $(CARGOFLAGS) && $(CARGO) update $(CARGOFLAGS)
+
+-install: build
++install:
+ mkdir -p $(INSTALLDIR_BIN)
+ ifeq (${MULTICALL}, y)
+ $(INSTALL) $(BUILDDIR)/coreutils $(INSTALLDIR_BIN)/$(PROG_PREFIX)coreutils
+--
+2.25.1
+
new file mode 100644
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_UUTILS_COREUTILS
+ bool "uutils-coreutils"
+ depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_HOST_RUSTC
+ depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+ help
+ uutils is an attempt at writing universal (as in
+ cross-platform) CLI utilities in Rust. While all programs have
+ been implemented, some options might be missing or different
+ behavior might be experienced.
+
+ https://github.com/uutils/coreutils
new file mode 100644
@@ -0,0 +1,3 @@
+# Locally generated
+sha256 5bc773bcbc66851aa17979df44224c66c0b5323044c3c9cefb925b44ee9cd81b uutils-coreutils-0.0.17.tar.gz
+sha256 a836eb3360d0e80f6a1620495543ad2a4e20e4cf72af89ff528fccf9e63be81e LICENSE
new file mode 100644
@@ -0,0 +1,35 @@
+################################################################################
+#
+# uutils-coreutils
+#
+################################################################################
+
+UUTILS_COREUTILS_VERSION = 0.0.17
+UUTILS_COREUTILS_SITE = $(call github,uutils,coreutils,$(UUTILS_COREUTILS_VERSION))
+UUTILS_COREUTILS_LICENSE = MIT
+UUTILS_COREUTILS_LICENSE_FILES = LICENSE
+
+ifneq ($(BR2_ENABLE_DEBUG),y)
+UUTILS_COREUTILS_PROFILE = release
+else
+UUTILS_COREUTILS_PROFILE = debug
+endif
+
+UUTILS_COREUTILS_MAKE_OPTS = \
+ PROFILE=$(UUTILS_COREUTILS_PROFILE) \
+ MULTICALL=y
+
+UUTILS_COREUTILS_CARGO_BUILD_OPTS = --features unix
+
+#We are using the project's Makefile to install the application
+#If we were to use the cargo infrastructure, we can only copy the multicall
+#binary into the target folder. The call to the target's Makefile will do that
+#and also automatically create the required symlinks
+define UUTILS_COREUTILS_INSTALL_TARGET_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) \
+ $(UUTILS_COREUTILS_MAKE_OPTS) -C $(@D) \
+ BUILDDIR=$(@D)/target/$(RUSTC_TARGET_NAME)/$(UUTILS_COREUTILS_PROFILE) \
+ PREFIX=$(TARGET_DIR) install
+endef
+
+$(eval $(cargo-package))