Files
termux-packages/packages/coreutils/build.sh
termux-pacman-bot 9ad01ebe83 fix(main/coreutils): fix undefined behavior in coreutils built with selinux enabled and xattrs disabled
- Fixes https://github.com/termux/termux-packages/issues/23752

Patch created and shared by pixelb

This restores the 'ls -Z' command to its pre-coreutils-9.6 behavior,

and passes these test cases on Samsung Galaxy A70 SM-A705FN with Android 13:

(should not crash)
cd && ls -Z ..

(should not crash)
cd && ls -Z . > out

(should not crash)
ls -Z /storage/emulated/0/

(should show correct output, like 'u:object_r:fuse:s0')
cd /storage/emulated/0 && ls -Z $(pwd)

(should print both directories without crashing)
ls -l /storage/emulated/0 /storage/emulated/0/Download

(should print both directories without crashing)
ls -Z /storage/emulated/0 /storage/emulated/0/Download

(should print both directories without crashing)
ls -lZ /storage/emulated/0 /storage/emulated/0/Download

More information here:

https://github.com/termux/termux-packages/pull/23691#discussion_r1986260242
https://github.com/termux/termux-packages/pull/23756#discussion_r1993138524
2025-03-21 01:31:08 +00:00

40 lines
1.6 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/coreutils/
TERMUX_PKG_DESCRIPTION="Basic file, shell and text manipulation utilities from the GNU project"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Joshua Kahn @TomJo2000"
TERMUX_PKG_VERSION=9.6
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/coreutils/coreutils-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=7a0124327b398fd9eb1a6abde583389821422c744ffa10734b24f557610d3283
TERMUX_PKG_DEPENDS="libandroid-selinux, libandroid-support, libgmp, libiconv"
TERMUX_PKG_BREAKS="chroot, busybox (<< 1.30.1-4)"
TERMUX_PKG_REPLACES="chroot, busybox (<< 1.30.1-4)"
TERMUX_PKG_ESSENTIAL=true
# On device build is unsupported as it removes utility 'ln' (and maybe
# something else) in the installation process.
TERMUX_PKG_ON_DEVICE_BUILD_NOT_SUPPORTED=true
# pinky has no usage on Android.
# df does not work either, let system binary prevail.
# $PREFIX/bin/env is provided by busybox for shebangs to work directly.
# users and who doesn't work and does not make much sense for Termux.
# uptime is provided by procps.
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
gl_cv_host_operating_system=Android
ac_cv_func_getpass=yes
--disable-xattr
--enable-no-install-program=pinky,df,users,who,uptime
--enable-single-binary=symlinks
--with-gmp
"
termux_step_pre_configure() {
# https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md#is-32_bit-on-lp32-y2038
if [ $TERMUX_ARCH_BITS = 32 ]; then
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --disable-year2038"
fi
CPPFLAGS+=" -D__USE_FORTIFY_LEVEL=0"
LDFLAGS+=" -landroid-selinux"
}