16 Commits

Author SHA1 Message Date
Mario Fetka
56050a84a9 Delete old dev builds
All checks were successful
Source release / source-package (push) Successful in 46s
2026-04-29 11:06:40 +02:00
Mario Fetka
4258e2ac77 Update Readme readd missing sections
All checks were successful
Source release / source-package (push) Successful in 32s
2026-04-24 07:29:03 +02:00
Mario Fetka
081dbbf907 Update Readme to link the other repos
All checks were successful
Source release / source-package (push) Successful in 37s
2026-04-24 07:14:07 +02:00
Mario Fetka
cb5ad1bc3d Update dosutils submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 33s
2026-04-22 20:54:15 +02:00
Mario Fetka
01f0bbdc64 Update dosutils submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 56s
2026-04-22 20:48:17 +02:00
Mario Fetka
4594e2efdd Update mail submodule to latest master
Some checks failed
Source release / source-package (push) Has been cancelled
2026-04-22 20:47:56 +02:00
Mario Fetka
2ce2998ed5 Update smart submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 32s
2026-04-22 19:12:16 +02:00
Mario Fetka
b2404abe32 Update smart submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 31s
2026-04-22 17:07:44 +02:00
Mario Fetka
acbdafe699 Update smart submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 28s
2026-04-22 17:06:42 +02:00
Mario Fetka
a146a1af84 Update smart submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 25s
2026-04-22 14:13:32 +02:00
Mario Fetka
ec91095e49 add init scrips to doc dir
All checks were successful
Source release / source-package (push) Successful in 37s
2026-04-21 21:13:53 +02:00
Mario Fetka
09faf81607 Update Readme.md
All checks were successful
Source release / source-package (push) Successful in 31s
2026-04-21 21:00:55 +02:00
Mario Fetka
5fab7f0d30 Update smart submodule to latest master
All checks were successful
Source release / source-package (push) Successful in 28s
2026-04-21 20:08:05 +02:00
Mario Fetka
f1955d6254 ad mkdir für service file 2026-04-21 20:06:38 +02:00
Mario Fetka
6bdb03fed2 Bump version to 0.99.pl28-dev
All checks were successful
Source release / source-package (push) Successful in 31s
2026-04-21 19:51:14 +02:00
Mario Fetka
e79832426b correct action
All checks were successful
Source release / source-package (push) Successful in 31s
2026-04-21 18:48:32 +02:00
16 changed files with 517 additions and 110 deletions

View File

