Files
mars-nwe/README.md
Mario Fetka 09faf81607
All checks were successful
Source release / source-package (push) Successful in 31s
Update Readme.md
2026-04-21 21:00:55 +02:00

187 lines
8.6 KiB
Markdown

# MARS_NWE
MARS_NWE is a free NetWare emulator for Linux, originally written by Martin Stover of Marburg, Germany. It is a long-running retro-computing project that aims to keep classic NetWare-style services available on modern Linux systems.
This repository is now the de facto home of MARS_NWE: the central place where ongoing maintenance, fixes, integration work, and current public releases are collected.
## Current Development Status
The original author's last release was on 1 September 2000. Marco Cavallini of Koan Software later produced version 0.99.pl21 around 14 June 2003.
With the 0.99.pl22 release in May 2012, I effectively took over ongoing public maintenance of MARS_NWE. Since then, I have collected and integrated many of the patches that had accumulated across different distributions and downstream packages, including work from Arch, Debian, Fedora, PLD, Koan, and other sources, while trying to keep the project building and working as a whole.
This repository is where that continuing integration and maintenance work now happens. Public release milestones include 0.99.pl22 (20 May 2012), 0.99.pl23 (5 November 2013), 0.99.pl24 (31 May 2023), 0.99.pl25 (31 July 2024), 0.99.pl26 (28 March 2026), and 0.99.pl27 (21 April 2026).
Although MARS_NWE still builds and runs on modern Linux systems, it remains an old codebase with rough edges, missing features, and bugs that still need attention.
## About This Repository
This repository was originally assembled to compare the differences between the more recent MARS_NWE versions, especially those not produced by the original author. Older versions going back to 0.96 were also imported to preserve development history and make it easier to track how the code changed over time.
The source archives used to build this repository history can be found here:
- <https://ftp.zx.net.nz/pub/archive/novell/mars_nwe_dist/>
## What MARS_NWE Can Do
As described in the old project documentation, MARS_NWE is a functional clone of a NetWare server for Linux. It works with the usual DOS client software normally used with classic NetWare servers. It provides file, bindery, and print services for NetWare client software, and it does not impose user license restrictions. It also includes a RIP/SAP daemon that can turn a Linux machine into an IPX router.
The wider MARS_NWE ecosystem also includes related tools and companion projects:
- **SMArT**: the web configuration tool for MARS_NWE.
- <https://gitea.disconnected-by-peer.at/mars_nwe/mars-smart>
- **dosutils**: DOS-side helper tools for login, mapping, testing, and related client tasks.
- <https://gitea.disconnected-by-peer.at/mars_nwe/mars-dosutils>
- **mailutils**: additional mail-related tools and utilities for MARS_NWE environments.
- <https://gitea.disconnected-by-peer.at/mars_nwe/mars-mail>
- **ncpfs module**: a standalone NCPFS kernel module for Linux 4.18 and newer.
- <https://github.com/EnzephaloN/ncpfs-module>
- **ipx kernel module**: IPX kernel support for Linux 4.18 and newer.
- <https://github.com/pasis/ipx>
- **ipx-utils**: userspace IPX utilities for Linux.
- <https://github.com/pasis/ipx-utils>
## SMArT
SMArT is the web configuration tool for MARS_NWE. It provides a web-based way to configure and manage a MARS_NWE installation.
## Security Warning
This codebase implements very old network protocols and has not had the kind of continuous hardening expected from modern network-facing software.
**THERE WILL BE SECURITY VULNERABILITIES.**
If you decide to run MARS_NWE, do so on a trusted private network only. In particular, since version 0.99.pl9, MARS_NWE has made filesystem calls as the root user in order to handle trustees, which may be a source of security issues.
## Building
With the required kernel support installed, a typical build should be as simple as:
```sh
cmake -S . -B build
cmake --build build
sudo cmake --install build
```
The older in-tree build style still reflects how the project was traditionally built:
```sh
cmake .
make
sudo make install
```
Current installs also provide systemd service files, including:
- `mars-nwe-serv.service` for the main MARS_NWE server
- `mars-nwe-webui.service` for the HTTPS-enabled web UI daemon that places the older Perl SMArT interface behind proper encryption
## Basic Configuration
After installation, edit:
`/usr/local/etc/mars_nwe/nwserv.conf`
`/usr/local/etc/mars_nwe/smart.conf`
At minimum, you should:
- give your server a name (section 2)
- set Ethernet frame types and IPX network numbers (section 4, you may be able to skip this if you have no other NetWare servers on your LAN)
- set a password for the supervisor user (section 12)
The comments in the configuration file are worth reading carefully, as there may be additional settings you want to customize for your environment.
You will probably also want to edit:
`/var/mars_nwe/SYS/public/net$log.dat`
and replace the default login script with something more useful, for example:
```txt
MAP INS S1:=SYS:PUBLIC
MAP *1:=SYS:
```
## Running
On current systems, MARS_NWE should normally be managed through the installed systemd service files.
To start the main server:
```sh
sudo systemctl enable --now mars-nwe-serv.service
```
To start the HTTPS-enabled web UI daemon:
```sh
sudo systemctl enable --now mars-nwe-webui.service
```
The runtime directory setup is handled by the service files, so the old manual `mkdir` steps are no longer needed when using systemd.
For Gentoo and other OpenRC-based setups, init.d files are available in the `doc` directory and currently need to be installed manually.
## Clients
You will also need a NetWare client.
For DOS and Windows 3.11, one of the best choices is probably **Client32 v2.71** from February 1999.
- <https://ftp.zx.net.nz/pub/archive/novell/clients/client32_2.71_dos_win3x/dw271e.exe>
According to the original notes, it uses at most 4K of conventional memory, although it requires a 386SX or better CPU and a few megabytes of extended memory.
For other operating systems, or for older DOS machines, additional client software can be found here:
- <https://www.zx.net.nz/netware/client/>
MARS_NWE does **not** work with the classic Mac client, because that client requires NDS from NetWare 4.x or newer, which MARS_NWE does not implement.
## NetWare DOS and OS/2 Utilities
MARS_NWE itself only includes the bare minimum needed to log in and map drives on DOS. If you want additional tools such as `flag` or `ncopy`, you can use the **NetWare DOS Client Kit v3.01** from 1990, which Novell later made freely available. The original README points to the following page and notes `DSWIN3.ZIP` and `DSWIN4.ZIP` as useful archives:
- <http://www.zx.net.nz/netware/client/dos-netx.shtml>
These DOS utilities would normally live in:
`/var/mars_nwe/SYS/public/`
For OS/2, some client kits include updated 16-bit OS/2 utilities, usually on the `OS2UTIL` disks, which can help fill some of the gaps. The four executables `attach`, `login`, `map`, and `slist` should go in:
`/var/mars_nwe/SYS/login/OS2/`
The remaining OS/2 utilities should go in:
`/var/mars_nwe/SYS/public/OS2/`
For other tools such as **SYSCON**, you may still need an original copy of NetWare 3.11 or 3.12.
## Managing Users and Login Scripts
For NetWare 3.x style servers, user and login script management would normally be done with the DOS **SYSCON** utility. MARS_NWE does not include a replacement for that tool, and the original Novell version is likely out of bounds unless you already hold a valid NetWare 3 license.
One possible alternative is **WnSyscon**, a 16-bit Windows SYSCON replacement:
- <https://web.archive.org/web/20050828165409/http://www.amcsoft.demon.co.uk/wnsyscon.htm>
According to the old README, Novell bundled the registered version with NetWare 3.2 as their Graphical SYSCON Utility
- <https://support.novell.com/techcenter/articles/ana19980403.html>
and the shareware version could be downloaded from:
- <https://ftp.zx.net.nz/pub/archive/novell/3rdparty/admin/wnsyscon/>
The shareware version was described as being fully functional aside from a few nag screens. Unfortunately, obtaining a properly registered version today may require owning a legitimate NetWare 3.2 copy, unless the original author can still be contacted somehow.
## Where To Get Help
There is some very old documentation in the `doc` directory that may still be useful. The old linware mailing list archives may also contain useful information, and the original README also links to a set of additional notes here:
- <https://marc.info/?l=linware&r=1&w=2>
- <http://www.zx.net.nz/netware/server/mars.shtml>
If none of those help, the remaining option is often the same as it has always been for old infrastructure software: read the code.