RE: [Test Breakage 2.46.0-rc0] Test t0021.35 fails on NonStop
- From
rsbecker@nexbridge.com <rsbecker@nexbridge.com>
- Date
- Jul 14, 2024, 22:14 UTC
- Message-ID
- <006201dad63b$418c76f0$c4a564d0$@nexbridge.com>
- In-Reply-To
- <ZpRKu8Xsz70xNHFp@tapette.crustytoothpaste.net>
On Sunday, July 14, 2024 6:02 PM, brian m. carlson wrote:
Show 43 quoted lines
>On 2024-07-14 at 18:28:56, rsbecker@nexbridge.com wrote: >> On Sunday, July 14, 2024 2:16 PM, brian m. carlson wrote: >> >I don't think this is the right approach. Every version of ksh >> >_except_ AT&T ksh works just fine here. pdksh, mksh, lksh, OpenBSD's >> >ksh (which is also its /bin/sh) work fine, as do bash, dash, >> >FreeBSD's sh (ash), Busybox's sh (also ash), and zsh (when run in sh >> >mode with 5.9 or newer). AT&T ksh is considering adding local in a newer >version for this reason. >> > >> >Literally only AT&T ksh is not supported here, and so anyone can set >> >SHELL_PATH to any suitable shell. I don't think it's useful to get >> >rid of local when there are a variety of acceptable and portable options. >> >> We can add NonStop's ksh to the list of not supported. I'm using >TEST_SHELL_PATH while running make all in the t directory. Test passes when I use >bash. For some reason (maybe GNUMake 4.1, which is what I have in my POSIX >environment, I don't get TEST_SHELL_PATH passed down from the outer Makefile, >but I can work with that. t0021 is now passing in my current CI stream using bash >5.0.18. > >I think we had discussed that you were using AT&T ksh on NonStop, which would >explain the situation. That's the most common version of ksh on proprietary Unix >systems, and you can usually detect it with something like this: > >% ksh -c 'echo $KSH_VERSION' >Version AJM 93u+m/1.0.8 2024-01-01 > >Variants of pdksh look like this (this one from OpenBSD): > >% ksh -c 'echo $KSH_VERSION' >@(#)PD KSH v5.2.14 99/07/13.2 > >And mksh and lksh (which are the same shell, just compiled differently, look like >this: > >% mksh -c 'echo $KSH_VERSION' >@(#)MIRBSD KSH R59 2024/02/01 +Debian > >% lksh -c 'echo $KSH_VERSION' >@(#)LEGACY KSH R59 2024/02/01 +Debian > >I think using bash as a workaround is the right choice here if all you have is AT&T >ksh.
We did discuss the ksh issue on NonStop but the check for whether this is an AT&T ksh is non-functional (KSH_VERSION is not set). What we did was change SHELL=/usr/coreutils/bin/bash and TEST_LINT= to get the tests to execute. Unfortunately, the GNU Make we have (4.1) does not pass TEST_SHELL_PATH (also set) down to inner make processes, so we still get stuck with ksh. I changed our CI system to run the test make on its own, which is now working on this test.
Regards, Randall