@@ -13,13 +13,26 @@ jobs:
runs-on: ubuntu-latest
env:
BUILD_DIR: /tmp/mars-nwe-build
GITEA_API: https://gitea.disconnected-by-peer.at/api/v1
OWNER: mars_nwe
REPO: mars-nwe
steps:
- name: Check out source
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
token: ${{ secrets.RELEASE_TOKEN }}
- name: Fetch tags explicitly
run: |
git fetch --force --tags
echo "describe:"
git describe --tags --exact-match || true
echo "points-at-head:"
git tag --points-at HEAD || true
- name: Update submodules explicitly
run: |
@@ -50,11 +63,18 @@ jobs:
- name: Find source tarball
id: pkg
run: |
FILE="$(find "$BUILD_DIR" -maxdepth 2 -type f -name '*.tar.bz2' | head -n1)"
set -e
FILE="$(find "$BUILD_DIR" -maxdepth 2 -type f -name '*.tar.bz2' | sort | head -n1)"
test -n "$FILE"
echo "file=$FILE" >> "$GITHUB_OUTPUT"
echo "name=$(basename "$FILE")" >> "$GITHUB_OUTPUT"
echo "Created: $FILE"
tar -tjf "$FILE" > tarball-list.txt
sed -n '1,20p' tarball-list.txt
- name: Decide release target
id: target
env:
@@ -78,9 +98,6 @@ jobs:
- name: Create or update release
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
GITEA_API: https://gitea.disconnected-by-peer.at/api/v1
OWNER: mars_nwe
REPO: mars-nwe
REL_TAG: ${{ steps.target.outputs.tag }}
REL_NAME: ${{ steps.target.outputs.name }}
REL_PRERELEASE: ${{ steps.target.outputs.prerelease }}
@@ -116,12 +133,35 @@ jobs:
echo "$RELEASE_JSON" > release.json
- name: Delete old development assets
if: ${{ steps.target.outputs.tag == 'development' }}
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
run: |
set -e
RELEASE_ID="$(jq -r '.id' release.json)"
ASSET_IDS="$(curl -fsS \
-H "Authorization: token ${GITEA_TOKEN}" \
"${GITEA_API}/repos/${OWNER}/${REPO}/releases/${RELEASE_ID}" \
| jq -r '.assets[]? | .id')"
if [ -z "$ASSET_IDS" ]; then
echo "No old development assets to delete."
exit 0
fi
for ASSET_ID in $ASSET_IDS; do
echo "Deleting old development asset id=${ASSET_ID}"
curl -fsS -X DELETE \
-H "Authorization: token ${GITEA_TOKEN}" \
"${GITEA_API}/repos/${OWNER}/${REPO}/releases/${RELEASE_ID}/assets/${ASSET_ID}"
done
- name: Delete old asset with same name if present
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
GITEA_API: https://gitea.disconnected-by-peer.at/api/v1
OWNER: mars_nwe
REPO: mars-nwe
NAME: ${{ steps.pkg.outputs.name }}
run: |
set -e
@@ -142,9 +182,6 @@ jobs:
- name: Upload tarball to release
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
GITEA_API: https://gitea.disconnected-by-peer.at/api/v1
OWNER: mars_nwe
REPO: mars-nwe
FILE: ${{ steps.pkg.outputs.file }}
NAME: ${{ steps.pkg.outputs.name }}
run: |
@@ -157,4 +194,3 @@ jobs:
-H "Content-Type: application/octet-stream" \
--data-binary @"${FILE}" \
"${GITEA_API}/repos/${OWNER}/${REPO}/releases/${RELEASE_ID}/assets?name=${NAME}"

View File

@@ -7,7 +7,7 @@ enable_language(C)
SET (VERSION_MAJOR "0")
SET (VERSION_MINOR "99")
SET (VERSION_PATCH "27")
SET (VERSION_PATCH "28")
SET (MARS_NWE_VERSION_BASE "${VERSION_MAJOR}.${VERSION_MINOR}.pl${VERSION_PATCH}")
SET (MARS_NWE_VERSION "${MARS_NWE_VERSION_BASE}")

278
README.md
View File

