diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000..d787696 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,549 @@ +# Changes + +This file summarizes the MARS_NWE project history in a form intended for users +and administrators. It is not a replacement for the technical Git log and does +not list every individual commit. + +The historic entries up to 0.99.pl21 are based mainly on the old project files +under `doc/`, especially `doc/CHANGES` and `doc/NEWS`. Newer entries from +0.99.pl22 onward are based on the imported project history, release milestones, +and the current repository history. + +Entries are sorted newest first. + +## Current development after 0.99.pl27 + +The current development branch is 0.99.pl28-dev. Since 0.99.pl27 the focus has +shifted from pure modernization back toward NetWare compatibility, test coverage, +and better operational diagnostics. + +User-visible highlights: + +- Classic NetWare and DOS client compatibility has been expanded. Several NCP + endpoints that were missing or only stubbed have been added or improved, + including trustee and rights queries, rights changes, rename/move, queue jobs, + broadcast messages, disk restrictions, extended volume information, and several + record and file locking operations. +- Packet Burst support is available again as a build option and is built in the + current default configuration. +- AFP and Macintosh compatibility has been expanded significantly. MARS_NWE can + now serve many AFP 2.0/WebSDK-style file and directory operations through + NetWare paths, including entry IDs, file information, scan information, + FinderInfo, ProDOSInfo, attributes, timestamps, fork handles, create, delete, + rename, and information about deleted files. +- A salvage/recycle backend for deleted files was added. It can record deleted + files together with metadata, manage versions using the Samba `vfs_recycle` + naming scheme, and expose them through NetWare salvage endpoints for scan, + restore, and purge operations. +- The test layout has been expanded with focused AFP and salvage smoke tests, and + optional maintainer builds for additional test and DOS helper programs. +- Log output is being normalized step by step so that logs are easier to search + by area, endpoint, and event. +- Documentation has been cleaned up: active TODOs live in `TODO.md`, AI/patch + workflow rules live in `AI.md`, and AFP/salvage test documentation has been + reduced to one README per test area. + +## 0.99.pl27 — 21 April 2026 + +This release collected the 2026 modernization work into a public release. + +User-visible highlights: + +- The build was further modernized and aligned with current CMake and GitHub + Actions workflows. +- Version handling was tied to Git tags so release builds and development builds + can be distinguished more clearly. +- The SMArT web interface was added as a submodule and updated several times. +- Packaging and installation files were added, including systemd service files, + logrotate configuration, and init scripts in the documentation area. +- The README was expanded and now links the related subprojects such as SMArT, + dosutils, mailutils, IPX tools, and kernel modules. +- After the release the version base was advanced to 0.99.pl28-dev. + +## 0.99.pl26 — 28 March 2026 + +This release was mainly a modernization and build compatibility release. + +User-visible highlights: + +- The code was fixed for newer GCC versions. +- The minimum CMake version was raised. +- Several 64-bit, type, and warning issues were cleaned up so the server builds + more reliably on current Linux systems. +- Signal, shutdown, and string handling were made more robust. +- Missing headers and helper-program build integration were added. +- Warning hotspots in server, bindery, queue, trustee, route, and connection code + were cleaned up. + +## 0.99.pl25 — 31 July 2024 + +This release integrated an externally reported compatibility patch and refreshed +the project description. + +User-visible highlights: + +- A patch from the public GitHub project discussion was integrated. +- The README was updated to better explain the current project status. + +## 0.99.pl24 — 31 May 2023 + +This release kept the project buildable on modern systems and corrected release +and build issues. + +User-visible highlights: + +- Syslog support was fixed. +- CMake and release files were corrected. + +## 0.99.pl23 — 5 November 2013 + +This release continued to merge distribution patches. + +User-visible highlights: + +- PLD and Koan patches were integrated. +- The build was fixed for 32-bit environments. + +## 0.99.pl22 — 20 May 2012 + +This release marked the start of the newer public maintenance history after the +old historic releases. + +User-visible highlights: + +- The project was converted to a CMake-based build. +- DOS and mail helper programs were added as submodules. +- Installation paths and distribution patches were updated. +- A known Novell Bugzilla patch was integrated. +- Existing patches from several sources were collected and integrated. + +## 0.99.pl21 — 14 June 2003 + +User-visible highlights: + +- A Koan/Marco Cavallini patch added support for clearing a connection number in + the bindery/server area. + +## 0.99.pl20 — 1 September 2000 + +User-visible highlights: + +- New volume option `x` added support for working with Unix ACLs. +- Trustee and attribute directories were improved. +- Several patches improved printer queue access, Unix permissions, and trustee + behavior. + +## 0.99.pl19 + +User-visible highlights: + +- Security fixes were made around file operations. +- `Get Name Spaces Loaded` was corrected. +- Login restriction routines were added. +- Empty passwords and passwords starting with `-` were handled better. +- Trustee handling was corrected. + +## 0.99.pl18 + +User-visible highlights: + +- Several potential buffer overflows were mitigated. +- File sharing and locking were improved substantially. +- Logical and physical record log/lock functions were enabled. +- Password names starting with `-` were handled better. +- Trustee handling was extended. + +## 0.99.pl17 + +User-visible highlights: + +- A `rename file` regression from pl16 was fixed. +- Logfile initialization was cleaned up. + +## 0.99.pl16 + +User-visible highlights: + +- Builds for Linux 2.2.x and BSD environments were improved. +- Win98-compatible open/create behavior was corrected. +- DOS wildcard rename behavior for source and target names was improved. +- A new signal can dump diagnostic information about open files. + +## 0.99.pl15 + +User-visible highlights: + +- New pipe filesystem examples and documentation were added. +- Recursive deletion of larger directory trees was fixed. +- Queue job lists now return byte order that works better for Win9x/Client32. +- glibc compatibility was improved. + +## 0.99.pl14 + +User-visible highlights: + +- HOME volume rights and free disk space reporting were improved. +- Trustee and inherited-rights-mask handling was extended. +- Some file-handle and directory error codes were corrected. +- New volume option `T` added trustee-oriented rights handling. + +## 0.99.pl13 + +User-visible highlights: + +- FreeBSD support and diagnostic replies were added. +- Pipe filesystem support and example programs were improved. +- Trustee namespace calls were added. +- New queue functions were implemented. +- Debug and log files started to include date and time. + +## 0.99.pl12 + +User-visible highlights: + +- The default bindery database path moved from `/etc` to `/var/nwserv/db`. +- Printer banners can be disabled. +- FreeBSD porting work was integrated. + +## 0.99.pl11 + +User-visible highlights: + +- A new NCP call for reading new queue job entries was added. + +## 0.99.pl10 + +User-visible highlights: + +- DOS wildcard search behavior was corrected. +- Trustee-related searches became more reliable as a result. + +## 0.99.pl9 + +User-visible highlights: + +- The attribute directory default moved to `/var/nwserv/attrib`. +- Initial simple trustee routines were introduced. +- Supervisor security equals and new queue handling were added. +- Many queue, pipe, UnixWare, and file-handle problems were fixed. + +## 0.99.pl8 + +User-visible highlights: + +- Queue handling was improved for WinNT, Windows 95, and DOS clients. +- Older DOS search routines were reused for namespace calls because they worked + better with Client32-compatible access patterns. + +## 0.99.pl7 + +User-visible highlights: + +- An important bindery bug was fixed: property-set searches previously found + only a limited subset of entries. +- Startup bindery check/compress support was added. +- Archive-bit handling was corrected. +- Build and glibc6/RH5 compatibility was improved. + +## 0.99.pl6 + +User-visible highlights: + +- `nwserv` can create or delete IPX devices and routes externally. +- New `nwserv -f` option can force RIP/SAP transmissions. +- Archive bits are set by default on files and updated on client writes. + +## 0.99.pl5 + +User-visible highlights: + +- Namespace and directory access were corrected. +- Directory delete operations should work more reliably. +- Several maximum values became runtime configurable. + +## 0.99.pl4 + +User-visible highlights: + +- File and directory creation rights became configurable per volume. +- Directories are no longer made read-only unconditionally. +- Wildcard rename was corrected. + +## 0.99.pl3 + +User-visible highlights: + +- Default paths were adjusted toward typical Unix/Linux installations, including + `/usr/sbin` and `/var/log`. +- `nwserv -k` now waits for the main process to exit. +- HOME volume functions were expanded. +- Users can be excluded from password changes through SYSCON. + +## 0.99.pl2 + +User-visible highlights: + +- A new section-8 option for using ncpfs as a MARS_NWE client was added. +- Queue handling was corrected further. +- Pserver support and queue creation/deletion were added. +- Directory creation returns more appropriate error codes. + +## 0.99.pl1 + +User-visible highlights: + +- Print queue handling changed significantly. +- Simple semaphore routines were added. +- User symlinks are now created in the MAIL directory. +- Client32 wildcard delete operations were improved. + +## 0.99.pl0 — 31 July 1997 + +User-visible highlights: + +- Novell Client32 should now work; a volume/device/inode/path cache was added for + this. +- Bindery security fixes and account extensions were integrated. +- File sharing behavior was changed. +- The first test version of Burst mode was introduced. +- Slow-network support and HOME volumes were improved. +- Bindery paths became configurable. + +## 0.98.pl11 — 7 July 1997 + +User-visible highlights: + +- Syslog support was added. +- Filename translation became configurable. +- Internal tables now grow dynamically instead of relying on fixed maximum sizes. +- More than 255 connections became possible in principle. +- `ps` shows logged-in users and attached-only sessions more clearly. +- Early Burst mode test support was prepared. + +## 0.98.pl10 + +User-visible highlights: + +- NFS/directory-listing issues were reduced through `telldir()`/`seekdir()` + workarounds. +- Only one directory handle per connection remains open. +- Cyrillic filename support was added. +- Pipe commands were marked shareable. +- Several time, locking, and interface activation issues were fixed. + +## 0.98.pl9 — 17 April 1997 + +User-visible highlights: + +- Automatic detection and creation of IPX interfaces was restructured. +- New `nwserv -u` option updates internal routes and devices. +- Fixed passwords were added as a configuration option. +- File-handle byte order was changed for better NETX compatibility. + +## 0.98.pl8 — 29 January 1997 + +User-visible highlights: + +- NetWare version spoofing now defaults to 3.11. +- Quota support was added. +- Login time restrictions were supported. +- Print queue banner parameters were extended. + +## 0.98.pl7 — 5 January 1997 + +User-visible highlights: + +- Directory rename can be allowed through a section-8 option. +- File locking for large offsets was improved, important for programs such as + dBase. +- Bindery access by object name was accelerated. +- File-handle reuse was corrected. + +## 0.98.pl6 + +User-visible highlights: + +- `nwrouted` was made usable again. + +## 0.98.pl5 — 9 November 1996 + +User-visible highlights: + +- Novell Client32 should work better. +- New namespace subfunctions were added. +- File Server Copy works correctly. +- SAP handling can process all SAP types instead of only type 4. +- NCP responses now copy the task from the request. +- OS/2 namespace wildcards were improved. + +## 0.98.pl4 — 4 October 1996 + +User-visible highlights: + +- New configuration sections were added for login/logout/security flags and + default creation modes. +- File access takes supplementary Unix groups into account. +- Station connection restrictions and bindery login restrictions were added. +- Print queue directories and MAIL directories are created and repaired more + reliably at startup. + +## 0.98.pl3 + +User-visible highlights: + +- Bindery and SYS directory initialization was improved. +- Queue directories are checked and created. +- Bindery object deletion removes references in set properties. +- Directory handle 1 is treated specially, matching Novell behavior. + +## 0.98.pl2 — 24 August 1996 + +User-visible highlights: + +- The PIPE filesystem was changed so programs start only on the first read or + write. +- Pipe commands can use separate read and write channels. +- MAIL/shadow-password and bindery problems were improved further. + +## 0.98.pl1 — 30 July 1996 + +User-visible highlights: + +- OS/2 name handling was improved. +- Windows-client-compatible dummy routines were added. +- Move-directory and pipe filesystem behavior were corrected. + +## 0.98.pl0 — 22 July 1996 + +User-visible highlights: + +- Directory-handle problems were removed. +- Rudimentary OS/2 and NFS namespace support was added. +- Dummy support for OS/2 Extended Attributes was added. + +## 0.97.pl9 — 12 July 1996 + +User-visible highlights: + +- Automatic adding and removing of IPX interfaces was improved. +- Linux/Sparc support was cleaned up. +- File locking and sharing were improved. +- Unix-to-DOS attribute handling and read performance through `mmap` were + improved. +- New users can be automatically mapped to existing Unix users during password + changes. + +## 0.97.pl8 + +User-visible highlights: + +- Free-space display on large volumes was corrected. +- Wildcard handling was adjusted. +- Files can be read using `mmap`. + +## 0.97.pl7 + +User-visible highlights: + +- Encrypted password changes were implemented. +- Dynamic IPX interface registration and removal were improved. +- Locking, watchdog, and access handling were extended. +- Pipe files receive connection and process parameters. + +## 0.97.pl6 + +User-visible highlights: + +- Message calls work again in optimized kernel mode. +- Volume restriction queries return more correct values. +- Large directories can be listed more reliably. + +## 0.97.pl5 + +User-visible highlights: + +- Group initialization was added to UID/GID switching. + +## 0.97.pl4 + +User-visible highlights: + +- Several security and bindery-rights issues were corrected. +- A read-only volume option was added. +- The internal network number can be derived from the IP number when set to `0`. + +## 0.97.pl3 — 5 May 1996 + +User-visible highlights: + +- `nwserv -h` and `nwserv -k` were added for HUP/TERM control. +- utmp/wtmp are updated. +- IPX interfaces can be created automatically. +- HOME volumes with path `~` became possible. +- Supervisor security and namespace routines were extended. + +## 0.97.pl2 — 21 March 1996 + +User-visible highlights: + +- Password policy was extended, including empty MARS_NWE passwords when a Unix + password is set. +- OS/2 client compatibility was improved significantly. +- A kernel patch for better performance was documented. +- LOGIN directory and DBM export/import functions were improved. + +## 0.97.pl1 + +User-visible highlights: + +- OS/2 name support was improved. +- A Windows-compatible dummy routine was added. + +## 0.97.pl0 — 10 March 1996 + +User-visible highlights: + +- Broadcast periods and nearest-server behavior became configurable. +- New configuration options allow automatic user import from `/etc/passwd` and + startup checks for bindery/SYS. +- Bindery performance was improved substantially. +- Namespace services, HOME volumes, `ftruncate`, utmp/wtmp, and several NetWare + file operations were added or improved. + +## 0.96.pl9 — 13 February 1996 + +User-visible highlights: + +- New password policy with several security modes for encrypted and unencrypted + password calls. +- Better compatibility with old LOGIN and SYSCON programs. +- Routing, SAP, volume information, pipe jobs, and server-down messages were + extended. + +## 0.96 + +User-visible highlights: + +- Wildcard search and wildcard delete were corrected or added. +- Larger packets were allowed. +- Routing and SAP handling were extended. +- Namespace services were prepared. +- Password, bindery, and automatic user import features were expanded. +- Printing, PIPE jobs, volumes, and several NCP functions were improved. + +## 0.95 + +User-visible highlights: + +- Login with password entry became possible. +- Users with different rights and mapping of NetWare users to Linux users were + introduced. +- `nwserv` can run as a daemon and write logs. +- Server-down notification, routing rework, and initial printing functions were + added. + +## 0.94 + +User-visible highlights: + +- First public version of MARS_NWE.