Files
buildroot/package/coreutils/coreutils.mk
T
Bernd Kuhls 7085d1c48b package/coreutils: bump version to 9.8
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>
2025-11-08 17:00:49 +01:00

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))