7085d1c48b
Release notes: https://lists.gnu.org/archive/html/coreutils-announce/2025-01/msg00000.html https://lists.gnu.org/archive/html/coreutils-announce/2025-04/msg00000.html https://lists.gnu.org/archive/html/coreutils-announce/2025-09/msg00000.html Removed patch which is included in this release. Added tarball hashes provided by upstream. With the bump to 9.8, the build will fail on systems that are not Y2038, such as some uClibc configurations. In order to preserve the previous behavior, pass --disable-year2038. See the gnulib documentation for details [1]. Contrary to what the option name might suggest, it doesn't really disable Y2038 support, but only the check that the system is Y2038 compliant. So even with --disable-year2038, if the system is Y2038 compliant (uses a 64-bit arch, uses the musl C library, or uses the glibc C library with BR2_TIME_BITS_64=y), tar will be Y2038 compliant. [1] https://www.gnu.org/software/gnulib/manual/html_node/Avoiding-the-year-2038-problem.html Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Signed-off-by: Julien Olivain <ju.o@free.fr>
164 lines
4.9 KiB
Makefile
164 lines
4.9 KiB
Makefile
################################################################################
|
|
#
|
|
# coreutils
|
|
#
|
|
################################################################################
|
|
|
|
COREUTILS_VERSION = 9.8
|
|
COREUTILS_SITE = $(BR2_GNU_MIRROR)/coreutils
|
|
COREUTILS_SOURCE = coreutils-$(COREUTILS_VERSION).tar.xz
|
|
COREUTILS_LICENSE = GPL-3.0+
|
|
COREUTILS_LICENSE_FILES = COPYING
|
|
COREUTILS_CPE_ID_VENDOR = gnu
|
|
|
|
# --disable-year2038: tells the configure script to not abort if the
|
|
# system is not Y2038 compliant. util-linux-libs will support year2038
|
|
# if the system is compliant even with this option passed
|
|
COREUTILS_CONF_OPTS = --disable-rpath \
|
|
--disable-year2038 \
|
|
$(if $(BR2_TOOLCHAIN_USES_MUSL),--with-included-regex)
|
|
|
|
ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
|
|
COREUTILS_CONF_OPTS += --disable-single-binary
|
|
else
|
|
COREUTILS_CONF_OPTS += --enable-single-binary=symlinks
|
|
endif
|
|
|
|
COREUTILS_CONF_ENV = ac_cv_c_restrict=no \
|
|
ac_cv_func_chown_works=yes \
|
|
ac_cv_func_fstatat=yes \
|
|
ac_cv_func_getdelim=yes \
|
|
ac_cv_func_getgroups=yes \
|
|
ac_cv_func_getgroups_works=yes \
|
|
ac_cv_func_getloadavg=no \
|
|
ac_cv_func_strnlen_working=yes \
|
|
ac_cv_have_decl_strerror_r=yes \
|
|
ac_cv_have_decl_strnlen=yes \
|
|
ac_cv_lib_getloadavg_getloadavg=no \
|
|
ac_cv_lib_util_getloadavg=no \
|
|
ac_fsusage_space=yes \
|
|
ac_use_included_regex=no \
|
|
am_cv_func_working_getline=yes \
|
|
fu_cv_sys_stat_statfs2_bsize=yes \
|
|
gl_cv_func_getcwd_null=yes \
|
|
gl_cv_func_getcwd_path_max=yes \
|
|
gl_cv_func_link_follows_symlink=no \
|
|
gl_cv_func_lstat_dereferences_slashed_symlink=yes \
|
|
gl_cv_func_re_compile_pattern_working=yes \
|
|
gl_cv_func_svid_putenv=yes \
|
|
gl_cv_func_working_mkstemp=yes \
|
|
gl_cv_func_working_utimes=yes \
|
|
gl_cv_macro_MB_CUR_MAX_good=yes \
|
|
gl_cv_have_proc_uptime=yes \
|
|
utils_cv_localtime_cache=no \
|
|
PERL=missing \
|
|
MAKEINFO=true \
|
|
INSTALL_PROGRAM=$(INSTALL)
|
|
|
|
COREUTILS_BIN_PROGS = base64 cat chgrp chmod chown cp date dd df dir echo false \
|
|
kill link ln ls mkdir mknod mktemp mv nice printenv pwd rm rmdir \
|
|
vdir sleep stty sync touch true uname join
|
|
|
|
ifeq ($(BR2_PACKAGE_ACL),y)
|
|
COREUTILS_DEPENDENCIES += acl
|
|
else
|
|
COREUTILS_CONF_OPTS += --disable-acl
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ATTR),y)
|
|
COREUTILS_DEPENDENCIES += attr
|
|
else
|
|
COREUTILS_CONF_OPTS += --disable-xattr
|
|
endif
|
|
|
|
COREUTILS_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES)
|
|
|
|
# It otherwise fails to link properly, not mandatory though
|
|
ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y)
|
|
COREUTILS_CONF_OPTS += --with-libintl-prefix=$(STAGING_DIR)/usr
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCAP),y)
|
|
COREUTILS_DEPENDENCIES += libcap
|
|
else
|
|
COREUTILS_CONF_OPTS += --disable-libcap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
|
|
COREUTILS_DEPENDENCIES += libselinux
|
|
COREUTILS_CONF_OPTS += --with-selinux
|
|
else
|
|
COREUTILS_CONF_OPTS += --without-selinux
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
|
COREUTILS_CONF_OPTS += --with-openssl=yes
|
|
COREUTILS_DEPENDENCIES += openssl
|
|
endif
|
|
|
|
ifeq ($(BR2_ROOTFS_MERGED_USR),)
|
|
# We want to move a few binaries from /usr/bin to /bin. In the case of
|
|
# coreutils being built as multi-call binary, we do so by re-creating
|
|
# the corresponding symlinks. If coreutils is built with individual
|
|
# binaries, we actually move the binaries.
|
|
ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
|
|
define COREUTILS_FIX_BIN_LOCATION
|
|
$(foreach f,$(COREUTILS_BIN_PROGS), \
|
|
mv $(TARGET_DIR)/usr/bin/$(f) $(TARGET_DIR)/bin
|
|
)
|
|
endef
|
|
else
|
|
define COREUTILS_FIX_BIN_LOCATION
|
|
# some things go in /bin rather than /usr/bin
|
|
$(foreach f,$(COREUTILS_BIN_PROGS), \
|
|
rm -f $(TARGET_DIR)/usr/bin/$(f) && \
|
|
ln -sf ../usr/bin/coreutils $(TARGET_DIR)/bin/$(f)
|
|
)
|
|
endef
|
|
endif
|
|
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_FIX_BIN_LOCATION
|
|
endif
|
|
|
|
ifeq ($(BR2_STATIC_LIBS),y)
|
|
COREUTILS_CONF_OPTS += --enable-no-install-program=stdbuf
|
|
endif
|
|
|
|
# link for archaic shells
|
|
define COREUTILS_CREATE_TEST_SYMLINK
|
|
ln -fs test $(TARGET_DIR)/usr/bin/[
|
|
endef
|
|
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_CREATE_TEST_SYMLINK
|
|
|
|
ifeq ($(BR2_ROOTFS_MERGED_BIN),)
|
|
# gnu thinks chroot is in bin, debian thinks it's in sbin
|
|
ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
|
|
define COREUTILS_FIX_CHROOT_LOCATION
|
|
mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin
|
|
endef
|
|
else
|
|
define COREUTILS_FIX_CHROOT_LOCATION
|
|
rm -f $(TARGET_DIR)/usr/bin/chroot
|
|
ln -sf ../bin/coreutils $(TARGET_DIR)/usr/sbin/chroot
|
|
endef
|
|
endif
|
|
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_FIX_CHROOT_LOCATION
|
|
endif
|
|
|
|
# Explicitly install ln and realpath, which we *are* insterested in.
|
|
# A lot of other programs still get installed, however, but disabling
|
|
# them does not gain much at build time, and is a loooong list that is
|
|
# difficult to maintain... Just avoid overwriting fakedate when creating
|
|
# a reproducible build
|
|
HOST_COREUTILS_CONF_OPTS = \
|
|
--disable-acl \
|
|
--disable-libcap \
|
|
--disable-rpath \
|
|
--disable-single-binary \
|
|
--disable-xattr \
|
|
--without-gmp \
|
|
--enable-install-program=ln,realpath \
|
|
--enable-no-install-program=date
|
|
|
|
$(eval $(autotools-package))
|
|
$(eval $(host-autotools-package))
|