+++ /dev/null
-GNU GENERAL PUBLIC LICENSE
-
-Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is intended
-to guarantee your freedom to share and change free software--to make sure
-the software is free for all its users. This General Public License applies
-to most of the Free Software Foundation's software and to any other program
-whose authors commit to using it. (Some other Free Software Foundation
-software is covered by the GNU Library General Public License instead.) You
-can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the freedom
-to distribute copies of free software (and charge for this service if you
-wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs; and that
-you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These
-restrictions translate to certain responsibilities for you if you distribute
-copies of the software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or
-for a fee, you must give the recipients all the rights that you have. You
-must make sure that they, too, receive or can get the source code. And you
-must show them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If
-the software is modified by someone else and passed on, we want its
-recipients to know that what they have is not the original, so that any
-problems introduced by others will not reflect on the original authors'
-reputations.
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will
-individually obtain patent licenses, in effect making the program
-proprietary. To prevent this, we have made it clear that any patent must be
-licensed for everyone's free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms
-of this General Public License. The "Program", below, refers to any such
-program or work, and a "work based on the Program" means either the Program
-or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter,
-translation is included without limitation in the term "modification".) Each
-licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program
-is not restricted, and the output from the Program is covered only if its
-contents constitute a work based on the Program (independent of having been
-made by running the Program). Whether that is true depends on what the
-Program does.
-
-1. You may copy and distribute verbatim copies of the Program's source code
-as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-License and to the absence of any warranty; and give any other recipients of
-the Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions:
-
- * a) You must cause the modified files to carry prominent notices stating
- that you changed the files and the date of any change.
-
- * b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any part
- thereof, to be licensed as a whole at no charge to all third parties
- under the terms of this License.
-
- * c) If the modified program normally reads commands interactively when
- run, you must cause it, when started running for such interactive use
- in the most ordinary way, to print or display an announcement including
- an appropriate copyright notice and a notice that there is no warranty
- (or else, saying that you provide a warranty) and that users may
- redistribute the program under these conditions, and telling the user
- how to view a copy of this License. (Exception: if the Program itself
- is interactive but does not normally print such an announcement, your
- work based on the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you
-distribute them as separate works. But when you distribute the same sections
-as part of a whole which is a work based on the Program, the distribution of
-the whole must be on the terms of this License, whose permissions for other
-licensees extend to the entire whole, and thus to each and every part
-regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise
-the right to control the distribution of derivative or collective works
-based on the Program.
-
-In addition, mere aggregation of another work not based on the Program with
-the Program (or with a work based on the Program) on a volume of a storage
-or distribution medium does not bring the other work under the scope of this
-License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1
-and 2 above provided that you also do one of the following:
-
- * a) Accompany it with the complete corresponding machine-readable source
- code, which must be distributed under the terms of Sections 1 and 2
- above on a medium customarily used for software interchange; or,
-
- * b) Accompany it with a written offer, valid for at least three years,
- to give any third party, for a charge no more than your cost of
- physically performing source distribution, a complete machine-readable
- copy of the corresponding source code, to be distributed under the
- terms of Sections 1 and 2 above on a medium customarily used for
- software interchange; or,
-
- * c) Accompany it with the information you received as to the offer to
- distribute corresponding source code. (This alternative is allowed only
- for noncommercial distribution and only if you received the program in
- object code or executable form with such an offer, in accord with
- Subsection b above.)
-
-The source code for a work means the preferred form of the work for making
-modifications to it. For an executable work, complete source code means all
-the source code for all modules it contains, plus any associated interface
-definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel,
-and so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with
-the object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy,
-modify, sublicense or distribute the Program is void, and will automatically
-terminate your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed
-it. However, nothing else grants you permission to modify or distribute the
-Program or its derivative works. These actions are prohibited by law if you
-do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance of
-this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms
-and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein. You are not responsible
-for enforcing compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot distribute so
-as to satisfy simultaneously your obligations under this License and any
-other pertinent obligations, then as a consequence you may not distribute
-the Program at all. For example, if a patent license would not permit
-royalty-free redistribution of the Program by all those who receive copies
-directly or indirectly through you, then the only way you could satisfy both
-it and this License would be to refrain entirely from distribution of the
-Program.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents
-or other property right claims or to contest validity of any such claims;
-this section has the sole purpose of protecting the integrity of the free
-software distribution system, which is implemented by public license
-practices. Many people have made generous contributions to the wide range of
-software distributed through that system in reliance on consistent
-application of that system; it is up to the author/donor to decide if he or
-she is willing to distribute software through any other system and a
-licensee cannot impose that choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original
-copyright holder who places the Program under this License may add an
-explicit geographical distribution limitation excluding those countries, so
-that distribution is permitted only in or among countries not thus excluded.
-In such case, this License incorporates the limitation as if written in the
-body of this License.
-
-9. The Free Software Foundation may publish revised and/or new versions of
-the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally.
-
-NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
-THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
-THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
-PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
-LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
-THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-END OF TERMS AND CONDITIONS
-
-How to Apply These Terms to Your New Programs
-
-If you develop a new program, and you want it to be of the greatest possible
-use to the public, the best way to achieve this is to make it free software
-which everyone can redistribute and change under these terms.
-
-To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively convey the
-exclusion of warranty; and each file should have at least the "copyright"
-line and a pointer to where the full notice is found.
-
-one line to give the program's name and an idea of what it does.
-Copyright (C) 19yy name of author
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this when
-it starts in an interactive mode:
-
-Gnomovision version 69, Copyright (C) 19yy name of author
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
-type `show w'. This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c'
-for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may be
-called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
-Yoyodyne, Inc., hereby disclaims all copyright
-interest in the program `Gnomovision'
-(which makes passes at compilers) written
-by James Hacker.
-
-signature of Ty Coon, 1 April 1989
-Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General Public
-License instead of this License.
+++ /dev/null
-
- Citadel/UX 5.53 and later include support for Pluggable Authentication
-Modules (PAM.) However, we don't recommend enabling this feature (./configure
---with-pam) unless you understand exactly how it will affect your system's
-security. Specifically, the system administrator must supply a configuration
-for every authentication service which uses PAM. We have automated this process
-for Linux by supplying a file which is placed in /etc/pam.d during the
-installation process, but not on other systems, for 2 reasons:
-
- 1) Other systems don't have /etc/pam.d; instead they use one big
-configuration file, usually /etc/pam.conf. It's not quite as trivial to
-automatically modify this file in a safe and secure fashion.
-
- 2) Other systems have a different set of available authentication
-modules; they are likely to lack all three of the ones we use in the Linux
-configuration. We don't have enough information about the features of the
-authentication modules on other platforms to be able to provide secure
-configurations.
-
- That said, the configuration we've provided should work on at least
-Red Hat Linux 4.2-5.2, (although we don't recommend building Citadel/UX on Red
-Hat 4.x due to libc thread-safety issues) and if you understand PAM
-configuration on your system, feel free to build Citadel/UX with PAM support,
-as long as you realize that YOU'RE ON YOUR OWN.
+++ /dev/null
- Citadel/UX release notes -- version 5.50
-
- ALL FURTHER CHANGES WILL BE IN THE "ChangeLog" FILE.
-
- Please view that file for further information.
-
-
-
- Citadel/UX release notes -- version 5.01 ("Scooby")
-
- Major overhaul. The server is now multithreaded; you run one copy of it
-when you bring up your system, rather than having inetd start a separate
-server process for each session.
-
- Access level 0, which was formerly "marked for deletion," has been changed
-to "deleted." When a user record is marked access level 0, it is then
-considered a vacant space in the userlog rather than a user entry. When
-new users are added to the system, the server first searches for these vacant
-slots before appending to the end of the file.
-
- The setup program has been overhauled. It can now operate in three different
-modes: a curses-based mode, a mode based on Savio Lam's "dialog" program, and
-of course dumb-terminal mode.
-
- All system messages (hello, newuser, etc.) can now be edited from a client
-program. We now also have support for graphics images, including graphics
-tied to various system objects (such as pictures of each user).
-
- Much more support for server graphics is in place. This is currently used
-in WebCit; expect other clients to do more with graphics in the future.
-
- There really is too much to list here. More documentation will be written
-as time permits.
-
-
- Citadel/UX release notes -- version 4.11
-
- Smarter usage of external editors. EDITOR_EXIT is no longer needed. Instead,
-the program examines temp files before and after they are edited, in order to
-determine whether the user saved the file. Modified files are saved, unchanged
-files are aborted.
-
- External editors work for Bio and Room Info files as well.
-
- The TCP/IP based client (citatcp, linked against ipc_c_tcp.o) now supports
-connection to a Citadel server from behind a SOCKS v4 firewall without having
-to "socksify" the program first.
-
- Added a few more commands to the chat server.
-
-
- Citadel/UX release notes -- version 4.10
-
- Floors now fully supported in both client and server.
-
- Now supports "bio" files for each user - free-form text files in which
-users may record personal info for others to browse.
-
- <.G>oto and <.S>kip now have more advanced logic for partial matches. A
-left-aligned match carries a heavier weight than a mid-string match. For
-example, <.G> TECH would prefer "Tech Area>" over "Biotech/Ethics>".
-
-
- Citadel/UX release notes -- version 4.03
-
- There are now commands available for users with their own copy of the client
-to upload and download directly to their local disk, without having to use
-a protocol such as Zmodem. These commands are disabled by default, but can
-easily be enabled by changing citadel.rc.
-
- Multiuser <C>hat is now fully integrated into both the client and server.
-
- New <P>aging functionality allows users to send each other near-real-time
-"express" messages.
-
-
- Citadel/UX release notes -- version 4.02
-
- The "rnews" program has been renamed to "rcit". Its usage has not changed;
-it still accepts UseNet-style news by default. Use the -c option to read in
-Citadel (IGnet) format data.
-
- The text client now compiles and works on systems using BSD-style <sgtty.h>
-in addition to SysV-style <termio.h>. This should be a big help for many.
-
-
- Citadel/UX release notes -- version 4.01
-
- Remember to always run setup again when using a new version of the code, to
-bring your data files up to date! No data will be lost.
-
- This release is primarily to clean up loose ends and fix assorted small
-bug reports from the users of 4.00. Also, the code is slowly being reworked
-to compile cleanly under ANSI C compilers even when warning messages are
-set to the highest level.
-
- -> The client now sends periodic "keep-alive" messages to the server during
-message entry, with both internal and external editors. This should keep
-sessions from locking up when a user hits <S>ave after typing for a long time.
-
- -> Stats now has a "-b" option for batch mode (see utils.doc)
- It also has a "-p" option to only print the post-to-call ratios.
-
-
- Citadel/UX release notes -- version 4.00
-
- This is the long-awaited client/server version of Citadel. Feedback is
-encouraged!
-
- NOTE: if you are upgrading to 4.00 from a 3.2x release, you should run setup
-to bring your data files up to date. Setup will prompt you to run the
-"conv_32_40" program; go ahead and do that.
-
- If you are upgrading to 4.00 from a 3.1x release, setup will not tell you
-what to do! Here is the correct procedure:
- 1. Run the "conv_31_32" program
- 2. Run setup
- 3. Run "conv_32_40"
-
- If you are currently running a version earlier than 3.10, you must erase your
-data files and bring up a new system.
-
- A new series of commands to manipluate files in a room's directory:
- <.A>ide <F>ile <D>elete -- delete it
- <.A>ide <F>ile <M>ove -- move it to another room
- <.A>ide <F>ile <S>end -- send it over the network
-
- Changed the way the main Citadel program sends network mail, both to other
-Citadels and through the RFC822 gateway. Everything now gets fed through
-netproc, which is responsible for figuring out the routing and doing the
-actual processing. It also gets rid of quite a bit of redundant code.
-
-
- Citadel/UX release notes -- version 3.23
-
- NOTE: if you are upgrading to 3.23 from another 3.2x release, you MUST run
-setup to bring your data files up to date. Run setup and answer "no" when it
-asks you if you want to create the various files. It will see your old files
-and bring them up to date. (If you are doing a new installation, of course,
-you'll be creating all new files anyway.)
-
- The built-in message editor has been completely rewritten, and is now the
-preferable editor to use. It generates messages that will be formatted to
-the reader's screen width, as in other implementations of Citadel (and as
-Citadel/UX used to do until a few versions ago -- there was a need to put
-that functionality back in).
-
- Users are now prompted for their screen width AND height.
-
- We can now talk to C86NET compliant networks. Get the "cit86net" package
-if you wish to do this.
-
- Rooms can now optionally be "read only," which means that only Aides and
-utilities such as the networker and aidepost can post to the room.
-
- Kernel-based file locking is now fully supported for the purpose of locking
-the message base during writes. If your kernel supports the flock() system
-call, you can tell the compiler to use it by setting a flag in the Makefile.
-If your kernel supports file locking using fcntl(), this will automatically be
-detected and utilized. If your kernel supports neither, the program will use
-a fully portable (but less reliable) file locking scheme.
-
- An external editor is no longer required for the .AI command.
-
-
- Citadel/UX release notes -- version 3.22
-
- The "setup" program is now a curses-based, full-screen utility that's very
-easy to use. Of course, if you have trouble compiling curses-based programs
-on your system, you can compile it to run the old way.
-
-
- Citadel/UX release notes -- version 3.21
-
- I'm now running my system under Linux, since that seems to be what everyone
-is using these days. As a result, you'll find that version 3.21 will compile
-very cleanly under Linux.
-
-
- Citadel/UX release notes -- version 3.20
-
- Lots of improvements and new features are here. It seems that assorted
-hacks and variations of Citadel/UX have percolated around the country --
-this 3.2 release should supersede them and get everyone running (hopefully)
-off the same code. I've looked around at the various mods people have made
-to Citadel/UX and tried to implement the most-often-added and most-requested
-features to the stock distribution. If there's a feature you want/need that
-still isn't here, drop me a line and I'll see what I can do about adding it
-to the next release.
-
-
-
-
- For more information, visit the Citadel/UX web site at UNCENSORED! BBS
- http://uncnsrd.mt-kisco.ny.us
-
-
--- /dev/null
+GNU GENERAL PUBLIC LICENSE
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is intended
+to guarantee your freedom to share and change free software--to make sure
+the software is free for all its users. This General Public License applies
+to most of the Free Software Foundation's software and to any other program
+whose authors commit to using it. (Some other Free Software Foundation
+software is covered by the GNU Library General Public License instead.) You
+can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for this service if you
+wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or
+for a fee, you must give the recipients all the rights that you have. You
+must make sure that they, too, receive or can get the source code. And you
+must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If
+the software is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original, so that any
+problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program
+proprietary. To prevent this, we have made it clear that any patent must be
+licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the Program
+or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter,
+translation is included without limitation in the term "modification".) Each
+licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program
+is not restricted, and the output from the Program is covered only if its
+contents constitute a work based on the Program (independent of having been
+made by running the Program). Whether that is true depends on what the
+Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code
+as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+License and to the absence of any warranty; and give any other recipients of
+the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+ * a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ * b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any part
+ thereof, to be licensed as a whole at no charge to all third parties
+ under the terms of this License.
+
+ * c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the most ordinary way, to print or display an announcement including
+ an appropriate copyright notice and a notice that there is no warranty
+ (or else, saying that you provide a warranty) and that users may
+ redistribute the program under these conditions, and telling the user
+ how to view a copy of this License. (Exception: if the Program itself
+ is interactive but does not normally print such an announcement, your
+ work based on the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you
+distribute them as separate works. But when you distribute the same sections
+as part of a whole which is a work based on the Program, the distribution of
+the whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise
+the right to control the distribution of derivative or collective works
+based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with
+the Program (or with a work based on the Program) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+ * a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2
+ above on a medium customarily used for software interchange; or,
+
+ * b) Accompany it with a written offer, valid for at least three years,
+ to give any third party, for a charge no more than your cost of
+ physically performing source distribution, a complete machine-readable
+ copy of the corresponding source code, to be distributed under the
+ terms of Sections 1 and 2 above on a medium customarily used for
+ software interchange; or,
+
+ * c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed only
+ for noncommercial distribution and only if you received the program in
+ object code or executable form with such an offer, in accord with
+ Subsection b above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with
+the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed
+it. However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance of
+this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms
+and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein. You are not responsible
+for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot distribute so
+as to satisfy simultaneously your obligations under this License and any
+other pertinent obligations, then as a consequence you may not distribute
+the Program at all. For example, if a patent license would not permit
+royalty-free redistribution of the Program by all those who receive copies
+directly or indirectly through you, then the only way you could satisfy both
+it and this License would be to refrain entirely from distribution of the
+Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents
+or other property right claims or to contest validity of any such claims;
+this section has the sole purpose of protecting the integrity of the free
+software distribution system, which is implemented by public license
+practices. Many people have made generous contributions to the wide range of
+software distributed through that system in reliance on consistent
+application of that system; it is up to the author/donor to decide if he or
+she is willing to distribute software through any other system and a
+licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an
+explicit geographical distribution limitation excluding those countries, so
+that distribution is permitted only in or among countries not thus excluded.
+In such case, this License incorporates the limitation as if written in the
+body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of
+the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
+PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey the
+exclusion of warranty; and each file should have at least the "copyright"
+line and a pointer to where the full notice is found.
+
+one line to give the program's name and an idea of what it does.
+Copyright (C) 19yy name of author
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when
+it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) 19yy name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'. This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c'
+for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written
+by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.
+++ /dev/null
- Citadel/UX Installation Procedure
- See copyright.doc for copyright information
-
-
- OVERVIEW
-
- Citadel/UX is an advanced, multiuser, client/server, room-based BBS
-program. It is designed to handle the needs of both small dialup systems and
-large-scale Internet-connected systems. It was originally developed on an
-Altos system running Xenix, and has been installed and tested on various
-Unix and Unix-like platforms. The author's current development environment
-(and BBS) is a Linux/GNU system. The current distribution includes:
-
- - The Citadel/UX server (this is the back end that does all processing)
- - A text-based client program designed with the traditional Citadel "look
- and feel" (room prompts, dot commands, and the like)
- - A networker that can share rooms and email between multiple systems.
- Replication can be performed via TCP/IP or any external transport.
- - Setup programs
- - A rich set of utilities for system administration and maintenance
- - Documentation
-
- Some knowledge of the Unix system is necessary to install and manage the
-system. It is preferable that the sysop have superuser access to the operating
-system. The following are required to install Citadel/UX:
-
- - A Unix operating system (Linux, BSD, Solaris, DEC Unix, etc.)
- - C compiler (such as gcc or egcs) and "make"
- - POSIX threads
- - TCP/IP
- - The "gdbm" record manager
- - Enough disk space to hold all of the programs and data
-
- If you are running Citadel/UX on a Linux system, it is STRONGLY recommended
-that you use a version based on glibc v2 (also called libc6). libc5 contains
-a number of thread safety problems. Furthermore, most modern Linux
-distributions have libc6, pthreads, gdbm, and the compiler already installed
-and integrated for you.
-
-
- NOW AVAILABLE:
-
- - "WebCit", a gateway program to allow full access to Citadel/UX BBS's
- via the World Wide Web. Interactive access through any Web browser.
-
- COMING SOON:
-
- - Newer and better GUI based clients.
-
-
-
- EVERYTHING IN ITS PLACE...
-
- Hopefully you've unpacked the distribution archive into its own directory.
-This is the directory in which all Citadel files are located and in which all
-BBS activity will take place. Several subdirectories have already been created
-during the unpacking process, and others may be created by the software if
-needed.
-
- Make sure you have the "gdbm" record manager installed on your system, and
-that you have installed the libraries and headers required to compile gdbm
-programs. Likewise, if your operating system uses a separate library to
-support POSIX threads, make sure that library is installed as well.
-
-
- THE BBS LOGIN
-
- There will be one account in /etc/passwd which all BBS users will use to
-login to the system. This account is typically called "bbs" or "citadel" or
-something to that effect. You will tell Citadel what the user-id of that
-account is, and when someone logs in under that account, Citadel will prompt
-for a user name.
-
-The BBS login should have a unique uid. The home directory should be the
-one your BBS resides in (in this example we will use /usr/bbs) and the shell
-should be either "citadel" in that directory, or a script that will start up
-citadel (you may wish to set up an external text editor; see below). Example:
-
- bbs::100:1:BBS Login:/usr/citadel:/usr/citadel/citadel
-
- When you run setup later, you will be required to tell it what the BBS
-login's numeric user ID is, so it knows what user to run as. If you create
-an account called bbs, guest, or citadel, the setup program will automatically
-pick up the user ID by default.
-
- For all other users in /etc/passwd, Citadel will automatically set up an
-account using the "full name" field. No password is required, since it
-assumes that if a user is logged in, he/she has already entered a password.
-Note that this does have to be enabled at compile time (see ENABLE_AUTOLOGIN
-in the Makefile). If such an account needs to be accessed remotely (such as
-from client software), these users can use *either* their Citadel login name
-or their login name on the host computer, and their password on the host
-computer.
-
-
- COMPILING THE PROGRAMS
-
-
- You can easily compile Citadel with the following commands:
-
- ./configure
- make
- make install
-
- The 'configure' script will generate a Makefile from the Makefile.in, and
-it will also write the file "sysdep.h" to your Citadel directory. Please do
-not edit sysdep.h or Makefile.in yourself. The configure script will figure
-out your system dependencies and set everything correctly.
-
- By default, the Citadel system will install in /usr/local/citadel. If you
-wish to place it in a different directory, you can instead do:
-
- ./configure --prefix=/opt/citadel (or whatever)
-
-
- File permissions are always a bother to work with. You don't want the
-board to crash because someone couldn't access a file, but you also don't
-want shell users peeking into the binaries to do things like reading others'
-mail, finding private rooms, etc. The Citadel server needs to be started
-as root in order to bind to a privileged port, but as soon as its
-initialization is finished, it changes its user ID to your BBS user ID in
-order to avoid security holes.
-
-
- THE CITADEL.RC FILE
-
- This is a change from the way things were done before. All client-side setup
-is in a "citadel.rc" file. The standard client looks for this file in:
- 1. $HOME/.citadelrc
- 2. /usr/local/lib/citadel.rc
- 3. <compiled BBSDIR>/citadel.rc
-
- The next couple of sections deal with client-side configuration.
-
- USING AN EXTERNAL EDITOR FOR MESSAGES
-
- Citadel/UX has a built-in message editor. However, you can also use your
-favorite text editor to write messages. To do this you simply put a line in
-your citadel.rc file like:
-
-editor=/usr/bin/vi
-
- ...would make Citadel call the vi editor when using the .<E>nter <E>ditor
-command. You can also make it the default editor for the <E>nter command by
-editing the citadel.rc file. (WARNING: external editors on public systems
-can create a security hole. Make sure there is absolutely no way for users
-to drop into the shell from the editor, or save files other than the temp file
-they are editing!)
-
- Using this mechanism, shell users can pick their favorite editor for Citadel.
-BBS users can use external editors too; just have the bbs login call a script
-that sets the variables and then calls citadel. I used to recommend using
-an external editor as the default, but the built-in editor is now a bit more
-robust, so the use of an external editor is definitely optional. By the
-way, be VERY careful what editor you choose and how you set up its options.
-Giving the general public to an editor like vi or emacs can open up lots of
-security holes.
-
-
- PRINTING MESSAGES
-
- Citadel/UX can send messages to a printer, or just about anywhere else in
-your system. The variable PRINTCMD in citadel.rc specifies what command you
-use to print. Text is sent to the standard input (stdin) of the print command.
-
- So if you did this:
-
-printcmd="nl|pr|lpr -dlocal"
-
- ...that would add line numbers, then paginate, then print on the printer
-named "local". There's tons of stuff you can do with this feature. For
-example, you could use a command like "cat >>$HOME/archive" to save copies
-of important messages in a textfile.
-
-
- SETUP AND LOGIN
-
- Before logging in for the first time, you must run the setup program. Type
-"./setup" to begin this procedure.
-
- The setup program will ask you what directory to place your data files in.
-You can use this functionality to keep your programs and data in different
-directories, or to run more than one BBS on the same computer. If you don't
-use the default directory (the one specified in the Makefile), remember to
-specify the directory name again when you start up the server later on.
-
- If you've used older versions of Citadel/UX before, you'll notice that the
-setup program does much less than it did before. It won't create any empty
-data files; that's now done automatically by the server the first time it
-starts. It also asks only a few questions; that's because the rest of the
-global configuration is now done from within Citadel.
-
-
- PREPARING TO START THE SERVER
-
- The files /etc/services and /etc/inittab must be modified in order to run
-the Citadel server. The setup program will perform the correct modifications
-for you if you allow it to. If you'd prefer to do it manually, or if you're
-interested in what these modifications are, then read on...
-
- Before you can use Citadel, you must define the "citadel" service to your
-system. This is accomplished by adding a line to your /etc/services file that
-looks something like this:
-
- citadel 504/tcp # Citadel/UX Server
-
- 504 is the port number officially designated by the IANA for use by Citadel.
-There should not be any need to use a different port number, unless you are
-running multiple BBS's on the same computer and therefore need a different
-port for each one.
-
- The next step is to arrange for the server to start. The "citserver"
-program is the main Citadel server. Before we cover the recommended method of
-starting the server, let's examine its usage options:
-
- citserver [-hHomeDir] [-xDebugLevel] [-tTraceFile] [-d] [-f]
-
- The options are as follows:
-
- -hHomeDir - the directory your BBS data files live in. This should, of
-course, be a directory that you've run the "setup" program against to set up
-some data files. If a directory is not specified, the directory name which
-was specified in the Makefile will be used.
-
- -xDebugLevel - Set the verbosity of trace messages printed. The available
-debugging levels are:
- 1 - Internal errors (failed thread creation, malloc problems, etc.)
- 2 - Network errors (broken sockets, failed socket creation)
- 3 - Begin and end of sessions, startup/shutdown of server
- 5 - Server commands being sent from clients
- 7 - Entry and exit of various functions
- 8 - Entry and exit of critical sections
- 9 - Various debugging checkpoints (insanely verbose)
-
- -tTraceFile - Tell the server where to send its debug/trace output.
-Normally it is sent to stdout.
-
- -d - Run as a daemon. This switch would be necessary if you were
-starting the Citadel server, for example, from an rc.local script (which is
-not recommended, because this won't allow the server to automatically restart
-when it is shut down).
-
- -f - Defragment all the databases upon startup. This isn't
-normally necessary due to the nature of the data stored in Citadel, but the
-option is provided in case you need it.
-
-
- The preferred method of starting the Citadel server is to place an entry in
-your /etc/inittab file. This will conveniently bring the server up when your
-system is up, and terminate it gracefully when your system is shutting down.
-The exact syntax for your system may vary, but here's the entry that I use on
-my Linux system:
-
- cit:2345:respawn:/appl/citadel/citserver -h/appl/citadel -t/dev/tty6 -x3
-
- What I've done here is to set debugging level 3, and have the trace stuff
-output to one of my virtual consoles. It's important to remember to turn off
-any getty that is set up on that virtual console, if you do this. After
-making this change, the command "init q" works on most systems to tell init
-to re-read the file. If in doubt, just reboot your computer.
-
-
- LOGGING IN FOR THE FIRST TIME
-
- At this point, your system is ready to run. Run the citadel program from
-the shell and it will automatically create your account. NOTE: the first
-user account to be created will automatically be set to access level 6
-(Aide). This overcomes some obvious logistical problems - normally, Aide
-access is given by another Aide, but since there aren't any on your system
-yet, this isn't possible.
-
-
- SPACE FOR ADDING YOUR OWN FEATURES (doors)
-
- *** PLEASE TAKE NOTE!! *** This function really represents the "old"
-way of doing things, and it doesn't fit in well with the client/server
-paradigm. Please consider it "deprecated" because it may be removed at any
-time.
-
- The "doorway" feature is just a generic way to add features to the system.
-I called it "Doorway" to make it resemble the doors on non-Unix boards, but as
-we all know, us Unix types don't have to write special code to access the
-modem. :-) Anyway, when a user hits the <*> (doorway) command, Citadel does...
-
- USERNAME=<username>; export USERNAME
- ./subsystem <user number> <screen width> <access level>
-
- ...so you can put whatever you want in there. I suggest putting in a menu
-program to allow the users to pick one of a number of programs, etc.
-
- Do be aware that chat and door programs will only be available when two
-conditions are met:
-
- 1. The client and server programs are running on the same computer
- 2. The user is running the text-based Unix client.
-
- Because of these restrictions, Door programs are being utilized less and
-less every day.
-
-
-
- SETTING UP CITADEL TO SEND AND RECEIVE INTERNET MAIL
-
- Mail programs are now elaborate enough that it is trivial to set up Citadel
-to act as your system's local mail delivery agent. It couples easily with
-either sendmail or qmail, or with any other mail system that is capable of
-invoking a separate program to deliver local mail.
-
- Unlike earlier versions of Citadel/UX, there is no longer a need to play
-with rmail or to patch other pieces of your system's existing mailer. Simply
-make a few quick configurations, compile the Citadel/UX package "as is" and
-you're ready to go. Here's how to do it:
-
- 1. First, open up the config file "internetmail.config" in the "network"
-directory, and edit the definitions in it to your local configuration. It's
-very self-documented; just go through the file making any necessary changes.
-
- 2. Next, you must configure your system's main mail delivery agent to
-use the "citmail" program to deliver mail to local addresses. This will
-change from mailer to mailer, of course. I'm using sendmail, and although
-I don't know enough about sendmail to provide really good instructions on
-sendmail configuration, here's what worked for me:
-
- I added the following mailer definition:
-
- Mcitadel, P=/appl/citadel/citmail, F=lsDFMoqeu9S, S=10/30, R=20/40,
- D=$z:/, T=X-Unix, U=bbs,
- A=/appl/citadel/citmail $u
-
- Then I replaced all instances of "#local" with "#citadel". This seems to
-work on my system; your mileage may vary.
-
- 3. Some mailers will need to be killed and restarted for the changes to
-take effect. Once this is done, all of your BBS users now have an Internet
-e-mail address. They can use two forms of addresses:
-
- user_name@your.system.name
- cit1234@your.system.name
-
- In the first form, the name portion of the user's Internet e-mail address
-is the name they use on your Citadel system, with all spaces replaced by
-underscores. In the second form, the name is the letters "cit" followed
-by the user's user number. This is a nice shorthand that is sometimes
-easier to use. Note that the help file <.H>elp MAIL is set up to tell users
-what their address is.
-
- NOTE: I cannot and will not answer e-mails regarding the configuration of
-sendmail or any other mailer. I am not a sendmail expert; what is written
-above is everything I know about getting Citadel and sendmail to talk to each
-other. Please refer these questions to your local sendmail wizard.
-
-
-
- THE PEANUT GALLERY
-
- That's just about all the information you need to install the system.
- For more information, visit the Citadel/UX web site at UNCENSORED! BBS
- http://uncnsrd.mt-kisco.ny.us
-
- Please note: if you intend to report a problem getting the Citadel server
-to run, please first check the following:
-
- 1. Did you do ./configure && make && make install ??
- 2. Did you run setup?
- 3. Did you start the server?
-
- To report a problem, you can log on to UNCENSORED! or any other BBS on the
-Citadel network which carries the Citadel/UX> room. Please remember to mention
-all of the following information:
-
- 1. The exact nature of your difficulty
- 2. A transcript of the error message(s) if possible
- 3. The version of Citadel you are running
- 4. The version of GDBM present on your system
- 5. Which operating system you are running, and what version
- 6. If you are running a Linux system, we need to know which distribution, and
-the version of the kernel, libc, and pthreads you are using (it would help to
-post the output of a "ldd ./citserver" command).
-
-
+++ /dev/null
- BIDIRECTIONAL MAILING LIST GATEWAY INSTRUCTIONS
-
- Citadel/UX now has the ability to host a room on the BBS as a
-bidirectional gateway to an Internet mailing list. This makes it convenient
-for the entire BBS community to have reading and posting access to a mailing
-list without each member having to subscribe to the list. This document
-describes the procedure for setting up such functionality.
-
- Here's the prerequisite: you must be using Citadel as your system's local
-mail delivery agent. Please refer to network.doc for information on how to
-do this. Before attempting a mailing list, make sure that you can send and
-receive regular Internet e-mail from your Citadel system.
-
- As you may or may not know, once Citadel is your e-mail system, each room
-on the system has an e-mail address that may be used to post to the room
-from anywhere on the Internet. That address is of the form
-"room_roomname@yourhost.dom", where "roomname" is the name of the room
-(spaces replaced by underscores) and "yourhost.dom" is your fully-qualified
-domain name.
-
- The first step is to create a room for the list and then subscribe that
-room to the list. The procedure for subscribing to a list depends on what
-type of software the list server is running, and is beyond the scope of this
-document. For the purpose of example, let us suppose that you wish to
-subscribe to the "Broccoli Advocates" mailing list, and you've discovered
-that the list administrator is at broccoli-request@stalks.com and messages
-to be posted to the list should be mailed to broccoli@stalks.com. Let us
-further suppose that your BBS is at mybbs.org.
-
- So you create a room called "Broccoli Advocates". Then, because you're a
-conscientous system administrator, you give the room an Info file which
-warns users that all messages posted to the room will be posted to the list.
-
- You then send e-mail to the list administrator at
-broccoli-request@stalks.com requesting that the address
-"room_broccoli_advocates@mybbs.org" be added to the list. Once the
-administrator sets this up, the receiving end of the list is set up. Note
-that if a receive-only setup is all you want, you can stop here and you're
-done.
-
- Now you have to set things up for sending. The first thing you have to
-do is set up the file "mailinglists" which resides in the "network"
-subdirectory, which holds a table of list addresses associated with each
-room. Each line is of the form
-
- list-address,Room Name
-
- ...one room per line. You'll use this same file to set up all mailing list
-references. So for our example, the line
-
- broccoli@stalks.com,Broccoli Advocates
-
- should be added. In other words, messages originating from the "Broccoli
-Advocates" room will be mailed to broccoli@stalks.com.
-
- The next thing to do is create a file in the "network/systems" subdirectory
-which spools out new messages. Create a file "network/systems/mailinglists"
-which looks like this:
-
- mailinglist <%s
- Broccoli Advocates
- 0
-
- Note that one systems entry may be used for all mailing lists to which you
-subscribe. Just keep adding any rooms (refer to network.doc for the
-procedure) that are mapped to mailing lists.
-
- Now you're done! Just do a "netproc mailinglists" or "netproc all" on a
-regular basis (probably using cron or a similar scheduling utility) to batch
-up new messages and send them out on a regular basis.
-
-
- NOTES ABOUT MAILING LISTS:
-
- Since many listservers will only accept postings from e-mail addresses
-which are subscribed to the list, the mailing list gateway software sets the
-sending address of each message to the address of the room. The "full name"
-portion of the address will remain intact. So the posted messages will have
-headers which look like this:
-
- From: room_broccoli_advocates@mybbs.org (Joe User)
- To: broccoli@stalks.org
-
- This ensures that messages are properly posted, but it makes it difficult
-for other members of the list to learn the correct e-mail addresses of the
-users on your system. However, since there's so much spam around these
-days, that's probably just as well anyway.
-
- To prevent loops, the mailing list gateway software only spools out
-messages which originated on _your_ system. This implies that it is not
-possible to carry a gatewayed room on any type of Citadel network.
-
-
- Well, that's just about it. If you have any comments, suggestions, or
-questions, please visit UNCENSORED! BBS, either on the Internet at
-uncnsrd.mt-kisco.ny.us or via dialup at 914-244-3252.
+++ /dev/null
- NETWORK CONFIGURATION UTILITIES FOR CITADEL/UX
- ----------------------------------------------
-
- ABSTRACT
- --------
-
- The Citadel/UX system now comes with two utilities for managing room-sharing
-with other systems: 'netsetup' (a command line utility) and 'dnetsetup' (a
-curses-based front end to netsetup). Read on for more detail...
-
-
- THE NETSETUP PROGRAM
- --------------------
-
- 'netsetup' is a program which eliminates the need to edit the files in your
-network/systems directory in order to maintain the sharing of rooms on a
-network. It allows you to make all changes from the command line. While the
-program is quite usable and straightforward this way, the real objective is
-for it to be controlled by any of several user-friendly front ends (such as
-the 'dnetsetup' program, described below). The usage of 'netsetup' is as
-follows:
-
- netsetup: usage: netsetup <command> [arguments]
-
- Commands:
- nodelist (Lists all neighboring nodes)
- addnode [name] (Adds a new node to the list)
- deletenode [name] (Deletes a node from the list)
- roomlist [node] (List rooms being shared)
- getcommand [node] (Show spool command)
- setcommand [node] [cmd] (Set spool command)
- share [node] [room] (Add a new shared room)
- unshare [node] [room] (Stop sharing a room)
- help (Display this message)
-
- The usage of each command should be quite straightforward from the
-descriptions listed here.
-
-
- THE DNETSETUP PROGRAM
- ---------------------
-
- dnetsetup is a more user-friendly front end to netsetup. It's written in
-shell-script and requires no compiling. Simply type 'dnetsetup' at the
-command line and follow the menus to create, edit, and delete neighboring
-network nodes, and to share and unshare rooms.
-
-
- FEEDBACK
- --------
-
- By now you already know where I hang out. :) You can find me at
-UNCENSORED! BBS at uncnsrd.mt-kisco.ny.us (telnet, www, citadel-client, etc.)
+++ /dev/null
- Citadel/UX Network Manual
- See copyright.doc for copyright information
-
-
- OVERVIEW
-
- The fundamental structure of the networker is fairly simple, however, it
-has enough features to make it a bit complicated. This is probably the most
-difficult part of the entire Citadel/UX package. So before we dive in head
-first, let's look at the various network files and directories.
-
- netproc.c Does all of the actual network processing.
- rcit.c Feeds standard input into the networker, also
- has the ability to translate UseNet news format
- into Citadel/UX binary format.
- netmailer.c Called by the main program when a user sends a
- network mail message.
- citmail.c A local MDA which can allow Citadel users to
- receive Internet mail.
- cux2ascii.c A filter which translates Citadel/UX binary
- format to UseNet news format.
- network Directory in which all network files reside.
- network/systems Contains network info for each neighboring system
- network/systems/sysname Network file for a node called "sysname".
- network/mail.aliases Aliases for the mailer.
- network/rnews.xref Cross-references room names to newsgroup names.
- network/mail.sysinfo Contains routing information for network mail.
- network/filterlist The "kill file" for your system.
-
-
- SETUP
-
- There are a few options in the Global System Configuration which pertain
-to the network. They are:
-
- -> node name: this is the unqualified "short" node name which uniquely
-identifies your system on a Citadel network.
- -> fully-qualified domain name (FQDN): this identifies how your computer is
-named on the Internet.
- -> Human-readable node name: this is a longer, more verbose name for your
-system. It is also used as your "node title" on older Cit86Net-based
-networks.
-
-
- SETTING UP SYSTEMS FILES
-
- Please note that it is *much* easier to use the "netsetup" (command-line)
-or "dnetsetup" (curses-based) utilities to create systems files. You should
-only work with these files manually if you need to do something special.
-
- For each of your neighboring Citadel/UX systems you must create a systems
-file. The file is called network/systems/sysname, where sysname is the other
-system's node name. The first line contains a command that transfers a spool
-file to the network/spoolin directory on the remote system. The string "%s"
-will be replaced by the name of the spool file by netproc. You may only use
-%s ONCE in the command line. Usually, some sort of remote copy will be used
-to do the transfer, but you may use any facility you want, *** as long as the
-file ends up in the network/spoolin directory on the remote system ***.
-
- If you're on the Internet, or any TCP/IP network, your systems file should
-contain the following copy command:
-
-cat %s >>./network/spoolout/remote_system_name
-
- This simply stores the outbound spool data in a file in the "spoolout"
-directory, where it will be picked up by server-to-server transfer programs.
-
- After the command line you should enter the names of all the rooms you
-intend to share with this system. Each room name should be followed by a
-line containing a zero - this extra field is the "last message sent" (which
-will be updated by netproc when it is run). Here is a sample systems file for
-a node called uncnsrd:
-
-cat %s >>./network/spoolout/uncnsrd
-Network Test
-0
-Gateway
-0
-The Room
-0
-
- The rooms "Network Test", "Gateway", and "The Room" will be spooled to
-the remote system. These rooms should be designated as network rooms with
-the .<A>ide <E>ditRoom command.
-
-
- USING NETPROC
-
-
- Calling netproc with no arguments causes it to look in the network/spoolin
-directory for newly arrived messages, and posts them if it finds any. It then
-automatically batches up new messages on your system to be sent to your net
-neighbors, and exports those messages to them. It is recommended
-that you use the cron program to handle your network processing on a routine
-basis automatically. Arrange with your netneighbors for both of your systems
-to batch new messages before actual polls take place, to guarantee that
-messages travel across the network as quickly as possible.
-
- Calling netproc with the -i flag causes it to skip the export phase, and
-handle incoming messages only.
-
-
- USING CITADEL/UX AS YOUR LOCAL E-MAIL SYSTEM
-
- To use Citadel/UX as your local mail system, simply define the "citmail"
-program as your *local* mail delivery agent. You can plug citmail into any
-popular mail routing system, including sendmail, smail, MMDF, etc.
-
- Once you are using citmail as your local mail delivery agent, all users
-on your BBS may receive mail. They can use addresses like
-"my_user_name@yoursite.com" (note the spaces in the user's name are replaced
-by underscores) or "cit1234@yoursite.com" (where 1234 is the user's user
-number).
-
- Messages may be posted by mail if you have this program installed. Simply
-use the prefix "room_" -- for example, a message addressed to
-"room_hot_pink_amoebas@uncnsrd.mt-kisco.ny.us would be posted in the room "Hot
-Pink Amoebas" at the target system.
-
- PLEASE NOTE that for your BBS users to be able to send mail, you should
-check the mailer command at the top of "netmailer.c" to be sure that it is
-the correct mailer command for your system. You might need a command like
-"sendmail %s" or "smail %s" depending on what MTA you're using.
-
-
- MAIL ALIASES
-
- The file network/mail.aliases is a simple list of aliases for the various
-mailers to use. Each line takes the form
-
-alias,name
-
- Obviously, neither the alias nor the name can contain commas. The name
-may also be the system name "sysop", where messages sent to sysop will
-be posted in the Aide> room.
-
-
- CITADEL/UX NETWORK MAIL
-
- Citadel/UX has the ability to transport mail in a simple and
-transparent fashion not unlike the way public messages are sent. Users may
-enter recipient names exactly as they appear on top of messages (i.e.,
-user name @ system name). In addition, mail routing is provided, allowing
-users to send mail to systems which do not directly connect with their own.
-
- When entering a message in the Mail> room, a user may type a recipient
-name on the local system, or on a remote system. If the recipient is not
-local, citadel.c calls netmailer.c, which is a standalone program that handles
-network mail. This runs in a multithreaded mode, allowing netmailer to run in
-the background while the user goes on to do something else.
-
-
- INTELLIGENT NETWORK PROCESSING AND THE MAIL.SYSINFO FILE
-
- There is (or soon will be) a file in your network directory called
-"mail.sysinfo". In earlier releases of the network software, the system
-administrator had to manually configure this file. Starting with netproc
-version 2.1, the system should now create and configure the file automatically.
-Note that all information may not appear in the file immediately. When a
-message arrives from a system on the network, your system will attempt to
-add that system to its network map. If the originating system is one of your
-netneighbors, it will look for a systems file in the network/systems directory
-to determine whether it is a valid neighbor. If the originating system is
-not a neighbor, but the message arrived via a valid neighbor, your map will
-be updated accordingly, with an entry for the new system showing the next hop
-to get there.
-
- So, under normal circumstances you shouldn't have to configure this file at
-all. But if you need to do something special, or if for some reason netproc
-detects the topology wrong, here's how to configure mail.sysinfo. There
-are three types of entries in this file. A "use" entry tells the system which
-neighbor to route a message through to get to a particular non-neighboring
-system. A "bin" entry tells the system that a particular neighbor supports
-net mail. If there are systems that either do not have the netmailer or are
-not running Citadel/UX, but can be reached by regular electronic mail, you
-can use the "uum" command. Type "uum" followed by an address (for the user
-name, use a %s which will be replaced by the user name at the remote
-system. Here is a sample network map, where our system is called "myself"
-and all systems have Citadel/UX EXCEPT for "gateway" and "mailsys":
-
- gateway---mailsys _____testbbs
- / /
- othersys ----- myself ----- thebox
- / \_______theirsys
- funboard
-
- In this example, our neighbors are "othersys" and "thebox". othersys
-also connects to funboard, and thebox connects to testbbs and theirsys. If
-everyone supports netmail, the network/mail.sysinfo file would look like this:
-
-funboard
-use othersys
-
-testbbs
-use thebox
-
-theirsys
-use thebox
-
-othersys
-bin Mail
-
-theirsys
-bin Mail
-
-gateway
-uum othersys!gateway!%s
-
-mailsys
-uum othersys!gateway!mailsys!%s
-
- (Keep in mind that your file will contain additional system-generated
-information.)
-
- The "bin" entries specify neighbors, the "use" entries specify routing, and
-the "uum" entries specify Internet mail. The method of delivery is totally
-transparent to the user, who only needs to enter the recipient as user@sysname.
-Note that netproc will probably stuff lots of other info into each entry.
-
-
- THE KILL FILE
-
- Tired of idiots lowering the quality of the net? You can set up a "kill
-file" in ./network/filterlist that can be used to filter out messages from
-any user, room, or system (or any combination). The three fields should be
-separated by commas, and the name "*" may be used as a wildcard in any field.
-Examples:
-
- # Filter out user "The Idiot" in "Idiot Room" at "idiotbbs"
- #
- The Idiot,Idiot Room,idiotbbs
-
- # Filter out the same user, but in every room
- #
- The Idiot,*,idiotbbs
-
- # Filter out all messages from a system we don't like
- #
- *,*,idiotbbs
-
- # Filter out messages in a certain room from a certain system
- #
- *,The Room,idiotbbs
-
- You could also put a "*" wildcard in all three fields, essentially
-disabling all incoming messages. Obviously you don't want to do this.
-
-
- CONCLUSION
-
- That should cover everything you need to get running. By the way, gateway
-software for StoneHenge and NYTI FordBoard systems is available upon special
-request. And, a Cit86Net gateway is now available. For the latest version
-of this program, or to leave comments/suggestions, call my board -
-UNCENSORED! BBS at (914) 244-3252 (modem) or uncnsrd.mt-kisco.ny.us (Internet).
+++ /dev/null
- Citadel/UX Networking Documentation
- (A brief overview on setup)
- Written by Steve Williams (Patriot @ splash)
-
-
- Having come this far, you're ready to set up your networked rooms. In
-and of itself it's not too difficult. I would suggest telnetting to
-another Citadel/UX and checking out what they offer. Currently,
-uncnsrd.mt-kisco.ny.us and dogpound2.citadelia.org are most likely your
-best Internet bets, and splash.citadelia.org (login as test) is up, but
-still in development. Login to one of the above BBS and type 'k'. Note
-the roomnames with a ) after them. Here's a list of the Splash BBS rooms:
-
-
-Lobby> Mail> General Babble> The Pet Corner> NonSeq> Bugs>
-Sports> Not A Sport> Citadel> The Massage Parlor>
-Vacation Ideas> Bed & Breakfast> The Elite> Random Features> Network Test)
-X-files) Unix) Tech Area) Science Fiction) Netlinks) Linux) IBM) Food)
-Citanews) Buy/Sell) A/V Talk) Anime/Comics) Citadel/UX) Craggy Island)
-Gateway) IGnet Unlimited) Microsoft Bashing) Networking) Sysop Stuff)
-TrekNet) Video Games) Dante's Inferno> Patriot Is A Twit> Hug Me Dammit!>
- Movies) The House of Pork)
-
-
- As noted above you'll see that several (in fact most) of the rooms on
-my bbs are networked rooms. Basically networking your citadel is a very
-good idea, because not only do you have your own userbase to add to your
-rooms, you also have input from every other networked Citadel/UX and some
-other varieties of Citadel as well (Citadel-86, Cit:K2NE, etc), which
-dramatically increases the topical posting. So now you're saying, "Ok, I
-know what it is now, how do I set the damned thing up?" Good question.
-There are several steps to take. Actually setting up the networked rooms
-is simple so we'll do that last. The first thing you need to do is to
-find another network node to share with. The best way to do this (at this
-time) is to send mail to smw@splash.citadelia.org. For the time being
-I'll share my rooms with just about anyone as I have the bandwidth
-currently to accomplish this. Now, for the step by step:
-
-
- 1. Determine from the list above (I have most of the networked rooms
- listed, however I have no idea or way of knowing how often new rooms
- will be added) or from another networked citadel, which networked rooms
- you would like.
-
- 2. Contact me, or the sysop on another networked citadel (login to the
- bbs and send mail to recipient Sysop), asking to share those rooms with
- you.
-
- 3. From your Citadel/UX home directory (eg. /home/citux/citadel) run the
- program ./dnetsetup. Here it gets a little confusing so I'll paste
- in the actual menus where possible:
-
-
- **********************************************************************
- * Citadel/UX Network Setup *
- * *
- * ****************************************************************** *
- * * EDIT View or change a network node * *
- * * ADD Add a new network node * *
- * * DELETE Delete a network node * *
- * * EXIT Exit from Network Setup * *
- * ****************************************************************** *
- * *
- **********************************************************************
-
- **********************************************************************
- * < OK > <Cancel> *
- **********************************************************************
-
-
-
-
-
- As you can see above the menu choices are fairly clear. Lets go
-through the steps to actually setting this up.
-
- First, you'll need to add your network node. A node is the other Citadel/UX
-that is going to share rooms with you.
-
- Select A, then type in the name of your remote node, EXACTLY as that node's
-administrator has given it to you. In the case of SplashBBS that would be:
-
- splash
-
- Note that the standard Citadel/UX convention is to use all lowercase. Using
-uppercase in the set up of your Citadel/UX has a tendency to do weird things
-like broadcast your net messages in triplicate, for example.
-
-Once you've added your network node, tab down to 'ok' and dnetsetup will
-take you back to the main screen. From here you need to edit your
-network node. Select option "E"dit and you should only have one node
-listed at this point:
-
- Select the node you wish to edit
-***********************************************
-* splash *
-***********************************************
-
-***********************************************
-* <OK> <Cancel> *
-***********************************************
-
-
-Hit ok, at this point. You'll be given another list of options:
-
-
- Editing splash
-************************************************
-* LIST List currently shared rooms *
-* SHARE Add a shared room *
-* UNSHARE Stop sharing a room *
-* EXIT Return to main menu *
-************************************************
-
-
-This list is fairly self evident, but I'll explain it anyhow:
-
- LIST shows you all the rooms you've setup to network with
- this node.
- SHARE allows you to ADD a networked room to network with this
- node.
- UNSHARE Stops networking specified rooms with this node.
-
-
-Simple enough, right? Ok, let's add a room. Remember that list of
-networked rooms? It's a good idea to have printed that out at this
-point. Here's where the fun begins. I'm only going to show how to add
-one room, all the rest you can do yourself.
-
-Select "S"HARE:
-
- Enter name of room to share:
-********************************************
-*House of Pork *
-********************************************
-
-
-********************************************
-* <OK> <Cancel> *
-********************************************
-
- Select ok, and bang, you've setup up the first portion of networking.
- Special note: The case of the rooms must be EXACT, so watch your
- capitalization!!
-
-
- When you're all finished adding the networked rooms that you'd like to
- share, jump out to the main menu and exit. You've finished (almost) with
- the networking part. Now we have to create the new rooms on the bbs
- itself.
-
-
- 4. Login to your BBS and type .er (. Enter a new Room).
- We'll assume for sake of argument that you are creating a publicly
- accessible, non directory, networked room:
-
-Lobby> . Enter a new Room
-Name for new room? House of Pork (again, watch your case!)
-<?>Help
-<1>Public room
-<2>Guess-name room
-<3>Passworded room
-<4>Invitation-only room
-Enter room type: 1
-"House of Pork", a public room.
-Install it? (y/n) : Yes
-(0 messages)
-House of Pork>
-
- Ok great. We've created it. Now, let's make it a networked room. Note
- that at the end of the roomname we've got a > instead of a ).
- When editing a room all options in [] are defaults, and you can simply
- hit enter to accept them.
-
-. Aide Edit this room
-Room name [House of Pork]:
-Private room [No]?
-Preferred users only [No]?
-Read-only room [No]?
-Directory room [No]?
-Permanent room [No]? Yes
- (note that directory and networked rooms are ALWAYS
- permanent, by default, however just to be safe,
- select 'y'es here.)
-Network shared room [No]? Yes
-Automatically make all messages anonymous [No]?
-Ask users whether to make messages anonymous [No]?
- (note: This assumes that the networked rooms you're
- creating is NOT an anon room)
-Room aide (or 'none') [none]:
- Up to you, on this one.
-Save changes (y/n)? Yes
-Ok.
-
- There. You've created and edited a network room. You'll note that the
- name's changed from: House of Pork> to House of Pork). Once you see the
- ) you've done it. :)
-
-
-
- There ya go. You've now successfully shared and created a node and a
- network rooms. All set.
-
- Well no. Firstly you need to make sure that you've been shared on the
- other node. Make sure and check on it, before going any farther. We'll
- assume for sake of argument that everything's set up on your remote node
- and you're all ready to go.
-
- There are two commands that are ABSOLUTELY vital for processing your
- networked messages. These are:
-
- netproc
- netpoll
-
- Netproc simply takes any messages that you've placed in a networked room
- on your BBS and spools them to an outbound queue:
-
- ~bbs/network/spoolout
-
- netpoll is the command that actually goes out to your remote network node
- and snags new messages. Once it has them it brings them back into Citadel/UX
- and parses them out to their proper rooms. Simple enough.
-
- The command netproc runs by itself, no flags needed. To run netpoll,
- you need to know a little bit about your remote node.
-
- What port is Citadel/UX running on? (Normally 504, but there are some strange
- people out there)
- What is the networking password?
-
- Once you have those, polling for your messages is easy, provided
- everything's been set up properly. Syntax for netpoll:
-
- netpoll bbs.address.org Citadel/UX port # networking password
-
- Eg: netpoll splash.citadelia.org 504 netpswd
-
- (No the above is NOT my password. We'll get into that later.)
-
- Once you run netpoll as stated above this should happen:
-200 splash Citadel/UX server ready.
-Connected to: splash (Splash BBS) Indianapolis, IN
-200 authenticated as network node 'yournodename'
-200 483
-200 Ok
-200 Ok
-
- What this says is that you've connected to the splash server
- and that you've gotten the right password.
- 483 is the byte count of the messages that are coming down to you.
- The rest is stating that your messages have been uploaded and that
- you've terminated connection with the server. At this point you
- should check your networked rooms on the BBS and see what new messages
- await.
- You might want to automate this procedure by running it as a cron task.
-
- Here's mine:
-
- # Citadel/UX netprocessing tool
- 0,15,30,45 * * * * /home/citux/citadel/netproc > /dev/null 2>&1
- # Citadel/UX network message sender/receiver
- 5 * * * * /home/citux/citadel/netpoll dogpound2.citadelia.org 504 netpswd > /dev/null 2>&1
-
- I hate having messages pop up everytime netproc/netpoll runs so I
- redirect the output to /dev/null.
- Every 15 minutes netproc runs and processes outbound messages.
- At 5 minutes after each hour netpoll sends all messages and imports new
- ones.
-
- At this point we're all done. Oh I admit that you might run into
- some problems, and if you do you can feel free to mail
- smw@splash.citadelia.org with the subject Citadel Problems.
-
-
- Visit splash's Citadel/UX system at:splash.citadelia.org, login as test.
-
- -Steve Williams (Patriot)
+++ /dev/null
- Citadel/UX Sysop/Aide Manual
- See copyright.doc for copyright information
-
-
- OVERVIEW
-
- Citadel/UX, when installed properly, will do most of its maintenance by
-itself. The message file loops upon itself forever, scrolling off old messages
-to make space for new ones. The room files work in the same way. Other types
-of maintenance can be done by cron. I have left my system unattended for long
-periods of time without any software failures.
-
- The system has seven access levels. Most users are at the bottom and have no
-special privileges. Aides are selected people who have special access within
-the Citadel program. Room Aides only have this access in a certain room.
-Preferred users can be selected by Aides for access to preferred only rooms. A
-sysop is anyone who has access to the various sysop utilities - these are in
-their own executable files, which should have their permissions set to allow
-only sysops to run them. I recommend either creating a sysops group in
-/etc/group, or using some other existing group for this purpose.
-
- Aides have access to EVERY room on the system, public and private (all
-types). They also have access to commands starting with .<A>ide in addition
-to being able to delete and move messages. The system room, Aide>, is
-accessible only by those designated by aides.
-
-
- AIDE COMMANDS
-
- Aides have the following commands available to them that are not available
-to normal users. They are:
-
- .<A>ide <E>dit room Allows an aide to change certain parameters of
- the current room. Lobby>, Mail>, and Aide> may
- not be edited.
- .<A>ide <F>ile <D>elete If the current room has a directory, an Aide or
- room Aide can delete files from the directory
- using this command.
- .<A>ide <F>ile <M>ove Moves a file from the directory of the current
- room to the directory of another room. If there
- is a file description attached, it is moved also.
- .<A>ide <F>ile <S>end... This will send a copy of a file in the current
- room's directory to the directory of the same
- room on another system on the network. The other
- system must be running Citadel/UX or another
- program supporting IGnet/Open file transfers.
- .<A>ide edit <I>nfo file Creates an info file for the current room, which
- will be displayed to the user when any of three
- conditions exist: the first time the user enters
- the room, the next time the user enters the room
- after the file has been changed, and when the
- .<R>ead <I>nfo file command is entered.
- .<A>ide <K>ill room Deletes the current room. Lobby>, Mail>, and
- Aide> may not be deleted.
- .<A>ide <M>essage edit: Allows you to change various system banners, such
- as the 'hello' logon greeting.
- .<A>ide <P>ost Enter a message using any user name.
- .<A>ide <R>oom <I>nvite Invites a user to the room if it is private.
- .<A>ide <R>oom <K>ickOut Kicks a user out of the room if it is private.
- .<A>ide <S>ystem config Edits global system configuration.
- .<A>ide <U>serEdit Edits certain parameters of a user's account.
- .<A>ide <V>alidate newusers Lists users who have recently registered and
- prompts for new access levels.
- .<A>ide <W>hoKnowsRoom Lists all users who have access to, and who have
- not chosen to zap, the current room.
-
-
- EDITING ROOMS
-
- This command allows any aide to change the parameters of a room. Go to
-the room you wish to edit and enter the .AE command. A series of prompts will
-be displayed. The existing parameters will be displayed in brackets; simply
-press return if you want to leave any or all of them unchanged.
-
-Room name [IG's Fun Room]:
-
- ...the name of the room.
-
-Private room [Yes]?
-
- ...enter Yes if you wish to restrict access to the room, or no if the room
-is to be accessible by all users. Note that Citadel doesn't bother users
-about access to rooms every time they need to access the room. Once a user
-gains access to a private room, it then behaves like a public room to them.
-The following four questions will only be asked if you selected Private...
-
-Accessible by guessing room name [No]?
-
- ...if you enter Yes, the room will not show up in users' <K>nown rooms
-listing, but if they .<G>oto the room (typing the room's full name), they
-will gain access to the room.
-
-Accessible by entering a password [No]?
-Room password [mypasswd]:
-
- ...this adds an additional layer of security to the room, prompting users
-for a password before they can gain access to the room.
-
-If you did not select guessname or passworded, then the only way users can
-access the room is if an Aide explicitly invites them to the room using the
-.<A>ide <R>oom <I>nvite user command.
-
-Cause current users to forget room [No] ? No
-
- Enter Yes if you wish to kick out anyone who currently has access to
-the room.
-
-Preferred users only [No]? No
-
- Enter Yes if you wish to restrict the room to only users who have level 5
-(Preferred User) status (and Aides too, of course). You should make the room
-public if you intend to do this, otherwise the two restrictions will be
-COMBINED.
-
-Read-only room [No]? No
-
- If you set a room to Read-Only, then normal users will not be allowed to
-post messages in it. Messages may only be posted by Aides, and by utility
-programs such as the networker and the "aidepost" utility. This is useful
-in situations where a room is used exclusively for important announcements,
-or if you've set up a room to receive an Internet mailing list and posting
-wouldn't make sense. Other uses will, of course, become apparent as the
-need arises.
-
-Now for a few other attributes...
-
-Directory room [Yes]? Yes
-
- ...enter Yes if you wish to associate a directory with this room. If you
-enter Yes, you will also be prompted with the following four questions:
-
-Directory name [mydirname]:
-
- ...the name of the subdirectory to put this room's files in. The name of
-the directory created will be <your BBS directory>/files/<room dir name>.
-
-Uploading allowed [Yes]? Yes
-
- ...enter Yes if users are allowed to upload to this room.
-
-Downloading allowed [Yes]? Yes
-
- ...enter Yes if users are allowed to download from this room.
-
-Visible directory [Yes]? Yes
-
- ...enter Yes if users can read the directory of this room.
-
-
-Network shared room [No]? No
-
- ...you can share a room over a network without setting this flag, and
-vice versa, but what this flag does is twofold:
- 1. It prevents people with no network access from entering messages here
- 2. Messages are displayed with the name of their originating system in
- the header.
-
-Permanent room [No]? No
-
- ...the sysop utilities have an option to purge rooms which have not been posted
-in for two weeks. If you wish to keep this from happening to a particular room, you
-can set this option. (Keep in mind that Lobby>, Mail>, Aide>, any network rooms, and
-any directory rooms are automatically permanent.)
-
-
-Anonymous messages [No]? No
-Ask users whether to make messages anonymous [No]? No
-
- ...you can have rooms in which all messages are automatically anonymous,
-and you can have rooms in which users are prompted whether to make a message
-anonymous when they enter it.
-
-Room aide [Joe Responsible]:
-
- ...on larger systems, it helps to designate a person to be responsible for
-a room. Room Aides have access to a restricted set of Aide commands, ONLY
-when they are in the room in which they have this privilege. They can edit
-the room, delete the room, delete and move messages, and invite or kick out
-users (if it is a private room), but they cannot perform aide commands that
-are not room-related (such as changing users access levels).
-
-Save changes (y/n)? Yes
-
- ...this gives you an opportunity to back out, if you feel you really
-messed things up while editing.
-
-
- FILE DIRECTORIES
-
- If you have created any directory rooms, you can attach file descriptions to
-the filenames through a special file called "filedir". Each line contains
-the name of a file in the directory, followed by a space and then a description
-of the file, such as:
-
- myfile.txt This is a description of my file.
- phluff A phile phull of phluff!
-
- ...this would create file descriptions for the files 'myfile.txt' and 'phluff'
-which would be displayed along with the directory. It should also be noted
-that when users upload files to your system, they will be prompted for file
-descriptions, which will be added to the 'filedir' file. If one does not
-exist, it will be created.
-
-
- EDITING USERS
-
- This command allows any aide to change certain parameters of any user's
-account. Entering this command will ask for the name of a user to edit, and
-then prompt with the user's current access level, then ask for the new one.
- 0 - Marked for deletion
- 1 - New unvalidated user
- 2 - Problem user
- 3 - User with no network privileges
- 4 - Normal user
- 5 - Preferred user
- 6 - Aide
-
- DELETING AND MOVING MESSAGES
-
- Aides have the ability to delete and move messages; however, they must have
-message prompting turned on in order to do this. After each message, the
-normal prompt appears:
- <A>gain, <N>ext message, <S>top ->
- Entering <D> will delete the message. A (y/n) prompt will appear to confirm
-that you really want to delete the message.
- Entering <M> will prompt for a room to move the message to.
-
-
- SYSOP UTILITIES
-
- There are a number of utilities which may be accessed from the shell. It
-is up to the system operator to decide which should be "sysop" utilities and
-which should be accessible to all shell users. Please see utils.doc for a
-description of these programs.
-
-
- CUSTOMIZING THE HELP FILES
-
- The subdirectory called "help" contains your system's help files. There's
-nothing hard-coded into the system that dictates what files should be there.
-Whenever a user types the command "<.H>elp" followed by the name of a help
-file, it displays the contents of that help file.
-
- The help files that come with the system, of course, are enough to guide
-a user through its operation. But you can add, change, or remove help files
-to suit whatever is appropriate for your system.
-
- Now for the fun part. There are several strings that you can put in help
-files that will be automatically substituted with other strings. They are:
-
- ^nodename = The node name of your system on a Citadel/UX network
- ^humannode = Human-readable node name (also your node name on C86Net)
- ^fqdn = Your system's fully-qualified domain name
- ^username = The name of the user reading the help file
- ^usernum = The user number of the user reading the help file
- ^sysadm = The name of the system administraor (i.e., you)
- ^variantname = The name of the BBS software you're running
-
- So, for example, you could create a help file which looked like:
-
- "Lots of help, of course, is available right here on ^humannode. Of
-course, if you still have trouble, you could always bug ^sysadm about it!"
-
-
- CONCLUSION
-
- For more information, visit the Citadel/UX web site at UNCENSORED! BBS
- http://uncnsrd.mt-kisco.ny.us
-
--- /dev/null
+
+ Citadel/UX 5.53 and later include support for Pluggable Authentication
+Modules (PAM.) However, we don't recommend enabling this feature (./configure
+--with-pam) unless you understand exactly how it will affect your system's
+security. Specifically, the system administrator must supply a configuration
+for every authentication service which uses PAM. We have automated this process
+for Linux by supplying a file which is placed in /etc/pam.d during the
+installation process, but not on other systems, for 2 reasons:
+
+ 1) Other systems don't have /etc/pam.d; instead they use one big
+configuration file, usually /etc/pam.conf. It's not quite as trivial to
+automatically modify this file in a safe and secure fashion.
+
+ 2) Other systems have a different set of available authentication
+modules; they are likely to lack all three of the ones we use in the Linux
+configuration. We don't have enough information about the features of the
+authentication modules on other platforms to be able to provide secure
+configurations.
+
+ That said, the configuration we've provided should work on at least
+Red Hat Linux 4.2-5.2, (although we don't recommend building Citadel/UX on Red
+Hat 4.x due to libc thread-safety issues) and if you understand PAM
+configuration on your system, feel free to build Citadel/UX with PAM support,
+as long as you realize that YOU'RE ON YOUR OWN.
+++ /dev/null
-
- UPGRADING AN EXISTING CITADEL/UX INSTALLATION
- ---------------------------------------------
-
- The process by which you will upgrade an older version of Citadel/UX to the
-current one depends on which version you have installed.
-
-
-
- Version 1.xx, 2.xx, or 3.xx
- ---------------------------
-
- Upgrading from these versions is no longer supported. Sorry.
-
-
-
- Version 4.xx, 5.0x, or 5.1x
- ---------------------------
-
- Obtain the "export5" utility from any FTP site which carries Citadel. This
-package contains instructions on how to 'export' your old databases, and then
-'import' them into Citadel/UX 5.54.
-
- NOTE: if you have any of these versions installed, you must first upgrade
-to Citadel/UX v5.54, and then upgrade from 5.54 to the latest version. The
-file formats for 5.60 have changed drastically, and it is unfeasible to build
-a one-step migration path.
-
-
-
- Version 5.5x
- ------------
-
- Upgrading from 5.5x to 5.60 is easy. Unpack the source and run the
-configure script using "--with-prefix=/your/citadel/directory" just like you
-had done for the previous version. After the compile is finished, shut down
-the running copy of citserver and do a "make install-exec". This command
-installs the new programs without overwriting any of your data files, system
-banners, or anything else.
-
-
-
-
- ALL VERSIONS
- ------------
-
- After you upgrade, you MUST run "setup" before starting citserver! If you do
-not do so, the server will notice the older version stamp on your data files
-and refuse to run. Run setup, then start citserver.
-
-
+++ /dev/null
- Citadel/UX Utilities Manual
- See copyright.doc for copyright information
-
-
- OVERVIEW
-
- The following utilities will be discussed in this document:
- aidepost Post standard input to the Aide> room
- whobbs Who is on the system
- stats Print the calling statistics & graph
- msgform Format a binary message to the screen (stdin or in a file)
- userlist Print the userlist
- readlog Read the caller log
- sendcommand Send a server command
-
- It is up to you to decide which utilities should be made accessible only
-to sysops. It is important that you set the file permissions correctly. All
-utilities should have access to the BBS data files. We will attempt to
-address each program individually.
-
-
- AIDEPOST
-
- The nature of this program is rather simple. Standard input (stdin) is
-converted into a message, filed in the main message file (msgmain), and posted
-in the Aide> room. This is useful for keeping transcripts of system activity
-that has to do with the BBS. You might even elect to send all of your system
-logs there, too.
-
- aidepost also accepts the usage "aidepost -rTargetRoom", where TargetRoom
-is the name of a room to which you'd like the message to be sent.
-
-
- WHOBBS
-
- This program is similar to the "who" command. It lists all of the users
-who are currently connected to your BBS server, either locally or across a
-network. Unless you're running a standalone system, "who" and "whobbs" will
-probably not have a one-to-one correspondence (unlike earlier versions of the
-system).
-
- One thing to keep in mind is that the "whobbs" utility actually opens a
-connection to the server. If the server is maxed out, whobbs will still be
-able to provide a listing, because it doesn't need to log in to execute the
-RWHO command. Note that whobbs does not list its own session.
-
- Running the <W>ho is online command from the client does *not* call this
-utility. It has this functionality built in.
-
-
- STATS
-
- (NOTE: this program no longer uses the "curses" library.) It prints
-various statistics on the screen based on the calllog file, such as number
-of connects, number of logins, number of logouts, number of disconnects,
-bad password attempts, etc. All statistics are provided in three figures:
-times per call, times per day, and total times.
- After this screen appears, you may press return for the next screen. This
-is a graphic representation of system usage, broken down into 20 minute
-segments of the day. This will show you when your peak usage is.
- Press return again and the stats program will list your system's top
-20 callers.
- The final screen lists the twenty users with the highest post per call
-ratios. Unline the other screens, this statistic is extracted from the user
-file itself rather than the call log.
-
- stats may be called with the "-b" option to run in batch mode. In this case,
-it skips all the prompts and just prints everything out in one bulk output.
-Or it may be called with the "-p" option to only print the Post-to-Call
-ratios and nothing else.
-
-
- MSGFORM
-
- On occasion, I have had messages in Citadel/UX binary format that I have
-wanted to view. Or needed a way to view a network spool file. Or wanted to
-directly examine parts of msgmain. This program is a simple message formatter.
- msgform reads standard input, scanning for binary messages, starting
-with an <FF> byte and ending after the final NULL, and print as many as it
-finds until it encounters EOF.
- You could use this utility along with netproc to provide printouts or
-archives of certain rooms.
-
-
- USERLIST
-
- This is a program to print the userlist. There are two flags that may be
-set when running this program. When called without any arguments, userlist
-will display all users (except those who have chosen to be unlisted), their
-user numbers, times called, messages posted, screen width, and date of their
-most recent call.
-
- userlist is simply the same user listing code that is in the client, made
-into a standalone utility for convenience.
-
-
- READLOG
-
- Called without any arguments, readlog dumps the contents of the calllog
-file. This file records all times the Citadel/UX program has been started, and
-at what baud rate, as well as logins, proper logouts, loss of carrier (SIGHUP),
-bad password attempts, and new user logins.
-
-
- SENDCOMMAND
-
- sendcommand will interpret its arguments (except for "-hDIRNAME") as a
-server command, which is sent to the server. Commands which require textual
-input will read it from stdin. Commands which generate textual output will
-be sent to stdout.
-
- This utility is intended to be used to enable Citadel server commands to be
-executed from shell scripts. Review the script called "weekly" which ships
-with the Citadel distribution for an example of how this can be used.
-
- NOTE: be sure that this utility is not world-executable. It connects to the
-server in privileged mode, and therefore could present a security hole if not
-properly restricted.
-
-
- --------------------------------------------------------------------------
-
- That should cover all of the included utilities.
- For more information, visit the Citadel/UX web site at UNCENSORED! BBS
- http://uncnsrd.mt-kisco.ny.us
-