Update the DOS utilities and test suite with the current Novell comparison state. Validated/updated tool behavior: - improve CREATOR output by showing Novell-style attribute and rights masks - extend FLAGDIR handling with old NCP22 directory attribute read/write fallback paths - expand NDIR Novell-style formatting, filtering, /SUB handling, date output, DI/RI attribute display and richer metadata collection - adjust REVOKE output/grammar, recursive /SUBDIRECTORIES behavior and trustee update/delete paths to better match Novell tools - adjust SLIST header/output behavior for logged-in and logged-out cases - update README status to reflect the currently green/tested tools Test-suite changes: - add/refresh Novell comparison tests for CREATOR, NDIR, REVOKE and SLIST - update NCOPY tests and collection scripts for the current investigation state - refresh per-tool README files and top-level test documentation - keep MAP documented as still separately open NCOPY: - add the current NCOPY implementation and experimental NCP74/server-side-copy scaffolding - build ncopy.c so it stays compile-tested - keep NCOPY disabled in the NET multicall dispatch for now because the server-side-copy/open-handle path is still unsafe and needs further analysis Build: - include ncopy.c in the DOS utility build - drop the temporary MARS_DOSUTILS_VERSION define wiring from CMake
CREATOR / xattr automated test
This test validates PUBLIC\CREATOR.EXE against the MARS-NWE file metadata
stored in Linux extended attributes. It also performs an optional readback as
NOPASSUSER, so the generated metadata and effective rights can be checked from
a normal-user context.
Requirements
Install the current DOS tools into the normal test locations:
SYS:PUBLIC\CREATOR.EXE
SYS:PUBLIC\RIGHTS.EXE
SYS:PUBLIC\DLYSTRT.EXE
SYS:NPUBLIC\NDIR.EXE
SYS:NPUBLIC\RIGHTS.EXE
SYS:NPUBLIC\FLAG.EXE
SYS:NPUBLIC\GRANT.EXE
For the Linux collector install the attr package, so getfattr is available.
The optional user-context phase expects these accounts to exist:
SUPERVISOR
NOPASSUSER
MARIO
MARIO is used as the creator/modifier/archiver object name in the test data.
Files used by the test
All DOS scripts are expected at the root of F::
F:\CIXSTA.BAT
F:\CIXC.BAT
F:\CIXZIP.BAT
CIXC.BAT and DLYSTRT.EXE are copied to C:\CIXTMP before the delayed
logout/login helper is started. CIXSTA.BAT stays on F: and is run again as
F:\CIXSTA.BAT PART2 after the helper has logged SUPERVISOR back in.
Generated directories:
F:\CIXTEST test tree
F:\CIXCMP result tree
C:\CIXTMP temporary local helper/output directory
DOS flow
Run as SUPERVISOR.
For the full test, including the NOPASSUSER readback, set the Supervisor
password first:
SET LGNTPWD=your-supervisor-password
F:\CIXSTA
Without LGNTPWD, the Supervisor-only CREATOR/xattr part can still be run, but
the delayed user-context phase is skipped.
When the delayed helper finishes, it starts:
F:\CIXSTA PART2
Wait until the screen shows:
CIXSTA PART2 fertig.
Then run the Linux-side collector:
sudo ./cix_collect_xattr.sh
Finally package the DOS-side result tree:
F:\CIXZIP
Result ZIP:
F:\CIXCMP\CIXSTA.ZIP
Linux package with server log:
sudo ./mars_packtest_v3.sh cixsta 5 mario
What CIXSTA does
S_SUP.TXT:
PUBLIC\CREATOR ... /CREATOR MARIO
PUBLIC\CREATOR ... /MODIFIER MARIO
Expected xattr: user.mars_nwe.fileinfo
S_ARCH.TXT:
PUBLIC\CREATOR ... /ARCHIVE MARIO
Expected xattr: user.mars_nwe.archive
S_ALL.TXT:
PUBLIC\CREATOR ... /ALL MARIO 2026-05-25 16:12:00
Expected xattrs: user.mars_nwe.fileinfo and user.mars_nwe.archive
The scripts also grant NOPASSUSER read/file-scan rights and collect readback
output as that user:
UNOV\*.OUT NPUBLIC\RIGHTS readback as NOPASSUSER
UPUB\*.OUT PUBLIC\RIGHTS readback as NOPASSUSER
UCREATOR\*.OUT PUBLIC\CREATOR /SHOW readback as NOPASSUSER
UCOMP.LOG FC comparison of UNOV vs UPUB
HELPER.TXT delayed helper phase log
Important DOS outputs
F:\CIXCMP\RUN.LOG
F:\CIXCMP\SUMMARY.TXT
F:\CIXCMP\PRE\*.OUT
F:\CIXCMP\POST\*.OUT
F:\CIXCMP\UNOV\*.OUT
F:\CIXCMP\UPUB\*.OUT
F:\CIXCMP\UCREATOR\*.OUT
F:\CIXCMP\UCOMP.LOG
F:\CIXCMP\HELPER.TXT
Important Linux outputs
The collector writes DOS/ZIP-safe 8.3 file names under F:\CIXCMP\LINUX
(/var/mars_nwe/SYS/CIXCMP/LINUX on Linux):
collecto.txt collector metadata
files.txt enumerated files/directories
stat.txt Linux stat information
xattr_na.txt xattr names only
getfattr.txt full xattr dump with hex values
xattr_fo.txt filtered mars/nwe/netware/creator/archive-related xattrs
The expected interesting xattrs are:
user.mars_nwe.fileinfo
user.mars_nwe.archive
Expected good result
A good run has:
UCOMP.LOG: all FC comparisons report no differences
UCREATOR\*.OUT: CREATOR /SHOW prints readable Attributes and Rights mask
LINUX\getfattr.txt: S_SUP.TXT has fileinfo, S_ARCH.TXT has archive,
S_ALL.TXT has both fileinfo and archive