dosutils: align Novell-compatible tests and stage NCOPY work

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
This commit is contained in:
Mario Fetka
2026-05-29 07:40:04 +02:00
parent 5da600c2a5
commit 4a952b4c4c
36 changed files with 5873 additions and 943 deletions

View File

@@ -11,27 +11,37 @@ The command dispatcher lives in `net.c`, and the install rules deploy the same b
## Current status
The tree is a modernization of the historical mars_nwe DOS utilities. It still keeps the original Borland-era style and APIs where useful, but now also has an Open Watcom/CMake build path and working DOS Client32 support for the FLAG-family and trustee/right tools.
The tree is a modernization of the historical mars_nwe DOS utilities. It still
keeps the original Borland-era style and APIs where useful, but now also has an
Open Watcom/CMake build path and working DOS Client32 support for the
Novell-compatible comparison tests.
Validated recently:
Recently validated with byte-for-byte Novell comparison tests or equivalent
readback tests:
- `FLAG` file attribute read/modify through DOS Client32
- `FLAGDIR` directory attribute read/modify through DOS Client32
- `RIGHTS` effective-rights display through Client32 NCP87
- `GRANT` trustee assignment for users and groups
- `REVOKE` trustee-right removal for users and groups
- `REMOVE` trustee deletion for users and groups
- Novell-tool comparison for `FLAG`, including `ALL`, `N`, `RO`, `RW`, high bits, and display layout
- Novell-tool comparison for `FLAGDIR`, including `Normal`, `System`, `Hidden`, `DeleteInhibit`, `Purge`, `RenameInhibit`, and combined attributes
- Novell-tool comparison for `RIGHTS`, `GRANT`, `REVOKE`, and `REMOVE`
- CMake/Open Watcom build using binary-directory object files, so `.obj`/`.o` files are no longer written into the source tree
- `CREATOR` metadata/xattr readback, including readable attribute and rights-mask output
- `FLAG` file attribute display and modification, including high NetWare bits such as DI/RI
- `FLAGDIR` directory attribute display and modification
- `GRANT` trustee assignment matrix and normal-user rights readback
- `NDIR` directory listing, filters, `/DATES`, `/RIGHTS`, `/SUB`, DI/RI display and user-context readback
- `REMOVE` trustee deletion matrix and normal-user rights readback
- `REVOKE` trustee-right removal matrix and normal-user rights readback
- `RIGHTS` effective-rights display
- `SLIST` server listing while logged in and while logged out from `SYS:LOGIN`
- `WHOAMI` option/output comparison
- maintainer baseline for `LOGIN`/`LOGOUT`
The DOS test suite is documented in [`test/README.md`](test/README.md). Each
feature directory also contains its own README with run instructions and result
layout.
Still to validate or continue:
- DOSX/VLM/NETX fallback behavior for `FLAG` and `FLAGDIR`
- More complex `FLAGDIR` paths beyond the simple mapped-directory cases already tested
- full `PUBLIC\MAP` comparison against Novell `MAP` beyond the current MAP baseline/semantics test
- DOSX/VLM/NETX fallback behavior where relevant
- OS/2 requester/tool behavior
- Additional Novell-like utilities such as `NDIR`, `PURGE`, and `SALVAGE`
- additional Novell-like utilities such as `PURGE` and `SALVAGE`
- further MARS-NWE server-side NCP endpoint coverage where newer tests expose gaps
## Features