@@ -1,137 +1,227 @@
# MARS_NWE
This is Mars_nwe, a free NetWare emulator for Linux originally written by
Martin Stover of Marburg, Germany.
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 last release by the original author was on 1 September 2000.
Marco Cavallini of Koan Software produced version 0.99.pl21 on or around 14 June 2003.
Mario Fetka (@geos_one) released version 0.99.pl22 on 21 May 2012 and 0.99.pl23 on 5
November 2013.
No further work has been done on this in public since 2013. While it all builds and runs on
modern linux systems (surprisingly) there are a lot of build warnings and many missing
features to be dealt with as well as bugs to be found and squashed.
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 initially produced to see what the differences were between the few
most recent versions of mars_nwe, in particular the versions not produced by the
original author. Most other versions going back to 0.96 have also been imported to see
how it changed over time. The source archives used to build this repo can be found
[here](https://ftp.zx.net.nz/pub/archive/novell/mars_nwe_dist/).
## What can Mars_nwe do?
From the old [README file](README):
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.
- mars_nwe is a very functional clone of a NetWare server that runs
under Linux. It works fine with the usual DOS client software that
normally comes with your NetWare server.
The source archives used to build this repository history can be found here:
- mars_nwe offers file, bindery and print services for NetWare client
software.
- <https://ftp.zx.net.nz/pub/archive/novell/mars_nwe_dist/>
- mars_nwe does not include any user license restrictions. You can
increase mars_nwe's licenses by simply recompiling it, and you can
start any number of mars_nwe's on your network!
## What MARS_NWE Can Do
- mars_nwe includes a RIP/SAP daemon that turns your Linux box into a
fine IPX router.
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.
## MARS_NWE Ecosystem and Submodules
Related packages include:
The wider MARS_NWE ecosystem consists of several companion repositories that are typically used together. While they are linked here, **each project has its own README with important details**, especially regarding configuration and usage.
- mars_dosutils: Some utilities that should free you from having to
use proprietary utilities when you want to use mars_nwe with DOS
clients. These are now in the dosutils directory of this repository
- **SMArT (Web Administration Interface)**
<https://gitea.disconnected-by-peer.at/mars_nwe/mars-smart>
Provides a web-based configuration and management interface for MARS_NWE.
- [ncpfs](https://github.com/EnzephaloN/ncpfs-module): a linux-only
filesystem allowing you to mount volumes exported by NetWare servers
on your linux box.
⚠️ **Important:**
The SMArT repository mainly documents usage of the web interface itself. Parts of its configuration are described in the README files of related submodules, especially:
- `mars-mail`
- `mars-dosutils`
- [ipx kernel module for Linux](https://github.com/pasis/ipx): this is
required to run mars_nwe on versions of Linux newer than 4.17.
This split can be confusing at first — make sure to check those repositories as well when setting up SMArT.
## WARNING Security
This code has not been actively maintained in over two decades. The network protocol it
implements is even older than that. **THERE WILL BE SECURITY VULNERABILITIES.** If you
decide to run this please do so on a private network only.
- **dosutils (DOS Client Utilities)**
<https://gitea.disconnected-by-peer.at/mars_nwe/mars-dosutils>
Collection of DOS-side helper tools for login, drive mapping, testing, and general NetWare client interaction.
In particular, since version 0.99.pl9 mars_nwe has made filesystem calls as the root
user in order to handle trustees so this may be a source of security issues.
The README in this repository explains:
- available tools
- usage on DOS clients
- integration into SYS:PUBLIC
## Installing
- **mailutils (Mail Integration Tools)**
<https://gitea.disconnected-by-peer.at/mars_nwe/mars-mail>
Additional utilities related to mail handling in a MARS_NWE environment.
With [the IPX Kernel Module](https://github.com/pasis/ipx) installed you should be able to
just go:
```shell
The README includes:
- configuration relevant for mail handling
- parts of the setup that are also required when using SMArT
- **ncpfs module**
<https://github.com/EnzephaloN/ncpfs-module>
Standalone NCPFS kernel module for Linux 4.18 and newer.
- **ipx kernel module**
<https://github.com/pasis/ipx>
IPX kernel support for Linux 4.18 and newer.
- **ipx-utils**
<https://github.com/pasis/ipx-utils>
Userspace IPX utilities for Linux.
## Notes on Documentation Structure
Due to the historical growth of the project, documentation is distributed across multiple repositories:
- The main repository documents the core server
- `mars-smart` documents the web interface
- `mars-mail` and `mars-dosutils` contain important configuration and operational details
- Some setup steps (especially for SMArT) require reading multiple READMEs
If something seems incomplete in one repository, check the others — this is expected for now.
## 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
```
Once thats done you'll need to edit `/usr/local/etc/mars_nwe/nwserv.conf` to:
- 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)
- Give the supervisor user a password (section 12)
Current installs also provide systemd service files, including:
You should probably read all the comments in the server configuration file in case there
are any other settings you wish to customise.
- `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
You'll also want to edit `/var/mars_nwe/SYS/public/net$log.dat` and replace the
default login script with something sensible like:
```
## 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:
```
Once all that's done you should be able to start mars_nwe by running the following as root:
```shell
mkdir -p /var/log/mars_nwe
mkdir -p /var/run/mars_nwe
nwserv
## 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 make it start automatically you can put the above in `/etc/rc.local` or, even better,
write a systemd unit file.
Lastly you'll need a client. The best one for DOS and Windows 3.11 is probably
[Client32 v2.71](https://ftp.zx.net.nz/pub/archive/novell/clients/client32_2.71_dos_win3x/dw271e.exe)
from February 1999 which uses at most 4K of conventional memory (386SX or better CPU
and a few MB of extended memory required). For other operating systems (or older DOS
machines) you can grab another client from [here](https://www.zx.net.nz/netware/client/). Note
that Mars_NWE won't work with the Mac client as that needs NDS (NetWare 4.0+) which Mars_NWE
does not implement.
To start the HTTPS-enabled web UI daemon:
## NetWare DOS & OS/2 Utilities
mars_nwe only comes with the bare minimum required to login and map drives on DOS. You can get
some other utilities (such as flag and ncopy) from the NetWare DOS Client Kit v3.01
(released in 1990) which was made freely available by Novell. You can get it from
[this page](http://www.zx.net.nz/netware/client/dos-netx.shtml) (DSWIN3.ZIP and
DSWIN4.ZIP). These utilities would normally live in `/var/mars_nwe/SYS/public/`
```sh
sudo systemctl enable --now mars-nwe-webui.service
```
For OS/2, some of the client kits for OS/2 include updated 16bit OS/2 utilities
(usually the OS2UTIL disks) which may fill some gaps. Four EXEs (attach, login, map, slist)
should go in `/var/mars_nwe/SYS/login/OS2/` while the rest go in `/var/mars_nwe/SYS/public/OS2/`.
The runtime directory setup is handled by the service files, so the old manual `mkdir` steps are no longer needed when using systemd.
For other utilities such as SysCon you may need to obtain a proper copy of
NetWare 3.11 or 3.12.
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 servers this is normally done with the SYSCON utility for DOS. Mars_NWE doesn't
include any replacement for this utility and the original Novell one is probably out of bounds
unless you've got a NetWare 3 license.
One alternative is [WnSyscon](https://web.archive.org/web/20050828165409/http://www.amcsoft.demon.co.uk/wnsyscon.htm),
a 16bit windows SYSCON replacement. Novell actually bundled the registered version of
this with NetWare 3.2 as their [Graphical SYSCON Utility](https://support.novell.com/techcenter/articles/ana19980403.html).
You can grab the ShareWare version from [here](https://ftp.zx.net.nz/pub/archive/novell/3rdparty/admin/wnsyscon/) - it
seems to be fully functional aside from a few nag screens. Unfortunaltely buying a copy of NetWare 3.2 is probably
the only way to get a proper registered version of this today unless the original author can be contacted somehow.
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 available [here](doc) which may be of interest.
The old [linware mailing list archives](https://marc.info/?l=linware&r=1&w=2) may still
contain useful information as well. There is also a few additional notes [here](http://www.zx.net.nz/netware/server/mars.shtml).
If you can't find a solution to a problem in any of those places the only remaining
option is probably reading the code.
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.

76
doc/debian/init.d Normal file
View File

@@ -0,0 +1,76 @@
#! /bin/sh
#
# skeleton example file to build /etc/init.d/ scripts.
# This file should be used to construct scripts for /etc/init.d.
#
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl
#
# This file was automatically customized by dh-make on Sun, 15 Apr 2001 14:14:57 +0100
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/nwserv
NAME=nwserv
DESC="Netware server (mars-nwe)"
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
test -f /etc/mars-nwe/nwserv.conf || exit 0
if grep -q "^### NOT CONFIGURED YET ###" /etc/mars-nwe/nwserv.conf
then
echo "mars-nwe has not yet been configured."
exit 0;
fi
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
echo "Reloading $DESC configuration files."
start-stop-daemon --stop --signal 1 --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

9
doc/debian/logrotate Normal file
View File

@@ -0,0 +1,9 @@
/var/log/mars-nwe/* {
compress
copytruncate
rotate 5
daily
missingok
notifempty
}

25
doc/gentoo/mars-nwe.initd Normal file
View File

@@ -0,0 +1,25 @@
#!/sbin/openrc-run
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need net ipx
}
mkdir_marsnwedirs() {
[ -d /run/mars_nwe ] || mkdir -p /run/mars_nwe
}
start() {
ebegin "Starting Martin Stovers NetWare-Emulator"
mkdir_marsnwedirs
eval start-stop-daemon --start --quiet --exec /usr/sbin/nwserv --pidfile /run/mars_nwe/nwserv.pid
eend $?
}
stop() {
ebegin "Stopping Martin Stovers NetWare-Emulator"
start-stop-daemon --stop --quiet --pidfile /run/mars_nwe/nwserv.pid
eend $?
}

View File

@@ -0,0 +1 @@
d /run/mars_nwe 710 root root

9
doc/gentoo/smart.pamd Normal file
View File

@@ -0,0 +1,9 @@
#%PAM-1.0
auth include system-local-login
account include system-local-login
password include system-local-login
session include system-local-login

BIN
doc/logo-small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

BIN
doc/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

71
doc/nwserv.8 Normal file
View File

@@ -0,0 +1,71 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH NWSERV 8 "April 16, 2001"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
nwserv \- netware server
.SH SYNOPSIS
.B nwserv
.RI [ -V|-h|-f|-u|-k[q]|y ]
.br
.B nwserv
-a device frame netnum
.br
.B nwserv
-d device frame
.SH DESCRIPTION
This manual page documents briefly the
.B nwserv
command.
This manual page was written for the Debian GNU/Linux distribution
because the original program does not have a manual page.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBnwserv\fP is a program that...
.SH OPTIONS
A summary of options is included below.
.TP
.B \-V
Show version of program.
.TP
.B \-a
Add interface, frames = '802.2' '802.3' 'etherii' 'snap'
.TP
.B \-d
Delete interface.
.TP
.B \-h
Send HUP to main process. This causes it to reread nwserv.conf.
.TP
.B \-f
force send rip/sap and update routing int. table
.TP
.B \-u
Update internal routing table.
.TP
.B \-k
Stop the main process, and wait for it to exit.
.TP
.B \-kq
Stop the main process, but don't wait for it to exit.
.TP
.B y
Start testclient code.
.SH AUTHOR
This manual page was written by Paul Martin <pm@debian.org>,
for the Debian GNU/Linux system (but may be used by others).

88
doc/pld/nwserv.init Normal file
View File

@@ -0,0 +1,88 @@
#!/bin/sh
#
# nwserv MARS NetWare - NetWare compatible file and printer server
#
# chkconfig: 345 62 35
# description: MARS is a NetWare compatible file and printer server. It \
# lets you use a Linux machine as a file and print server for \
# NetWare based clients using NetWare's native IPX protocol suite.
# processname: nwserv
# processname: nwbind
# processname: ncpserv
# config: /etc/nwserv/nwserv.stations
# config: /etc/nwserv/nwserv.conf
# pidfile: /var/run/nwserv.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Get network config
. /etc/sysconfig/network
# Get service config - may override defaults
[ -f /etc/sysconfig/nwserv ] && . /etc/sysconfig/nwserv
# Check that networking is up.
if is_yes "${NETWORKING}"; then
if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
msg_network_down "MARS NetWare"
exit 1
fi
else
exit 0
fi
RETVAL=0
case "$1" in
start)
# Check if the service is already running?
if [ ! -f /var/lock/subsys/nwserv ]; then
msg_starting "MARS NetWare"
daemon nwserv
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/nwserv
else
msg_already_running "MARS NetWare"
fi
;;
stop)
# Stop daemons.
if [ -f /var/lock/subsys/nwserv ]; then
msg_stopping "MARS NetWare"
killproc nwserv
msg_stopping "MARS ncpserv"
killproc ncpserv
msg_stopping "MARS binder"
killproc nwbind
show "Stopping MARS: stopping all connections"
killproc nwconn
rm -f /var/lock/subsys/nwserv >/dev/null 2>&1
else
msg_not_running "MARS NetWare"
fi
;;
restart)
$0 stop
$0 start
exit $?
;;
reload|force-reload)
if [ -f /var/lock/subsys/nwserv ]; then
msg_reloading "MARS NetWare"
killproc nwserv -HUP
RETVAL=$?
else
msg_not_running "MARS NetWare" >&2
exit 7
fi
;;
status)
status nwserv
exit $?
;;
*)
msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
exit 3
esac
exit $RETVAL

2
mail

Submodule mail updated: 76d298045b...0ca75ab5e8

View File

@@ -6,9 +6,11 @@ After=network.target
Type=forking
RuntimeDirectory=mars_nwe
RuntimeDirectoryMode=0755
ExecStartPre=/bin/mkdir -p @MARS_NWE_LOG_DIR@
ExecStartPre=/bin/mkdir -p @MARS_NWE_PID_DIR@
PIDFile=@MARS_NWE_PID_DIR@/nwserv.pid
ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/nwserv
ExecStop=/bin/kill -TERM $MAINPID
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

2
smart

Submodule smart updated: af08efb6ad...feb12eb0c5