Re: [BUGS] Git v2.51.2 on NonStop
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Oct 30, 2025, 21:23 UTC
- Message-ID
- <aQPXSyyHWz8hKaJe@fruit.crustytoothpaste.net>
- In-Reply-To
- <CALnO6CAYmtDmfk36nX6TCCaV2c=8J0BXv9eN+L=j1PU=gPmJUQ@mail.gmail.com>
On 2025-10-30 at 13:52:34, D. Ben Knoble wrote:
Show 20 quoted lines
> On Wed, Oct 29, 2025 at 8:25 PM <rsbecker@nexbridge.com> wrote:
> >
> > What appears to be happening is that the Make environment is only using SHELL=/bin/bash
> > for the outer processing but not the inner #!/bin/sh of t7900. The system is using /bin/sh
> > as specified, which uses ksh, not bash, which is the trace above. When I run the individual
> > tests with bash, the error reported goes away. The problem is, with my version of Gnu Make,
> > 4.1.2, the SHELL variable is only being replaced for the command processing of each
> > recipe. Once the system loader sees the shebang of #!/bin/sh, /bin/sh is used as requested,
> > and fails out. This means that I have to remember to manually run each test that fails with
> > bash instead of the default. It is frustrating and now adds hours to my manual evaluation
> > of the CI/CD results.
> >
> > The trace above is from sh, not bash because of this.
> >
> > With Frustration,
> > Randall
>
> Is this the only ksh-induced failure? And if so, what is inducing the
> failure—is it something the test library can work around, or is the
> system {k,}sh not behaving portably here?We know that AT&T ksh (ksh93) doesn't work for Git because we require `local` and AT&T ksh doesn't offer that. Other ksh implementations, such as pdksh, mksh, lksh, OpenBSD's ksh (which is also its /bin/sh), ksh88, and various others, do in fact work just fine because they support `local`. The `test_subcommand` function does use `local`, so that may explain why things aren't working.
ksh (and zsh in zsh mode, but not in sh mode[0]) also run the last command in a pipeline in the main shell instead of a subshell. That may also be a source of incompatibility.
It may also be failing to work for other reasons as well, though.
[0] To be clear, zsh has never successfully run our testsuite in zsh mode, but it should mostly work in sh mode.
-- brian m. carlson (they/them) Toronto, Ontario, CA