[PATCH v2 6/7] coreutils: Import from packages feed
Brian Norris
computersforpeace at gmail.com
Fri Jan 6 23:49:44 PST 2023
I need to express a per-target dependency on the 'base64' utility, and
that's seemingly impossible to do for busybox. Pull in coreutils to make
that easier.
Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
* New in v2
(no changes since v1)
package/utils/coreutils/Makefile | 153 ++++++++++++++++++
.../patches/001-no_docs_man_tests.patch | 93 +++++++++++
2 files changed, 246 insertions(+)
create mode 100644 package/utils/coreutils/Makefile
create mode 100644 package/utils/coreutils/patches/001-no_docs_man_tests.patch
diff --git a/package/utils/coreutils/Makefile b/package/utils/coreutils/Makefile
new file mode 100644
index 000000000000..d1af3ce962f1
--- /dev/null
+++ b/package/utils/coreutils/Makefile
@@ -0,0 +1,153 @@
+#
+# Copyright (C) 2008-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=coreutils
+PKG_VERSION:=9.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@GNU/coreutils
+PKG_HASH:=61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423
+
+PKG_MAINTAINER:=Jo-Philipp Wich <jo at mein.io>
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:gnu:coreutils
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+COREUTILS_APPLETS := \
+ base32 base64 basename basenc b2sum cat chcon chgrp chmod chown chroot \
+ cksum comm cp csplit cut date dd df dir dircolors dirname du echo env \
+ expand expr factor false fmt fold groups head hostid id install join \
+ kill link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl \
+ nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx pwd \
+ readlink realpath rm rmdir runcon seq sha1sum sha224sum sha256sum \
+ sha384sum sha512sum shred shuf sleep sort split stat stdbuf stty sum \
+ sync tac tail tee test timeout touch tr true truncate tsort tty uname \
+ unexpand uniq unlink uptime users vdir wc who whoami yes
+
+DIR_BIN := \
+ base64 cat chgrp chmod chown cp date dd df echo false kill link ln ls \
+ mkdir mknod mktemp mv nice printenv pwd rm rmdir sleep stat stty sync \
+ touch true uname
+
+DIR_USR_BIN := \
+ basename chcon cksum comm cut dirname du env expand expr factor fold \
+ groups head hostid id install logname md5sum mkfifo nl nohup nproc od \
+ paste printf readlink realpath runcon seq sha1sum sha256sum sha512sum \
+ shred shuf sort split sum tac tail tee test timeout tr truncate tty \
+ unexpand uniq unlink uptime users wc who whoami yes
+
+DIR_USR_SBIN := \
+ chroot
+
+# BusyBox does not provide these yet
+DIR_OTHERS := \
+ base32 b2sum basenc csplit dir dircolors fmt join numfmt pathchk pinky \
+ pr ptx sha224sum sha384sum stdbuf tsort vdir
+
+$(eval $(foreach a,$(DIR_BIN),ALTS_$(a):=300:/bin/$(a):/usr/libexec/$(a)-coreutils$(newline)))
+$(eval $(foreach a,$(DIR_USR_BIN),ALTS_$(a):=300:/usr/bin/$(a):/usr/libexec/$(a)-coreutils$(newline)))
+$(eval $(foreach a,$(DIR_USR_SBIN),ALTS_$(a):=300:/usr/sbin/$(a):/usr/libexec/$(a)-coreutils$(newline)))
+
+DEPENDS_sort = +libpthread
+DEPENDS_timeout = +librt
+DEPENDS_expr = +libgmp
+DEPENDS_factor = +libgmp
+DEPENDS_cp = +libacl
+DEPENDS_dir = +libacl +libcap
+DEPENDS_install = +libacl
+DEPENDS_ls = +libacl +libcap
+DEPENDS_mv = +libacl
+DEPENDS_vdir = +libacl +libcap
+
+FILES_stdbuf := usr/lib/coreutils/libstdbuf.so
+
+define Package/coreutils/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=The GNU core utilities
+ URL:=http://www.gnu.org/software/coreutils/
+endef
+
+define Package/coreutils
+ $(call Package/coreutils/Default)
+ TITLE:=The GNU core utilities
+ MENU:=1
+endef
+
+define Package/coreutils/description
+ Full versions of standard GNU utilities. If an equivalent Busybox applet is
+ available, you should consider compiling that instead as Busybox applets are
+ usually smaller, at the expense of reduced functionality.
+endef
+
+define GenPlugin
+ define Package/$(1)
+ $(call Package/coreutils/Default)
+ DEPENDS:=coreutils $(DEPENDS_$(2))
+ TITLE:=Utility $(2) from the GNU core utilities
+ ALTERNATIVES:=$(ALTS_$(2))
+ endef
+
+ define Package/$(1)/description
+ Full version of standard GNU $(2) utility.
+ endef
+endef
+
+$(foreach a,$(COREUTILS_APPLETS),$(eval $(call GenPlugin,coreutils-$(a),$(a))))
+
+CONFIGURE_VARS += \
+ gl_cv_func_mbrtowc_incomplete_state=yes \
+ gl_cv_func_mbrtowc_retval=yes \
+ gl_cv_func_wcrtomb_retval=yes \
+ ac_cv_header_selinux_context_h=no \
+ ac_cv_header_selinux_flash_h=no \
+ ac_cv_header_selinux_selinux_h=no \
+ ac_cv_search_setfilecon=no
+
+CONFIGURE_ARGS += \
+ --disable-xattr \
+ --enable-install-program=su \
+ --enable-threads=posix \
+ --enable-acl \
+ --disable-assert \
+ --disable-rpath \
+ --disable-libsmack \
+ --enable-libcap \
+ --without-linux-crypto \
+ --without-openssl \
+ --$(if $(CONFIG_USE_MUSL),with,without)-included-regex \
+ --without-selinux \
+ --with-gmp
+
+define Package/coreutils/install
+ true
+endef
+
+define BuildPlugin
+ define Package/$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/$(if $(ALTS_$(2)),libexec,bin)
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $$(1)/usr/$(if $(ALTS_$(2)),libexec/$(2)-coreutils,bin/$(2))
+ $(foreach f,$(FILES_$(2)),
+ $(INSTALL_DIR) $$(1)/$(dir $(f))
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/$(f) $$(1)/$(f)
+ )
+ endef
+
+ $$(eval $$(call BuildPackage,$(1)))
+endef
+
+$(eval $(call BuildPackage,coreutils))
+
+$(foreach a,$(COREUTILS_APPLETS),$(eval $(call BuildPlugin,coreutils-$(a),$(a))))
diff --git a/package/utils/coreutils/patches/001-no_docs_man_tests.patch b/package/utils/coreutils/patches/001-no_docs_man_tests.patch
new file mode 100644
index 000000000000..e4feaf5cd9a4
--- /dev/null
+++ b/package/utils/coreutils/patches/001-no_docs_man_tests.patch
@@ -0,0 +1,93 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -17,7 +17,7 @@
+
+ ALL_RECURSIVE_TARGETS =
+
+-SUBDIRS = po . gnulib-tests
++SUBDIRS = po
+
+ EXTRA_DIST = \
+ .mailmap \
+@@ -210,6 +210,3 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib
+
+ include $(top_srcdir)/lib/local.mk
+ include $(top_srcdir)/src/local.mk
+-include $(top_srcdir)/doc/local.mk
+-include $(top_srcdir)/man/local.mk
+-include $(top_srcdir)/tests/local.mk
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -4115,11 +4115,7 @@ RECURSIVE_TARGETS = all-recursive check-
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+-am__can_run_installinfo = \
+- case $$AM_UPDATE_INFO_DIR in \
+- n|no|NO) false;; \
+- *) (install-info --version) >/dev/null 2>&1;; \
+- esac
++am__can_run_installinfo = false
+ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+ am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+@@ -4369,10 +4365,10 @@ am__DIST_COMMON = $(doc_coreutils_TEXINF
+ $(top_srcdir)/build-aux/missing \
+ $(top_srcdir)/build-aux/test-driver \
+ $(top_srcdir)/build-aux/texinfo.tex \
+- $(top_srcdir)/build-aux/ylwrap $(top_srcdir)/doc/local.mk \
+- $(top_srcdir)/lib/alloca.c $(top_srcdir)/lib/config.hin \
+- $(top_srcdir)/lib/local.mk $(top_srcdir)/man/local.mk \
+- $(top_srcdir)/src/local.mk $(top_srcdir)/src/single-binary.mk \
++ $(top_srcdir)/build-aux/ylwrap \
++ $(top_srcdir)/lib/alloca.c \
++ $(top_srcdir)/lib/local.mk \
++ $(top_srcdir)/src/local.mk \
+ $(top_srcdir)/tests/local.mk ABOUT-NLS AUTHORS COPYING \
+ ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \
+ build-aux/config.guess build-aux/config.rpath \
+@@ -4479,7 +4475,7 @@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
+ ERRNO_H = @ERRNO_H@
+ ETAGS = @ETAGS@
+ EXEEXT = @EXEEXT@
+-EXTRA_MANS = @EXTRA_MANS@
++EXTRA_MANS =
+ FLOAT_H = @FLOAT_H@
+ FNMATCH_H = @FNMATCH_H@
+ GETADDRINFO_LIB = @GETADDRINFO_LIB@
+@@ -6057,7 +6053,7 @@ libexecdir = @libexecdir@
+ lispdir = @lispdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+-man1_MANS = @man1_MANS@
++man1_MANS =
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
+@@ -6080,7 +6076,7 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ ALL_RECURSIVE_TARGETS = distcheck-hook check-root
+-SUBDIRS = po . gnulib-tests
++SUBDIRS = po
+
+ #if GNU_MAKE
+ # [nicer features that work only with GNU Make]
+@@ -8272,7 +8268,7 @@ all: $(BUILT_SOURCES)
+ .SUFFIXES: .1 .c .dvi .log .o .obj .pl .pl$(EXEEXT) .ps .sh .sh$(EXEEXT) .trs .x .xpl .xpl$(EXEEXT) .y
+ am--refresh: Makefile
+ @:
+-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/lib/local.mk $(srcdir)/lib/gnulib.mk $(top_srcdir)/src/local.mk $(srcdir)/src/cu-progs.mk $(top_srcdir)/src/single-binary.mk $(top_srcdir)/doc/local.mk $(top_srcdir)/man/local.mk $(top_srcdir)/tests/local.mk $(am__configure_deps)
++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/lib/local.mk $(srcdir)/lib/gnulib.mk $(top_srcdir)/src/local.mk $(srcdir)/src/cu-progs.mk $(top_srcdir)/src/single-binary.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+@@ -8294,7 +8290,7 @@ Makefile: $(srcdir)/Makefile.in $(top_bu
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ esac;
+-$(top_srcdir)/lib/local.mk $(srcdir)/lib/gnulib.mk $(top_srcdir)/src/local.mk $(srcdir)/src/cu-progs.mk $(top_srcdir)/src/single-binary.mk $(top_srcdir)/doc/local.mk $(top_srcdir)/man/local.mk $(top_srcdir)/tests/local.mk $(am__empty):
++$(top_srcdir)/lib/local.mk $(srcdir)/lib/gnulib.mk $(top_srcdir)/src/local.mk $(srcdir)/src/cu-progs.mk $(top_srcdir)/src/single-binary.mk $(am__empty):
+
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
--
2.39.0
More information about the openwrt-devel
mailing list