Columns


On the Networks

Using UNIX for a BBS

Sydney S. Weinstein


Sydney S. Weinstein, CDP, CCP is a consultant, columnist, lecturer, author, professor, and President of Myxa Corporation, an Open Systems Technology company specializing in helping companies move to and work with Open Systems. He can be contacted care of Myxa Corporation, 3837 Byron Road, Huntingdon Valley, PA 19006-2320, or via electronic mail using the Internet/USENET mailbox syd@Myxa.com (dsinc!syd for those that cannot do Internet addressing).

MS-DOS is currently the system of choice for BBSs. However, MS-DOS is inherently single-tasking, making it hard to run a DOS-based BBS with multiple users without tricks, or running multiple computers. UNIX is a multitasking system, and it also supports file protection — something that could be pretty handy for a multi-user BBS. But the UNIX world has been lacking in decent BBS software.

Volume 42, Issues 23-35 of comp.sources.misc puts an end to this situation. Volker Schuermann <Volker. Schuermann@unnet.wupper. de> has submitted the latest update to his mbox UNIX BBS software. Its full name is ix/MBox BBS Version 2.1, and he has released it into the public domain to be distributed, copied, modified, and of course used as free software.

ix/Mbox is a System-V-style UNIX package that runs on SVR3 types (SCO, ISC, HPUX, etc.), SVR4 types (LINUX, UNIXWARE, AIX, Solaris, etc.) and System 7 types (386er, MINIX). ix/Mbox requires USENET network news transport software (B and C news styles are supported directly) and Mail and UUCP services.

Here's a few of ix/Mbox's more attractive features:

ix/Mox has a lot more features that I don't have room to mention. What's really new in this release is the English documentation and the support for the more recent UNIX versions.

More from misc

Continuing with comp. sources.misc, a new release of astrolog was published in Volume 42, Issues 1-16. Contributed by Walter D. Pullen <cruiser1@u. washington. edu>, astrolog is an extensive and customizable astrology chart calculation program. astrolog can do standard natal wheel charts, aspects, midpoints, relationship charts, transits, progressions, and astro-graphy, as well as local horizon, solar system orbit, and various influence charts. It supports different zodiacs, central planets, twelve different house systems, and can display positions of asteroids, transneptunians, and several dozen stars. It supports graphics charts in the X-Window environment, and when compiled on PCs it can do EGA/VGA/SVGA screen graphics. astrolog allows you to animate charts smoothly forward and backward and in real time. Some charts access the program's own internal map of the world, which you can also use to create a nice animation of a rotating globe. You can generate graphics files in X11 bitmap, PC bitmap, and other formats. astrolog can also do a simple form of deduced interpretations.

New features of version 4.10 include the ability to access, if available, ephemeris files covering over 8,000 years for increased accuracy. Also, you can now generate graphics files in PostScript and MS-Windows metafile formats, in addition to bitmaps. The graphic wheel charts are much enhanced, and now allow production of graphical ephemeris and biorhythm charts. The program interprets more chart types and provides various new influence charts, planetary rising and setting times, and calendars. This version includes a bunch of other enhancements (e.g. PC mouse support), several bug fixes, and some general performance improvements.

Lutz Prechelt <prechelt@ira.uka.de> contributed an interesting set of perl and shell scripts to analyze the readability of C programs, as Volume 42, Issues 20-22. ccount performs syntactic analysis of C programs without running the preprocessor. ccount reports on the length of modules, functions, blocks, ifs, whiles, and switches; number of control structures; number of operators in expressions; nesting depth; and a few other characteristics. It compares the program being analyzed against statistics gathered from many prior analysis runs.

Because of problems occurring in comp.sources.reviewed, the author of c2man has switched to comp.sources.misc. He contributed the latest version so everyone could catch up on the patches. Posted in Volume 42, Issues 55-63, version 2.0 Patchlevel 27 is a program for generating UNIX-style manual pages in nroff/ troffman, TeXinfo or LaTeX format directly from ordinary comments embedded in C source code. c2man should run on virtually any UNIX-like system, OS/2, or MS-DOS. This posting also includes some sample comment styles that are compatible with the program.

On the patch front, the shell-independent environment variable program envv received patches from David F. Skoll <dfs@doe.carleton.ca>. Patch 1, Volume 42, Issue 17, modified the path manipluation commands and added zsh support. Patch 2, Volume 42, Issue 70, added local variable support and support to read directives from standard input. Patches 3 and 4, Volume 42, Issue 95 and 96, fix a bug which prevented multiple add/move commands from working correctly.

Mike Gleason <mgleason@cse.unl.edu> issues patch 1 to ncftp for Volume 42, Issue 118. ncftp is an alternate user interface to the file transfer protocol of the IP networking stack. ncftp includes only bug fixes, but it does wrap about ten unofficial bug fix patches into a single official patch.

David F. Skoll <dfs@doe.carleton.ca> submitted a patch to remind, his calendar/alarm replacement. remind produces alarms, reminders and PostScript calendars. Patch 13, Volume 42, Issue 64, adds psmoon to annotate PostScript moon icons, a time command-line argument to allow for testing remind scripts by forcing remind to believe it's a specific system time, and the realnow function. Of course, several bugs were also fixed.

Christopher Phillips <pefv700@chpc.utexas.edu> issued Patch 3 to his dynamic database package, ddb. Posted in Volume 42, Issue 67, this is a bug fix patch fixing errno setting and a problem with NULL in ddb_new.

Concurrent Configuration Support

