> 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

Reply via email to