Subject: Re: [PATCH] ci: avoid ubuntu:rolling in most jobs for now

From: Junio C Hamano <[email-masked]>
Date: Fri, 06 Feb 2026 20:56:29 -0800

Colin Stagner <[email-masked]> writes:

> Subject: [PATCH] ci: ubuntu: use GNU coreutils for dirname
>
> The uutils version of `dirname` has output that is inconsistent
> with GNU coreutils. Prefer the GNU implementation of this command.
>
> Signed-off-by: Colin Stagner <[email-masked]>
> ---
>  ci/install-dependencies.sh | 11 +++++++++++
>  1 file changed, 11 insertions(+)

Hmm, this certainly is a more focused solution.  Let me revert my
demote-from-rolling-to-latest hack and replace it with this one.

If we hit more breakages and at unacceptable high frequency, we may
want to change our mind and write off rolling as not stable enough
yet, but if we are lucky we won't have to.  Knock, knock...

> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 6ee8216a05..617b90cbc9 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -71,16 +71,27 @@ ubuntu-*|i386/ubuntu-*|debian-*)
>  	# sudo(1) or sudo-rs(1), with the latter being the default. The problem
>  	# is that it does not support `--preserve-env` though, which we rely on
>  	# in our CI. We thus revert back to the C implementation.
>  	if test -f /etc/alternatives/sudo
>  	then
>  		sudo update-alternatives --set sudo /usr/bin/sudo.ws
>  	fi
>  
> +	# on uutils v0.2.2 from rust-coreutils,
> +	#     dirname "foo/."
> +	# outputs "." instead of "foo" like it should.
> +	# Use GNU coreutils to provide dirname instead.
> +	#
> +	# See <https://github.com/uutils/coreutils/issues/10508>.
> +	if test -x /usr/bin/gnudirname
> +	then
> +		ln -sfT /usr/bin/gnudirname /usr/bin/dirname

"-T" is somewhat exotic, certainly outside POSIX, and is not needed
in this case, no?

> +	fi
> +
>  	case "$distro" in
>  	ubuntu-*)
>  		mkdir --parents "$CUSTOM_PATH"
>  
>  		wget --quiet --directory-prefix="$CUSTOM_PATH" \
>  			"$P4WHENCE/bin.linux26x86_64/p4d" \
>  			"$P4WHENCE/bin.linux26x86_64/p4" &&
>  		chmod a+x "$CUSTOM_PATH/p4d" "$CUSTOM_PATH/p4" || {
>
> base-commit: 3e0db84c88c57e70ac8be8c196dfa92c5d656fbc