The big release in comp.sources.unix was bcs-2.0 from Jay Berkenbilt <ejb@ERA. COM>. His Baseline Configuration System was posted in Volume 28, Issues 1-26. The prior release was a "prerelease" in alt.sources. BCS helps groups of developers share and manage an RCS- or SCCS-controlled group of files. BCS tries to solve some of the same problems as CVS, adding concurrency to an inherently non-concurrent configuration management system, but it takes a different approach. BCS acts as a front end to the standard commands of the underlying configuration management system; it does not replace the underlying system. Also, BCS does what it does by managing symbolic link farms that implement shared RCS/SCCS logs. BCS also provides tools that help you keep your farm synchronized with the "baseline" and allow you to keep only the required parts of the main source area in your private work area at a time.

Clark D. Thomborson <cthombor@theory.lcs.mit.edu> contributed an update to mrandom-3.0 for Volume 28, Issues 27-32. mrandom is a package of routines intended to help anyone writing machine-independent C-language programs that call pseudorandom number generators (RNGs). mrandom provides a standard interface to nine different RNGs, making it easier to write efficient programs in which the choice of RNG algorithm is deferred until run time. mrandom also provides a set of commonly-used RNG utility functions as well as a small suite of RNG tests.

Dennis O'Neill <denio@scubed.scubed.com> contributed a utility to expand the file names in an "ls-lR" output into full path names. Posted in Volume 28, Issue 33, fullpath is useful for converting the 1s-lR files from ftp sites to make grepping for the location of packages for downloading easier. Since ls-lR format only places the directory name above the file names, grepping only yields the file name. Converting the format allows the grep to show the full path name.

The annual posting of strftime-6.1 required a follow-up this year. A reposting with some bug fixes appeared in Volume 27, Issue 34 from Arnold Robbins <arnold@skeeve.atl.ga.us>. strftime is a POSIX-compliant implementation of conversion from UNIX time format to character strings.

The update to version 0.75 of D. J. Bernstein's <djb@silverton.berkeley.edu> fingerprint package was posted in Volume 28, Issue 38. Previewed in alt.sources, fingerprint is a powerful, uniform interface to MD5, a standard CRC32, Snefru-8, and a combined universal fingerprint, in highly efficient library form or as easy-to-use programs. fingerprint allows for the generation of difficult-to-spoof checksums to detect changes to files and to verify that a downloaded file matches the original.

As a companion utility, Bernstein also contributed fprintls for Volume 28, Issue 39. fprintls is a set of patches to the NET-BSD ls command to support generating fingerprints on the files when given the -X option.

On the patch front, xinetd-2.2.1 received patch 3 from Panos Tsirigotis <panos@cs. colorado.edu> in Volume 27, Issue 209. xinetd is an inetd replacement with access control and logging. Patch 3 fixes problems in dgram_echo and finger_shutdown.

Chris Lewis <clewis@ferret. ocunix.on.ca> issued patch 17 for psroff-3.0 in Volume 27, Issue 210. psroff is a troff post processor to covert the output of troff to currently available printers. Patch 17 is a bug fix release with only one new feature, the addition of ljprev to preview HP Laserjet II output on X displays. Fixes include changes to avoid an argument name clash with groff, a rearangement of psrofflib.S to aid local configuration, and some draw routine fixes.

Reviewed is Down, Others Quiet

The moderator for comp.sources. reviewed has resigned. Since nothing has been posted for a long time, I'll stop mentioning this group until things pick up again. Both comp.sources.x and comp.sources.games. were quiet with no postings during the past two months.

Previews from alt.sources

Things are still pretty quiet in alt.sources as well, but here are some highlights of what is to come in the mainstream groups.

The df program on most UNIX system varies in its abilities and output format. Brad Lanam <bll@seer.gentoo.combll@ seer.-gentoo.com> posted an improved df on April 5, 1994, in one part. di version 1.6 is an extended df utility. It outputs all values in kilobytes and supports specification of file system by device, mount point, or file residing on the file system. di also supports command-line specified format strings for varying the output information and format.

Gert Doering <gert@greenie.muc.de> posted the latest version, 0.20, of mgetty+sendfax on April 24, 1994 in 21 parts. It supports extended bi-directional getty operations including full modem control and the reception and transmission of fax calls as well as data calls. If the modem supports voice operations mgetty also becomes a full-featured answering machine. New in this version is better fifo support, extended error checking, a more flexible login dispatcher, improved logging, SVR4.2 support, and support for distinctive ringing.

metamail is the de-facto MIME (Multimedia Internet Mail Extensions) browser. However, it's a big system. Gisle Hannemyr <gisle@oslonett.no> posted mimelite on May 20, 1994, in one part. mimelite is a simple, lightweight library written in ANSI C that supports the parsing of MIME headers and encoding/decoding of body parts, suitable for inclusion in offline mail readers. If you develop mail and newsreader software (user agents), you can link mimelite with your own program to make it support a significant subset of MIME (namely the Content-Transfer-Encodings 7BIT, 8BIT, BASE64 and QUOTED-PRINTABLE encodings). mimelite also supports conversion between the ISO Latin 1 character set used for European character sets on Usenet/Internet and PC-based character sets (e.g. Macintosh, IBM CP-437 and CP-850). This posting also includes unmime, a standalone program to decode MIMEd messages encoded with BASE64 or QUOTED-PRINTABLE encoding. The mimelite library is general enough to work in a number of contexts, but it has been designed to work well on MS-DOS (where memory is a scarce resource). mimelite's main application is intended to help extend MS-DOS-based "offline-readers" for RFC-822 and RFC-1036 conformant messages to also support RFC-1521 and RFC-1522.