> Well I suppose you could patch your coreutils to keep -T for z/OS > functionality and --tabsize for coreutils functionality. > Scripts are already incompat wrt -T short option, so you wouldn't really have > to worry about that.
Thanks, Padraig, My goal is to contribute the z/OS changes to coreutils. Given the existing conflict with -T, would a different implementation of the -T short option be acceptable for coreutils specifically on z/OS? Perhaps this could be guarded by a platform macro or an environment variable? Thanks, Igor From: Pádraig Brady <pixelb...@gmail.com> on behalf of Pádraig Brady <p...@draigbrady.com> Date: Tuesday, April 1, 2025 at 9:12 AM To: Igor Todorovski <itodo...@ca.ibm.com>, coreutils@gnu.org <coreutils@gnu.org> Subject: [EXTERNAL] Re: z/OS enablement patches On 01/04/2025 12:49, Igor Todorovski wrote: > Hi, > > I currently maintain a set of enablement patches for coreutils for z/OS. They > are available here (a few of them need cleanup): > https://github.com/zopencommunity/coreutilsport/tree/main/stable-patches/src > > z/OS is unique in that files can contain a file tag attribute, which consists > of a ccsid encoding and text flag. Programs can also run in either EBCDIC or > ASCII mode, and the z/OS C runtime automatically converts data tagged with a > codepage to the program encoding on read, and vice versa on write. > > In some cases we need to disable this “auto conversion” where the data needs > to be read verbatim as in > https://github.com/zopencommunity/coreutilsport/blob/main/stable-patches/src/basenc.c.patch > . > > We also extended stat to include additional attributes here: > https://github.com/zopencommunity/coreutilsport/blob/main/stable-patches/src/stat.c.patch > > Thanks for the info. > Another question I have is with respect to ls. z/OS ships an old version of > ls with z/OS extensions. One of those extensions is ls -T, which prints out > the file tag. However, this conflicts with coreutils ls -T: > > -T When printing in the long (-l) format, display complete time > information for the > file, including month, day, hour, minute, second, and year. > The -D option gives > even more control over the output format. This option is not > defined in IEEE Std > 1003.1-2008 (“POSIX.1”). In fact the above is from FreeBSD / macOS. coreutils is different again: -T, --tabsize=COLS assume tab stops at each COLS instead of 8 > Here’s the z/OS ls: > https://www.ibm.com/docs/en/zos/2.4.0?topic=descriptions-ls-list-file-directory-names-attributes > > -T > Displays file tag information associated with the file. The format of this > output will be similar to the output from chtag -p. > An example output: > >> ls -T file > > t IBM-1047 T=on file1 > > ls -T does not turn on the -l option. ls -T can be used with other options. > See Long output > format<https://www.ibm.com/docs/en/zos/2.4.0?topic=descriptions-ls-list-file-directory-names-attributes#lscmd__longf > > for details. > We haven’t implemented this in coreutils as of yet, but we would like to for > compatibility. What approach would you suggest? Can we propose a > compatibility environment variable or detect if the host system is z/OS? Well I suppose you could patch your coreutils to keep -T for z/OS functionality and --tabsize for coreutils functionality. Scripts are already incompat wrt -T short option, so you wouldn't really have to worry about that. cheers, Padraig